쿠키 기본 설정 선택

당사는 사이트와 서비스를 제공하는 데 필요한 필수 쿠키 및 유사한 도구를 사용합니다. 고객이 사이트를 어떻게 사용하는지 파악하고 개선할 수 있도록 성능 쿠키를 사용해 익명의 통계를 수집합니다. 필수 쿠키는 비활성화할 수 없지만 '사용자 지정' 또는 ‘거부’를 클릭하여 성능 쿠키를 거부할 수 있습니다.

사용자가 동의하는 경우 AWS와 승인된 제3자도 쿠키를 사용하여 유용한 사이트 기능을 제공하고, 사용자의 기본 설정을 기억하고, 관련 광고를 비롯한 관련 콘텐츠를 표시합니다. 필수가 아닌 모든 쿠키를 수락하거나 거부하려면 ‘수락’ 또는 ‘거부’를 클릭하세요. 더 자세한 내용을 선택하려면 ‘사용자 정의’를 클릭하세요.

Amazon SQS 기반 크기 조정 구성

포커스 모드
Amazon SQS 기반 크기 조정 구성 - Amazon EC2 Auto Scaling

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

다음 절차에서는 Amazon SQS를 기반으로 자동 조정을 구성하는 방법을 설명합니다. CloudWatch 사용자 지정 지표를 생성하는 방법,를 사용하여 대상 추적 정책을 설정하는 방법 AWS CLI, 구성을 테스트하는 방법을 알아봅니다.

시작하기 전에 AWS CLI 를 설치하고 구성했는지 확인합니다. 또한 사용할 Amazon SQS 대기열이 있어야 합니다. 다음 작업에서는 대기열(표준 또는 FIFO), Auto Scaling 그룹 및 대기열을 사용하는 애플리케이션을 실행하는 EC2 인스턴스가 이미 있다고 가정합니다.

Amazon SQS에 대한 자세한 설명은 Amazon Simple Queue Service 개발자 안내서를 참조하세요.

1단계: CloudWatch 사용자 지정 지표 생성

사용자 지정 지표는 지표 이름과 선택한 네임스페이스를 사용하여 정의됩니다. 사용자 지정 지표를 위한 네임스페이스는 AWS/로 시작할 수 없습니다. 사용자 지정 지표 게시에 대한 자세한 설명은 Amazon CloudWatch 사용자 가이드사용자 지정 지표 게시 주제를 참조하세요.

다음 절차에 따라 AWS 먼저 계정에서 정보를 읽어 사용자 지정 지표를 생성합니다. 그런 다음, 앞 섹션 에서 권장한 인스턴스당 백로그 지표를 계산합니다. 마지막으로 이 수치를 1분 단위로 CloudWatch에 게시합니다. 가능하면 시스템 로드 변화에 빠르게 대응할 수 있도록 1분 단위로 지표를 조정하는 것이 좋습니다.

CloudWatch 사용자 지정 지표(AWS CLI)를 생성하려면
  1. SQS get-queue-attributes 명령을 사용하여 대기열에서 대기 중인 메시지 수(ApproximateNumberOfMessages)를 확인합니다.

    aws sqs get-queue-attributes --queue-url https://sqs.region.amazonaws.com/123456789/MyQueue \ --attribute-names ApproximateNumberOfMessages
  2. describe-auto-scaling-groups 명령을 사용하여 그룹의 실행 용량을 가져올 수 있습니다. 이 용량은 수명 주기 상태가 InService인 인스턴스 수입니다. 이 명령은 Auto Scaling 그룹의 인스턴스와 해당 수명 주기 상태를 반환합니다.

    aws autoscaling describe-auto-scaling-groups --auto-scaling-group-names my-asg
  3. 대기열에서 검색할 수 있는 대략적인 메시지 수를 그룹의 실행 용량으로 나누어 인스턴스당 백로그를 계산합니다.

  4. 1분마다 실행되는 스크립트를 만들어 인스턴스당 백로그 값을 검색하고 이를 CloudWatch 사용자 지정 지표에 게시합니다. 사용자 지정 지표를 게시할 때 지표의 이름, 네임스페이스, 단위, 값 및 0개 이상의 차원을 지정합니다. 차원은 차원 이름과 차원 값으로 구성됩니다.

    사용자 지정 지표를 게시하려면 이탤릭체로 표시된 자리 표시자 값을 원하는 지표 이름, 지표의 값, 네임스페이스("AWS"로 시작하지 않는 한) 및 차원(옵션)으로 바꾼 다음 다음 put-metric-data 명령을 실행합니다.

    aws cloudwatch put-metric-data --metric-name MyBacklogPerInstance --namespace MyNamespace \ --unit None --value 20 --dimensions MyOptionalMetricDimensionName=MyOptionalMetricDimensionValue

