
このモジュールを作成するきっかけとなったのは、「AWS Step Functions(JSONata)でAWS料金をSlackへ通知【Lambda無し】」という記事でした。この記事を読んで、Lambdaを使用せずにAWSのコストを監視できる仕組みに感銘を受けたスタッフが「これを導入したい!」ということで、これをTerraformモジュールとして再利用可能な形にさせて頂きました。
AWSの利用コストを監視することは、クラウド運用において重要な課題の一つです。特に、予期せぬコストの増加や、特定のサービスの利用状況を把握することは、コスト最適化の第一歩となります。しかし、AWSのコスト管理コンソールを毎日確認するのは手間がかかり、また、コストの急激な増加に気づくのが遅れる可能性があります。
「AWSコスト監視くん」は、以下の機能を提供します。
- AWSのコストを定期的に自動確認
- コストが設定した閾値を超えた場合、Slackに通知
- コストの内訳をサービスごとに表示
- カスタマイズ可能なスケジュール設定
このモジュールは、AWS Step Functions、SNS、Chatbot、EventBridge Schedulerを組み合わせて実装されています。Lambdaを使用せずに実装されているため、運用コストを抑えることができます。
-
モジュールを呼び出すTerraformコードを作成します。
module "cost_watcher" {
source = "../../modules/cost-watcher"
project = "my-project"
slack_channel_id = "C0123456789"
slack_workspace_id = "T0123456789"
cost_lookback_days = 7
angry_threshold = 100
batch_schedule = "cron(0 9 ? * MON-FRI *)"
batch_timezone = "Asia/Tokyo"
}
-
必要な変数を設定します。
変数名 |
説明 |
デフォルト値 |
project |
プロジェクト名 |
– |
slack_channel_id |
SlackチャンネルID |
– |
slack_workspace_id |
SlackワークスペースID |
– |
cost_lookback_days |
コストを確認する日数 |
7 |
angry_threshold |
コスト監視くんが怒る閾値(USD) |
100 |
batch_schedule |
コスト確認のスケジュール(cron形式) |
cron(0 9 ? * MON-FRI *) |
batch_timezone |
スケジュールのタイムゾーン |
Asia/Tokyo |
-
Terraformを実行してデプロイします。
※詳しくはリポジトリの README をご覧ください。
終わりに
「AWSコスト監視くん」は、AWSのコスト管理を自動化し、コストの急激な増加を早期に検知することを可能にします。このモジュールを使用することで、コスト管理の効率化と、予期せぬコストの増加を防ぐことができます。
AWSのコスト管理は、クラウド運用において重要な要素です。「AWSコスト監視くん」を使用して、効率的なコスト管理を実現しましょう。
この記事良かったと少しでも思って頂けたら是非 @___nix___ をフォローしてあげてください。或いは記事に対してリアクションをお願い致します。
この記事は、以下を参考にインスパイアされました。
この記事の著者である川原@Classmethod様に感謝申し上げます。
Source link
Views: 0