cloudpackエバンジェリストの吉田真吾@yoshidashingo)です。

JAWS-UG横浜支部で朝活をやってます。

今日は、使っていないAWSリソースを立ち上げっぱなしにしておくのはもったいないということで、基本的な起動しっぱなし防止方法を記載します。

1. AWS利用料が跳ねることに気づけるようにCloudWatchでBilling Alarmを設定する

「一時的に大きなインスタンス・多数のインスタンスで検証するけど、後で元のサイズに戻さないと」と思いながら大きいインスタンス・たくさんのインスタンスのまま放置してしまうことを防止したい。そんなときに、このまま利用していくと月末にいくらくらいの請求になるよという見積り額にしきい値を設定し、見積り計算が超えそうになったらアラームを送信してくれる「Billing Alarm」を作成します。

1-1. CloudWatchのコンソールを開き「N. Virginiaリージョン」を選択

CloudWatch で Billing Alarm を作成する (1)

1-2. ‘Billing’ でメトリクスを検索し、Total Estimated Charge を選択

CloudWatch で Billing Alarm を作成する (2)

1-3. アラーム名、金額(US$)、メール送信先を設定してアラームを作成

CloudWatch で Billing Alarm を作成する (3)
↑月額見積り200ドルで設定した例

これで、月末になってから「なんかスゴい料金になってたー!」というのはある程度防げると思います。

2. AWS Trusted Advisorでコスト最適化のアドバイスを受ける

Trusted Advisorではコスト最適化のアドバイスを受けることが可能です。

ただし、AWSサポートの「無料」「開発者」レベルのアカウントでアドバイスされるのは、37項目のうち、以下の4つのチェックのみです。

  • パフォーマンス
    • サービス制限:サービス上限に対して80%を超えている使用量をチェックします。
  • セキュリティ
    • セキュリティグループ – 開かれたポート:特定のポートに対して無制限アクセス(0.0.0.0/0)を許可しているセキュリティグループのルールをチェックします。
    • ルートアカウントのMFA:ルートアカウントでMFAが有効にされていない場合にアラートを表示します。
    • IAM の使用:AWS Identity and Access Management (IAM)が使用されているかについてチェックします。

AWS Trusted Advisor でコスト最適化のアドバイスを受ける (1)
AWS Trusted Advisor でコスト最適化のアドバイスを受ける (2)

ビジネスレベル以上にアップグレードすると、コスト最適化のアドバイスが受けられるようになります。ビジネスサポートの月額ミニマムは$100になってますが、色々検証したり運用してると、コスト最適化のアドバイスに従うだけで、支払っている分以上の節約ができる場合が多いと思います。当然、初回応答時間やインフラストラクチャイベント管理などが非常に手厚くなりますので、トータルでかなりおトクではないかと思います。

さて、ではAWSサポートをビジネス以上にしたとして、コスト最適化のアドバイスはどんな感じにされるか見てみましょう。

2-1. Trusted Advisor画面を開き、コスト最適化を選択

  • サービス選択パネルからTrusted Advisorを選択
    AWS Trusted Advisor でコスト最適化のアドバイスを受ける (3)
  • Trusted Advisor画面でコスト最適化を選択
    AWS Trusted Advisor でコスト最適化のアドバイスを受ける (4)

2-2. アドバイスをレビューして節約を実践する

たとえば私の個人アカウントの場合、見てみたらこんなアドバイスがされました。

過去のEC2の利用頻度から、リザーブドインスタンス(1つも買ったことない)数を計算してくれるので、これを採用すると月額で最大 $10.68 (51.9%)を節約できる可能性がある
アイドル状態のロードバランサーがあり、月額で最大 $19.44 を節約できる
利用頻度の低いAmazon EBSボリュームがあり、月額で最大 $0.48 を節約できる
Amazon RDSアイドル状態のDBインスタンスがあり、月額で最大 $266.40 を節約できる
AWS Trusted Advisor でコスト最適化のアドバイスを受ける (5)

下3つは完全に使ってないヤツでしたので、リソースを消すことで、合計 $300 近く節約できることに気づけました。

どうでしょう、$100なんて安いものでしょ。

まとめ

  • CloudWatchでBillingアラームを設定しよう。
  • AWSサポート(ビジネス以上)に入ってTrusted Advisorでコスト最適化アドバイスを受けよう。

その他、実際に運用してく中での節約方法なども次回以降書いてみようと思います。

元記事はこちらです。
AWSリソースの起動しっぱなし防止-CloudWatchでBilling Alarm&Trusted Advisor