Amazon을 기반으로 스케일링을 구성합니다. SQS - Amazon EC2 Auto Scaling

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

Amazon을 기반으로 스케일링을 구성합니다. SQS

이 섹션에서는 Amazon Amazon을 기반으로 규모 조정을 구성하는 방법을 설명합니다SQS.

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

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

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

CloudWatch 사용자 지정 지표를 만들려면 ()AWS CLI
  1. SQSget-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개 이상의 차원을 지정합니다. 차원은 차원 이름과 차원 값으로 구성됩니다.

    사용자 지정 지표를 게시하려면 자리 표시자 값을 다음으로 바꾸십시오.italics 선호하는 지표 이름, 지표 값, 네임스페이스 ("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. 이전 단계에서 생성한 config.json 파일과 함께 put-scaling-policy명령을 사용하여 조정 정책을 생성합니다.

    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

    이 정책은 스케일 아웃과 축소에 대해 한 개씩 두 개의 경보를 생성합니다. 또한 등록된 정책의 Amazon Resource Name (ARN) 을 반환하며 CloudWatch, 이 이름을 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