brunch

You can make anything
by writing

C.S.Lewis

by 유윤식 Jun 05. 2019

AWS: 요금정보 API

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).

Step 01
Step 02


위에서 만든 키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 가 아직 지원이 안된다고..

작가의 이전글 Linux: MESOS & ZK & SPARK
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari