Billing, Price? 그 기준이 무엇인가?
AWS, Azure 모두 사용하고 있지만,
늘 궁굼한 점이 바로 '월 사용료' 책정 기준 이었다.
그래서 우리는 자주! 매우 자주!
비용 관리 화면을 바라보며 잠시 눈의 깜빡임도 잊을 때가 있다.
오늘은 API를 활용해서 AWS 사용료 정보를 가져와 보도록 하겠다.
늘 시작은 간단하게!
하지만 꼼꼼하게 문서 먼저 살펴본다.
Ref: https://docs.aws.amazon.com/ko_kr/aws-cost-management/latest/APIReference/API_GetCostAndUsage.html
물론,
Python SDK 를 활용한다.
>> pip install boto3
Ref: https://boto3.amazonaws.com/v1/documentation/api/latest/index.html
AWS 계정을 통한 ACCESS_KEY, SECRET_KEY 발급을 진행(IF DON'T HAVE YET).
위에서 만든 키s(ACCESS_KEY, SECRET_KEY) 를
>> vi ~/.aws/credentials
예)
>> cat ~/.aws/credentials
[default]
aws_access_key_id = YOUR_ACCESS_KEY
aws_secret_access_key = YOUR_SECRET_KEY
region = YOUR_REGION
이렇게 저장하면,
이제 API 호출을 통해서 원하는 정보를 가져 올 수 있는 준비를 마치게 된다.
간단한 코드를 통해서 실제 사용량과 과금을 확인한다.
import boto3
client = boto3.client('ce')
res = client.get_cost_and_usage(
TimePeriod={
'Start': '2019-06-01',
'End': '2019-06-05'
},
Granularity='DAILY',
Filter={
"Dimensions": { "Key": "LINKED_ACCOUNT", "Values": [ "YOUR_ACCOUNT_NUMBER"] }
},
GroupBy=[
{
"Type": "DIMENSION",
"Key": "USAGE_TYPE"
},
{
"Type": "DIMENSION",
"Key": "REGION"
},
],
Metrics=["UnblendedCost", "UsageQuantity"]
)
print(res)
정말 심플한 정보를 가져오는 스크립트다.
더 깊이 있는 구현은 문서를 참고 하면서 진행 할 수 있다.
결과,
1주일 정도를 가져왔지만,
좀 복잡하다.
AWS 페이지 상에서 보면 깔끔하긴 한데...
사실 June 2, 2019 값이
바로 위의 값들의 합과 같다.
끝.
** 참고로 Hourly 요금 정보 API 가 아직 지원이 안된다고..