Amazon Elastic Compute Cloud(Amazon EC2) Auto Scaling 수명 주기 후크를 생성하려고 하면 확인 오류가 발생합니다. 오류 메시지는 "Unable to publish test message to notification target(알림 대상에 테스트 메시지를 게시할 수 없음)" 또는 "Please check your target and role configuration and try to put lifecycle hook again(대상 및 역할 구성을 확인하고 수명 주기 후크를 다시 넣어 보십시오.)"으로 표시됩니다. 이 오류를 해결하려면 어떻게 해야 하나요?
간략한 설명
Amazon Simple Queue Service(Amazon SQS)에 메시지를 게시하려면 수명 주기 후크의 AWS Identity and Access Management(IAM) 역할이 다음 조건에 부합해야 합니다.
- 인스턴스에 할당된 IAM 역할과 달라야 한다.
- AWS Key Management Service(AWS KMS) 키 정책에 키 사용자로 나열되어야 한다.
- Auto Scaling 서비스에 대한 신뢰 정책이 연결되어 있어야 한다.
- 특정 관리형 정책 작업을 포함해야 한다.
- Amazon EC2 Auto Scaling 그룹에 연결되어 있어야 한다.
- Amazon SQS에서 사용하는 암호화 키에 액세스할 수 있어야 한다.
해결 방법
1. 수명 주기 후크에 대해, 인스턴스에 할당된 IAM 역할과 다른 IAM 역할을 사용하고 있는지 확인합니다.
참고: IAM 역할을 생성하거나 필요한 모든 권한을 가진 다음 AWS 관리형 역할을 사용할 수 있습니다.
arn:aws:iam::aws:policy/service-role/AutoScalingNotificationAccessRole
2. 역할이 KMS 키 정책에 키 사용자로 포함되어 있는지 확인합니다. 이렇게 하려면 다음을 수행합니다.
AWS KMS 콘솔을 엽니다.
KMS 키를 선택합니다.
역할이 [키 정책] 탭의 [키 사용자] 아래에 나열되어 있는지 확인합니다. 역할이 목록에 없으면 해당 역할을 검색한 다음 [추가]를 선택합니다.
3. 수명 주기 후크의 IAM 역할에 Amazon EC2 Auto Scaling 서비스에 대한 신뢰 정책이 연결되어 있는지 확인합니다.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": "autoscaling.amazonaws.com"
},
"Action": "sts:AssumeRole"
}
]
}
4. 수명 주기 후크의 IAM 역할에 대한 관리형 정책에 다음 작업이 포함되어 있는지 확인합니다.
SQS 메시지의 경우sqs:SendMessage
sqs:GetQueueUrl
SNS 알림의 경우
sns:Publish
5. AWS CLI(AWS 명령줄 인터페이스)에서 aws autoscaling put-lifecycle-hook 명령을 실행합니다.
6. 아래 명령을 실행하여 수명 주기 후크가 Auto Scaling 그룹에 연결되어 있는지 확인합니다.
aws autoscaling describe-lifecycle-hooks --auto-scaling-group-name "ExampleSQSQueueName"
참고: AWS CLI 명령을 실행할 때 오류가 발생하는 경우 최신 버전의 AWS CLI를 사용하고 있는지 확인하세요.
관련 정보
Amazon EC2 Auto Scaling 수명 주기 후크