こんにちは、今回は複数のAWSアカウントを管理し、それぞれの会社や部署ごとに利用料金を分析・修正し、請求書を自動的に送付するシステムの構築についてご紹介します。このシステムにより、運用の効率化とコスト削減を目指します。
システム構築の背景
多くの企業において、AWSアカウントは会社内の各部署やプロジェクトごとに管理され、数が増えるにつれコスト管理が複雑になることが一般的です。特に、部署ごとに異なる割引率を適用したり、複数のアカウントをまとめて請求書を発行する場合、手作業での対応が困難になりがちです。本システムでは、これらの課題を解決し、AWS利用料金の分析から請求書の生成・送信までを自動化します。
システムの目的
このシステムの構築により、以下の目的を達成します:
-
一括請求書の発行
- 各会社や部署が複数のAWSアカウントを保有している場合でも、全てのアカウントの利用料金を合算し、一つの請求書として発行します。
-
割引率に基づいた請求書作成
- 各会社・部署には異なる割引率(例:3%や5%)が設定されています。指定された割引率に基づき、正確に請求書を生成します。
-
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アカウントを効果的に管理し、指定された割引率を適用した請求書の自動作成・送信が可能となりました。特に、AWS Chinaアカウントの料金管理や日本円への為替レート適用など、企業のコスト管理において重要な要素を自動化できたことは、運用負荷の軽減に大きく貢献しています。
今後もAWSのCost and Usage ReportやGlue、RDSなどを活用し、さらなる運用効率化とコスト削減を目指してまいります。興味がある方は、ぜひご相談ください。