Amazon EC2 Auto Scaling을 위한 Amazon SNS 알림 옵션 - Amazon EC2 Auto Scaling

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

Amazon EC2 Auto Scaling을 위한 Amazon SNS 알림 옵션

애플리케이션에 영향을 미치는 중요한 이벤트를 알리도록 Auto Scaling 그룹을 구성할 수 있습니다. 알림을 사용하면 폴링을 제거할 수도 있으며 폴링으로 인해 가끔 발생하는 RequestLimitExceeded 오류가 발생하지 않습니다.

Amazon EC2 Auto Scaling에 대한 알림을 수신하는 방법은 두 가지가 있습니다.

  • Amazon 단순 알림 서비스 — Amazon SNS는 Auto Scaling 그룹이 인스턴스를 시작하거나 종료할 때 사용자에게 알릴 수 있습니다. Amazon SNS 알림을 켜거나 끌 수만 있습니다. 자세한 설명은 아마존 SNS 및 아마존 EC2 Auto Scaling 섹션을 참조하세요.

  • Amazon EventBridge — 지정된 기준에 부합하고 Amazon SNS를 비롯한 다양한 대상으로 전송되는 고급 이벤트 기반 알림을 EventBridge 제공합니다. EventBridge 또한 보다 정확한 모니터링을 위해 더 넓은 범위의 Auto Scaling 이벤트를 모니터링할 수 있습니다. 자세한 설명은 Auto Scaling 이벤트를 처리하는 EventBridge 데 사용합니다. 섹션을 참조하세요.

Amazon SNS EventBridge, Amazon SQS와 같은 수명 주기 후크 및 서비스를 사용하여 시작 또는 종료 중에 인스턴스가 보류 상태에 들어갈 때 사용자 지정 작업을 수행할 수도 있습니다. 또한 수명 주기 후크는 Amazon EC2 Auto Scaling에서 인스턴스를 그룹에 추가하기 전에 새 인스턴스가 사용자 데이터에 지정된 스크립트를 완료할 수 있는 추가 시간을 제공할 수 있습니다. 자세한 설명은 Amazon EC2 Auto Scaling 라이프사이클 후크 섹션을 참조하세요.

아마존 SNS 및 아마존 EC2 Auto Scaling

이 섹션에서는 Amazon SNS를 사용하여 Auto Scaling 그룹이 인스턴스를 시작하거나 종료하는 시기를 모니터링하는 방법을 보여줍니다.

예컨대, autoscaling: EC2_INSTANCE_TERMINATE 알림 타입을 사용하도록 Auto Scaling 그룹을 구성하면 Auto Scaling 그룹에서 인스턴스를 해지하고 이메일 알림을 보냅니다. 이 이메일에는 해지된 인스턴스의 세부 정보(예: 인스턴스 ID 및 인스턴스 해지 사유)가 포함됩니다.

Amazon EC2 Auto Scaling이 그룹에서 인스턴스를 추가하거나 제거하면 이러한 변경 사항에 대한 알림이 인스턴스당 하나의 알림과 함께 사용자에게 전송됩니다. 하지만 이러한 알림의 전송은 최선의 노력을 기울이는 것이며, 예를 들어 나중의 상태 확인이 실패하는 경우와 같이 초기 알림 이후에도 인스턴스가 여전히 실패할 수 있습니다. 따라서 Amazon EC2 Auto Scaling에서 처음에는 알림을 받더라도 나중에 인스턴스에 장애가 발생할 수 있습니다. 단, 인스턴스를 시작한 후 Amazon EC2 Auto Scaling이 첫 번째 상태 확인을 수행하기 전에 대기하는 시간을 구성할 수 있습니다. 자세한 설명은 Auto Scaling 그룹의 상태 확인 유예 기간 설정 섹션을 참조하세요.

Amazon SNS 전반에 대한 자세한 내용은 Amazon 단순 알림 서비스 개발자 안내서를 참조하십시오.

SNS 알림

Amazon EC2 Auto Scaling은 다음과 같은 이벤트가 발생하는 경우, Amazon SNS 알림을 보낼 수 있도록 지원합니다.

이벤트 설명

autoscaling:EC2_INSTANCE_LAUNCH

인스턴스 출범 성공

autoscaling:EC2_INSTANCE_LAUNCH_ERROR

인스턴스 출범 실패

autoscaling:EC2_INSTANCE_TERMINATE

인스턴스 해지 성공

autoscaling:EC2_INSTANCE_TERMINATE_ERROR

인스턴스 해지 실패

