🤔 문제
회사가 소프트웨어 애플리케이션을 위한 불변 인프라를 구축하고, 애플리케이션에 트래픽을 전송하기 전에 테스트하고자 합니다. 애플리케이션 버그의 영향을 제한하는 효율적인 솔루션을 찾고 있습니다.
- AWS CloudFormation을 사용하여 프로덕션 인프라를 업데이트하고 업데이트가 실패할 경우 스택을 롤백합니다.
- Amazon Route 53의 가중치 라우팅을 적용하여 스테이징 환경을 테스트하고 테스트가 통과할 경우 트래픽을 점진적으로 증가시킵니다.
- Amazon Route 53의 장애 조치 라우팅을 적용하여 스테이징 환경을 테스트하고 테스트가 통과할 경우 프로덕션 환경으로 장애 조치를 합니다.
- AWS CloudFormation을 사용하여 프로덕션 환경과는 다른 별도의 환경에서 스테이징 값으로 파라미터를 설정하여 배포합니다.
- AWS CloudFormation을 사용하여 스테이징 환경을 배포하고 스냅샷 삭제 정책을 적용한 후 테스트가 통과할 경우 프로덕션 환경에서 리소스를 재사용합니다.
정답
정답. 2, 4번
2번. Amazon Route 53의 가중치 라우팅을 적용하여 스테이징 환경을 테스트하고 테스트가 통과할 경우 트래픽을 점진적으로 증가시킵니다.
Route 53의 가중치 라우팅(weighted routing)을 사용하면 트래픽의 비율을 여러 리소스에 분산시킬 수 있다.
Blue/Green 배포 전략을 사용하여 소프트웨어 애플리케이션을 예측 가능하게 배포하고, 테스트가 실패할 경우 신속하게 롤백할 수 있다.
[Blue/Green 배포 + weighted routing]
Stag와 Prod의 2개의 환경을 통해 배포를 할 경우에 Blue/Green 배포와 가중치 라우팅(weighted routing)을 활용해서 배포하는 경우가 많다.
4번. AWS CloudFormation을 사용하여 프로덕션 환경과는 다른 별도의 환경에서 스테이징 값으로 파라미터를 설정하여 배포합니다.
회사는 프로덕션에 변경 사항을 배포하기 전에 변경 사항을 테스트할 수 있는 별도의 환경을 사용할 수 있다.
CloudFormation을 사용하여 Staging 환경을 생성하고 변경 사항을 프로덕션 환경에 릴리스하기 전에 테스트할 수 있다.
CloudFormation 템플릿 작성(JSON 또는 YAML 형식) → 스테이징 환경 구성 → 파라미터 값 설정(파라미터 값을 사용하여 템플릿에서 변수 값을 정의, 테이징 환경에서는 데이터베이스 엔드포인트나 AMI ID, 환경 변수 등을 프로덕션과 다르게 설정할 수 있다)
오답
1번. AWS CloudFormation을 사용하여 프로덕션 인프라를 업데이트하고 업데이트가 실패할 경우 스택(stack)을 롤백합니다.
프로덕션 인프라를 업데이트하고 롤백하면 애플리케이션과 사용자에게 영향을 미칠 수 있다.
회사는 소프트웨어 애플리케이션을 프로덕션에 배포하기 전에 테스트할 수 있는 별도의 환경이 필요하다.
3번. Amazon Route 53의 장애 조치 라우팅을 적용하여 스테이징 환경을 테스트하고 테스트가 통과할 경우 프로덕션 환경으로 장애 조치를 합니다.
Route 53의 장애 조치 라우팅은 재해 복구를 제공하며, 리소스가 비정상 상태가 되면 트래픽을 다른 정상 리소스로 라우팅한다. 이것은 테스팅하는 환경과는 관련이 없다
4번. AWS CloudFormation을 사용하여 스테이징 환경을 배포하고 스냅샷 삭제 정책을 적용한 후 테스트가 통과할 경우 프로덕션 환경에서 리소스를 재사용합니다.
AWS CloudFormation에서 스냅샷 삭제 정책은 리소스가 삭제될 때 스냅샷(데이터 백업)을 유지하도록 설정할 수 있는 옵션입니다. 예를 들어, EC2 볼륨의 스냅샷을 삭제하지 않고 유지할 수 있다.
하지만 스냅샷 삭제 정책은 모든 리소스를 지원하지 않으며 필요한 모든 리소스를 보존하지 않을 수 있다.