AWS コストについての覚書(CloudWatch・NAT Gateway・Cost Explorer)

AWS の各サービスのおかげでクラウド環境を作りやすくなった。一方で、AWS に詳しくないまま設定していると気づかぬうちに請求額が大きくなっていたりする。実際に直面した2つの事例について書く。

Cost Explorer を使う

兎にも角にも Cost Explorer を開いてみることから始める。AWS Cost Management > Cost Explorer と辿る。

まずは Granularity: dailyDimension: service に設定してみる。これで日別・サービス別の棒グラフで利用料の推移がわかる。月初には月額の料金が表示されていることもあるので心配しすぎなくてもよい。

Granularity は使用期間などに応じて各自で試してみてほしい。突然利用料が上がっていたり、意図せず上がり続けているサービスはないだろうか。続いて「EC2 – Other」と「CloudWatch」について事例を紹介する。

EC2-other (EC2 その他)

EC2-other が急に上がっていることがあった。「その他」と言われてもピンとこないので、その内訳を調べてみる。

設定を Dimension: usage typeService: EC2-other に変更する。これで EC2-other の中でも何に使われているのか分かるようになる。

今回の場合は NatGateway-Bytes の利用料があがっていたことがわかった。さらに調べて位みると NatGateway は送受信した時間と量によって従量課金が発生するので、何かしら予期せぬ通信が発生していることが明らかになった。

NatGateway の利用料が高くなる事例を検索するといくつか見つかる。設計を見直して、通らなくていいリクエストが NAT Gateway を通過するようになっていないか確認しよう。

CloudWatch

CloudWatch の利用料が急増しているパターンもあった。「その他」と同じ様にして内訳を調べてみた。設定は Dimension: usage typeService: CloudWatch にする。

今回の場合は GMD-Metrics という値が大きくなっていた。GMD とは GetMetricsData の略である。CloudWatch のメトリクスは API 経由で取得することができ、メトリクスの取得数に応じて従量課金が発生する。

こちらも事例としては少なくないようだ。API 経由でメトリクスを使用している人は、サードパーティーの監視ツールで CloudWatch のメトリクスを取得していないか確認しよう。このパターンが多いらしい。

CloudWatch を開いて Metrics > All metrics を開き、Metrics > Usage > By AWS Resource から CloudWatch の GMD Metrics CallCount を選択し、Graphed metrics を見てみよう。API がコールされた回数がわかるのでどれくらいが従量課金につながっているか分かるだろう。

サードパーティー製品が取得しようとしているメトリクスを減らしたり、リージョンを狭めたり、リクエスト頻度を減らすなどの対応をすればコール数が減るので料金を抑えられるだろう。また、サードパーティー製品が対応していれば API を使うのではなく Metrics streams を使うことでコスト削減することもできる。

タイトルとURLをコピーしました