메시지에 포함되는 정보는 다음과 같습니다.

  • Event — 이벤트입니다.

  • AccountId — Amazon Web Services 계정 ID입니다.

  • AutoScalingGroupName — Auto Scaling 그룹의 이름입니다.

  • AutoScalingGroupARN — Auto Scaling 그룹의 ARN입니다.

  • EC2InstanceId — EC2 인스턴스의 ID입니다.

예:

Service: AWS Auto Scaling Time: 2016-09-30T19:00:36.414Z RequestId: 4e6156f4-a9e2-4bda-a7fd-33f2ae528958 Event: autoscaling:EC2_INSTANCE_LAUNCH AccountId: 123456789012 AutoScalingGroupName: my-asg AutoScalingGroupARN: arn:aws:autoscaling:region:123456789012:autoScalingGroup... ActivityId: 4e6156f4-a9e2-4bda-a7fd-33f2ae528958 Description: Launching a new EC2 instance: i-0598c7d356eba48d7 Cause: At 2016-09-30T18:59:38Z a user request update of AutoScalingGroup constraints to ... StartTime: 2016-09-30T19:00:04.445Z EndTime: 2016-09-30T19:00:36.414Z StatusCode: InProgress StatusMessage: Progress: 50 EC2InstanceId: i-0598c7d356eba48d7 Details: {"Subnet ID":"subnet-id","Availability Zone":"zone"} Origin: AutoScalingGroup Destination: EC2

Amazon EC2 Auto Scaling에 대한 Amazon SNS 알림 구성

Amazon SNS를 사용하여 이메일 알림을 전송하려면 먼저 주제를 생성한 다음 해당 주제에 이메일 주소를 구독해야 합니다.

Amazon SNS 주제 생성

SNS 주제는 논리적 액세스 지점으로 Auto Scaling 그룹에서 알림을 전송하는 데 사용하는 통신 채널입니다. 주제의 이름을 지정하여 주제를 생성합니다.

주제 이름을 생성할 때 이름은 다음 요건을 충족해야 합니다.

  • 1~256자 이내로 생성합니다.

  • 대문자 및 소문자 ASCII 문자, 숫자, 밑줄 또는 하이픈을 사용합니다.

자세한 설명은 Amazon Simple Notification Service 개발자 안내서에서 Amazon SNS 주제 생성을 참조하세요.

Amazon SNS 주제 구독

Auto Scaling 그룹에서 주제로 전송하는 알림을 받으려면 엔드포인트가 해당 주제를 구독해야 합니다. 이 절차에서 엔드포인트에 Amazon EC2 Auto Scaling의 알림을 받을 이메일 주소를 지정합니다.

자세한 설명은 Amazon Simple Notification Service 개발자 안내서에서 Amazon SNS 주제 구독을 참조하세요.

Amazon SNS 구독 확인

Amazon SNS는 이전 단계에서 지정한 이메일 주소로 확인 이메일을 보냅니다.

다음 단계로 넘어가기 전에 AWS 알림의 이메일을 열어 구독 확인 링크를 선택합니다.

에서 승인 메시지를 받게 됩니다. AWS이제 Amazon SNS가 지정된 이메일 주소로 이메일 형식의 알림을 주고받을 수 있도록 구성됩니다.

알림을 보내도록 Auto Scaling 그룹 구성

인스턴스 출범 또는 해지 등과 같은 조정 이벤트가 발생하는 경우, Amazon SNS에 알림을 보내도록 Auto Scaling 그룹을 구성할 수 있습니다. Amazon SNS는 지정한 이메일 주소로 인스턴스에 대한 정보가 들어 있는 알림을 보냅니다.

Auto Scaling 그룹에 대한 Amazon SNS 알림을 구성하려면(콘솔)
  1. https://console.aws.amazon.com/ec2/에서 Amazon EC2 콘솔을 열고 탐색 창에서 Auto Scaling 그룹(Auto Scaling Groups)을 선택합니다.

  2. Auto Scaling 그룹 옆의 확인란을 선택합니다.

    페이지 아래쪽에 분할 창이 열리고 선택한 그룹에 대한 정보가 표시됩니다.

  3. Activity(활동) 탭에서 Activity notifications(활동 알림), Create notification(알림 생성)을 선택합니다.

  4. Create notifications(알림 생성) 창에서 다음을 수행하십시오:

    1. SNS Topic(SNS 주제)에서 SNS 주제를 선택합니다.

    2. Event types(이벤트 타입)에서 알림을 보낼 이벤트를 선택합니다.

    3. Create(생성)를 선택합니다.

