배포 전 활동 - AWS 규범적 지침

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

배포 전 활동

환경 설계

애플리케이션을 테스트하고 평가하는 환경은 애플리케이션을 얼마나 철저하게 테스트할 수 있는지와 이러한 결과가 실제 환경에서 발생할 상황을 정확하게 반영한다는 확신에 영향을 미칩니다. Amazon DynamoDB와 같은 서비스를 사용하여 개발자 컴퓨터에서 로컬로 일부 통합 테스트를 수행할 수 있습니다 (DynamoDB 설명서의 DynamoDB 로컬 설정 참조). 하지만 결과의 신뢰도를 극대화하려면 프로덕션 환경을 복제하는 환경에서 테스트해야 하는 시점이 있습니다. 이 환경에서는 비용이 발생하므로 파이프라인 후반부에 프로덕션 환경과 유사한 환경이 등장하는 단계적 또는 파이프라인 방식을 사용하는 것이 좋습니다.

통합 테스트하기

통합 테스트는 응용 프로그램의 잘 정의된 구성 요소가 외부 종속성과 함께 작동할 때 해당 기능을 제대로 수행하는지 테스트하는 프로세스입니다. 이러한 외부 종속성은 다른 사용자 지정 개발 구성 요소, 애플리케이션에 사용하는 AWS 서비스, 타사 종속성, 온-프레미스 종속성 등일 수 있습니다.   이 가이드에서는 애플리케이션의 복원력을 입증하는 통합 테스트에 중점을 둡니다. 소프트웨어의 기능적 정확성을 입증하는 단위 및 통합 테스트가 이미 존재한다고 가정합니다.

회로 차단기 패턴 또는 부하 차단과 같이 구현한 복원력 패턴을 구체적으로 테스트하는 통합 테스트를 설계하는 것이 좋습니다 (2단계: 설계 및 구현 참조). 복원력 지향 통합 테스트에서는 응용 프로그램에 특정 부하를 적용하거나 () 와 같은 기능을 사용하여 의도적으로 환경을 중단시키는 경우가 많습니다.AWS Fault Injection ServiceAWS FIS 이상적으로는 모든 통합 테스트를 CI/CD 파이프라인의 일부로 실행하고 코드가 커밋될 때마다 테스트를 실행해야 합니다. 이를 통해 복원력 목표를 위반하는 코드나 구성의 변경 사항을 신속하게 감지하고 이에 대응할 수 있습니다. 대규모 분산 애플리케이션은 복잡하며, 사소한 변경이라도 응용 프로그램에서 겉보기에 관련이 없어 보이는 부분의 복원력에 큰 영향을 미칠 수 있습니다. 커밋할 때마다 테스트를 실행해 보세요. AWS CI/CD 파이프라인 및 기타 DevOps 도구를 운영하기 위한 훌륭한 도구 세트를 제공합니다. 자세한 내용은 웹 사이트의 DevOps AWS on 소개를 참조하십시오. AWS

자동화된 배포 파이프라인

사전 프로덕션 환경에 배포하고 테스트하는 작업은 반복적이고 복잡한 작업이므로 자동화에 맡기는 것이 가장 좋습니다. 이 프로세스를 자동화하면 인적 자원의 여유가 생기고 오류 가능성이 줄어듭니다. 이 프로세스를 자동화하는 메커니즘을 흔히 파이프라인이라고 합니다. 파이프라인을 생성할 때는 프로덕션 구성에 점점 더 가까워지는 일련의 테스트 환경을 설정하는 것이 좋습니다. 이 일련의 환경을 사용하여 애플리케이션을 반복적으로 테스트할 수 있습니다. 첫 번째 환경은 프로덕션 환경보다 제한된 기능 세트를 제공하지만 비용은 훨씬 저렴합니다. 후속 환경에서는 서비스를 추가하고 프로덕션 환경을 더욱 가깝게 반영할 수 있도록 확장해야 합니다.

첫 번째 환경에서 테스트하는 것부터 시작하십시오. 첫 번째 테스트 환경에서 배포가 모든 테스트를 통과한 후에는 일정 기간 동안 어느 정도의 부하 상태에서 애플리케이션을 실행하여 시간이 지남에 따라 문제가 발생하는지 확인합니다. 발생하는 모든 문제를 감지할 수 있도록 옵저버빌리티를 올바르게 구성했는지 확인하십시오 (이 가이드 뒷부분의 알람 정밀도 참조). 이 관찰 기간이 성공적으로 완료되면 애플리케이션을 다음 테스트 환경에 배포하고 프로세스를 반복하여 환경에서 지원하는 추가 테스트 또는 로드를 추가하십시오. 이러한 방식으로 애플리케이션을 충분히 테스트한 후에는 이전에 설정한 배포 방법을 사용하여 애플리케이션을 프로덕션에 배포할 수 있습니다 (이 가이드 앞부분의 CI/CD 전략 정의 참조). Amazon Builders' Library의 안전한 수동 배포 자동화 문서는 Amazon이 코드 배포를 자동화하는 방법을 설명하는 훌륭한 리소스입니다. 프로덕션 배포에 앞서 수행해야 하는 환경의 수는 애플리케이션의 복잡성과 애플리케이션이 보유한 종속성 유형에 따라 달라집니다.

로드 테스트.

겉으로 보기에 부하 테스트는 통합 테스트와 비슷합니다. 애플리케이션의 개별 함수와 해당 외부 종속성을 테스트하여 예상대로 작동하는지 확인합니다. 그런 다음 부하 테스트는 통합 테스트를 넘어 잘 정의된 부하 하에서 애플리케이션이 작동하는 방식에 초점을 맞춥니다. 부하 테스트에는 올바른 기능의 검증이 필요하므로 성공적인 통합 테스트 후에 수행되어야 합니다. 애플리케이션이 예상 부하에서 얼마나 잘 반응하는지와 부하가 예상치를 초과할 때 애플리케이션이 어떻게 동작하는지를 이해하는 것이 중요합니다. 이를 통해 극심한 부하에서도 애플리케이션의 복원력을 유지하는 데 필요한 메커니즘을 구현했는지 확인할 수 있습니다. 로드 테스트에 AWS대한 포괄적인 가이드는 AWS 솔루션 라이브러리의 분산 부하 테스트 AWS켜기를 참조하십시오.