기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
Auto Scaling 그룹 조정 시 Amazon SNS 알림 수신
Amazon EC2 Auto Scaling이 Auto Scaling 그룹의 Amazon EC2 인스턴스를 시작 또는 종료할 때 알림을 받을 수 있습니다. Amazon Simple Notification Service(Amazon SNS)를 사용하여 알림을 관리합니다.
Amazon SNS는 구독 클라이언트 또는 엔드포인트로의 알림 전달 또는 전송을 조정하고 관리합니다. Amazon SNS는 HTTP 또는 HTTPS POST, 이메일(SMTP, 일반 텍스트 또는 JSON 형식) 또는 Amazon SQS 대기열에 게시된 메시지로 알림을 전달하는 기능을 포함하여 다양한 알림 옵션을 제공합니다. 자세한 내용은 Amazon Simple Notification Service 개발자 안내서를 참조하세요.
예를 들어, autoscaling:
EC2_INSTANCE_TERMINATE
알림 유형을 사용하도록 Auto Scaling 그룹을 구성하면 Auto Scaling 그룹에서 인스턴스를 종료하고 이메일 알림을 보냅니다. 이 이메일에는 종료된 인스턴스의 세부 정보(예: 인스턴스 ID 및 인스턴스 종료 사유)가 포함됩니다.
알림은 이벤트 중심 애플리케이션을 설계하는 데 유용합니다. 알림을 사용하여 리소스가 원하는 상태가 되었는지 확인하는 경우 폴링할 필요가 없으므로 때때로 폴링으로 인해 발생하는 RequestLimitExceeded
오류가 생기지 않습니다.
AWS에서는 알림을 보내는 데 사용할 수 있는 다양한 도구를 제공합니다. 또는 Amazon SNS를 사용하여 EventBridge Auto Scaling 그룹이 인스턴스를 시작하거나 종료할 때 알림을 보낼 수 있습니다. EventBridge에서 규칙은 알림을 받을 이벤트를 지정합니다. Amazon SNS에서 주제는 어떤 종류의 알림을 받을지 지정합니다. 를 EventBridge 사용하면 특정 이벤트를 대신 Lambda 함수를 트리거할지 여부를 결정할 수 있습니다. 자세한 정보는 Auto Scaling 이벤트 처리에 사용 EventBridge 섹션을 참조하세요.
목차
SNS 알림
Amazon EC2 Auto Scaling은 다음과 같은 이벤트가 발생하는 경우 Amazon SNS 알림을 보낼 수 있도록 지원합니다.
이벤트 | 설명 |
---|---|
|
인스턴스 시작 성공 |
|
인스턴스 시작 실패 |
|
인스턴스 종료 성공 |
|
인스턴스 종료 실패 |
메시지에 포함되는 정보는 다음과 같습니다.
-
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 알림을 구성하려면(콘솔)
https://console.aws.amazon.com/ec2/
에서 Amazon EC2 콘솔을 열고 탐색 창에서 오토 스케일링(Auto Scaling Groups)을 선택합니다. -
Auto Scaling 그룹 옆의 확인란을 선택합니다.
페이지 아래쪽에 분할 창이 열리고 선택한 그룹에 대한 정보가 표시됩니다.
-
Activity(활동) 탭에서 Activity notifications(활동 알림), Create notification(알림 생성)을 선택합니다.
-
Create notifications(알림 생성) 창에서 다음을 수행합니다.
-
SNS Topic(SNS 주제)에서 SNS 주제를 선택합니다.
-
Event types(이벤트 유형)에서 알림을 보낼 이벤트를 선택합니다.
-
Create(생성)를 선택합니다.
-
Auto Scaling 그룹에 대한 Amazon SNS 알림을 구성하려면(AWS CLI)
다음 put-notification-configuration 명령을 사용합니다.
aws autoscaling put-notification-configuration --auto-scaling-group-name
my-asg
--topic-arnarn
--notification-types "autoscaling:EC2_INSTANCE_LAUNCH" "autoscaling:EC2_INSTANCE_TERMINATE"
알림 테스트
시작 이벤트에 대해 알림이 발생하도록 하려면 Auto Scaling 그룹의 용량을 1만큼 늘려 Auto Scaling 그룹을 업데이트합니다. 인스턴스 시작 후 몇 분 내에 알림을 받게 됩니다.
원하는 용량을 변경하려면(콘솔)
https://console.aws.amazon.com/ec2/
에서 Amazon EC2 콘솔을 열고 탐색 창에서 오토 스케일링(Auto Scaling Groups)을 선택합니다. -
Auto Scaling 그룹 옆의 확인란을 선택합니다.
Auto Scaling 그룹 페이지 아래쪽에 분할 창이 열리고 선택한 그룹에 대한 정보가 표시됩니다.
-
세부 정보(Details) 탭에서 그룹 세부 정보(Group details), 편집(Edit)을 선택합니다.
-
원하는 용량에 대해 현재 값을 1씩 늘립니다. 이 값이 최대 용량을 초과하는 경우 최대 용량 값도 1씩 늘려야 합니다.
-
Update(업데이트)를 선택합니다.
-
몇 분 후 이벤트 알림이 전송됩니다. 이 테스트에서 시작한 인스턴스가 추가로 필요하지 않으면 원하는 용량을 1만큼 줄일 수 있습니다. 몇 분 후 이벤트 알림이 전송됩니다.
알림 구성 삭제
더 이상 사용되지 않는 경우 Amazon EC2 Auto Scaling 알림 구성을 삭제할 수 있습니다.
Amazon EC2 Auto Scaling 알림 구성을 삭제하려면(콘솔)
https://console.aws.amazon.com/ec2/
에서 Amazon EC2 콘솔을 열고 탐색 창에서 오토 스케일링(Auto Scaling Groups)을 선택합니다. -
Auto Scaling 그룹을 선택합니다.
-
Activity(활동) 탭에서 삭제할 알림 옆의 확인란을 선택한 다음 Actions(작업),Delete(삭제)를 차례로 선택합니다.
Amazon EC2 Auto Scaling 알림 구성을 삭제하려면(AWS CLI)
다음 delete-notification-configuration 명령을 사용합니다.
aws autoscaling delete-notification-configuration --auto-scaling-group-name
my-asg
--topic-arnarn
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 단순 알림 서비스 개발자 안내서의 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": "*" }
Amazon EC2 Auto Scaling이 암호화된 주제에 게시할 수 있도록 허용하는 키 정책에서는 aws:SourceArn
및 aws:SourceAccount
조건 키가 지원되지 않습니다.