한 회사가 AWS에서 새로운 기계 학습 솔루션을 구축하고 있습니다. 모델은 시작 시 Amazon S3에서 약 1GB의 모델 데이터를 다운로드하여 메모리에 로드하는 독립적인 마이크로서비스로 구현됩니다. 사용자는 비동기 API를 통해 모델에 액세스합니다. 즉, 요청 또는 일괄 요청을 제출하고 결과가 전송될 위치를 지정합니다. 수백 명의 사용자가 불규칙한 사용 패턴으로 모델을 사용할 것입니다. 일부 모델은 며칠 또는 몇 주 동안 유휴 상태일 수 있지만, 다른 모델은 수천 개의 요청이 한꺼번에 몰릴 수 있습니다. 이러한 요구 사항을 충족하기 위해 솔루션스 아키텍트가 권장해야 하는 설계는 무엇입니까?
정답 선택
옵션을 탭하여 정답을 확인하세요.
정답: API의 요청을 Amazon Simple Queue Service(Amazon SQS) 큐로 보냅니다. 큐에서 읽는 Amazon Elastic Container Service(Amazon ECS) 서비스로 모델을 배포합니다. 큐 크기에 따라 클러스터와 서비스 복제본 모두에 대해 Amazon ECS에서 AWS Auto Scaling을 활성화합니다..
이것이 정답인 이유
정답은 비동기 처리, 가변적인 워크로드, 그리고 1GB 모델 데이터 로딩 요구사항을 모두 충족합니다. Amazon SQS는 비동기 요청을 안정적으로 처리하고, ECS는 1GB 모델을 메모리에 로드할 수 있는 충분한 리소스를 제공합니다. SQS 큐 크기에 따른 ECS Auto Scaling은 유휴 상태와 급증하는 요청을 효율적으로 관리하여 비용을 최적화합니다.
오답 1은 Lambda에 1GB 모델을 로드하는 데 제한이 있고, NLB는 비동기 처리에 적합하지 않습니다. 오답 2는 ALB가 비동기 처리에 적합하지 않으며, AWS App Mesh는 Auto Scaling에 직접 사용되지 않습니다. 오답 3은 Lambda가 1GB 모델을 로드하는 데 제한이 있으며, vCPU 수 증가는 Auto Scaling의 주요 메트릭이 아닙니다.