하위 문제 풀이는 개인적 의견일 수 있습니다. AWS 공식 문서를 참조하는 것을 추천 드립니다.
[영문]
A company uses a service to collect metadata from applications that the company hosts on premises. Consumer devices such as TVs and internet radios access the applications. Many older devices do not support certain HTTP headers and exhibit errors when these headers are present in responses. The company has configured an on-premises load balancer to remove the unsupported headers from responses sent to older devices, which the company identified by the User-Agent headers.
The company wants to migrate the service to AWS, adopt serverless technologies, and retain the ability to support the older devices. The company has already migrated the applications into a set of AWS Lambda functions.
Which solution will meet these requirements?
- A. Create an Amazon CloudFront distribution for the metadata service. Create an Application Load Balancer (ALB). Configure the CloudFront distribution to forward requests to the ALB. Configure the ALB to invoke the correct Lambda function for each type of request. Create a CloudFront function to remove the problematic headers based on the value of the User-Agent header.
- B. Create an Amazon API Gateway REST API for the metadata service. Configure API Gateway to invoke the correct Lambda function for each type of request. Modify the default gateway responses to remove the problematic headers based on the value of the User-Agent header.
- C. Create an Amazon API Gateway HTTP API for the metadata service. Configure API Gateway to invoke the correct Lambda function for each type of request. Create a response mapping template to remove the problematic headers based on the value of the User-Agent. Associate the response data mapping with the HTTP API.
- D. Create an Amazon CloudFront distribution for the metadata service. Create an Application Load Balancer (ALB). Configure the CloudFront distribution to forward requests to the ALB. Configure the ALB to invoke the correct Lambda function for each type of request. Create a Lambda@Edge function that will remove the problematic headers in response to viewer requests based on the value of the User-Agent header.
[한글] (번역기)
회사는 서비스를 사용하여 회사가 사내에서 호스팅하는 애플리케이션에서 메타데이터를 수집합니다. TV나 인터넷 라디오와 같은 소비자 기기는 애플리케이션에 액세스합니다. 많은 구형 디바이스는 특정 HTTP 헤더를 지원하지 않으며 이러한 헤더가 응답에 존재할 때 오류가 발생합니다. 이 회사는 사용자 에이전트 헤더로 식별한 구형 장치로 전송되는 응답에서 지원되지 않는 헤더를 제거하기 위해 온프레미스 부하 분산 장치를 구성했습니다.
이 회사는 서비스를 AWS로 마이그레이션하고 서버리스 기술을 채택하며 구형 디바이스에 대한 지원 기능을 유지하고자 합니다. 이 회사는 이미 애플리케이션을 AWS 람다 함수 집합으로 마이그레이션했습니다.
이러한 요구 사항을 충족하는 솔루션은 무엇인가요?
A. 메타데이터 서비스를 위한 Amazon CloudFront 배포를 생성합니다. 애플리케이션 로드 밸런서(ALB)를 생성합니다. 요청을 ALB로 전달하도록 CloudFront 배포를 구성합니다. 각 요청 유형에 대해 올바른 람다 함수를 호출하도록 ALB를 구성합니다. 사용자-에이전트 헤더의 값을 기반으로 문제가 있는 헤더를 제거하는 CloudFront 함수를 생성합니다.
B. 메타데이터 서비스를 위한 Amazon API Gateway REST API를 생성합니다. 각 요청 유형에 대해 올바른 람다 함수를 호출하도록 API 게이트웨이를 구성합니다. 사용자-에이전트 헤더 값을 기반으로 문제가 있는 헤더를 제거하도록 기본 게이트웨이 응답을 수정합니다.
C. 메타데이터 서비스를 위한 Amazon API 게이트웨이 HTTP API를 생성합니다. 각 요청 유형에 대해 올바른 람다 함수를 호출하도록 API 게이트웨이를 구성합니다. 사용자 에이전트 값을 기반으로 문제가 있는 헤더를 제거하기 위한 응답 매핑 템플릿을 만듭니다. 응답 데이터 매핑을 HTTP API와 연결합니다.
D. 메타데이터 서비스를 위한 Amazon CloudFront 배포를 생성합니다. 애플리케이션 로드 밸런서(ALB)를 생성합니다. 요청을 ALB로 전달하도록 CloudFront 배포를 구성합니다. 각 요청 유형에 대해 올바른 람다 함수를 호출하도록 ALB를 구성합니다. 사용자-에이전트 헤더 값을 기반으로 뷰어 요청에 대한 응답으로 문제가 있는 헤더를 제거하는 Lambda@Edge 함수를 생성합니다.
[풀이]
- 사내에서 호스팅 애플리케이션에서 메타데이터 수집, TV나 라디오 기기가 애플리케이션에 액세스, 구형 디바이스의 Header 문제 발생, 문제 해결 위해 온프레미스 로드 밸런서 구성, 서비스를 AWS로 마이그레이션 원함. 이미 회사는 AWS 람다 함수 집합으로 마이그레이션.
- 따로 DX나 이외 서비스를 설정했다는 이야기가 없으니 트래픽은 퍼블릭으로 들어오는 듯함. 이미 람다 함수가 있으니 람다 함수를 활용하는 방안으로 가야 됨.
- A의 경우 CloudFront 함수에서 헤더 값을 기반으로 CF 함수 - ALB - 람다 호출 이런 구조가 될 것 같은데 CF 에서 Lambda@Edge 를 사용하면 CF Function을 사용하는 것보다 훨씬 제약조건이 없어서 엣지를 사용하는 게 맞는 것 같다.
- B의 경우 API GW REST API 의 경우 헤더 정보를 수정할 순 있으나 제거할 수 있는지는 잘 모르겠다.
https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-parameter-mapping.html#http-api-mapping-reserved-headers - C의 경우 매핑 데이터 템플릿은 헤더를 변경하거나 삭제하는 기능이 아니라 API 메서드 요청 페이로드 또는 응답에서 페이로드의 포맷을 변경해주는 용도로 사용하는 듯 하다.
API Gateway에서 API 메서드 요청 또는 응답은 통합 요청 페이로드 또는 응답에서 여러 유형의 페이로드를 취할 수 있습니다.
데이터를 다음과 같이 변환할 수 있습니다.
페이로드를 API 지정 형식에 일치시킵니다.
API의 요청 및 응답 파라미터와 상태 코드를 재정의합니다.
클라이언트가 선택한 응답 헤더를 반환합니다.
HTTP 프록시 또는 AWS 서비스 프록시의 메서드 요청에 경로 파라미터, 쿼리 문자열 파라미터 또는 헤더 파라미터를 연결합니다.
Amazon DynamoDB 또는 Lambda 함수 또는 HTTP 엔드포인트와 같은 AWS 서비스와의 통합을 사용하여 전송할 데이터를 선택합니다.
https://docs.aws.amazon.com/ko_kr/apigateway/latest/developerguide/models-mappings.html - D의 경우 Lambda@Edge 헤더제거 - ALB - ALB 뒷단에 Lambda 를 이용해서 메타데이터 수집인 듯하다.
- 답은 D인듯하다? 정말 애매함.. Lambda@Edge를 이용해서 헤더를 제거하고 ALB로 보낸 뒤 ALB 뒷단에 이미 마이그레이션 한 Lambda를 이용해서 메타데이터를 수집하면 원하는 서버리스 구성을 할 수 있고 API GW를 이용하는 것보다 캐싱을 이용해서 비용도 절감하고 속도 개선도 되지 않을까 하는 생각이 있어서 D로 생각이 든다.
[출처] : https://www.examtopics.com/exams/amazon/aws-certified-solutions-architect-associate-saa-c03/view/
위 문제에 대한 저작권은 상위 출처 링크에 있으며 해당 게시글로 문제 시 댓글 부탁 드리며 삭제 조치 진행 하겠습니다.
'자격증 > AWS SAP' 카테고리의 다른 글
[SAP-C02][문제 풀이] #7 웹 애플리케이션 마이크로 아키텍처 서버리스 관련 문제 (0) | 2023.10.23 |
---|---|
[SAP-C02][문제 풀이] #6 S3 버킷 정책 및 IAM 정책 관련 문제 (0) | 2023.10.23 |
[SAP-C02][문제 풀이] #4 3-Tier 아키텍쳐 마이그레이션 적절 솔루션 문제 (0) | 2023.10.17 |
[SAP-C02][문제 풀이] #3 Organization SCP 권한 제어 문제 (1) | 2023.10.17 |
[SAP-C02][문제 풀이] #2 DNS <-> 멀티 리전 APIGW Fail Over 문제 (0) | 2023.10.17 |