今回troccoというSaaSを使って、AWS Cost Exploreの情報をBigQueryへ連携する方法について紹介します。
フリーランスでの案件獲得のため、下記の記事を元に実施して見ました。
これらの記事ではtroccoとAWS,GCPを接続する際のAWS,GCP側の設定についての記載が少なかったので、ここではそれらに焦点を当てて説明いたします。
https://blog.trocco.io/case-study/aws-cost-explorer_to_bigquery_to_dataportal
https://qiita.com/hiro_koba_jp/items/a7620585cd7e53ed42d5
AWS Cost Explore → trocco → BigQuery
というようにデータの連携を行いますが、そのために必要な手順は以下の通りです。
[手順]
1、AWSにおいてCost Exploreの権限を持つユーザーを作成し、アクセスキーを設定
2、GCPにおいてBigQueryへのデータ転送を行うAPIキーを発行
3、troccoにおいて1・2の接続情報を元にデータ連携フローを作成
4、作成したデータ連携フローを実行
[事前準備] ※詳細省略
・awsのアカウントを作成
・GCPのアカウントを作成
・troccoの無料プランを申込み(https://trocco.io/lp/index.html)
なおawsとgcpのアカウント作成にはクレジットカードが必要となります。
ただしtroccoの無料プランはクレジットカード不要で、申請後1日以内で利用可能となりました!
1、AWSにおいてCost Exploreの権限を持つユーザーを作成し、アクセスキーを設定
AWSにおいてCost Exploreの権限を持つユーザーを作成し、アクセスキーを設定しました。
今回はaccess-cost-exploreというユーザーを作成し、ViewBillingというカスタムポリシーを作成・アタッチしました。
ViewBillingは下記の内容で、Cost Explore関連の情報を参照できる権限を設定しております。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"ce:Get*",
"ce:Describe*",
"ce:List*",
"ce:GetCostAndUsage",
"account:GetAccountInformation",
"billing:Get*",
"payments:List*",
"payments:Get*",
"tax:List*",
"tax:```Get*",
"consolidatedbilling:Get*",
"consolidatedbilling:List*",
"invoicing:List*",
"invoicing:Get*",
"cur:Get*",
"cur:Validate*",
"freetier:Get*"
],
"Resource": "*"
}
]
}
2、GCPにおいてBigQueryへのデータ転送を行うAPIキーを発行
GCPにて、適当なプロジェクトを作成後、APIキーを発行します。
APIキーではAPI制限をして「BigQuery API」「BigQuery Data Transfer API」の2つを許可しています。
3、troccoにおいて1・2の接続情報を元にデータ連携フローを作成
データ連携フローの作成については、冒頭で紹介したリンクの記事に詳しい記載があります。
ここでは詳細は省略しますが、簡単な流れとしては、左のメニューから「接続情報」で1と2で作成した情報を使用して接続定義を作成し、次にメニューの「データ転送」で簡単にデータ統合フローが作成できます。
4、作成したデータ連携フローを実行
データ転送のフロー作成が完了すると、このようにフローの詳細が表示されます。
右上の「実行」押下すると処理が実行され、BigQuery側にテーブルが作成されました。
処理後に「costexplore_trocco1」テーブルが作成されていることを確認。
今回の記事は以上です。次回は取得したデータをGCPのサービスと組み合わせてグラフ化などを行う予定です。