스팟 인스턴스 데이터 피드 - Amazon Elastic Compute Cloud

스팟 인스턴스 데이터 피드

스팟 인스턴스 요금을 쉽게 이해할 수 있도록 Amazon EC2에서는 스팟 인스턴스 사용량 및 요금을 설명하는 데이터 피드를 제공합니다. 이 데이터 피드는 데이터 피드를 구독할 때 지정하는 Amazon S3 버킷으로 전송됩니다.

일반적으로 데이터 피드 파일은 한 시간에 한 번씩 버킷에 도착하며, 각 사용 시간이 단일 데이터 파일로 설명됩니다. 이러한 파일은 버킷으로 전송되기 전에 압축(gzip)됩니다. 파일이 매우 큰 경우 Amazon EC2는 지정된 사용 시간에 대해 여러 개의 파일을 작성할 수 있습니다(예: 압축 전 해당 시간의 파일 콘텐츠가 50MB를 초과하는 경우).

참고

AWS 계정당 스팟 인스턴스 데이터 피드를 한 개만 생성할 수 있습니다. 특정 시간 동안 스팟 인스턴스가 실행되지 않는 경우 해당 시간에 대한 데이터 피드 파일이 수신되지 않습니다.

스팟 인스턴스 데이터 피드는 중국(베이징), 중국(닝샤), AWS GovCloud(미국) 및 기본적으로 비활성화된 리전을 제외한 모든 AWS 리전에서 지원됩니다.

데이터 피드 파일 이름 및 형식

스팟 인스턴스 데이터 피드 파일 이름은 다음 형식을 사용합니다(UTC 기준 날짜 및 시간).

bucket-name.s3.amazonaws.com/optional-prefix/aws-account-id.YYYY-MM-DD-HH.n.unique-id.gz

예를 들어, 버킷 이름이 my-bucket-name이고 접두사가my-prefix인 경우 파일 이름은 다음과 같습니다.

my-bucket-name.s3.amazonaws.com/my-prefix/111122223333.2023-12-09-07.001.b959dbc6.gz

버킷 이름에 대한 자세한 내용은 Amazon S3 사용 설명서에서 버킷 이름 지정 규칙을 참조하세요.

스팟 인스턴스 데이터 피드 파일은 탭으로 구분됩니다. 데이터 파일의 각 줄은 1 인스턴스 시간에 해당하며 다음 표에 나열된 필드를 포함합니다.

필드 설명

Timestamp

이 인스턴스 사용량에 대해 청구된 가격을 결정하는 데 사용되는 타임스탬프입니다.

UsageType

청구되는 사용 유형 및 인스턴스 유형입니다. m1.small 스팟 인스턴스의 경우 이 필드는 SpotUsage로 설정됩니다. 다른 모든 인스턴스 유형의 경우 이 필드는 SpotUsage:{instance-type}으로 설정됩니다. 예: SpotUsage:c1.medium

Operation

청구되는 제품입니다. Linux 스팟 인스턴스의 경우 이 필드는 RunInstances로 설정됩니다. Windows 스팟 인스턴스의 경우 이 필드는 RunInstances:0002로 설정됩니다. 스팟 사용은 가용 영역에 따라 그룹화됩니다.

InstanceID

이 인스턴스 사용량을 생성한 스팟 인스턴스의 ID입니다.

MyBidID

이 인스턴스 사용량을 생성한 스팟 인스턴스 요청의 ID입니다.

MyMaxPrice

이 스팟 요청에 대해 지정된 최고가입니다.

MarketPrice

Timestamp 필드에 지정된 시간의 스팟 가격입니다.

Charge

이 인스턴스 사용량에 대해 청구된 가격입니다.

Version

데이터 피드 버전. 가능한 버전은 1.0입니다.

Amazon S3 버킷 요구 사항

데이터 피드를 구독하면 데이터 피드 파일을 저장하기 위한 Amazon S3 버킷을 지정해야 합니다.

