はじめに
業務でAWSアカウントの初期セットアップをすることがあったので、設定の1つとしてCostExplorerを使ったAWSの利用料のアラームを設定した備忘録です。通知用SNSの作成
まずはAWSコンソールにログインし、検索バーに"sns"と入力左メニューのトピックからトピック一覧を表示し「トピックの作成」から作成
タイプはスタンダードを選択し、名前と表示名にコストを通知してくれそうな名前を入力、アクセスポリシーはアドバンストにし、次のポリシーに置き換え、残りはデフォルト設定で「トピックの作成」
SNSトピックアクセスポリシー
{
"Version": "2008-10-17",
"Id": "__default_policy_ID",
"Statement": [
{
"Sid": "__default_statement_ID",
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": [
"SNS:Publish",
"SNS:RemovePermission",
"SNS:SetTopicAttributes",
"SNS:DeleteTopic",
"SNS:ListSubscriptionsByTopic",
"SNS:GetTopicAttributes",
"SNS:AddPermission",
"SNS:Subscribe"
],
"Resource": "",
"Condition": {
"StringEquals": {
"AWS:SourceOwner": "<アカウントID>"
}
}
},
{
"Sid": "AWSBudgets-notification-1",
"Effect": "Allow",
"Principal": {
"Service": "budgets.amazonaws.com"
},
"Action": "SNS:Publish",
"Resource": "arn:aws:sns:<リージョン>:<アカウントID>:<トピック名>"
}
]
}
トピックができたら次はサブスクリプションを作成
作成したトピックを表示し、サブスクリプションのタブから「サブスクリプションの作成」
作成画面が開いたら"プロトコル"を「Eメール」"エンドポイント"に通知先のメールアドレス(もちろんメーリングリストでも可)を入力し、他はデフォルトで「サブスクリプションの作成」
サブスクリプションを作成したら"AWS Notification - Subscription Confirmation"の件名のメールが届くので"Confirm subscription"で承認
トピックの画面に戻ってサブスクリプションのIDの欄が保留中からIDに変わっていればOK
予算の設定
検索バーに"CostExplorer"("CostE"までで十分です)と入力 ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1185845/2c87fbc8-b38c-2ad6-267e-26674910309e.png)CostExplorerのページが開いたら、左メニューのBudgetsを開き「予算の作成」
予算の設定は「カスタマイズ」を選択し、予算タイプは「コスト予算」を選択
次のページでは予算名に利用料を見守ってくれそうな名前を付け、期間は"月"、予算更新タイプは"定期予算"、開始月は今月を指定、予算設定方法は"固定"、予算額に通知したい金額を入力、予算の範囲はデフォルト設定
今回は予算額の80%と100%で通知が飛ぶように設定
通知先にSNSアラートを選択し、先ほど作成したSNSのARNを記載
()
次のページでは「アクションを追加」から閾値に達した時のアクションを設定が可能
EC2を停止させるなどのアクションが設定可能(設定する場合は専用のIAMロールが必要)
今回は特に設定しないのでスキップ