複数AWSアカウントの利用料金を分析し、請求書を自動送付するシステムの構築

こんにちは、今回は複数のAWSアカウントを管理し、それぞれの会社や部署ごとに利用料金を分析・修正し、請求書を自動的に送付するシステムの構築についてご紹介します。このシステムにより、運用の効率化とコスト削減を目指します。

システム構築の背景

多くの企業において、AWSアカウントは会社内の各部署やプロジェクトごとに管理され、数が増えるにつれコスト管理が複雑になることが一般的です。特に、部署ごとに異なる割引率を適用したり、複数のアカウントをまとめて請求書を発行する場合、手作業での対応が困難になりがちです。本システムでは、これらの課題を解決し、AWS利用料金の分析から請求書の生成・送信までを自動化します。

システムの目的

このシステムの構築により、以下の目的を達成します:

  1. 一括請求書の発行

    • 各会社や部署が複数のAWSアカウントを保有している場合でも、全てのアカウントの利用料金を合算し、一つの請求書として発行します。
  2. 割引率に基づいた請求書作成

    • 各会社・部署には異なる割引率(例:3%や5%)が設定されています。指定された割引率に基づき、正確に請求書を生成します。
  3. AWS Chinaアカウントの料金管理

    • AWS Chinaの特別アカウントに関しては、AWS Lambdaを用いて個別の利用料金を抽出し、Amazon RDSに登録することで、他のアカウントと共に管理可能にします。

システムの構成内容

1. AWS Cost and Usage Report(CUR)の使用

各AWS管理アカウントから、AWS Cost and Usage Report(CUR)を利用して利用明細を抽出し、Amazon S3に格納します。このプロセスにより、各アカウントのコストデータを一元的に集約することが可能です。

2. AWS Glueを利用したETL処理

Amazon S3に格納された利用料金データを、AWS GlueのETLジョブで整理し、Amazon RDSに出力します。AWS Glue Crawlerを使用してデータのスキーマを自動推定することで、効率的にデータの取り込みと整理を行います。

3. Amazon EC2でのUIアプリケーション構築

請求書の生成および送信のためのUIアプリケーションをAmazon EC2上に構築しました。このアプリケーションでは、Amazon RDSに格納された利用料金データをもとに、PDF形式の請求書を生成し、Amazon SESを利用して指定したメールアドレスに自動送信します。

4. UIアプリケーションでの設定項目

UIアプリケーションでは、以下の設定を行うことができます:

  • 送信日時の設定

    • 各会社・部署ごとに、請求書を送信する日時を設定可能です。
  • 会社・部署と所有するアカウントの管理

    • 会社や部署が保有するAWSアカウント情報を登録し、アカウントごとの利用料金を合算して管理します。
  • 為替レートの設定

    • 請求書の金額は日本円で表示されます。みずほ銀行が発表するUSドル月中平均為替レートを利用し、ドルから円への換算を自動的に行います。

構成図

以下の構成図がシステム全体の概要を示しています。
構成図

AWS Glueのフロー図

AWS Glueのフロー図

請求書タイトル

請求書タイトル

請求書のアカウント利用明細

AWSアカウント利用明細

まとめ

今回ご紹介したシステムにより、複数のAWSアカウントを効果的に管理し、指定された割引率を適用した請求書の自動作成・送信が可能となりました。特に、AWS Chinaアカウントの料金管理や日本円への為替レート適用など、企業のコスト管理において重要な要素を自動化できたことは、運用負荷の軽減に大きく貢献しています。

今後もAWSのCost and Usage ReportやGlue、RDSなどを活用し、さらなる運用効率化とコスト削減を目指してまいります。興味がある方は、ぜひご相談ください。

Last modified: 2024-11-12

Author