AWS:コスト超過に関する通知設定

Date:

Share post:

AWSは色々と便利なのですが、個人的に一番の弱点(使いづらい点)だと思っているのは運用コストが分かり難いという点です。

従量課金であることが最大の理由ですが、料金体系自体も細かく、かつ独自の表現(用語)なども多分に使用されていて、何度説明を読んでも十分に理解できません。

加えて、様々な料金に「無料利用枠」が適用されていたりします。期限のないものもありますが、12ヶ月の期限付きのものも多いです。試用に当たってはありがたい制度ですが、実績からコストを判断することができないというデメリットもあります。本番運用を開始して、今更運用をやめたり環境を大きく変えたりすることが難しくなった段階でコストが高くなる訳ですから、何となく罠っぽく感じてしまいます。
黙って無料枠を適用するのではなく、本来の(無料枠を適用しなかった場合の)金額を示してもらった上でどれだけ減額されているかということを示してくれれば親切だと思うのですが、そのようにはできないんですかね?
私が見積書を作成する際に、何らかの理由で値引が必要な場合はその点を見積書に明記しますけどね。クライアントにもこちらの譲歩を明示できますし。

と嘆いていても仕方ありませんので、せめてコストが想定の範囲を超えそうな場合に気づけるようにはしたいと思います。この点に関してはAWSとして「請求アラーム」という機能が提供されているので、これを使用したいと思います。

請求アラートを受け取る」設定

まずは、請求に関するアラームを受信すると言うことを宣言する必要があるようです。

Billingの画面を開き、左メニューから「請求設定」を選択します。
選択肢がいくつか(現時点では3つ)ある中に「請求アラートを受け取る」なるものがあります。まずはこれにチェックを入れ、後述する設定をすることでコスト超過の警告をメールで受けられるようになります。

しかし、「アラーム」なのか「アラート」なのか、この細かな使い分けは必要なんですかね?
英語が不自由な私には紛らわしいだけですが…

請求アラーム設定

改めて請求アラームの設定を行います。
本機能はCloudWatchの一部なのですが、「バージニア北部」リージョン固有の機能である点に注意です(請求に関する情報は同リージョンで一括管理されているっぽいです)。

CloudWatchで「バージニア北部」リージョンを選択すると、左メニューの「アラーム」欄で「請求」が選択できるようになります。
これをクリックすると「請求アラーム」画面が表示されますので、「アラームの作成」を実行します。

以下、入力・選択内容です。

メトリクス名EstimatedCharges
CurrencyUSD
統計最大
期間6時間
しきい値の種類静的
EstimatedCharges が次の時…より大きい
… よりもアラームを発生させたい金額
アラーム状態トリガーアラーム状態
SNS トピックの選択新しいトピックの作成
新規トピックの作成中…適当な名称を設定
通知を受け取る E メールエンドポイント …適当なメールアドレス(カンマ区切りで複数指定可能)

前半はほとんどデフォルト値です。
「SNSトピック」と言う名称が今ひとつ分かり難いですが、ここで言う「SNS」は「Simple Notification Service」で、何らかのメッセージを通知するサービスを意味します(「SNS」と言えば「Social Networking Service」の方をイメージしますよね、普通)。つまりはアラームの通知先であるメールアドレスをグループ化して管理しておくため、その名称や具体的なアドレスを指定していると思えば良いかと思います。

上記まで実施した上で「作成」をクリックすると、指定したアドレスにメールが送信されます。同メール上にはリンクが設置されていて、このリンクにアクセスすることで、同アドレスの有効性が確認される訳です。

その後、当該アラームに対する命名作業がありますが、そこは適当な名称を付けておいて、最後に「アラームの作成」を実行すれば請求アラーム設定は完了です。

総括

今回は請求アラームに関して書いてみました。
小ネタですが、一歩間違うと高額請求の憂き目に遭いかねないAWSでのシステム運用における命綱的機能であるため、本来であればAWSの使用を開始して最初に実施しておくべき内容と言っても過言ではありません。

ただ、これはあくまでリスク管理の話であって、運用コストの予測し辛さは相変わらずです。
この辺に関しては今後の運用の中で経験値を高めていくしかないかと思ってます。

Related articles

Laravel Filamentを使用した管理画面...

前回Breezeをインストールしたこと...

Laravel Filamentを使用した管理画面...

前回、filamentでのリソース作成...

Laravel Filamentを使用した管理画面...

前回、Filamentをインストールし...