Q8. 분산 애플리케이션의 탄력적 현대화 전략
AWS 자격증을 준비하는 여러분, 안녕하세요. 오늘은 분산 애플리케이션을 AWS로 마이그레이션하면서 탄력성과 확장성을 극대화하는 방법에 대해 알아보겠습니다. 이는 실제 기업들이 자주 마주치는 과제이며, AWS 솔루션 아키텍트로서 꼭 알아야 할 핵심 개념들을 포함하고 있습니다.
문제 상황
Q8:
회사에서 분산 애플리케이션을 AWS로 마이그레이션하고 있습니다. 애플리케이션은 다양한 워크로드를 처리합니다. 레거시 플랫폼은 여러 컴퓨팅 노드에서 작업을 조정하는 기본 서버로 구성됩니다. 이 회사는 탄력성과 확장성을 극대화하는 솔루션으로 애플리케이션을 현대화하려고 합니다.
솔루션 설계자는 이러한 요구 사항을 충족하기 위해 아키텍처를 어떻게 설계해야 합니까?
<small>A company is migrating a distributed application to AWS. The application processes various workloads. The legacy platform consists of a primary server that coordinates jobs across multiple compute nodes. The company wants to modernize the application with a solution that maximizes elasticity and scalability.
How should a solutions architect design the architecture to meet these requirements?</small>
선택지
A. 작업의 대상으로 Amazon Simple Queue Service(Amazon SQS) 대기열을 구성합니다. Auto Scaling 그룹에서 관리되는 Amazon EC2 인스턴스로 컴퓨팅 노드를 구현합니다. 예약된 조정을 사용하도록 EC2 Auto Scaling을 구성합니다.
<small>Configure an Amazon Simple Queue Service (Amazon SQS) queue as the destination for jobs. Implement the compute nodes as Amazon EC2 instances that are managed in an Auto Scaling group. Configure EC2 Auto Scaling to use scheduled scaling.</small>
B. 작업의 대상으로 Amazon Simple Queue Service(Amazon SQS) 대기열을 구성합니다. Auto Scaling 그룹에서 관리되는 Amazon EC2 인스턴스로 컴퓨팅 노드를 구현합니다. 대기열 크기에 따라 EC2 Auto Scaling을 구성합니다.
<small>Configure an Amazon Simple Queue Service (Amazon SQS) queue as the destination for jobs. Implement the compute nodes as Amazon EC2 instances that are managed in an Auto Scaling group. Configure EC2 Auto Scaling based on the size of the queue.</small>
C. Auto Scaling 그룹에서 관리되는 Amazon EC2 인스턴스로 기본 서버와 컴퓨팅 노드를 구현합니다. 작업의 대상으로 AWS CloudTrail을 구성합니다. 기본 서버의 부하를 기반으로 EC2 Auto Scaling을 구성합니다.
<small>Implement the primary server and compute nodes as Amazon EC2 instances that are managed in Auto Scaling groups. Configure AWS CloudTrail as the destination for jobs. Configure EC2 Auto Scaling based on the load of the primary server.</small>
D. Auto Scaling 그룹에서 관리되는 Amazon EC2 인스턴스로 기본 서버와 컴퓨팅 노드를 구현합니다. 작업의 대상으로 Amazon EventBridge(Amazon CloudWatch Events)를 구성합니다. 컴퓨팅 노드의 부하를 기반으로 EC2 Auto Scaling을 구성합니다.
<small>Implement the primary server and compute nodes as Amazon EC2 instances that are managed in Auto Scaling groups. Configure Amazon EventBridge (Amazon CloudWatch Events) as the destination for jobs. Configure EC2 Auto Scaling based on the load of the compute nodes.</small>
정답 및 해설
정답은 B입니다.
이 솔루션은 다음과 같은 이유로 탄력성과 확장성을 극대화합니다:
-
Amazon SQS 사용: SQS는 완전 관리형 메시지 대기열 서비스로, 애플리케이션 구성 요소를 분리하고 작업을 비동기적으로 처리할 수 있게 해줍니다. 이는 시스템의 복원력을 높이고 갑작스러운 트래픽 증가에도 대응할 수 있게 합니다.
-
EC2 Auto Scaling 그룹: 컴퓨팅 노드를 Auto Scaling 그룹으로 관리함으로써 워크로드에 따라 자동으로 EC2 인스턴스 수를 조정할 수 있습니다.
-
대기열 크기 기반 스케일링: SQS 대기열의 크기에 따라 EC2 Auto Scaling을 구성하면 실제 작업량에 따라 정확하게 리소스를 조정할 수 있습니다. 이는 워크로드 변동에 대한 즉각적이고 정확한 대응을 가능하게 합니다.
이 아키텍처는 기본 서버의 단일 실패 지점을 제거하고, 작업 처리의 탄력성을 높이며, 필요에 따라 자동으로 확장 및 축소할 수 있는 능력을 제공합니다.
오답 설명
A. 예약된 조정은 예측 가능한 워크로드 패턴에는 유용하지만, 다양한 워크로드를 처리하는 이 시나리오에서는 실시간 수요 변화에 대응하기 어렵습니다.
C. AWS CloudTrail은 AWS 계정의 거버넌스, 규정 준수, 운영 감사, 위험 감사를 위한 서비스로, 작업 대상으로 적합하지 않습니다. 또한, 기본 서버의 부하만을 기반으로 한 스케일링은 전체 시스템의 실제 작업량을 정확히 반영하지 못할 수 있습니다.
D. Amazon EventBridge는 이벤트 기반 아키텍처에 유용하지만, 지속적인 작업 처리에는 SQS가 더 적합합니다. 컴퓨팅 노드의 부하만을 기반으로 한 스케일링은 대기 중인 작업의 실제 양을 반영하지 못할 수 있습니다.
결론
이 문제는 AWS에서 분산 애플리케이션을 설계할 때 고려해야 할 중요한 개념들을 다루고 있습니다. SQS를 사용한 작업 대기열, EC2 Auto Scaling 그룹을 통한 컴퓨팅 리소스 관리, 그리고 실제 작업량에 기반한 동적 스케일링은 현대적이고 탄력적인 클라우드 아키텍처의 핵심 요소입니다. 이러한 접근 방식은 시스템의 복원력을 높이고, 비용을 최적화하며, 변화하는 워크로드에 효과적으로 대응할 수 있게 해줍니다.
댓글
댓글 쓰기