🛠️ 제1과제: Solution Architecture (4시간)

과제명: WorldPay 보안 유저 관리 시스템 구축

1. 인프라 요구사항 (Infrastructure)VPC 구성: 서울 리전(ap-northeast-2)에 고가용성을 위해 2개의 가용 영역(AZ)을 사용하는 VPC를 생성합니다.

◦ Public Subnet: ALB와 Bastion EC2 배치
◦ Private Subnet: Application EC2와 RDS 배치

컴퓨팅 및 부하 분산:ALB: 외부 트래픽을 받아 가용 영역의 EC2 인스턴스로 전달합니다.

EC2: Amazon Linux 2023 AMI를 사용하며, Auto Scaling Group(ASG)을 통해 최소 2대 이상의 인스턴스를 유지합니다.

Bastion: 관리용 EC2를 Public Subnet에 배치하며, 채점관이 접근할 수 있도록 권한을 설정합니다.

2. 보안 및 데이터 요구사항 (Security & Data)데이터베이스: RDS MySQL을 Multi-AZ로 구성하여 고가용성을 확보합니다.

암호 관리: RDS의 마스터 사용자 정보는 Secrets Manager에 저장하며, 이를 직접 생성한 KMS CMK로 암호화합니다.

로깅: 모든 EC2의 시스템 로그 및 애플리케이션 로그는 CloudWatch Logs로 전송되어야 하며, 해당 로그 그룹 역시 KMS로 암호화되어야 합니다.

3. 애플리케이션 요구사항Stack: Python 프레임워크를 사용하여 유저 정보를 조회하고 저장하는 API를 구동합니다.

연동: 애플리케이션은 코드 내에 DB 정보를 포함하지 않고, 실행 시 Secrets Manager에서 정보를 가져와 DB에 접속해야 합니다.

🛠️ 제2과제: Small Challenge (4시간)

과제명: 클라우드 운영 및 서버리스 데이터 분석

  1. Shared network storage

과제: 두 대의 EC2 인스턴스에서 공통으로 접근 가능한 공유 저장소를 구축하십시오. • 조건: Amazon EFS를 생성하고 각 인스턴스의 /mnt/shared 디렉토리에 마운트합니다. 한 곳에서 생성한 파일이 다른 곳에서도 실시간으로 확인되어야 합니다. 2. Query from S3

과제: S3에 저장된 대용량 로그 데이터를 SQL로 분석하십시오. • 조건: Amazon Athena를 사용하여 S3 버킷에 저장된 CSV 포맷의 로그 데이터를 테이블로 정의하고, 특정 조건(예: HTTP 500 에러 발생 횟수)을 조회하는 쿼리를 작성하여 실행 결과를 제출합니다. 3. Fine-grained IAM policy

과제: 최소 권한 원칙에 따른 IAM 정책을 수립하십시오. • 조건: 특정 S3 버킷에 대해 "읽기 전용" 권한만 허용하되, **특정 IP 대역(Bastion IP)**에서만 접근이 가능하도록 'Condition' 절이 포함된 IAM Policy를 작성하여 특정 Role에 연결합니다. 4. MySQL with Lambda

과제: 서버리스 환경에서 데이터베이스 작업을 자동화하십시오. • 조건: **AWS Lambda(Python)**를 생성하여 VPC 내부의 RDS MySQL에 접속합니다. Lambda는 매시간 실행(EventBridge 트리거)되어 특정 테이블의 데이터를 요약하여 S3에 텍스트 파일로 저장하는 기능을 수행해야 합니다.