Upgrade to Pro — share decks privately, control downloads, hide ads and more …

GAS経由でAWS Cost Explorerを使用して料金を取得してみた

GAS経由でAWS Cost Explorerを使用して料金を取得してみた

第2回インフラLT会で発表した資料になります。

K.Takeuchi

March 06, 2024
Tweet

Other Decks in Business

Transcript

  1. Copyright (C) 2020 Toranoana Inc. All Rights Reserved. GAS経由でAWS Cost

    Explorer を 使用して料金を取得してみた 1
  2. Copyright (C) 2020 Toranoana Inc. All Rights Reserved. 目的 2

    • 業務でAWSの利用料金を確認する機会が多い ◦ 複数のアカウントがあるため、ログインが手間となる。 ▪ AWS アカウントにログインせず料金を取得したい。
  3. Copyright (C) 2020 Toranoana Inc. All Rights Reserved. やってみたこと 3

    下記の記事を参考にして、実際に料金の取得ができるかを試した。 • 内容 ◦ AWSの月額コストを取得して、スプレッドシートに書き込む ▼GASでAWS Cost Explorerから料金を取得する https://aws-sec-blog.pages.dev/posts/gas-cost-explorer-month/
  4. Copyright (C) 2020 Toranoana Inc. All Rights Reserved. AWSにおける準備 4

    • AWS CLI を実行するためのIAMユーザを作成する。
  5. Copyright (C) 2020 Toranoana Inc. All Rights Reserved. IAMユーザの権限設定 5

    • 許可ポリシーを追加 ◦ Cost explorer への参照権限のみ
  6. Copyright (C) 2020 Toranoana Inc. All Rights Reserved. GAS上の準備 6

    • スプレッドシートより、「Apps Scirpt」を選択する。
  7. Copyright (C) 2020 Toranoana Inc. All Rights Reserved. GAS上の準備 7

    • ファイルの横の+を押して、「スクリプト」を選択する。 • 名前をaws.gsに変更する。
  8. Copyright (C) 2020 Toranoana Inc. All Rights Reserved. GAS上の準備 8

    • aws.gsファイルをコードを張り付ける。 ◦ Google Apps スクリプト内から AWS API リクエストを認証できる
  9. Copyright (C) 2020 Toranoana Inc. All Rights Reserved. GAS上の準備 9

    • 新しいスクリプトを作成する。 ◦ 名前:main.gs ◦ テスト関数をコピーして張り付ける。
  10. Copyright (C) 2020 Toranoana Inc. All Rights Reserved. GAS上の準備 10

    • main.gsにaws AccessKey ,SecretKey を設定する。
  11. Copyright (C) 2020 Toranoana Inc. All Rights Reserved. テスト実行 11

    • 実行する。 ◦ 2023/6月分の費用を出力できた。
  12. Copyright (C) 2020 Toranoana Inc. All Rights Reserved. コードを変更してみる 12

    • サービスごとの料金を取得してみる。 ◦ Start:2023/10/1、End:2023/12/01 ◦ Key:サービスにてグループ化
  13. Copyright (C) 2020 Toranoana Inc. All Rights Reserved. スプレッドシートへ出力してみる。 13

    GASのコード修正が必要だったので、 以下を要件としてChatGPTに質問して 修正コードを確認した。 • アカウント名ごとにシートを分ける。 • 1行に以下を出力する。 ◦ アカウント名、アカウントID、 サービス名、日付、コスト
  14. Copyright (C) 2020 Toranoana Inc. All Rights Reserved. スプレッドシートへ出力してみる。 14

    構文エラーなどを繰り返しながらも、アカウントごとのシートに 料金が出力されるようになった。
  15. Copyright (C) 2020 Toranoana Inc. All Rights Reserved. まとめ 15

    • ネット上のサンプルコードを使用したが、AWS側の権限を サービス指定で読み取りのみに制限することで比較的安心して使用でき た。 • AWS Cost Explorerのパラメータを編集することで、アカウント単位やサー ビス単位での料金を出力ができた。 • スプレッドシートに書き込みができたため、今後はLooker Studio などで見 える化を図りたい。