애플리케이션에서 해당 지표를 생성하면 데이터가 CloudWatch로 전송됩니다. 이 지표는 CloudWatch 콘솔에 표시됩니다. 에 로그인 AWS Management Console 하고 CloudWatch 페이지로 이동하여 액세스할 수 있습니다. 그런 다음 지표 페이지로 이동하거나 검색 상자에서 검색하여 지표를 볼 수 있습니다. 자세한 설명은 Amazon CloudWatch 사용자 가이드사용 가능한 지표 보기를 참조하세요.

2단계: 대상 추적 조정 정책 생성

이제 생성한 지표를 대상 추적 스케일링 정책에 추가할 수 있습니다.

대상 추적 조정 정책(AWS CLI)을 생성하려면
  1. 다음 cat 명령을 사용하여 홈 디렉터리에 config.json라는 명칭의 JSON 파일에 조정 정책에 대한 목표값을 저장하고 사용자 지정 지표 사양을 지정합니다. user input placeholder를 사용자의 정보로 바꿉니다. TargetValue에, 인스턴스당 허용 백로그 지표를 계산하여 입력합니다. 이 값을 계산하려면 이전 섹션에서 설명한 대로 보통 지연 시간 값을 확인하여, 이 값을 메시지를 처리하는 데 걸리는 평균 시간으로 나눕니다.

    1단계에서 만든 지표에 대해 어떤 차원도 지정하지 않았다면 사용자 지정 지표 사양에 어떤 차원도 포함하지 마세요.

    $ cat ~/config.json { "TargetValue":100, "CustomizedMetricSpecification":{ "MetricName":"MyBacklogPerInstance", "Namespace":"MyNamespace", "Dimensions":[ { "Name":"MyOptionalMetricDimensionName", "Value":"MyOptionalMetricDimensionValue" } ], "Statistic":"Average", "Unit":"None" } }
  2. put-scaling-policy 명령과 이전 단계에서 만든 config.json 파일을 사용하여 조정 정책을 생성합니다.

    aws autoscaling put-scaling-policy --policy-name sqs100-target-tracking-scaling-policy \ --auto-scaling-group-name my-asg --policy-type TargetTrackingScaling \ --target-tracking-configuration file://~/config.json

    이 정책은 스케일 아웃과 축소에 대해 한 개씩 두 개의 경보를 생성합니다. 또한 CloudWatch에 등록된 정책의 Amazon 리소스 이름(ARN)을 반환합니다. CloudWatch는 지표 임계값이 위반될 때마다 이 이름을 사용하여 조정 기능을 호출합니다.

3단계: 조정 정책 테스트

설정을 마친 후, 조정 정책이 작동하는지 확인합니다. SQS 대기열의 메시지 수를 늘린 다음 Auto Scaling 그룹에서 추가 EC2 인스턴스를 시작했는지 확인하여 테스트할 수 있습니다. 또한 SQS 대기열의 메시지 수를 줄인 다음 Auto Scaling 그룹에서 EC2 인스턴스를 해지했는지 확인하여 테스트할 수 있습니다.

스케일 아웃 기능을 테스트하려면
  1. 대기열에 메시지를 추가하려면 Amazon SQS 표준 대기열 생성 및 메시지 전송 또는 Amazon SQS FIFO 대기열 생성 및 메시지 전송의 단계를 따릅니다. 인스턴스당 백로그 지표가 목표값을 초과하도록 대기열의 메시지 수를 늘려야 합니다.

    변경 사항에 따라 경보를 호출하기까지 몇 분 정도 걸릴 수 있습니다.

  2. describe-auto-scaling-groups 명령을 사용하여 그룹에서 인스턴스를 시작했는지 확인합니다.

    aws autoscaling describe-auto-scaling-groups --auto-scaling-group-name my-asg
스케일 인 기능을 테스트하려면
  1. 대기열에서 메시지를 삭제하려면 메시지 받기 및 삭제(콘솔)의 단계를 따릅니다. 인스턴스당 백로그 지표가 목표값 미만이 되도록 대기열의 메시지 수를 줄여야 합니다.

    변경 사항에 따라 경보를 호출하기까지 몇 분 정도 걸릴 수 있습니다.

  2. describe-auto-scaling-groups 명령을 사용하여 그룹에서 인스턴스를 해지했는지 확인합니다.

    aws autoscaling describe-auto-scaling-groups --auto-scaling-group-name my-asg
프라이버시사이트 이용 약관쿠키 기본 설정
© 2025, Amazon Web Services, Inc. 또는 계열사. All rights reserved.