안녕하세요! 넥스트클라우드의 SA 김유림입니다.
오늘도 구석구석 문제 3개를 뽑아봤습니다.
문제는 세 가지 단계를 거치며 풀어 나갈 거예요.
1. 문제의 요구사항 분석하기
2. 관련 AWS 서비스 생각하기
3. 선택지 분석하기
바로 문제 풀이 해볼까요?
문제1
회사에서 이미지 처리를 위한 2계층 애플리케이션을 운영하고 있습니다. 애플리케이션은 각각 1개의 퍼블릭 서브넷과 1개의 프라이빗 서브넷이 있는 2개의 가용 영역을 사용합니다. 웹 계층용 ALB(Application Load Balancer)는 퍼블릭 서브넷을 사용합니다. 애플리케이션 계층의 Amazon EC2 인스턴스는 프라이빗 서브넷을 사용합니다.
사용자는 응용 프로그램이 예상보다 느리게 실행되고 있다고 보고합니다. 웹 서버 로그 파일의 보안 감사는 애플리케이션이 소수의 IP 주소로부터 수백만 건의 불법 요청을 수신하고 있음을 보여줍니다. 솔루션 설계자는 회사가 보다 영구적인 솔루션을 조사하는 동안 즉각적인 성능 문제를 해결해야 합니다.
이 요구 사항을 충족하기 위해 솔루션 설계자는 무엇을 권장해야 합니까?
선택지
A. 웹 계층에 대한 인바운드 보안 그룹을 수정합니다. 리소스를 소비하는 IP 주소에 대한 거부 규칙을 추가합니다.
B. 웹 계층 서브넷에 대한 네트워크 ACL을 수정합니다. 리소스를 소비하는 IP 주소에 대한 인바운드 거부 규칙을 추가합니다.
C. 애플리케이션 계층에 대한 인바운드 보안 그룹을 수정합니다. 리소스를 소비하는 IP 주소에 대한 거부 규칙을 추가합니다.
D. 애플리케이션 계층 서브넷에 대한 네트워크 ACL을 수정합니다. 리소스를 소비하는 IP 주소에 대한 인바운드 거부 규칙을 추가합니다.
풀이
소수의 IP 주소에서 수백만 건의 불법 요청이 발생하고 있어 애플리케이션 성능이 저하되고 있습니다. 즉각적인 해결을 위해서는 퍼블릭 서브넷의 네트워크 ACL에 거부 규칙을 추가하여 악성 트래픽을 첫 번째 진입점에서 차단해야 합니다.
정답 : B
▼ 자세한 문제 풀이를 원하신 분은 아래 더보기를 통해 확인해 주세요.
1. 문제의 요구사항 분석하기
- 2계층 애플리케이션 : 웹 계층(퍼블릭 서브넷) + 애플리케이션 계층(프라이빗 서브넷)
- ALB가 퍼블릭 서브넷에 위치하여 트래픽을 받음
- 소수의 IP에서 수백만 건의 불법 요청으로 성능 저하 발생
- 즉각적인 성능 문제 해결이 필요함
2. 관련 AWS 서비스 생각하기
보안 그룹(Security Group)과 네트워크 ACL(Network Access Control List)은 AWS에서 네트워크 보안을 제공하는 두 가지 주요 기능입니다.
- 보안 그룹 : Stateful 방식으로 작동하며, Allow 규칙만 지원합니다. Deny 규칙을 설정할 수 없어 특정 IP를 직접 차단하기 어렵습니다.
- 네트워크 ACL : Stateless 방식으로 작동하며, Allow와 Deny 규칙을 모두 지원합니다. 서브넷 수준에서 트래픽을 제어할 수 있어 악성 IP를 효과적으로 차단할 수 있습니다.
트래픽 흐름은 외부 IP → ALB(퍼블릭 서브넷) → EC2 인스턴스(프라이빗 서브넷) 순서로 이루어지므로, 가장 앞단인 퍼블릭 서브넷에서 차단하는 것이 가장 효과적입니다.
3. 선택지 분석하기
A. 웹 계층에 대한 인바운드 보안 그룹을 수정합니다. 리소스를 소비하는 IP 주소에 대한 거부 규칙을 추가합니다.
→ 웹 계층 보안 그룹에 거부 규칙을 추가하는 것은 기술적으로 불가능합니다. 보안 그룹은 Deny 규칙을 지원하지 않습니다.
B. 웹 계층 서브넷에 대한 네트워크 ACL을 수정합니다. 리소스를 소비하는 IP 주소에 대한 인바운드 거부 규칙을 추가합니다.
→ 웹 계층(퍼블릭) 서브넷의 네트워크 ACL에 거부 규칙을 추가하면 악성 트래픽을 첫 번째 진입점에서 차단할 수 있어 즉각적인 성능 개선 효과를 얻을 수 있습니다.
C. 애플리케이션 계층에 대한 인바운드 보안 그룹을 수정합니다. 리소스를 소비하는 IP 주소에 대한 거부 규칙을 추가합니다.
→ 애플리케이션 계층 보안 그룹에 거부 규칙을 추가하는 것도 기술적으로 불가능합니다. 보안 그룹은 Deny 규칙을 지원하지 않습니다.
D. 애플리케이션 계층 서브넷에 대한 네트워크 ACL을 수정합니다. 리소스를 소비하는 IP 주소에 대한 인바운드 거부 규칙을 추가합니다.
→ 애플리케이션 계층 서브넷의 네트워크 ACL에 거부 규칙을 추가해도 트래픽이 이미 ALB를 통과한 후 차단되므로 성능 개선 효과가 제한적입니다.
이어서 다음 문제입니다.
문제2
회사에서 Amazon EC2 인스턴스에 새 애플리케이션을 배포하고 있습니다. 애플리케이션은 Amazon Elastic Block Store(Amazon EBS) 볼륨에 데이터를 씁니다. 회사는 EBS 볼륨에 기록된 모든 데이터가 유휴 상태에서 암호화되도록 해야 합니다.
이 요구 사항을 충족하는 솔루션은 무엇입니까?
선택지
A. EBS 암호화를 지정하는 IAM 역할을 생성합니다. 역할을 EC2 인스턴스에 연결합니다.
B. EBS 볼륨을 암호화된 볼륨으로 생성합니다. EBS 볼륨을 EC2 인스턴스에 연결합니다.
C. 키가 Encrypt이고 값이 True인 EC2 인스턴스 태그를 생성합니다. EBS 수준에서 암호화가 필요한 모든 인스턴스에 태그를 지정합니다.
D. 계정에서 EBS 암호화를 시행하는 AWS Key Management Service(AWS KMS) 키 정책을 생성합니다. 키 정책이 활성 상태인지 확인하십시오.
풀이
EBS 볼륨에 기록된 모든 데이터가 유휴 상태에서 암호화되도록 하려면 EBS 볼륨을 생성할 때 암호화 옵션을 활성화해야 합니다. EBS 암호화는 볼륨 생성 시 직접 지정하는 것이 가장 직접적이고 확실한 방법입니다.
정답 : B
▼ 자세한 문제 풀이를 원하신 분은 아래 더보기를 통해 확인해 주세요.
1. 문제의 요구사항 분석하기
- Amazon EC2 인스턴스에 새 애플리케이션 배포
- 애플리케이션이 EBS 볼륨에 데이터를 기록
- EBS 볼륨에 기록된 모든 데이터가 유휴 상태에서 암호화되어야 함
- 명확하고 직접적인 해결방안 필요
2. 관련 AWS 서비스 생각하기
- Amazon EBS(Elastic Block Store) 암호화 : AWS에서 제공하는 블록 스토리지 암호화 기능입니다. 새 EBS 볼륨을 생성할 때 암호화를 활성화할 수 있으며, AWS 관리형 키 또는 고객 관리형 키를 사용하여 암호화됩니다. 애플리케이션 코드 변경 없이 자동으로 암호화/복호화가 수행되고, 볼륨에 저장된 데이터, 스냅샷, 그리고 인스턴스와 볼륨 간 이동하는 데이터가 모두 암호화됩니다.
3. 선택지 분석하기
A. EBS 암호화를 지정하는 IAM 역할을 생성합니다. 역할을 EC2 인스턴스에 연결합니다.
→ IAM 역할은 권한 관리를 위한 것으로, EBS 암호화를 직접 지정하는 기능은 없습니다. IAM 역할만으로는 볼륨 암호화가 자동으로 활성화되지 않습니다.
B. EBS 볼륨을 암호화된 볼륨으로 생성합니다. EBS 볼륨을 EC2 인스턴스에 연결합니다.
→ EBS 볼륨을 생성할 때 암호화 옵션을 활성화하고 EC2 인스턴스에 연결하면 해당 볼륨의 모든 데이터가 유휴 상태에서 암호화됩니다. 이는 가장 직접적이고 확실한 방법입니다.
C. 키가 Encrypt이고 값이 True인 EC2 인스턴스 태그를 생성합니다. EBS 수준에서 암호화가 필요한 모든 인스턴스에 태그를 지정합니다.
→ EC2 인스턴스에 태그를 추가하는 것만으로는 EBS 볼륨이 자동으로 암호화되지 않습니다. 태그는 메타데이터일 뿐 실제 암호화 기능을 제공하지 않습니다.
D. 계정에서 EBS 암호화를 시행하는 AWS Key Management Service(AWS KMS) 키 정책을 생성합니다. 키 정책이 활성 상태인지 확인하십시오.
→ KMS 키 정책은 암호화 키에 대한 접근 권한을 관리하는 것으로, EBS 암호화를 직접 시행하는 기능은 없습니다. 볼륨 생성 시 암호화 옵션을 별도로 지정해야 합니다.
마지막 문제 살펴볼게요.
문제3
회사에서 웹 애플리케이션으로 새로운 비디오 게임을 개발했습니다. 애플리케이션은 데이터베이스 계층에 MySQL 용 Amazon RDS가 있는 VPC의 3계층 아키텍처에 있습니다. 여러 플레이어가 온라인에서 동시에 경쟁합니다. 게임 개발자는 거의 실시간으로 상위 10개의 점수판을 표시하고 현재 점수를 유지하면서 게임을 중지하고 복원할 수 있는 기능을 제공하기를 원합니다.
솔루션 설계자는 이러한 요구 사항을 충족하기 위해 무엇을 해야 합니까?
선택지
A. 웹 애플리케이션이 표시할 점수를 캐시하도록 Memcached 클러스터용 Amazon ElastiCache를 설정합니다.
B. Redis 클러스터용 Amazon ElastiCache를 설정하여 웹 애플리케이션이 표시할 점수를 계산하고 캐시합니다.
C. 웹 애플리케이션 앞에 Amazon CloudFront 배포를 배치하여 애플리케이션 섹션의 점수판을 캐시합니다.
D. MySQL 용 Amazon RDS에서 읽기 전용 복제본을 생성하여 스코어보드를 계산하고 웹 애플리케이션에 읽기 트래픽을 제공하는 쿼리를 실행합니다.
풀이
거의 실시간으로 상위 10개 점수판을 표시하고 게임 상태를 저장/복원하는 기능이 필요합니다. Redis는 정렬된 집합(Sorted Sets) 데이터 구조와 데이터 지속성을 제공하여 실시간 리더보드와 게임 상태 관리에 최적화된 솔루션입니다.
정답 : B
▼ 자세한 문제 풀이를 원하신 분은 아래 더보기를 통해 확인해 주세요.
1. 문제의 요구사항 분석하기
- 온라인 비디오 게임의 웹 애플리케이션
- 여러 플레이어가 동시에 경쟁하는 멀티플레이어 환경
- 거의 실시간으로 상위 10개 점수판 표시 필요
- 게임 중지 및 복원 기능 (현재 점수 유지)
- 3계층 아키텍처에 MySQL RDS 사용 중
2. 관련 AWS 서비스 생각하기
- Amazon ElastiCache : AWS에서 제공하는 완전 관리형 인메모리 데이터 저장소 및 캐시 서비스입니다. 클라우드에서 인메모리 캐시를 쉽게 배포, 운영 및 확장할 수 있도록 지원합니다. 지원하는 엔진은 Memcached와 Redis로 2가지입니다.
- Memcached : 단순히 키-값 캐싱, 데이터 지속성 없음, 복잡한 데이터 구조 미지원
- Redis : 다양한 데이터 구조 지원, 데이터 지속성 제공, 정렬된 집합(Sorted Sets) 등 고급 기능 지원
3. 선택지 분석하기
A. 웹 애플리케이션이 표시할 점수를 캐시하도록 Memcached 클러스터용 Amazon ElastiCache를 설정합니다.
→ Memcached는 단순한 키-값 캐싱만 제공하며, 리더보드에 필요한 정렬 기능이나 데이터 지속성을 제공하지 않습니다. 게임 상태 저장/복원도 불가능합니다.
B. Redis 클러스터용 Amazon ElastiCache를 설정하여 웹 애플리케이션이 표시할 점수를 계산하고 캐시합니다.
→ Redis는 Sorted Sets를 통해 실시간 리더보드를 효율적으로 구현할 수 있고, 데이터 지속성을 통해 게임 상태 저장/복원이 가능합니다. 점수 계산과 캐싱을 동시에 처리할 수 있습니다.
C. 웹 애플리케이션 앞에 Amazon CloudFront 배포를 배치하여 애플리케이션 섹션의 점수판을 캐시합니다.
→ CloudFront는 CDN 서비스로 정적 콘텐츠 캐싱에 적합하지만, 동적이고 실시간으로 변하는 점수판에는 부적합합니다. 게임 상태 관리 기능도 제공하지 않습니다.
D. MySQL 용 Amazon RDS에서 읽기 전용 복제본을 생성하여 스코어보드를 계산하고 웹 애플리케이션에 읽기 트래픽을 제공하는 쿼리를 실행합니다.
→ RDS 읽기 전용 복제본은 읽기 성능을 개선할 수 있지만, 실시간 리더보드에 필요한 빠른 응답 시간을 보장하기 어렵고, 복잡한 정렬 쿼리로 인한 성능 부하가 발생할 수 있습니다.
오늘도 감사합니다. 다음 글에서 뵐게요!! 🙌🏻
'AWS > SAA 준비' 카테고리의 다른 글
AWS SAA 합격으로 가는 길 #119 (0) | 2025.09.26 |
---|---|
AWS SAA 합격으로 가는 길 #117 (0) | 2025.09.19 |
AWS SAA 합격으로 가는 길 #116 (0) | 2025.09.15 |
AWS SAA 합격으로 가는 길 #115 (0) | 2025.09.12 |
AWS SAA 합격으로 가는 길 #114 (0) | 2025.09.08 |