AzureコストをAWSで分析!
Cloud Intelligence Dashboard

はじめに

こんにちは!クラウド活用推進担当の安田です。

クラウドコストの管理は、多くの企業にとって重要な課題です。特に、複数のクラウドプロバイダーを利用している場合、コストの可視化と分析が複雑になります。

今回は、Microsoft AzureのコストデータをAmazon QuickSightを使って可視化する方法について紹介します。

目次

  1. Cloud Intelligence Dashboard for Azureとは
  2. 構成図
  3. 主な特徴
  4. 実装手順
  5. AzureのコストデータをCSV形式でエクスポートした際の課題と解決策
  6. ダッシュボードの例
  7. メリット
  8. まとめ
  9. 参考リンク

Cloud Intelligence Dashboard for Azureとは

AWSが提供する「Cloud Intelligence Dashboard for Azure」は、AzureのコストデータをAmazon QuickSightで可視化するソリューションです。このダッシュボードを使用することで、Azureのコスト可視化とレポート作成が可能になります。

Cloud Intelligence Dashboard for Azure - AWS Workshop Studio

構成図

以下の構成でAzureのコストデータをAWS上に送り、QuickSightで可視化します。 cidazure-midlevel-grey.png

主な特徴

  1. マルチクラウドコスト管理: AWSとAzureのコストデータを統合し、単一のダッシュボードで表示できます。
  2. 直感的な操作: QuickSightのドラッグ&ドロップ機能により、複雑な分析も簡単に行えます。
  3. カスタマイズ可能: ユーザーのニーズに合わせて、ダッシュボードをカスタマイズできます。
  4. 自動データ更新: Azureのコストデータを自動的に取り込み、最新の情報を常に表示します。

実装手順

  1. AWSアカウントの準備: Amazon QuickSightを利用するためのAWSアカウントを用意します。
  2. Azureコストデータのエクスポート: AzureのコストデータをCSV形式でエクスポートします。
  3. データの取り込み: エクスポートしたデータをAWS S3バケットにアップロードします。
  4. データの整形: AWS GlueでS3にアップロードされたデータを整形し、Amazon Athenaでビューを作成します。
  5. QuickSightの設定: QuickSightでデータソースとしてAthenaのビューを指定し、データセットを作成します。
  6. ダッシュボードの作成: QuickSightの機能を使って、必要なグラフや表を作成します。

詳しいデプロイ手順はCloud Intelligence Dashboard for Azureに記載されているので、ぜひそちらを参照してください。

AzureのコストデータをCSV形式でエクスポートした際の課題と解決策

AzureのコストデータをCSV形式でエクスポートすると、コンテナー内に以下の構造でファイルが作成されます。

image.png

この構造では、日付フォルダの配下に一意識別用のUUIDフォルダがあり、その中にCSVファイルが保存されています。


課題

このファイル構造のままS3バケットにコストデータを送信すると、QuickSightへのデータ連携が正常に動作しませんでした。

解決策

検証の結果、CSVファイルが日付フォルダ直下にある場合は正常に動作することが確認できました。そこで、以下の仕組みを構築しました:

  • S3にCSVファイルがアップロードされたイベントをトリガーとする
  • CSVファイルを日付フォルダ直下にコピーするLambda関数を実行

この仕組みにより、AWSが提供するリソースに変更を加えずに、QuickSightでのデータ連携が正常に動作するようになりました。

作成したLambda関数のコードを以下に示します。

  1. import json
  2. import boto3
  3. s3 = boto3.client('s3')
  4. def lambda_handler(event, context):
  5.     # S3イベントからバケット名とオブジェクトキーを取得
  6.     bucket_name = event['Records'][0]['s3']['bucket']['name']
  7.     object_key = event['Records'][0]['s3']['object']['key']
  8.     # オブジェクトキーからフォルダ名とファイル名を分離
  9.     key_parts = object_key.split('/')
  10.     
  11.     # フォルダ構造とファイル名の検証
  12.     if len(key_parts) != 6 or key_parts[-1] != 'part_0_0001.csv':
  13.         return {
  14.             'statusCode': 400,
  15.             'body': json.dumps('Error: The uploaded file does not match the expected structure')
  16.         }
  17.     
  18.     # コピー先のキーを設定(UUIDフォルダを除外)
  19.     destination_key = "/".join(key_parts[:-2]) + "/" + key_parts[-1]
  20.     
  21.     # ファイルをコピー
  22.     s3.copy_object(
  23.         CopySource={'Bucket': bucket_name, 'Key': object_key},
  24.         Bucket=bucket_name,
  25.         Key=destination_key
  26.     )
  27.     
  28.     return {
  29.         'statusCode': 200,
  30.         'body': json.dumps('File copied successfully!')
  31.     }

ダッシュボードの例

Cloud Intelligence Dashboard for Azure

上記の画像は、Cloud Intelligence Dashboard for Azureを使用して作成されたダッシュボードの例です。コスト、使用状況、トレンドなどが一目で分かるように可視化されています。

メリット

  1. コスト削減: 使用状況を詳細に把握することで、無駄な支出を特定し、削減できます。
  2. 意思決定の迅速化: リアルタイムのデータ可視化により、迅速な意思決定が可能になります。
  3. レポート作成の効率化: 自動化されたレポート作成により、管理者の作業負荷を軽減できます。

まとめ

Amazon QuickSightを使用してAzureのコストを可視化する際のポイントについて、紹介しました。これによりマルチクラウド環境でのコスト管理を効率化できます。

この情報がお役に立てれば幸いです。ここまで読んでいただきありがとうございました!

参考リンク

How to view Azure costs using Amazon QuickSight - AWS

Cloud Intelligence Dashboard for Azure - AWS Workshop Studio

クラウド基盤ソリューション