안녕하세요! 넥스트클라우드의 테크니컬 트레이너 김유림입니다. 😊
지난 번의 문제는 어떠셨나요? S3를 많이 만나봤었는데, 이번에는 DynamoDB를 알아보려고 합니다.
문제는 세 가지 단계를 거치며 풀어가겠습니다.
1. 문제의 요구사항 분석하기
2. 관련 AWS 서비스 생각하기
3. 선택지 분석하기
바로 문제 풀이 시작합니다.
문제1
한 회사에 Amazon DynamoDB 테이블을 저장용으로 사용하는 애플리케이션이 있습니다. 솔루션 설계자는 테이블에 대한 많은 요청이 최신 데이터를 반환하지 않는다는 것을 발견했습니다 . 회사 사용자는 데이터베이스 성능과 관련된 다른 문제를 보고하지 않았습니다. 지연 시간이 허용 가능한 범위 내에 있습니다.
솔루션 설계자는 어떤 디자인 변경을 권장해야 합니까?
선택지
A. 테이블에 읽기 전용 복제본을 추가합니다.
B. 글로벌 보조 인덱스(GSI)를 사용합니다.
C. 테이블에 대해 강력하게 일관된 읽기를 요청합니다.
D. 테이블에 대한 최종적 일관된 읽기를 요청합니다.
풀이
문제의 핵심은 최신 데이터를 반환하지 않는다는 것이며, 지연 시간과 성능에 문제가 없습니다. DynamoDB의 기본 읽기 방식인 최종적 일관된 읽기(Eventually Consistent Read)는 최신 데이터를 보장하지 않으므로, 강력하게 일관된 읽기(Strongly Consistent Read)로 변경해야 최신 데이터를 반환할 수 있습니다.
정답 : C
▼ 자세한 문제 풀이를 원하신 분은 아래 더보기를 통해 확인해 주세요.
1. 문제의 요구사항 분석하기
- DynamoDB에서 데이터를 읽을 때 최신 데이터가 반환되지 않는 현상 발생
- 현재 지연 시간(Latency)은 문제없으며 허용 범위 내임
- 데이터의 즉각적인 일관성을 보장하는 해결책이 필요함
2. 관련 AWS 서비스 생각하기
- DynamoDB : AWS가 제공하는 완전관리형 NoSQL 데이터베이스 서비스입니다. 구조 측면에서, 테이블은 파티션 키(Partition Key)와 선택적으로 정렬 키(Sort Key)로 구성됩니다. 파티션 키를 기반으로 데이터를 여러 파티션에 분산 저장하며, 이를 통해 수평 확장(Horizontal Scaling)이 가능합니다.
- DynamoDB 최종적 일관된 읽기(Eventually Consistent Read): DynamoDB의 기본 읽기 방식으로, 최근 완료된 쓰기 결과가 즉시 반영되지 않을 수 있습니다. 복제본 간 데이터 동기화에 약간의 시간이 걸리므로 오래된 데이터가 반환될 수 있으며, 읽기 용량 유닛(RCU)을 절반만 소비하는 장점이 있습니다.
- DynamoDB 강력하게 일관된 읽기(Strongly Consistent Read): 읽기 요청 시 가장 최근에 성공적으로 완료된 쓰기 결과를 항상 반영하여 최신 데이터를 보장합니다. 최종적 일관된 읽기보다 2배의 RCU를 소비하지만, 데이터 정확성이 중요한 경우 적합합니다.
3. 선택지 분석하기
A. 테이블에 읽기 전용 복제본을 추가합니다.
→ DynamoDB에는 RDS와 같은 개념의 읽기 전용 복제본 추가 기능이 없으며, 복제본을 만든다 해도 데이터 전파 지연으로 인해 최신 데이터 보장 문제는 해결되지 않습니다.
B. 글로벌 보조 인덱스(GSI)를 사용합니다.
→ GSI에서의 쿼리는 무조건 최종적 일관성만 지원합니다. 강력한 일관성을 지원하지 않으므로 문제를 악화시키거나 해결하지 못합니다.
C. 테이블에 대해 강력하게 일관된 읽기를 요청합니다.
→ API 호출 시 ConsistentRead: true 파라미터를 사용하여 항상 가장 최신의 데이터를 읽어오도록 강제하는 방법이므로 정답입니다.
D. 테이블에 대한 최종적 일관된 읽기를 요청합니다.
→ 이것이 현재 설정(기본값)이며, 최신 데이터를 가져오지 못하는 원인입니다.
이어서 다음 문제입니다.
문제2
한 회사는 맞춤형 보고서 작성 프로그램을 사용하여 주로 매월 마지막 주에 수행되는 모바일 앱 사용을 추적하는 보고서를 효율적으로 생성하는 것을 목표로 합니다. 프로그램의 생성 프로세스 는 각 보고서당 10분 미만이 소요될 정도로 신속합니다. 이 기간 외에는 자주 사용되지 않는 회사는 요청 시 신속한 보고서 생성을 위한 비용 효율적인 솔루션을 찾고 있습니다.
이러한 요구 사항을 가장 잘 충족하는 솔루션은 무엇입니까?
선택지
A. Amazon EC2 온디맨드 인스턴스를 사용하여 프로그램을 실행하십시오. 보고서가 요청될 때 EC2 인스턴스를 트리거하는 Amazon EventBridge 규칙을 설정합니다. 매월 마지막 주 에만 EC2 인스턴스를 지속적으로 운영합니다.
B. AWS Lambda를 사용하여 프로그램을 실행합니다. 보고서가 요청되면 Lambda 함수를 트리거하는 Amazon EventBridge 규칙을 생성합니다.
C. Amazon Elastic Container Service(Amazon ECS) 내에서 프로그램을 운영하고 보고서 요청 시 실행되도록 예약합니다.
D. Amazon EC2 스팟 인스턴스를 활용하여 프로그램을 실행합니다. 보고서가 요청되면 EC2 인스턴스를 시작하는 Amazon EventBridge 규칙을 생성합니다. 매월 마지막 주 동안 EC2 인스턴스를 지속적으로 실행하도록 유지합니다.
풀이
보고서 생성이 월말에만 집중되고, 처리 시간이 10분 미만이며, 비용 효율성이 핵심 요구사항입니다. Lambda는 실행 시간만큼만 과금되고 서버 관리가 불필요하며, EventBridge로 요청 시 즉시 트리거할 수 있기에 간헐적 단기 작업에 가장 적합합니다.
정답 : B
▼ 자세한 문제 풀이를 원하신 분은 아래 더보기를 통해 확인해 주세요.
1. 문제의 요구사항 분석하기
- 보고서 생성 시간이 10분 미만인 단기 작업
- 특정 기간(월말)에만 사용량이 몰리고 그 외에는 거의 사용되지 않는 불규칙한 패턴
- 요청 시 즉시 실행되어야 하며 비용 효율성이 가장 중요함
2. 관련 AWS 서비스 생각하기
- AWS Lambda : AWS의 서버리스 컴퓨팅 서비스입니다. 서버를 직접 프로비저닝하거나 관리할 필요 없이 코드를 업로드하면 AWS가 실행 환경을 자동으로 구성합니다. 코드가 실행되는 시간과 요청 횟수만큼만 과금되며, 유휴 상태에서는 비용이 전혀 발생하지 않습니다. 최대 실행 시간은 15분으로 제한되며, Node.js, Python, Java 등 다양한 런타임을 지원합니다. 트리거 기반으로 동작하여 이벤트가 발생할 때만 실행됩니다.
- Amazon EventBridge: 이벤트 기반 아키텍처를 구성할 수 있는 서버리스 이벤트 버스 서비스입니다. AWS 서비스, SaaS 애플리케이션, 자체 애플리케이션에서 발생하는 이벤트를 감지하여 Lambda, SQS, SNS 등 다양한 타겟 서비스로 라우팅합니다. cron 표현식을 사용한 스케줄 기반 트리거와 특정 이벤트 패턴 기반 트리거를 모두 지원합니다.
3. 선택지 분석하기
A. Amazon EC2 온디맨드 인스턴스를 사용하여 프로그램을 실행하십시오. 보고서가 요청될 때 EC2 인스턴스를 트리거하는 Amazon EventBridge 규칙을 설정합니다. 매월 마지막 주 에만 EC2 인스턴스를 지속적으로 운영합니다.
→ 마지막 주 내내 인스턴스를 켜두는 것은 실제 보고서 생성 요청이 없을 때도 비용이 발생하므로(유휴 비용), 요청이 있을 때만 과금되는 Lambda보다 비용 효율성이 떨어집니다.
B. AWS Lambda를 사용하여 프로그램을 실행합니다. 보고서가 요청되면 Lambda 함수를 트리거하는 Amazon EventBridge 규칙을 생성합니다.
→ 작업 시간이 10분 미만이라 Lambda 제한(15분) 내에 충분히 처리가 가능하며, 요청이 들어올 때만 실행되고 과금되므로 유휴 리소스 비용이 전혀 없는 최적의 정답입니다.
C. Amazon Elastic Container Service(Amazon ECS) 내에서 프로그램을 운영하고 보고서 요청 시 실행되도록 예약합니다.
→ ECS를 구성하고 유지 관리하는 것은 Lambda 함수 하나를 만드는 것보다 운영 오버헤드가 크며, Fargate를 쓴다 해도 Lambda보다 구성이 복잡할 수 있습니다.
D. Amazon EC2 스팟 인스턴스를 활용하여 프로그램을 실행합니다. 보고서가 요청되면 EC2 인스턴스를 시작하는 Amazon EventBridge 규칙을 생성합니다. 매월 마지막 주 동안 EC2 인스턴스를 지속적으로 실행하도록 유지합니다.
→ A와 마찬가지로, 스팟 인스턴스가 저렴하긴 하지만 일주일 내내 서버를 켜두는 것은 Lambda처럼 필요한 순간에만 비용을 내는 방식보다 비효율적입니다. 또한 스팟 인스턴스는 중단 가능성이 있어 안정적인 보고서 생성에 위험 요소가 될 수 있습니다.
마지막 문제 살펴보겠습니다.
문제3
한 회사가 AWS에서 쇼핑 애플리케이션을 구축하고 있습니다. 애플리케이션은 매달 한 번씩 변경되고 트래픽 양에 따라 확장되어야 하는 카탈로그를 제공합니다. 회사는 애플리케이션의 대기 시간이 최소화되기를 원합니다. 각 사용자 장바구니의 데이터는 가용성이 높아야 합니다. 사용자의 연결이 끊어졌다가 다시 연결되더라도 사용자 세션 데이터를 사용할 수 있어야 합니다.
장바구니 데이터가 항상 보존되도록 솔루션 설계자는 무엇을 해야 합니까?
선택지
A. Amazon Aurora의 카탈로그에 액세스하기 위해 고정 세션 기능(세션 선호도)을 활성화하도록 Application Load Balancer를 구성합니다.
B. Amazon DynamoDB의 카탈로그 데이터와 사용자 세션의 장바구니 데이터를 캐시하도록 Redis용 Amazon ElastiCache를 구성합니다.
C. Amazon DynamoDB의 카탈로그 데이터와 사용자 세션의 장바구니 데이터를 캐시하도록 Amazon OpenSearch Service를 구성합니다.
D. 카탈로그 및 장바구니를 위한 Amazon Elastic Block Store(Amazon EBS) 스토리지로 Amazon EC2 인스턴스를 구성합니다. 자동 스냅샷을 구성합니다.
풀이
쇼핑몰 애플리케이션에서 대기 시간을 최소화하고, 빈번하게 접근하는 쇼핑 카트 및 세션 데이터를 관리하는 데 가장 적합한 서비스는 인메모리 캐시인 Amazon ElastiCache for Redis입니다. 백엔드 데이터베이스인 DynamoDB 앞단에 Redis를 배치하여 읽기 속도를 높이고, Redis의 고가용성 기능을 통해 사용자 세션과 장바구니 데이터를 안전하게 유지할 수 있습니다.
정답 : B
▼ 자세한 문제 풀이를 원하신 분은 아래 더보기를 통해 확인해 주세요.
1. 문제의 요구사항 분석하기
- 애플리케이션의 응답 대기 시간(Latency) 최소화 필요
- 사용자 장바구니 및 세션 데이터의 고가용성 보장
- 연결이 끊겨도 세션 데이터가 유지되어야 함 (세션 영속성)
2. 관련 AWS 서비스 생각하기
- Amazon ElastiCache for Redis : AWS가 제공하는 완전관리형 인메모리 데이터 스토어 서비스입니다. 데이터를 디스크가 아닌 메모리에 저장하기 때문에 마이크로초 단위의 매우 낮은 지연 시간을 제공합니다. RDB 스냅샷과 AOF 방식으로 데이터 영속성을 지원하여 재시작 후에도 데이터 복구가 가능합니다. 클러스터 모드와 Multi-AZ 구성을 통해 고가용성을 보장하며, 세션 스토어, 캐싱, 실시간 순위표 등에 주로 활용됩니다.
- DynamoDB : AWS가 제공하는 완전관리형 NoSQL 데이터베이스 서비스입니다. 구조 측면에서, 테이블은 파티션 키(Partition Key)와 선택적으로 정렬 키(Sort Key)로 구성됩니다. 파티션 키를 기반으로 데이터를 여러 파티션에 분산 저장하며, 이를 통해 수평 확장(Horizontal Scaling)이 가능합니다.
3. 선택지 분석하기
A. Amazon Aurora의 카탈로그에 액세스하기 위해 고정 세션 기능(세션 선호도)을 활성화하도록 Application Load Balancer를 구성합니다.
→ 고정 세션은 특정 서버(EC2)에 세션을 저장하는 방식이므로, 해당 서버에 장애가 발생하거나 스케일 인/아웃 시 세션 데이터(장바구니)가 유실될 수 있습니다.
B. Amazon DynamoDB의 카탈로그 데이터와 사용자 세션의 장바구니 데이터를 캐시하도록 Redis용 Amazon ElastiCache를 구성합니다.
→ DynamoDB로 확장성 있는 카탈로그를 구축하고, ElastiCache for Redis를 세션 저장소 및 캐시로 사용하여 대기 시간을 줄이고 세션 데이터의 지속성을 보장하는 가장 이상적인 아키텍처입니다.
C. Amazon DynamoDB의 카탈로그 데이터와 사용자 세션의 장바구니 데이터를 캐시하도록 Amazon OpenSearch Service를 구성합니다.
→ OpenSearch는 로그 분석이나 전체 텍스트 검색을 위한 서비스이지, 세션 관리나 인메모리 캐싱을 위한 서비스가 아닙니다.
D. 카탈로그 및 장바구니를 위한 Amazon Elastic Block Store(Amazon EBS) 스토리지로 Amazon EC2 인스턴스를 구성합니다. 자동 스냅샷을 구성합니다.
→ EBS는 특정 인스턴스에 종속된 스토리지이므로, 여러 웹 서버가 세션 데이터를 공유하기 어렵습니다. 또한 스냅샷은 백업 도구일 뿐 실시간 세션 복구용이 아닙니다.
오늘은 DynamoDB를 적극적으로 알아보는 시간이었습니다.
조금은 어려운 내용도 있었던 것 같아요. 복습해두시면 좋을 것 같습니다.
저희는 다음 주에 다시 뵙겠습니다!
'AWS > SAA 준비' 카테고리의 다른 글
| AWS SAA 합격으로 가는 길 #168 (0) | 2026.03.30 |
|---|---|
| AWS SAA 합격으로 가는 길 #167 (0) | 2026.03.23 |
| AWS SAA 합격으로 가는 길 #165 (1) | 2026.03.16 |
| AWS SAA 합격으로 가는 길 #164 (0) | 2026.03.13 |
| AWS SAA 합격으로 가는 길 #163 (0) | 2026.03.09 |