ろきメモ【ROKI MEMO】- ろきsanの備忘録 -

ろきさんの備忘録。プログラミング学習記録や開発記録、および学んだ知識等のアウトプットとシェアを目的に書いています。たまに普通のことも書きます。

【AWS メトリクス指定で請求アラートの設定】無料枠・料金しきい値超えでメール送信

スポンサーリンク

以前、Ruby on Rails チュートリアルで学習していた際、AWSのCloud9という環境を作成した。
こちらはアカウント作成から1年間は無料ということで、作成し、少しコーディング等をしていた。(結局ローカル環境で学習したので、使っていたのは最初だけだったが)


しかし、あとからAWSについて調べると、どうやら無料には他にも条件があるようだ。

以下のページを見てみる。
aws.amazon.com

以下のような文言が確認できる。
f:id:ahrk-izo:20190211230836p:plain:w500

12 か月間の無料利用の有効期限が切れた場合、またはアプリケーション使用量が無料利用枠を超えた場合は、標準の料金、つまり従量課金制でお支払いください

なんだ?アプリケーションの使用量とは?


Cloud9を作成した際、大抵は以下のように設定したはずだ。
[Environment settings]
Environment type Info : Create a new instance for environment (EC2)
Instance type : t2.micro (1 GiB RAM + 1 vCPU)

f:id:ahrk-izo:20190211184229p:plain:w400

つまり、Cloud9は
EC2(AWSサーバ)」に「t2.micro」というタイプのインスタンス(仮想サーバ)を立てて作成している。
※インスタンスとは仮想サーバの単位を指す場合が多いようだ。(明確にコレっていうのはなさそう)


それで上記の「無料枠」の説明に戻ると、「Elastic Compute Cloud (EC2)」の部分にこう書かれている。

Amazon EC2 Linux t2.micro インスタンス使用 (1 GiB メモリ、32 ビットと 64 ビットのプラットフォームをサポート) 750 時間 – 毎月の継続的な実行に十分な時間

