스팟 인스턴스 데이터 피드를 사용하여 스팟 인스턴스 비용 추적
스팟 인스턴스 요금을 쉽게 이해할 수 있도록 Amazon EC2에서는 스팟 인스턴스 사용량 및 요금을 설명하는 데이터 피드를 제공합니다. 이 데이터 피드는 데이터 피드를 구독할 때 지정하는 Amazon S3 버킷으로 전송됩니다.
일반적으로 데이터 피드 파일은 1시간에 한 번씩 버킷에 도착합니다. 특정 시간 동안 스팟 인스턴스가 실행되지 않는 경우 해당 시간에 대한 데이터 피드 파일이 수신되지 않습니다.
일반적으로 각 시간의 스팟 인스턴스 사용량은 단일 데이터 파일로 제공됩니다. 이러한 파일은 버킷으로 전송되기 전에 압축(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
예를 들어, 버킷 이름이 amzn-s3-demo-bucket
이고 접두사가my-prefix
인 경우 파일 이름은 다음과 같습니다.
amzn-s3-demo-bucket.s3.amazonaws.com/my-prefix/111122223333.2023-12-09-07.001.b959dbc6.gz
버킷 이름에 대한 자세한 내용은 Amazon S3 사용 설명서에서 버킷 이름 지정 규칙을 참조하세요.
스팟 인스턴스 데이터 피드 파일은 탭으로 구분됩니다. 데이터 파일의 각 줄은 1 인스턴스 시간에 해당하며 다음 표에 나열된 필드를 포함합니다.
필드 | 설명 |
---|---|
|
이 인스턴스 사용량에 대해 청구된 가격을 결정하는 데 사용되는 타임스탬프입니다. |
|
청구되는 사용 유형 및 인스턴스 유형입니다. |
|
청구되는 제품입니다. Linux 스팟 인스턴스의 경우 이 필드는 |
|
이 인스턴스 사용량을 생성한 스팟 인스턴스의 ID입니다. |
|
이 인스턴스 사용량을 생성한 스팟 인스턴스 요청의 ID입니다. |
|
이 스팟 요청에 대해 지정된 최고가입니다. |
|
|
|
이 인스턴스 사용량에 대해 청구된 가격입니다. |
|
데이터 피드 버전. 가능한 버전은 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 데이터 피드 계정은 읽기 및 쓰기 권한이 있습니다. -
데이터 피드 구독을 삭제해도 Amazon EC2에서 버킷 또는 데이터 파일에 대한 AWS 데이터 피드 계정의 읽기 및 쓰기 권한이 제거되지 않습니다. 이러한 권한을 직접 제거해야 합니다.
-
AWS Key Management Service(SSE-KMS)에 저장된 AWS KMS 키로 서버 측 암호화를 사용하여 Amazon S3 버킷을 암호화하는 경우 고객 관리형 키를 사용해야 합니다. 자세한 내용은 Amazon CloudWatch Logs 사용 설명서의 Amazon S3 버킷 서버 측 암호화 섹션을 참조하세요.
스팟 인스턴스 데이터 피드 구독
데이터 피드를 구독하려면 create-spot-datafeed-subscription AWS CLI 명령을 사용합니다.
aws ec2 create-spot-datafeed-subscription \ --bucket
amzn-s3-demo-bucket
\ [--prefixmy-prefix
]
다음은 출력 예입니다.
{
"SpotDatafeedSubscription": {
"OwnerId": "111122223333",
"Bucket": "amzn-s3-demo-bucket
",
"Prefix": "my-prefix
",
"State": "Active"
}
}
버킷에 충분한 권한이 없다는 오류가 발생하는 경우 스팟 인스턴스의 데이터 피드 문제 해결
데이터 피드에서 데이터 보기
AWS Management Console에서 AWS CloudShell을 엽니다. 다음 s3 sync 명령을 사용하여 데이터 피드를 위해 S3 버킷에서 .gz 파일을 가져와 지정한 폴더에 저장합니다.
aws s3 sync s3://
amzn-s3-demo-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 CLI 명령을 사용합니다.
aws ec2 delete-spot-datafeed-subscription