Q14. Aurora Auto Scaling으로 전자상거래 애플리케이션의 데이터베이스 성능 향상하기
AWS 자격증을 준비하는 여러분, 안녕하세요. 오늘은 전자상거래 애플리케이션의 데이터베이스 성능 문제를 해결하는 방법에 대해 알아보겠습니다. 특히 예측할 수 없는 읽기 워크로드에 대응하면서 고가용성을 유지하는 솔루션을 찾아보겠습니다.
문제 상황
Q1:
회사는 Application Load Balancer 뒤의 Amazon EC2 인스턴스에서 전자 상거래 애플리케이션을 실행합니다. 인스턴스는 여러 가용 영역에 걸쳐 Amazon EC2 Auto Scaling 그룹에서 실행됩니다. Auto Scaling 그룹은 CPU 사용률 메트릭을 기반으로 확장됩니다. 전자 상거래 애플리케이션은 대규모 EC2 인스턴스에서 호스팅되는 MySQL 8.0 데이터베이스에 트랜잭션 데이터를 저장합니다.
애플리케이션 로드가 증가하면 데이터베이스의 성능이 빠르게 저하됩니다. 애플리케이션은 쓰기 트랜잭션보다 더 많은 읽기 요청을 처리합니다. 이 회사는 고가용성을 유지하면서 예측할 수 없는 읽기 워크로드의 수요를 충족하도록 데이터베이스를 자동으로 확장하는 솔루션을 원합니다.
어떤 솔루션이 이러한 요구 사항을 충족합니까?
<small>A company runs an e-commerce application on Amazon EC2 instances behind an Application Load Balancer. The instances run in an Amazon EC2 Auto Scaling group across multiple Availability Zones. The Auto Scaling group scales based on CPU utilization metrics. The e-commerce application stores transactional data in a MySQL 8.0 database that is hosted on a large EC2 instance.
When the application load increases, the database performance degrades quickly. The application handles more read requests than write transactions. The company wants a solution that will automatically scale the database to meet the demand of unpredictable read workloads while maintaining high availability.
Which solution will meet these requirements?</small>
선택지
A. Amazon Redshift를 사용하여 리더 및 컴퓨팅 기능을 위해 단일 노드와 함께 구성합니다.
<small>Use Amazon Redshift with a single node for reader and compute capabilities.</small>
B. 단일 AZ 배포와 함께 Amazon RDS를 사용합니다. 다른 가용 영역에 리더 인스턴스를 추가하도록 Amazon RDS를 구성합니다.
<small>Use Amazon RDS with a Single-AZ deployment. Configure Amazon RDS to add reader instances in a different Availability Zone.</small>
C. 다중 AZ 배포와 함께 Amazon Aurora를 사용합니다. Aurora 복제본을 사용하여 Aurora Auto Scaling을 구성합니다.
<small>Use Amazon Aurora with Multi-AZ deployment. Configure Aurora Auto Scaling with Aurora Replicas.</small>
D. EC2 스팟 인스턴스와 함께 Memcached용 Amazon ElastiCache를 사용합니다.
<small>Use Amazon ElastiCache for Memcached with EC2 Spot Instances.</small>
정답 및 해설
정답은 C입니다.
Amazon Aurora는 AWS에서 제공하는 고성능, 고가용성 관계형 데이터베이스 서비스입니다. 이 솔루션이 최적인 이유는 다음과 같습니다:
-
다중 AZ 배포: Aurora는 기본적으로 3개의 가용 영역에 6개의 데이터 복제본을 생성하여 고가용성을 보장합니다.
-
Aurora 복제본: 읽기 전용 복제본을 통해 읽기 워크로드를 분산시킬 수 있습니다. 이는 문제에서 언급된 "쓰기 트랜잭션보다 더 많은 읽기 요청"을 효과적으로 처리할 수 있게 해줍니다.
-
Aurora Auto Scaling: 읽기 워크로드에 따라 자동으로 Aurora 복제본의 수를 조정할 수 있습니다. 이는 "예측할 수 없는 읽기 워크로드의 수요를 충족하도록 데이터베이스를 자동으로 확장"하는 요구사항을 만족시킵니다.
-
MySQL 호환성: Aurora는 MySQL과 완벽하게 호환되므로, 기존 MySQL 8.0 데이터베이스에서 쉽게 마이그레이션할 수 있습니다.
-
성능: Aurora는 RDS MySQL보다 최대 5배 향상된 성능을 제공합니다.
오답 설명
A. Amazon Redshift: 데이터 웨어하우징에 적합하지만, 트랜잭션 처리에는 적합하지 않습니다. 또한 단일 노드 구성은 고가용성 요구사항을 충족하지 못합니다.
B. Amazon RDS 단일 AZ: 고가용성 요구사항을 충족하지 못합니다. 또한, 자동 스케일링 기능이 Aurora만큼 강력하지 않습니다.
D. ElastiCache for Memcached: 캐싱 솔루션으로 적합하지만, 주 데이터베이스로 사용하기에는 적합하지 않습니다. 또한 EC2 스팟 인스턴스는 언제든 중단될 수 있어 고가용성 요구사항을 충족하지 못합니다.
결론
이 문제는 AWS의 데이터베이스 서비스 중 Amazon Aurora의 강점을 잘 보여줍니다. Aurora는 고성능, 고가용성, 자동 스케일링 기능을 제공하면서도 MySQL과의 호환성을 유지하여 기존 애플리케이션의 마이그레이션을 용이하게 합니다. 전자상거래와 같이 읽기 요청이 많은 워크로드에 특히 적합한 솔루션입니다.
댓글
댓글 쓰기