SQS 기반 ASG 조합
SQS 기반 Auto Scaling은 Amazon EC2 Auto Scaling Group이 SQS 대기열의 메시지 수(또는 부하)를 기준으로 EC2 인스턴스 수를 동적으로 조절하는 아키텍처이다.
- 메시지 수 증가 → EC2 인스턴스 스케일 아웃
- 메시지 수 감소 → EC2 인스턴스 스케일 인
이 구조는 파일 처리, 이미지 변환, 백그라운드 작업 처리 등 비동기 대기열 기반 애플리케이션에 적합하다.
EventBridge(CloudWatch Events) 주요 지표
Metric | 설명 | 활용도 |
ApproximateNumberOfMessagesVisible | 처리 대기 중인 메시지 수 | ✅ 주요 확장 기준 |
ApproximateNumberOfMessagesNotVisible | 처리 중(읽혔지만 삭제되지 않음) 메시지 수 | 참고용 |
MessagesPerInstance (사용자 정의) | 메시지 수 ÷ InService 인스턴스 수 | ✅ 실무 권장 방식 |
ApproximateAgeOfOldestMessage | 가장 오래된 메시지의 대기 시간 | 지연 상태 진단에 유용 |
예제 문제
한 회사가 고객의 판매 데이터를 분석합니다. 고객이 회사의 Amazon S3 버킷 중 하나에 파일을 업로드하면 Amazon 리소스 이름(ARN) 객체가 포함된 Amazon Simple Queue Service(Amazon SQS) 대기열에 메시지가 게시됩니다. Amazon EC2 인스턴스에서 실행되는 애플리케이션이 대기열을 폴링하고 메시지를 처리합니다. 처리 시간은 파일 크기에 따라 달라집니다. 고객들은 파일 처리 지연을 보고하고 있습니다. SysOps 관리자는 첫 번째 단계로 Amazon EC2 Auto Scaling을 구성하기로 결정했습니다. SysOps 관리자는 기존 EC2 인스턴스를 기반으로 Amazon Machine Image(AMI)를 생성합니다. 또한 SysOps 관리자는 AMI를 참조하는 시작 템플릿도 생성합니다.
SysOps 관리자는 응답 시간을 개선하기 위해 Auto Scaling 정책을 어떻게 구성해야 할까요?
- A. 시작 템플릿에 여러 인스턴스 크기를 추가합니다. ApproximateNumberOfMessagesVisible 메트릭을 기반으로 자동 크기 조정 정책을 생성하여 대기열의 메시지 수에 따라 인스턴스 크기를 선택합니다.
- B. 대기열에 있는 지연된 메시지 수에 따라 인스턴스 수를 조정하기 위해 ApproximateNumberOfMessagesDelayed 메트릭을 기반으로 자동 크기 조정 정책을 만듭니다.
- C. Auto Scaling 그룹의 ASGAverageCPUUtilization 메트릭과 GroupPendingInstances 메트릭을 기반으로 사용자 지정 메트릭을 생성합니다. 메트릭을 계산하고 1분마다 Amazon CloudWatch에 게시하도록 애플리케이션을 수정합니다. 이 메트릭을 기반으로 인스턴스 수를 확장하는 Auto Scaling 정책을 생성합니다.
- D. ApproximateNumberOfMessagesVisible 메트릭과 Auto Scaling 그룹의 InService 상태 인스턴스 수를 기반으로 사용자 지정 메트릭을 생성합니다. 메트릭을 계산하고 1분마다 Amazon CloudWatch에 게시하도록 애플리케이션을 수정합니다. 이 메트릭을 기반으로 인스턴스 수를 확장하는 Auto Scaling 정책을 생성합니다.
답 : D
이유 : 사용자 지정 메트릭(ApproximateNumberOfMessagesVisible + InService 상태 인스턴스 수 계산) 값으로 단순 메시지 수가 아니라 인스턴스당 메시지 비율을 기반으로 상세한 스케일링을 수행할 수 있다.
A가 아닌 이유 : 인스턴스 크기를 수정하는 선택지인데, 비동기를 처리하기 위해서는 병렬로 처리하는 거싱 유리하므로 수직 스케일링(스케일업)이 아니라 수평 스케일링(스케일아웃)을 수행해야 한다.
B가 아닌 이유 : ApproximateNumberOfMessagesDelayed 의 경우 가시성 지연 시간에 의해 재처리되는 지연된 메시지 수를 의미한다. 즉, 해당 인스턴스에서 현재 재처리하는 메시지 수(부하의 척도)가 아니라는 것이다. 일반적인 스케일링은 ApproximateNumberOfMessagesVisible 메트릭을 사용한다.
'Certificate > AWS SOA-C02' 카테고리의 다른 글
[AWS] Route 53 Resolver Forwarding Rules(전달 규칙), 한 번에 이해하기 (0) | 2025.04.17 |
---|---|
[AWS] AWS Organization, SCP, AWS Control Tower, 한 눈에 비교하기 (0) | 2025.04.17 |
[AWS] S3 MFA Delete로 로그 파일 보호하기, 한 번에 이해하기 (0) | 2025.04.16 |
[AWS] AWS Config, EventBridge(CloudWatch Events), Auto Remediation 조합, 한 번에 이해하기 (0) | 2025.04.16 |
[AWS] VPC 피어링, 한 번에 이해하기 (0) | 2025.04.16 |