3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

AWSコスト監視くん - AWSのコストをSlackに通知するTerraformモジュール

Last updated at Posted at 2025-04-09

はじめに

このモジュールを作成するきっかけとなったのは、「AWS Step Functions(JSONata)でAWS料金をSlackへ通知【Lambda無し】」という記事でした。この記事を読んで、Lambdaを使用せずにAWSのコストを監視できる仕組みに感銘を受けたスタッフが「これを導入したい!」ということで、これをTerraformモジュールとして再利用可能な形にさせて頂きました。

背景

AWSの利用コストを監視することは、クラウド運用において重要な課題の一つです。特に、予期せぬコストの増加や、特定のサービスの利用状況を把握することは、コスト最適化の第一歩となります。しかし、AWSのコスト管理コンソールを毎日確認するのは手間がかかり、また、コストの急激な増加に気づくのが遅れる可能性があります。

概要

「AWSコスト監視くん」は、以下の機能を提供します。

  • AWSのコストを定期的に自動確認
  • コストが設定した閾値を超えた場合、Slackに通知
  • コストの内訳をサービスごとに表示
  • カスタマイズ可能なスケジュール設定

このモジュールは、AWS Step Functions、SNS、Chatbot、EventBridge Schedulerを組み合わせて実装されています。Lambdaを使用せずに実装されているため、運用コストを抑えることができます。

使い方

  1. モジュールを呼び出す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"
    }
    
  2. 必要な変数を設定します。

    変数名 説明 デフォルト値
    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
  3. Terraformを実行してデプロイします。

    ※詳しくはリポジトリの README をご覧ください。

終わりに

「AWSコスト監視くん」は、AWSのコスト管理を自動化し、コストの急激な増加を早期に検知することを可能にします。このモジュールを使用することで、コスト管理の効率化と、予期せぬコストの増加を防ぐことができます。

一言

AWSのコスト管理は、クラウド運用において重要な要素です。「AWSコスト監視くん」を使用して、効率的なコスト管理を実現しましょう。

この記事良かったと少しでも思って頂けたら是非 @___nix___ をフォローしてあげてください。或いは記事に対してリアクションをお願い致します。

謝辞

この記事は、以下を参考にインスパイアされました。

この記事の著者である川原@Classmethod様に感謝申し上げます。

3
2
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?