AWS CURのデータを安く楽に可視化して共有したい

>100 Views

July 26, 21

スライド概要

2021/07/26 Ops JAWS Meetup#19 勉強会
LT枠「AWS CURのデータを安く楽に可視化して共有したい」
https://opsjaws.doorkeeper.jp/events/124295

※2025/02/28 SlideShareから引越し 1,080 views

profile-image

Blog: https://14code.com GitHub: https://github.com/14kw SlideShare: https://www.slideshare.net/TakayukiIshikawa

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

関連スライド

各ページのテキスト
1.

AWS CURのデータを 安く楽に可視化して共有したい Ops JAWS Meetup#19 2021年7月26日(月) 石川 貴之

2.

自己紹介 石川 貴之 (Ishikawa Takayuki) 普段はAWS管理やWEBサービスの運用とかやってます。 好きなAWSサービス: CloudFormation, Athena, Organizations Contact: @14tter 14kw https://14code.com

3.

本日話すこと ● クラウドコストの可視化について ● AWSのTIPS 本日話さないこと ● コスト削減についてのノウハウ

4.

単純な可視化ならコストエクスプローラが一番早い

5.

なにかしら検証していくと環境が増えていく

6.

なにかしら検証していくと環境が増えていく 請求データが増えていく

7.

【解決したいこと】 複数AWS Organizationや他クラウド費用を まとめて可視化したい

8.

対象とする費用データと形式 ● AWS Organization 1 ○ Parquet形式でS3に出力 ● AWS Organization 2 ○ Parquet形式でS3に出力 ● Google Cloud Platform 1 ○ BigQueryに出力

9.

どうやってデータを1つの場所から使えるようにするか 1. データを移動させずにそれぞれにアクセスする方法(ReDash) 2. ひとつのAWSアカウントにデータを集約させる方法(S3, ReDash) 3. 別のDWHにデータを集約させる方法(BigQuery, DataPortal)

10.

データを移動させずに それぞれにアクセスする方法(ReDash)

11.

ReDashからそれぞれ接続してみる 良い点: ● 特別な設定はいらない いまいちな点: ● ● データソース間のJoinには Query Result使わないといけない ReDashを動かす環境が必要

12.

ひとつのAWSアカウントに データを集約させる方法(S3, ReDash)

13.

S3に集約してAthenaをReDashから使ってみる 良い点: ● ReDashから一つのデータソース として見える いまいちな点: ● ReDashを動かす環境が必要

14.

GlueからS3へのクロスアカウントアクセスでエラー ERROR : User does not have access to target s3://xxxx/xxxx

15.

CURのデータの所有者がAWS管理のアカウント

16.

バケットポリシーでは不十分だった バケット所有者とオブジェクト所有者が 同一 であれば バケットポリシーで別アカウントの権限を付けるだけでいいが、 バケット所有者とオブジェクト所有者が 異なる と オブジェクトACLに別アカウントの権限を付ける必要がある

17.

S3バケットのオブジェクト所有者を変更して対応

19.

TIPS:AthenaからGlueにクロスアカウントアクセス Athenaから別アカウントのGlueデー タカタログに対してクエリーできる Athenaからは別データソースに見え る

20.

TIPS:Athenaに追加したデータソースはReDashから使える

21.

別のDWHにデータを集約させる方法 (BigQuery, DataPortal)

22.

BigQueryに集約してData Portalから使ってみる 良い点: ● ● ● ノーコードで実現できる Data Portalは無料 共有が楽 いまいちな点: ● Data PortalはIaCできない

23.

BigQueryのGCS外部テーブルを利用 CURのデータは月が締まったあとも 更新されることがあるため、Strage Transfer Serviceで変更があったも のをGCSに同期。 GCSデータを外部テーブルとして利 用することで、BigQueryへの都度取 り込みの必要をなくします。

24.

TIPS:2021年以前のParquetデータだとエラーになる Error running query Error while reading table: xxxxx, error message: Read less values than expected $ parquet-tools meta cur_2020.parquet file schema: com.amazon.aws.origami.datawriter.parquet.ParquetDataWriter$ $ parquet-tools meta cur_2021.parquet file schema: spark_schema Athenaだと問題なく読めるが、BigQueryからは読めなかった。

25.

Data PortalにGCP費用可視化サンプルがある https://cloud.google.com/bill ing/docs/how-to/visualize-d ata

28.

複数クラウドの費用をまとめる クラウドごとに出力されるデータ詳細度が違うため注意が必要 Category AWS GCP 各アカウントの請求額 line_item_unblended_cost cost 組織共有を考慮した各アカウントの請求額 line_item_blended_cost - 請求月 bill_billing_period_start_date invoice.month 利用開始日時 line_item_usage_start_date usage_start_time プロダクトID line_item_product_code service.id プロダクト名 product_product_name service.description アカウント/プロジェクト ID line_item_usage_account_id project.id アカウント/プロジェクト名 - project.name ロケーション - location.location リージョン product_region location.region リソースID line_item_resource_id -

29.

通貨が違う!!

30.

AWSとGCP費用を合算しての可視化は諦めた GCPの支払い通貨を 日本円 にしていた AWSも円払いにしているが CURのデータは ドル で出力される GCP課金データテーブルにある currency_conversion_rate を使うと ドルにすることもできるが、、、 DataPortalでそれぞれ可視化して満足してしまったので、今回はここまで 複数クラウド費用を合算して利用したいという方は 支払い通貨にはお気をつけください!!

31.

まとめ 1. データを移動させずにそれぞれにアクセスする方法(ReDash) ○ 一番簡単で考えることが少ない 2. ひとつのAWSアカウントにデータを集約させる方法(S3, ReDash) ○ AWSに集約させることで価値が最大化するなら 3. 別のDWHにデータを集約させる方法(BigQuery, DataPortal) ○ 別のDWHにすでにデータがあり一緒に利用したいなら ○ BigQueryなら可視化にDataPortalが使える

32.

おまけ:CURのレポートサイズ比率 1 : 1.6 1:4 1 : 7 : 30 Parquet:GZIP リソースIDなし:あり 月別:日別:時間別 使っているサービス次第でファイルサイズはかなり変わるため、 この比率はあくまでも参考として見てください。

33.

参考 ● AWS コストと使用状況レポート- ユーザーガイド https://docs.aws.amazon.com/ja_jp/cur/latest/userguide/cur-user-guide.pdf ● Controlling ownership of uploaded objects using S3 Object Ownership - Amazon Simple Storage Service https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html ● Amazon Athena がクロスアカウント AWS Glue データカタログ向けの組み込みのサポートを追加 https://aws.amazon.com/jp/about-aws/whats-new/2021/05/amazon-athena-adds-built-in-support-for-cross-account-aws-glue-data-catalogs/ ● わかりづらいS3クロスアカウントアクセス許可に立ち向かおう https://www.slideshare.net/TakashiToyosaki1/s3-91645159 ● Cloud Storage データのクエリ | BigQuery | Google Cloud https://cloud.google.com/bigquery/external-data-cloud-storage?hl=ja ● BigQuery の Cloud Billing データテーブルについて | Google Cloud https://cloud.google.com/billing/docs/how-to/export-data-bigquery-tables ● Google データポータルでの一定期間の利用額情報の可視化| Cloud Billing | Google Cloud https://cloud.google.com/billing/docs/how-to/visualize-data