템플릿 디버깅 프로세스를 더 빠르게 만들 수있는 방법은 무엇입니까? 아니면 실수를 저지른 지 30 분 후에 영원히 눈치 채지 못합니까?
다음은 복잡한 CloudFormation 템플릿 개발의 반복 속도 향상에 특히 초점을 맞춘 몇 가지 모범 사례 제안입니다.
CloudFormation 도구를 사용하여 템플릿 및 스택 업데이트 유효성 검사
AWS는 이미 자체 모범 사례 문서 에 이러한 내용을 설명 했으므로 반복하지 않겠습니다.
이 단계의 요점은 실제로 스택 생성 / 업데이트를 수행하기 전에 명백한 구문 또는 논리적 오류를 포착하는 것입니다.
격리 된 테스트 리소스
복잡한 스택에서 개별 CloudFormation 리소스를 사용하기 전에 더 작은 독립 실행 형 스택에서 동작을 테스트하여 사용 제한 및 일반적인 시작 / 해체 시간을 포함하여 해당 리소스의 생성 / 업데이트 / 삭제 동작의 전체 범위를 철저히 이해해야합니다. 먼저.
- 타사 사용자 지정 리소스를 개발하거나 사용하는 경우 언어 플랫폼에 적합한 라이브러리를 사용하여 단위 테스트를 작성하여 응용 프로그램 논리가 모든 사용 사례에서 예상대로 작동하는지 확인합니다.
- 개별 리소스가 생성 / 업데이트 / 삭제하는 데 걸리는 시간은 기본 API 호출의 동작에 따라 리소스 유형마다 크게 다를 수 있습니다. 예를 들어 복잡한
AWS::CloudFront::Distribution
리소스는 생성 / 업데이트 / 삭제하는 데 30 ~ 60 분이 걸리는 반면 AWS::EC2::SecurityGroup
업데이트는 몇 초 만에 완료 될 수 있습니다.
- 개별 리소스는 구현에 버그 / 문제 / 제한 사항이있을 수 있으며, 이는 훨씬 더 큰 스택 내에서가 아니라 격리 테스트 할 때 해결 방법을 디버깅하고 개발하기가 훨씬 쉽습니다. 개별 AWS 계정 설정에 따른 AWS 서비스 제한 또는 스택을 생성하는 리전에 따른 서비스의 리전 가용성 과 같은 제한을 염두에 두십시오 .
작은 단위로 복잡한 스택 구축
스택 생성 / 업데이트를 수행 할 때 단일 리소스에서 오류가 발생하면 스택이 전체 리소스 변경 세트를 롤백하게되며, 이로 인해 성공적으로 생성 된 다른 리소스가 불필요하게 파괴 될 수 있으며, 관련 리소스의 종속성 그래프.
이에 대한 해결책은 한 번에 하나 (또는 몇 개)의 리소스를 추가하여 더 작은 업데이트 배치로 스택을 점진적으로 빌드하는 것입니다. 이렇게하면 리소스 생성 / 업데이트에서 오류가 발생하는 경우 롤백으로 인해 전체 스택의 리소스가 파괴되지 않고 최신 업데이트에서 변경된 리소스 집합 만 발생합니다.
스택 업데이트 진행 상황 모니터링
생성 / 업데이트가 수행되는 동안 스택의 이벤트를 확인 하여 스택 업데이트의 진행 상황 을 모니터링 해야합니다 . 이것은 개별 리소스와 관련된 추가 문제를 디버깅하기위한 시작점이 될 것입니다.