데이터 피드에 대한 Amazon S3 버킷을 선택하기 전에 다음 사항을 고려하세요.

  • 버킷에 대한 FULL_CONTROL 권한이 있어야 합니다. 버킷 소유자인 경우 기본적으로 이 권한이 있습니다. 그렇지 않으면 버킷 소유자가 AWS 계정에 이 권한을 부여해야 합니다.

  • 데이터 피드를 구독할 때 이러한 권한으로 버킷 ACL을 업데이트하여 AWS 데이터 피드 계정에 FULL_CONTROL 권한을 부여합니다. AWS 데이터 피드 계정은 버킷에 데이터 피드 파일을 씁니다. 필요한 권한이 계정에 없을 경우 데이터 피드 파일을 버킷에 쓸 수 없습니다. 자세한 내용은 Amazon CloudWatch Logs 사용 설명서Amazon S3로 전송된 로그를 참조하세요.

    참고

    ACL을 업데이트하고 AWS 데이터 피드 계정에 대한 권한을 제거할 경우 데이터 피드 파일을 버킷에 쓸 수 없습니다. 데이터 피드 파일을 수신하려면 데이터 피드를 다시 구독해야 합니다.

  • 각 데이터 피드 파일에는 고유의 ACL(버킷용 ACL과는 별도)이 있습니다. 버킷 소유자는 데이터 파일에 대한 FULL_CONTROL 권한을 가지고 있습니다. AWS 데이터 피드 계정은 읽기 및 쓰기 권한이 있습니다.

  • 버킷에 대해 비활성화된 ACL을 적용한 경우 버킷에 대한 전체 제어 권한을 가진 사용자가 버킷에 쓸 수 있도록 허용하는 버킷 정책을 추가합니다. 자세한 내용은 버킷 정책 검토 및 업데이트를 참조하세요.

  • 데이터 피드 구독을 삭제해도 Amazon EC2에서 버킷 또는 데이터 파일에 대한 AWS 데이터 피드 계정의 읽기 및 쓰기 권한이 제거되지 않습니다. 이러한 권한을 직접 제거해야 합니다.

  • AWS Key Management Service(SSE-KMS)에 저장된 AWS KMS 키로 서버 측 암호화를 사용하여 Simple Storage Service(Amazon S3) 버킷을 암호화하는 경우 고객 관리형 키를 사용해야 합니다. 자세한 내용은 Amazon CloudWatch Logs 사용 설명서Amazon S3 버킷 서버 측 암호화 섹션을 참조하세요.

    참고

    스팟 인스턴스 데이터 피드의 경우 S3 파일을 생성하는 리소스는 더 이상 Amazon CloudWatch Logs가 아닙니다. 따라서 S3 버킷 권한 정책과 KMS 정책에서 aws:SourceArn 섹션을 제거해야 합니다.

스팟 인스턴스 데이터 피드 구독

데이터 피드를 구독하려면 다음 create-spot-datafeed-subscription 명령을 사용합니다.

aws ec2 create-spot-datafeed-subscription \ --bucket my-bucket-name \ [--prefix my-prefix]

출력 예시

{ "SpotDatafeedSubscription": { "OwnerId": "111122223333", "Bucket": "my-bucket-name", "Prefix": "my-prefix", "State": "Active" } }

스팟 인스턴스 데이터 피드 설명

데이터 피드 구독을 설명하려면 describe-spot-datafeed-subscription 명령을 사용합니다.

aws ec2 describe-spot-datafeed-subscription

출력 예시

{ "SpotDatafeedSubscription": { "OwnerId": "123456789012", "Prefix": "spotdata", "Bucket": "my-s3-bucket", "State": "Active" } }

데이터 피드에서 데이터 보기

AWS Management Console에서 AWS CloudShell을 엽니다. 다음 s3 sync 명령을 사용하여 데이터 피드를 위해 S3 버킷에서 .gz 파일을 가져와 지정한 폴더에 저장합니다.

aws s3 sync s3://my-s3-bucket ./data-feed

.gz 파일의 콘텐츠를 표시하려면 S3 버킷의 콘텐츠를 저장한 폴더로 이동합니다.

cd data-feed

ls 명령을 사용하여 파일 이름을 확인합니다. zcat 명령을 파일 이름과 함께 사용하여 압축 파일의 콘텐츠를 표시합니다. 다음은 예시 명령입니다.

zcat 111122223333.2023-12-09-07.001.b959dbc6.gz

출력의 예제는 다음과 같습니다.

#Version: 1.0 #Fields: Timestamp UsageType Operation InstanceID MyBidID MyMaxPrice MarketPrice Charge Version 2023-12-09 07:13:47 UTC USE2-SpotUsage:c7a.medium RunInstances:SV050 i-0c3e0c0b046e050df sir-pwq6nmfp 0.0510000000 USD 0.0142000000 USD 0.0142000000 USD 1

스팟 인스턴스 데이터 피드 삭제

데이터 피드를 삭제하려면 다음 delete-spot-datafeed-subscription 명령을 사용합니다.

aws ec2 delete-spot-datafeed-subscription