회사가 최근 AWS에 웹 애플리케이션을 배포했습니다. 회사는 대규모 판매 이벤트를 준비하고 있으며 웹 애플리케이션이 수요를 충족하기 위해 확장할 수 있도록 해야 합니다. 애플리케이션의 프론트엔드 인프라는 Amazon S3 버킷을 원본으로 하는 Amazon CloudFront 배포를 포함합니다. 백엔드 인프라는 Amazon API Gateway API, 여러 AWS Lambda 함수 및 Amazon Aurora DB 클러스터를 포함합니다. 회사의 DevOps 엔지니어는 부하 테스트를 실시하고 Lambda 함수가 최대 요청 수를 충족할 수 있음을 확인합니다. 그러나 DevOps 엔지니어는 초기 요청 폭주 중에 요청 지연이 발생함을 알게 됩니다. Lambda 함수에 대한 대부분의 요청은 데이터베이스에 쿼리를 생성합니다. 호출 시간의 대부분은 데이터베이스 연결을 설정하는 데 사용됩니다. 어느 단계 조합이 애플리케이션에 필요한 확장성을 제공할 것입니까? (3개 선택)
- A. Lambda 함수에 대해 더 높은 예약 동시성을 구성합니다.
- B. Lambda 함수에 대해 더 높은 프로비저닝 동시성을 구성합니다.✓ 정답
- C. DB 클러스터를 Aurora 글로벌 데이터베이스로 변환합니다. 회사의 고객 위치에 따라 AWS 리전에 추가 Aurora 복제본을 추가합니다.✓ 정답
- D. Lambda 함수를 리팩터링합니다. 데이터베이스 연결을 초기화하는 코드 블록을 함수 핸들러로 이동합니다.
- F. Amazon RDS Proxy를 사용하여 Aurora 데이터베이스에 대한 프록시를 생성합니다. Lambda 함수를 업데이트하여 데이터베이스 연결에 프록시 엔드포인트를 사용합니다.✓ 정답
해설
【핵심 용어】 ▸ Provisioned Concurrency — Lambda 초기화 완료 상태로 사전 준비 ▸ RDS Proxy — 데이터베이스 연결 풀 관리 ▸ 콜드 스타트 — Lambda 초기화 지연 【정답 포인트】 ▸ B) 프로비저닝 동시성 → Lambda 초기화 시간 제거, 즉시 응답 가능 ▸ C) Aurora 글로벌 데이터베이스 → 읽기 복제본으로 지연 시간 감소 ▸ F) RDS Proxy → 연결 풀로 데이터베이스 연결 재사용, 오버헤드 제거 【오답 체크】 (A) 예약 동시성 → 동시 실행 수만 보장, 초기화 시간 단축 아님 (D) 코드 이동 → 함수 핸들러는 매 호출마다 실행, 연결 초기화 반복 (효과 미흡) 【시험 포인트】 ▸ Lambda 성능 최적화 → 프로비저닝 동시성으로 콜드 스타트 제거 ▸ 데이터베이스 연결 최적화 → RDS Proxy로 연결 풀 관리 ▸ 지역 분산 → Aurora 글로벌 데이터베이스로 지연 시간 단축