※Cloud9は、Amazon Linux インスタンスで実行される(AWS Cloud9 の環境を使用する - AWS Cloud9

さらにデータ転送には、

15 GB のデータ転送 (アウト) と、AWS のサービスをすべて合わせて 1 GB のリージョンデータ転送

ということは、Cloud9の無料の条件は
・初めてAWSアカウント作ってサインインアップした日から1年間
・t2.microインスタンスを使用時間は750時間 / 月 まで
・データ転送量は15GBまで、他のリージョンへは1GBまで

のAND条件
※もちろん他にもある(上記のリンクを参照)


うん。知らんかった。


知らずに作っててそのままって人多いと思うな。
まぁ時間は大丈夫そう(24h x 31 = 744h)だけど、データ転送量とかは今後いろいろ試したり、他のインスタンスを立ててやる場合越えるかもしれない。


いろんなサイト(ブログやQittaなど)を見ていると、いつの間にか高い請求になっているなんて話がよくある。


ということで、これまたいろんなサイトで書かれているように、
・請求の確認
・無料利用枠の使用のアラート設定(超えそうな場合メールが送信される)

また、1年間の無料使用枠なくなった場合でも高額請求にならないよう、自分が設定したしきい値を超えた場合にもメールが送信されるように
・請求アラートの設定(超えた場合メールが送信される)

もする。

今回はその備忘録としてやり方を記録する。

やることは、

スポンサーリンク



STEP1 : 請求ダッシュボードで請求額を確認

まず「請求ダッシュボード」を開く

右上のアカウント > 請求ダッシュボード を選択
(もしくは検索で「請求」)
f:id:ahrk-izo:20190213200534p:plain:w500


こんな画面になる。この画面で請求額が確認できる。
請求はまだ$0のようだ(ほぼ使ってないので当然といえば当然)
f:id:ahrk-izo:20190213200812p:plain:w500


STEP2 : アラートの通知をONにする

請求ダッシュボード画面の下の方に、「アラートおよび通知」というのがあり、まだアラートを設定していなければ以下のような通知がある。

お客様の予想請求額をモニタリングできます。請求アラートを今すぐ有効にする設定を開始してください。請求額がお客様指定のしきい値に達したときに通知メールが自動的に送信されます。

ここの「今すぐ有効にする」をクリック。

f:id:ahrk-izo:20190213201118p:plain:w400


請求設定になるので、
「無料利用枠の使用のアラートの受信」
「請求アラートを受け取る」

にチェックを入れ、
「設定の保存」

f:id:ahrk-izo:20190213230039p:plain:w500
...
...
f:id:ahrk-izo:20190213222526p:plain:w500


これで無料利用枠の使用制限を超えると予測されたら、メールが送信されるようになる。(これは個人の場合はデフォルトでチェック入っているようだ)
アカウントとは別のEメールアドレスに送信してほしい場合は、アドレスを入力する。

無料利用枠についてのアラートはこれで完了。

ただ、しきい値を超えた場合に発生する「請求アラート」はそのしきい値を設定する必要があるので、設定は以下に続く。

スポンサーリンク



STEP3 : 請求アラームの作成

続いてそのまま、先程の項目の「請求アラートを管理する」をクリック。

f:id:ahrk-izo:20190213222705p:plain:w500


CloudWatch > アラーム の画面になる

f:id:ahrk-izo:20190213222954p:plain:w500
(ちょっと「アラート」なのか「アラーム」なのかどっちやねんってなる。。。)

この画面は、AWSコンソールで「CloudWatch」と検索して起動してもよし
f:id:ahrk-izo:20190213223048p:plain:w300


ここからは以下のサイトに沿って行えば大丈夫!
docs.aws.amazon.com

↑ここに書かれていること1つずつやっていきます。

1. CloudWatch コンソールを開きます。

OK。もう開いてる。

2. 必要に応じてリージョンを 米国東部(バージニア北部) に変更します。請求メトリクスデータは、このリージョンに保存され、世界全体の請求額を反映します。

なるほど。どのリージョンで作った環境であってもこのリージョンで作ればいいのだな。

リージョンを米国東部(バージニア北部)にする。
f:id:ahrk-izo:20190215192056p:plain:w200

3. ナビゲーションペインで、[アラーム]、[アラームの作成] の順に選択します。

うん。さっきの画面の「アラームの作成」を押すのね。
f:id:ahrk-izo:20190215192945p:plain:w400

4. [メトリクスの選択]、[請求]、[概算合計請求額] の順に選択します。

よし。まずは「メトリクスの選択」ね。(ここ去年とちょっと変わったかな?)
f:id:ahrk-izo:20190215193434p:plain:w500
というか、なんだ「メトリクス」って?

メトリクスとは、システムのパフォーマンスに関するデータです。デフォルトでは、複数のサービスがリソースの無料メトリクスを提供しています (Amazon EC2 インスタンス、Amazon EBS ボリューム、Amazon RDS DB インスタンスなど)。(以下略)

Amazon CloudWatch メトリクスの使用 - Amazon CloudWatch より

らしい。要は、リソースに関するデータね。
さて続き。

メトリクスの選択では「Billing(請求)」を選択。
f:id:ahrk-izo:20190215194415p:plain:w500


続いて、「概算合計請求額」を選択。
f:id:ahrk-izo:20190215194653p:plain:w500


5. [EstimatedCharges] の横にあるチェックボックスをオンにして、[メトリクスの選択] を選択します。

仰せのとおりに。
f:id:ahrk-izo:20190215195059p:plain:w500


ではラスト3つ。

6. 特定の金額を指定します。(概算請求額がグラフに表示されます。)

しきい値を設定する。とりあえず0.01USドルを超えたらメール来るようにする。

7. [通知の送信先] で、既存の通知リストを選択するか、新しい通知リストを作成します。

既存のリストってことで「NotifyMe(私に通知)」を選択

8. [アラームの作成] を選択します。

はい。クリックする。

f:id:ahrk-izo:20190215232543p:plain:w500


STEP4 : メールの確認処理を行う

請求アラートとメールが紐づくよう、72時間以内にメールの確認処理を行う。

メールがきた。
本文の「Confirm subcription」のリンクをクリック。
f:id:ahrk-izo:20190215232832p:plain:w500


こんな画面がでた。
f:id:ahrk-izo:20190215233606p:plain:w400


先まで開いていた画面はこうなっているので、「アラームの表示」をクリック。
f:id:ahrk-izo:20190215233721p:plain:w400


よし。できた!
f:id:ahrk-izo:20190215233951p:plain:w500

スポンサーリンク



[おまけ1] こういうメールが来る

実際、1つのサービスが無料利用枠を超えそうになったときに以下のようなメールが飛んできた。
f:id:ahrk-izo:20190217102439p:plain:w400

AWS Free Tier usage limit alerting via AWS Budgets 11/12/2018
Dear AWS Customer,
Your AWS account [ID] has exceeded 85% of the usage limit for one or more AWS Free Tier-eligible services for the month of November.

11月の1つ以上のサービスが、使用制限85%超えたぞー」って

おお!あぶね。めっちゃ助かった!
ってなった。(あるサービスのログを止めた)

[おまけ2] 料金について

料金表によると、東京リージョンのt2.microは1時間あたり0.0152USドル。
秒単位(最低60秒)での支払いで、1分使えばこの1/60が請求されるってことだな

料金表:オンデマンドインスタンスの料金 - Amazon EC2 (仮想サーバー) | AWS

f:id:ahrk-izo:20190217001510p:plain:w400



うん。今日も勉強になった。


ちなみにCloud9の環境が不要になった場合はこちらをどうぞ。
blog.rokisan.com


以上。