본 문제는 빌드업웍스에서 AWS 공인 솔루션스 아키텍트 — 어소시에이트 SAA-C02를 위해 개발한 연습문제입니다.
3개의 연습문제를 푸시고 정답과 해설을 확인해 보세요.
문제
1. 애플리케이션 스택에는 퍼블릭 서브넷의 Elastic Load Balancer, Auto Scaling 그룹의 Amazon EC2 인스턴스 및 Amazon RDS MySQL 클러스터가 포함됩니다. 요구 사항으로는 사용자는 인터넷에서 응용 프로그램에 연결할 수 있어야 하며 이때 애플리케이션 서버 및 데이터베이스는 안전해야 합니다.
애플리케이션 스택에 가장 적합한 아키텍처는 무엇입니까?
A) Amazon EC2 인스턴스용 퍼블릭 서브넷 및 Amazon RDS 클러스터용 퍼블릭 서브넷을 생성합니다.
B) Amazon EC2 인스턴스용 프라이빗 서브넷 및 Amazon RDS 클러스터용 프라이빗 서브넷을 생성합니다.
C) Amazon EC2 인스턴스용 퍼블릭 서브넷과 Amazon RDS 클러스터용 프라이빗 서브넷을 생성합니다.
D) Amazon EC2 인스턴스용 프라이빗 서브넷 및 Amazon RDS 클러스터용 퍼블릭 서브넷을 생성합니다.
2. 트래픽 양이 적을 때 Amazon EC2 인스턴스가 ELB 뒤의 Auto Scaling 그룹에서 종료되지 않는 문제가 보고되었습니다. 이 문제를 어떻게 해결할 수 있습니까?
A) ASG에서 상한 임계 값 설정을 수정합니다.
B) 스케일 다운 증분 수정합니다.
C) ELB에서 스케일링 설정을 수정합니다.
D) ASG에서 하위 임계 값 설정을 수정합니다.
3. AWS API를 호출해야 하는 Amazon EC2에 애플리케이션을 배포하고 있습니다. 자격 증명을 응용 프로그램에 안전하게 전달하는 방법은 무엇입니까?
A) 인스턴스 메타 데이터를 사용하여 인스턴스에 API 자격 증명을 저장합니다.
B) Amazon S3에서 API 자격 증명을 객체로 저장합니다.
C) EC2 인스턴스에 IAM 역할을 할당합니다.
D) API 자격 증명을 응용 프로그램 파일에 포함합니다.
정답
1. A,D
한 가지 일반적인 Amazon RDS 시나리오는 일반에 공개되어 있는 웹 애플리케이션을 포함한 EC2 인스턴스와 공개적으로 액세스할 수 없는 데이터베이스를 포함한 DB 인스턴스가 있는 VPC를 사용하는 경우입니다. 예를 들어, 퍼블릭 서브넷과 프라이빗 서브넷이 있는 VPC를 생성할 수 있습니다. 웹 서버의 기능을 수행하는 Amazon EC2 인스턴스가 퍼블릭 서브넷에 배포될 수 있으며, DB 인스턴스는 프라이빗 서브넷에 배포됩니다. 이런 배포 환경에서는 웹 서버만 DB 인스턴스에 액세스할 수 있습니다.
VPC 내에서 DB 인스턴스를 시작하면 DB 인스턴스는 VPC 내부 트래픽에 대한 프라이빗 IP 주소를 가집니다. 이 프라이빗 IP 주소는 공개적으로 액세스할 수 없습니다. 퍼블릭 액세스 가능성 옵션을 사용하여 DB 인스턴스에 프라이빗 IP 주소 외에 퍼블릭 IP 주소가 있는지 여부를 지정할 수 있습니다. DB 인스턴스가 공개적으로 액세스할 수 있는 것으로 지정된 경우, 해당 DNS 엔드포인트는 DB 인스턴스의 VPC 내부 프라이빗 IP 주소와 DB 인스턴스의 VPC 외부 퍼블릭 IP 주소로 확인됩니다. DB 인스턴스에 대한 액세스는 궁극적으로 인스턴스에서 사용하는 보안 그룹에 의해 제어되며, DB 인스턴스에 할당된 보안 그룹에서 퍼블릭 액세스를 허용하지 않으면 퍼블릭 액세스가 허용되지 않습니다.
퍼블릭 액세스 가능성 옵션을 수정하여 퍼블릭 액세스 가능성을 켜거나 끄도록 DB 인스턴스를 수정할 수 있습니다. 이 파라미터는 다른 DB 인스턴스 파라미터와 같은 방법으로 수정합니다
2. D
Auto Scaling 그룹 내 인스턴스 개수를 조정하는 트리거를 구성할 수 있습니다. 조정 트리거 하위 임곗값이 너무 높게 설정되었을 수 있습니다. 임곗값이 낮으면 위반 기간 중 측정치가 이 값보다 작아지면 조정 작업이 트리거됩니다. 너무 높게 설정하면 필요할 때 Auto Scaling 그룹이 확장되지 않을 수 있습니다.
3. C
애플리케이션은 AWS 자격 증명으로 API 요청에 서명해야 합니다. 따라서 애플리케이션 개발자는 EC2 인스턴스에서 실행되는 인스턴스의 자격 증명을 관리할 전략을 수립해야 합니다. 예를 들어 AWS 자격 증명을 인스턴스에 안전하게 배포하여 다른 사용자로부터 보호하는 한편 해당 인스턴스의 애플리케이션이 자격 증명을 사용하여 요청에 서명하도록 할 수 있습니다. 그러나 각 인스턴스에 자격 증명을 안전하게 배포하기란 쉽지 않으며, 스팟 인스턴스와 같이 AWS에서 자동으로 생성하는 인스턴스 또는 Auto Scaling 그룹의 인스턴스에 대해서는 특히 어렵습니다. 또한 AWS 자격 증명을 교체할 때 각 인스턴스의 자격 증명을 업데이트할 수 있어야 합니다.
애플리케이션이 사용하는 보안 자격 증명을 직접 관리할 필요 없이 인스턴스의 애플리케이션에서 안전하게 API 요청을 전송할 수 있도록 IAM 역할을 설계했습니다. AWS 자격 증명을 생성하고 배포하는 대신 다음과 같이 IAM 역할을 사용하여 API 요청 전송 권한을 위임할 수 있습니다.
- IAM 역할을 생성합니다.
- 역할을 수행할 수 있는 계정 또는 AWS 서비스를 정의합니다.
- 역할을 수행하면서 애플리케이션이 사용할 수 있는 API 작업 및 리소스를 정의합니다.
- 인스턴스를 시작할 때 역할을 지정하거나, 기존 인스턴스에 역할을 연결합니다.
- 애플리케이션에서 임시 자격 증명 세트를 검색하여 사용하도록 합니다.
예를 들어 IAM 역할을 사용하여 인스턴스에서 실행되며 Amazon S3의 버킷을 사용해야 하는 애플리케이션에 해당 권한을 부여할 수 있습니다. JSON 형식으로 정책을 생성하여 IAM 역할에 권한을 지정할 수 있습니다. 이 방법은 IAM 사용자를 대상으로 정책을 생성할 때와 비슷합니다. 역할을 변경하면 모든 인스턴스에 변경 내용이 전파됩니다.
IAM 역할을 생성할 때, 애플리케이션에 필요한 특정 API 호출에 대한 액세스를 제한하는 최소 권한 IAM 정책을 연결합니다.
빌드업웍스에서는 ‘AWS 공인 솔루션스 아키텍트 — 어소시에이트 연습문제’를 개발했습니다.
더 많은 문제와 자세한 해설을 원하신다면 ‘AWS 공인 솔루션스 아키텍트 — 어소시에이트 연습문제’로 오셔서 내용을 확인하세요.
빌드업웍스와 함께 AWS 공인 솔루션스 아키텍트 — 어소시에이트에 도전하여 여러분의 잠재력과 경력을 향상해보세요!
© 2020, Buildup Works LLC. All rights reserved.