Amazon Simple Storage Service(Amazon S3)로 Amazon Elastic Compute Cloud(Amazon EC2) 데이터 피드를 구성했습니다. 데이터 피드 관련 문제를 해결하고 싶습니다.
간략한 설명
Amazon EC2 스팟 인스턴스의 요금을 확인하려면 스팟 인스턴스의 사용량 및 요금을 보고하는 데이터 피드를 구성하십시오. 데이터 피드를 구독하면 Amazon EC2가 이 데이터를 S3 버킷에 저장합니다. 데이터 피드에 문제가 있는 경우 문제에 따라 다음 문제 해결 단계를 완료하십시오.
해결 방법
참고: AWS CLI 명령을 실행할 때 오류가 발생하는 경우 최신 버전의 AWS CLI를 사용하고 있는지 확인하십시오.
AWS KMS 암호화
S3 버킷은 고객 관리형 AWS Key Management Service(AWS KMS) 키로 암호화될 수 있습니다. 이 경우 AWS KMS 키 정책의 권한 내에서 delivery.logs.amazonaws.com에 대한 서비스를 허용해야 합니다. 이렇게 하면 AWS KMS가 암호화된 S3 버킷에 데이터 피드를 전송할 수 있습니다.
키 정책에 다음 권한을 포함하십시오.
{
"Sid": "Allow Logs Delivery to use the key",
"Effect": "Allow",
"Principal": {
"Service": [
"delivery.logs.amazonaws.com"
]
},
"Action": [
"kms:Encrypt",
"kms:Decrypt",
"kms:ReEncrypt*",
"kms:GenerateDataKey*",
"kms:DescribeKey"
],
"Resource": "*"
}
자세한 내용은 Amazon S3 버킷 서버 측 암호화를 참조하십시오.
ACL 권한
데이터 피드를 구독하면 S3 버킷에 대한 액세스 제어 목록(ACL) 권한이 계정에 부여되어 데이터 피드를 수신할 수 있습니다. 이러한 권한이 없으면 데이터 피드가 버킷으로의 전송을 중지합니다. 계정에 다음 권한이 여전히 존재하는지 확인하십시오.
- Amazon S3 콘솔을 엽니다.
- 탐색 창에서 버킷을 선택한 다음 데이터 피드와 연결된 S3 버킷을 선택합니다.
- 권한 탭을 선택합니다.
- **액세스 제어 목록(ACL)**에서 피부여자로 추가되고 데이터 피드를 구독한 외부 계정을 찾습니다. 이 계정에 S3 버킷에 대한 FULL_CONTROL 권한이 있는지 확인합니다. AWS 계정 awslogsdelivery에 대한 ACL 권한이 계정의 정식 ID로 추가됩니다.
c4c1ede66af53448b93c283ce9448c4ba468c9432aa01d700d3878632f77d2d0
계정에 FULL_CONTROL이 없는 경우 데이터 피드를 다시 구독하여 필요한 ACL 권한을 받아야 합니다. 그러려면 create-spot-datafeed-subscription AWS CLI 명령을 실행합니다.
참고: 데이터 피드 구독을 제거해도 연결된 ACL 권한은 자동으로 삭제되지 않습니다. 데이터 피드를 삭제하려면 Amazon S3 콘솔(1~4단계)에서 권한에 액세스하여 수동으로 삭제해야 합니다.
데이터 피드 제한
데이터 피드는 AWS 계정당 하나만 만들 수 있습니다. 데이터 피드를 다른 S3 버킷으로 전송하려면 다른 S3 버킷에서 create-spot-datafeed-subscription AWS CLI 명령을 다시 실행합니다.
EC2 스팟 인스턴스 런타임
EC2 스팟 인스턴스가 실행되는 동안에만 데이터 피드를 수신합니다. 예를 들어 3시간 동안 스팟 인스턴스를 중지하면 데이터 피드도 3시간 동안 데이터 전송을 중지합니다. 스팟 인스턴스가 다시 시작되면 데이터 피드가 자동으로 재개됩니다.
S3 객체 소유권
데이터 피드의 S3 버킷에 대한 객체 소유권 설정은 버킷 소유자 선호 또는 객체 라이터여야 합니다. 이러한 설정은 S3 버킷에 대한 ACL 권한을 허용합니다. S3 버킷에 대한 이러한 소유권 설정이 없는 경우 S3 버킷에서 데이터 피드를 구성할 수 없습니다. 이 경우 다음과 같은 오류가 표시됩니다.
"An error occurred (InaccessibleStorageLocation) when calling the CreateSpotDatafeedSubscription operation: The specified bucket does not exist or does not have enough permissions."
자세한 내용은 객체 소유권 제어 및 버킷의 ACL 사용 중지를 참조하십시오.
추가 고려 사항
데이터 피드를 구성할 때는 다음 사항을 염두에 두십시오.
- 데이터 피드를 활성화하는 데 드는 추가 비용은 없습니다. 하지만 S3 버킷의 데이터 피드 스토리지에는 스토리지 비용이 발생합니다.
- 데이터 피드 파일은 일반적으로 한 시간에 한 번 버킷에 도착합니다. 일반적으로 단일 데이터 파일은 1시간 동안 사용한 것입니다. 파일 크기 및 도착 시간에 대한 자세한 내용은 스팟 인스턴스 데이터 피드를 참조하십시오.