Auto Scaling 그룹에 대한 Amazon SNS 알림을 구성하려면(AWS CLI)

다음 put-notification-configuration 명령을 사용합니다.

aws autoscaling put-notification-configuration --auto-scaling-group-name my-asg --topic-arn arn --notification-types "autoscaling:EC2_INSTANCE_LAUNCH" "autoscaling:EC2_INSTANCE_TERMINATE"

알림 테스트

시작 이벤트에 대해 알림이 발생하도록 하려면 Auto Scaling 그룹의 용량을 1만큼 늘려 Auto Scaling 그룹을 업데이트합니다. 인스턴스 출범 후 몇 분 내에 알림을 받게 됩니다.

원하는 용량을 변경하려면(콘솔)
  1. https://console.aws.amazon.com/ec2/에서 Amazon EC2 콘솔을 열고 탐색 창에서 Auto Scaling 그룹(Auto Scaling Groups)을 선택합니다.

  2. Auto Scaling 그룹 옆의 확인란을 선택합니다.

    Auto Scaling 그룹 페이지 아래쪽에 분할 창이 열리고 선택한 그룹에 대한 정보가 표시됩니다.

  3. 세부 정보(Details) 탭에서 그룹 세부 정보(Group details), 편집(Edit)을 선택합니다.

  4. 원하는 용량에 대해 현재 값을 1씩 늘립니다. 이 값이 최대 용량을 초과하는 경우, 최대 용량 값도 1씩 늘려야 합니다.

  5. Update(업데이트)를 선택합니다.

  6. 몇 분 후 이벤트 알림이 전송됩니다. 이 테스트에서 시작한 인스턴스가 추가로 필요하지 않으면 원하는 용량을 1만큼 줄일 수 있습니다. 몇 분 후 이벤트 알림이 전송됩니다.

알림 구성 삭제

더 이상 사용되지 않는 경우, Amazon EC2 Auto Scaling 알림 구성을 삭제할 수 있습니다.

Amazon EC2 Auto Scaling 알림 구성을 삭제하려면(콘솔)
  1. https://console.aws.amazon.com/ec2/에서 Amazon EC2 콘솔을 열고 탐색 창에서 Auto Scaling 그룹(Auto Scaling Groups)을 선택합니다.

  2. Auto Scaling 그룹을 선택합니다.

  3. Activity(활동) 탭에서 삭제할 알림 옆의 확인란을 선택한 다음 Actions(작업),Delete(삭제)를 차례로 선택합니다.

Amazon EC2 Auto Scaling 알림 구성을 삭제하려면(AWS CLI)

다음 delete-notification-configuration 명령을 사용합니다.

aws autoscaling delete-notification-configuration --auto-scaling-group-name my-asg --topic-arn arn

Amazon SNS 주제 및 Auto Scaling 그룹과 연결된 모든 구독을 삭제하는 방법에 대한 자세한 설명은 Amazon Simple Nocation Service 개발자 가이드Amazon SNS 구독 및 주제 삭제를 참조하세요.

암호화된 Amazon SNS 주제에 대한 키 정책

지정한 Amazon SNS 주제는 AWS Key Management Service로 생성된 고객 관리 키로 암호화될 수 있습니다. Amazon EC2 Auto Scaling에 암호화된 주제에 게시할 수 있는 권한을 부여하려면 먼저 KMS 키를 만든 다음 KMS 키의 정책에 다음 구문을 추가해야 합니다. 예 ARN을 키에 대한 액세스가 허용되는 적절한 서비스 연결 역할의 ARN으로 바꿉니다. 자세한 설명은 Amazon Simple Storage Service 개발자 가이드AWS KMS 권한 구성을 참조하십시오.

이 예제에서 정책 설명은 서비스 연결 역할에 고객 관리 키를 사용할 수 있는 AWSServiceRoleForAutoScaling권한이라는 권한을 부여합니다. Amazon EC2 Auto Scaling 서비스 연결 역할에 대한 자세한 설명은 Amazon EC2 Auto Scaling의 서비스 연결 역할을(를) 참조하세요.

{ "Sid": "Allow service-linked role use of the customer managed key", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::123456789012:role/aws-service-role/autoscaling.amazonaws.com/AWSServiceRoleForAutoScaling" }, "Action": [ "kms:GenerateDataKey*", "kms:Decrypt" ], "Resource": "*" }

aws:SourceArnaws:SourceAccount 조건 키는 Amazon EC2 Auto Scaling이 암호화된 주제에 게시할 수 있도록 허용하는 키 정책에서 지원되지 않습니다.