Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/iwasakiyuuki/aws-cost-notify
A bot that regularly posts AWS costs to Slack (automated build with Terraform)
https://github.com/iwasakiyuuki/aws-cost-notify
aws aws-lambda cost-explorer slack terraform
Last synced: 21 days ago
JSON representation
A bot that regularly posts AWS costs to Slack (automated build with Terraform)
- Host: GitHub
- URL: https://github.com/iwasakiyuuki/aws-cost-notify
- Owner: IwasakiYuuki
- Created: 2023-08-28T11:52:47.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2023-11-30T09:18:29.000Z (about 1 year ago)
- Last Synced: 2024-12-16T16:00:53.882Z (25 days ago)
- Topics: aws, aws-lambda, cost-explorer, slack, terraform
- Language: Python
- Homepage:
- Size: 61.5 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# AWSコストSlack通知ボット
定期的にAWSのコストをSlackへ通知してくれる便利なやつ.
デフォルトでは毎週月曜日の10時にこんな感じでコストを投稿してくれる.> Period: 2023-08-01 ~ 2023-08-29
> ```
> +------------------------------------+----------+
> | Service | Amount |
> +------------------------------------+----------+
> | AWS Lambda | 0.00 USD |
> | EC2 - Other | 5.84 USD |
> | Amazon Relational Database Service | 0.05 USD |
> | Amazon Route 53 | 1.50 USD |
> | Amazon Simple Storage Service | 0.03 USD |
> | Amazon Virtual Private Cloud | 0.00 USD |
> | AmazonCloudWatch | 0.00 USD |
> | Tax | 0.74 USD |
> | ---------------------------------- | -------- |
> | Total | 8.15 USD |
> +------------------------------------+----------+
> ```## TL; DR
- Terraform CLIを使えるようにする
- AWSのCost Explorerを有効化
- 通知したいSlackチャンネルへのWebhook URLを作成
- 以下の環境変数をセット
- AWS_ACCESS_KEY_ID: アクセスキー
- AWS_SECRET_ACCESS_KEY: シークレットキー
- AWS_REGION: リージョン
- TF_VAR_SLACK_WEBHOOK_URL: 通知先のSlackチャンネルへのWebhook URLそしたら
```
cd tf
terraform init
terraform apply -auto-approve
```## 1. 事前設定
### Terraform
Terraform CLIのインストール.(Macの場合)
```shell
brew tap hashicorp/tap
brew install hashicorp/tap/terraform
```
他のOSについては[公式のページ](https://developer.hashicorp.com/terraform/tutorials/aws-get-started/install-cli)を参照.### AWS
AWSコンソールからコスト計算に使用するCost Explorerの有効化を行う([参考](https://docs.aws.amazon.com/ja_jp/cost-management/latest/userguide/ce-enable.html)).
※ Cost Explorerのページから請求ダッシュボードなどが見える状態になっていれば大丈夫です.また,Terraformで使用するIAMユーザの認証情報を以下の環境変数へ設定する.
- AWS_ACCESS_KEY_ID: アクセスキー
- AWS_SECRET_ACCESS_KEY: シークレットキー
- AWS_REGION: リージョンIAMユーザには,IAMポリシー,IAMロール,Lambdaの作成に必要な権限が付与されている必要があります.
### Slack
Slack botを作成し,通知したいチャンネルへのWebhook URLを生成する.
生成したURLを環境変数`TF_VAR_SLACK_WEBHOOK_URL`へセットする.
(https://hooks.slack.com/services/XXXX/XXXX/XXXXXXX みたいな形式のURLです.)## 2. 構築
```shell
cd tf
terraform init
terraform apply -auto-approve
```## 追加設定
- TF_VAR_SCHEDULE_EXPRESSION: 定期実行の間隔.cron形式で設定してください.(デフォルト:"cron(0 10 ? * MON *)")