하위 문제 풀이는 개인적 의견일 수 있습니다. AWS 공식 문서를 참조하는 것을 추천 드립니다.
[영문]
A company has a serverless application comprised of Amazon CloudFront, Amazon API Gateway, and AWS Lambda functions. The current deployment process of the application code is to create a new version number of the Lambda function and run an AWS CLI script to update. If the new function version has errors, another CLI script reverts by deploying the previous working version of the function. The company would like to decrease the time to deploy new versions of the application logic provided by the Lambda functions, and also reduce the time to detect and revert when errors are identified.
How can this be accomplished?
- A. Create and deploy nested AWS CloudFormation stacks with the parent stack consisting of the AWS CloudFront distribution and API Gateway, and the child stack containing the Lambda function. For changes to Lambda, create an AWS CloudFormation change set and deploy; if errors are triggered, revert the AWS CloudFormation change set to the previous version.
- B. Use AWS SAM and built-in AWS CodeDeploy to deploy the new Lambda version, gradually shift traffic to the new version, and use pre-traffic and post-traffic test functions to verify code. Rollback if Amazon CloudWatch alarms are triggered.
- C. Refactor the AWS CLI scripts into a single script that deploys the new Lambda version. When deployment is completed, the script tests execute. If errors are detected, revert to the previous Lambda version.
- D. Create and deploy an AWS CloudFormation stack that consists of a new API Gateway endpoint that references the new Lambda version. Change the CloudFront origin to the new API Gateway endpoint, monitor errors and if detected, change the AWS CloudFront origin to the previous API Gateway endpoint.
[한글] (번역기)
한 회사에는 Amazon CloudFront, Amazon API 게이트웨이 및 AWS Lambda 함수로 구성된 서버리스 애플리케이션이 있습니다. 현재 애플리케이션 코드의 배포 프로세스는 Lambda 함수의 새 버전 번호를 생성하고 AWS CLI 스크립트를 실행하여 업데이트하는 것입니다. 새 함수 버전에 오류가 있는 경우, 다른 CLI 스크립트에서 이전 작동 버전의 함수를 배포하여 되돌리고 있습니다. 회사는 Lambda 함수가 제공하는 애플리케이션 로직의 새 버전을 배포하는 시간을 단축하고, 오류가 확인되었을 때 이를 감지하고 되돌리기 위한 시간도 단축하고자 합니다.
이를 어떻게 달성할 수 있을까요?
A. AWS CloudFront 배포 및 API 게이트웨이로 구성된 상위 스택과 람다 함수가 포함된 하위 스택으로 중첩된 AWS CloudFormation 스택을 생성 및 배포합니다. Lambda에 대한 변경 사항의 경우, AWS CloudFormation 변경 집합을 생성하여 배포하고, 오류가 발생하면 AWS CloudFormation 변경 집합을 이전 버전으로 되돌립니다.
B. AWS SAM과 기본 제공되는 AWS CodeDeploy를 사용하여 새 Lambda 버전을 배포하고, 트래픽을 점진적으로 새 버전으로 전환하고, 사전 트래픽 및 사후 트래픽 테스트 기능을 사용하여 코드를 검증합니다. Amazon CloudWatch 알람이 트리거되면 롤백합니다.
C. AWS CLI 스크립트를 새 람다 버전을 배포하는 단일 스크립트로 리팩터링합니다. 배포가 완료되면 스크립트 테스트가 실행됩니다. 오류가 감지되면 이전 Lambda 버전으로 되돌립니다.
D. 새 Lambda 버전을 참조하는 새 API 게이트웨이 엔드포인트로 구성된 AWS CloudFormation 스택을 생성하고 배포합니다. CloudFront 오리진을 새 API 게이트웨이 엔드포인트로 변경하고, 오류를 모니터링하고, 오류가 감지되면 AWS CloudFront 오리진을 이전 API 게이트웨이 엔드포인트로 변경합니다.
[풀이]
- CF API Lambda로 구성된 App, 코드 배포 프로세스는 Lambda 새 버전 번호 생성 CLI 스크립트로 업데이트, 새 함수 버전에 오류 발생 시, 다른 CLI 스크립트에서 이전 버전 함수 배포해서 롤백, Lambda 로직의 새 버전 배포 시간 단축과 오류 확인 시 감지하고 되돌리기 위한 시간도 단축 요함
- A의 경우 오류가 생기면 서비스에 장애가 발생하는 방법일듯함.
- B의 경우 SAM, CodeDeploy를 사용하고 사후 트래픽 테스트 기능으로 검증하면 될 듯 롤백도 용이함
- C의 경우 이전 방식과 별 다른 것 없고, 오류가 생기면 서비스에 장애가 발생.
- D의 경우 오리진을 변경하는 것보다 보조 오리진을 추가해서 HTTP 코드로 장애 조치를 했으면 맞았을 것 같은데 올바른 답은 아닌 것 같다.
- 정답은 B
- https://docs.aws.amazon.com/ko_kr/serverless-application-model/latest/developerguide/automating-updates-to-serverless-apps.html
[출처] : https://www.examtopics.com/exams/amazon/aws-certified-solutions-architect-professional-sap-c02
위 문제에 대한 저작권은 상위 출처 링크에 있으며 해당 게시글로 문제 시 댓글 부탁 드리며 삭제 조치 진행 하겠습니다.
'자격증 > AWS SAP' 카테고리의 다른 글
[SAP-C02][문제 풀이] #21 Active Directory AWS 연동 문제 (1) | 2023.11.13 |
---|---|
[SAP-C02][문제 풀이] #20 S3 검색 속도와 가용성 필요 없는 스토리지 클래스 문제 (0) | 2023.11.10 |
[SAP-C02][문제 풀이] #18 비디오 분석 및 처리 매니지드 서비스 문제 (0) | 2023.11.10 |
[SAP-C02][문제 풀이] #17 Direct Connect 적합한 연결 문제 (0) | 2023.11.10 |
[SAP-C02][문제 풀이] #16 블로그 사이트 호스팅 시 동영상 파일 저장에 대한 버퍼링 및 Timeout 해결 문제 (0) | 2023.11.10 |