본 문제는 빌드업웍스에서 AWS 공인 솔루션스 아키텍트 — 어소시에이트 SAA-C02를 위해 개발한 연습문제입니다.
3개의 연습문제를 풀어 보시고 정답과 해설을 확인해 보세요.
문제
1. HPC (High Performance Computing) 애플리케이션이 AWS로 마이그레이션됩니다. 이 애플리케이션은 낮은 네트워크 대기 시간과 노드 간 높은 처리량을 요구하며 단일 AZ에 배포됩니다.
최상의 노드 간 성능을 위해 응용 프로그램을 어떻게 배포해야 합니까?
A) 동일한 작업 정의에서 응용 프로그램 컨테이너에 대해 별도의 작업 역할을 지정합니다.
B) 각 인스턴스에 서로 다른 IAM 역할을 할당 할 수 있으므로 EC2 인스턴스를 대신 사용합니다.
C) 클러스터 배치 그룹에서 배포합니다.
D) ECS 컨테이너를 사용하여 세부적인 권한을 구현할 수 없습니다.
2. 배포한 ECS 클러스터의 개별 ECS 애플리케이션 컨테이너에 추가 권한을 부여하려고 합니다. 클러스터에서 실행 중인 다른 컨테이너에 추가 권한을 부여하지 않고 이 작업을 수행하려고 합니다.
이것을 어떻게 달성 할 수 있습니까?
A) 동일한 작업 정의에서 응용 프로그램 컨테이너에 대해 별도의 작업 역할을 지정합니다.
B) 각 인스턴스에 서로 다른 IAM 역할을 할당할 수 있으므로 EC2 인스턴스를 대신 사용합니다.
C) ECS 컨테이너를 사용하여 세부적인 권한을 구현할 수 없습니다.
D) 다른 작업 역할을 사용하는 응용 프로그램 컨테이너에 대해 별도의 작업 정의를 만듭니다.
3. 회사는 고객이 온라인 카탈로그에 저장된 이미지를 사용자 정의 할 수 있는 솔루션이 필요합니다. 이미지 사용자 지정 파라미터는 요청에서 Amazon API Gateway로 전송됩니다. 그런 다음 사용자 정의된 이미지는 주문형으로 생성되며 온라인으로 액세스 할 수 있습니다.
고가용성이며 가장 비용 효율적인 솔루션은 무엇입니까?
A) AWS Lambda를 사용하여 원본 이미지를 요청된 사용자 지정으로 수정합니다. 원본 이미지와 수정된 이미지를 Amazon S3에 저장합니다. S3 버킷을 오리진으로 사용하여 Amazon CloudFront 배포를 구성합니다.
B) AWS Lambda를 사용하여 요청된 사용자 지정으로 원본 이미지를 수정합니다. 원본 및 수정된 이미지를 Amazon S3에 저장합니다. S3 버킷을 오리진으로 하여 Amazon CloudFront 배포를 구성합니다.
C) AWS Lambda를 사용하여 원본 이미지를 요청된 사용자 지정으로 수정합니다. Amazon S3에 원본 이미지를 저장하고 Amazon DynamoDB에 수정된 이미지를 저장합니다. Amazon EC2 인스턴스 앞에서 Elastic Load Balancer를 구성합니다.
D) Amazon EC2 인스턴스를 사용하여 원본 이미지를 요청된 사용자 지정으로 수정합니다. Amazon S3에 원본 이미지를 저장하고 Amazon DynamoDB에 수정된 이미지를 저장합니다. S3 버킷을 오리진으로 사용하여 Amazon CloudFront 배포를 구성합니다.
정답
1. D
새 EC2 인스턴스를 시작하면 EC2 서비스는 모든 인스턴스가 기본 하드웨어 전반에 분산되도록 하여 상호 관련 오류의 위험을 줄입니다. 그러나 배치 그룹을 사용하면 워크로드의 요구 사항을 충족하도록 하는 독립적 인스턴스의 그룹의 배치에 영향을 줄 수 있습니다. 워크로드의 유형에 따라 다음 배치 전략 중 하나를 사용하여 배치 그룹을 생성할 수 있습니다.
- 클러스터 — 인스턴스를 가용 영역 안에 서로 근접하게 패킹합니다. 이 전략은 워크로드가 HPC 애플리케이션에서 일반적인 긴밀히 결합된 노드 간 통신에 필요한 낮은 지연 시간의 네트워크 성능을 달성할 수 있습니다.
- 파티션 — 인스턴스를 논리적 파티션에 분산해, 한 파티션에 있는 인스턴스 그룹이 다른 파티션의 인스턴스 그룹과 기본 하드웨어를 공유하지 않게 합니다. 이 전략은 일반적으로 Hadoop, Cassandra, Kafka 등 대규모의 분산 및 복제된 워크로드에 필요합니다.
- 분산 — 소규모의 인스턴스 그룹을 다른 기본 하드웨어로 분산하여 상호 관련 오류를 줄입니다.
클러스터 배치 그룹은 단일 가용 영역 내에 있는 인스턴스의 논리적 그룹입니다. 클러스터 배치 그룹은 동일한 리전의 피어링된 VPC에 걸쳐 적용될 수 있습니다. 동일한 클러스터 배치 그룹의 인스턴스는 TCP/IP 트래픽에 최대 10Gbps의 더 높은 흐름당 처리량 제한을 제공하며 네트워크의 동일한 높은 양방향 대역폭 세그먼트에 배치됩니다.
클러스터 배치 그룹은 짧은 네트워크 지연 시간, 높은 네트워크 처리량 또는 둘 다의 이점을 활용할 수 있는 애플리케이션에 권장됩니다. 또한 대부분의 네트워크 트래픽이 그룹 내 인스턴스 간에 전송되는 경우에도 권장됩니다. 배치 그룹에 가장 짧은 지연 시간과 가장 높은 초당 패킷 네트워크 성능을 제공하려면 향상된 네트워킹을 지원하는 인스턴스 유형을 선택하십시오.
2. D
Amazon ECS 작업에 대한 IAM 역할을 사용하여 특정 작업에서 컨테이너가 사용할 수 있는 IAM 역할을 지정할 수 있습니다. 애플리케이션은 AWS 자격 증명으로 AWS API 요청에 서명해야 하는데, 이 기능은 Amazon EC2 인스턴스 프로파일이 EC2 인스턴스에 자격 증명을 제공하는 방식과 유사하게 애플리케이션이 사용할 자격 증명을 관리하는 전략을 제공합니다. AWS 자격 증명을 생성하여 컨테이너에 배포하거나 EC2 인스턴스의 역할을 사용하는 대신, IAM 역할을 ECS 작업 정의 또는 RunTask API 작업과 연결할 수 있습니다. 그러면 작업의 컨테이너에서 애플리케이션이 AWS SDK 또는 CLI를 사용하여 인증된 AWS 서비스로 API 요청을 할 수 있습니다.
하나의 IAM 역할만 작업 정의에 적용할 수 있으므로 별도의 작업 정의를 생성해야 합니다. Amazon ECS에서 Docker 컨테이너를 실행하려면 작업 정의가 필요하며 작업이 권한에 사용해야 하는 IAM 역할 (작업 역할)을 지정할 수 있습니다.
3. B
AWS Lambda를 사용하면 서버를 프로비저닝하거나 관리할 필요 없이 코드를 실행할 수 있습니다. 사용한 컴퓨팅 시간에 대해서만 비용을 지불하면 됩니다.
Lambda에서는 사실상 모든 유형의 애플리케이션이나 백엔드 서비스에 대한 코드를 별도의 관리 없이 실행할 수 있습니다. 코드를 업로드하기만 하면, Lambda에서 높은 가용성으로 코드를 실행 및 확장하는 데 필요한 모든 것을 처리합니다. 다른 AWS 서비스에서 코드를 자동으로 트리거하도록 설정하거나 웹 또는 모바일 앱에서 직접 코드를 호출할 수 있습니다.
AWS Lambda를 사용하면 Amazon S3 버킷 변경, Amazon DynamoDB 테이블 업데이트 또는 애플리케이션이나 디바이스에서 생성한 사용자 지정 이벤트에 대한 응답으로 손쉽게 코드를 실행할 수 있습니다. Lambda를 사용하면 자체 인스턴스를 프로비저닝할 필요가 없습니다. Lambda에서 용량 프로비저닝, 서버 상태 모니터링, 기본 컴퓨팅 리소스에 보안 패치 적용, 코드 배포, 웹 서비스 프런트 엔드 실행 및 코드 모니터링과 로깅 등 모든 운영 및 관리 작업을 수행합니다. AWS Lambda는 코드 확장이 용이하고 고가용성이 뛰어나며 사용자가 별도 작업을 할 필요가 없습니다.
Amazon S3는 인터넷상 어디서나 원하는 양의 데이터를 저장하고 검색할 수 있도록 구축된 객체 스토리지입니다. 안정성이 매우 뛰어나고 가용성이 높으며 무제한으로 확장 가능한 데이터 스토리지 인프라를 매우 저렴한 비용으로 제공하는 간단한 스토리지 서비스입니다.
Amazon CloudFront는 개발자 친화적 환경에서 짧은 지연 시간과 빠른 전송 속도로 데이터, 동영상, 애플리케이션 및 API를 전 세계 고객에게 안전하게 전송하는 고속 콘텐츠 전송 네트워크(CDN) 서비스입니다. CloudFront는 AWS와 통합되며, AWS 글로벌 인프라와 직접 연결된 물리적 위치뿐만 아니라 다른 AWS Services와도 통합됩니다. 다양한 서비스와 원활하게 연동되는 CloudFront는 AWS Shield와 연동되어 DDoS 완화를 수행하고, 애플리케이션 오리진으로서 Amazon S3, Elastic Load Balancing 또는 Amazon EC2를 사용하고, Lambda@Edge와 연동되어 사용자지정 코드를 고객의 사용자에서 가까운 위치에서 실행하고 맞춤화된 사용자 경험을 제공합니다.
제시된 모든 솔루션은 고가용성입니다. 충족해야 하는 핵심 요구 사항은 솔루션이 가장 비용 효율적인 옵션을 선택해야 한다는 것입니다.
따라서 Amazon EC2 및 ELB와 같은 서비스는 사용하지 않더라도 지속적인 비용이 필요하므로 제거하는 것이 가장 좋습니다. 대신 완전한 서버리스 솔루션을 사용해야 합니다. AWS Lambda, Amazon S3 및 CloudFront는 이러한 요구 사항에 가장 적합한 서비스입니다.
서버리스는 운영상의 책임을 AWS로 전환하여 민첩성과 혁신을 높일 수 있도록 하는 클라우드의 네이티브 아키텍처입니다. 서버리스를 사용하면 서버를 고려하지 않고 애플리케이션과 서비스를 구축하고 실행할 수 있습니다. 서버 또는 클러스터 프로비저닝, 패치 적용, 운영 체제 유지 관리 및 용량 프로비저닝과 같은 인프라 관리 작업을 덜어냅니다. 거의 모든 유형의 애플리케이션 또는 백엔드 서비스를 서버리스로 구축할 수 있으며, 애플리케이션을 고가용성으로 실행하고 확장하는 데 필요한 모든 사항이 자동으로 처리됩니다.
서버리스를 통해 증가된 민첩성과 낮은 총 소유 비용을 통해 최신 애플리케이션을 빌드할 수 있습니다. 서버리스 애플리케이션을 빌드한다는 것은 개발자가 클라우드나 온프레미스의 서버 또는 런타임 관리와 운영에 대해 걱정하기보다는 핵심 제품에 집중할 수 있다는 뜻입니다. 이렇게 오버헤드가 줄어들면 개발자가 시간과 에너지를 확장 가능하고 안정적인 훌륭한 제품을 개발하는 데 사용할 수 있습니다.
빌드업웍스에서는 ‘AWS 공인 솔루션스 아키텍트 — 어소시에이트 연습문제’를 개발했습니다.
더 많은 문제와 자세한 해설을 원하신다면 ‘AWS 공인 솔루션스 아키텍트 — 어소시에이트 연습문제’로 오셔서 내용을 확인하세요.
빌드업웍스와 함께 AWS 공인 솔루션스 아키텍트 — 어소시에이트에 도전하여 여러분의 잠재력과 경력을 향상해보세요!
© 2020, Buildup Works LLC. All rights reserved.