従量課金は停止できればクラウドのメリットを生かすことができるが、何にいくらかかっているのかどうにも把握しづらい。ひとまず参考にすべきはこの資料。
AWSの課金体系
下記2点について把握することができれば、大きく見積りを逸脱することは無い。
- EC2、RDSの「インスタンスタイプ×起動時間」分の料金が8~9割を占める
- データ通信についてはAWSリージョンから外向きの通信のみが課金対象(※見積が難しい)
RDSは起動した後、原則停止不可となる為、コストを抑える為には、EC2の稼働時間を如何にして必要最低限とするかが重要。下記も検討する。
- AutoScaling機能によりAlarm契機でスケールイン/アウト
- AutoScaling機能やAPIを利用してスケジュール停止/起動
また、コスト最適化の為に、下記を有効に活用しよう。
- Trusted Advisor活用(Amazonベストプラクティス通知機能)
- Billing Alert有効化(課金閾値設定による通知機能)
- Billing Report有効化(詳細課金レポートをS3に保存)
1. Trusted Advisor活用(Amazonベストプラクティス通知機能)
https://aws.amazon.com/jp/premiumsupport/trustedadvisor/
コスト最適化、セキュリティ、耐障害性、パフォーマンス改善の4つのカテゴリに分けて、AWSベストプラクティスに基づく推奨事項を通知する機能。特に「コスト最適化」では、不要リソース、アイドル状態のリソースの除外、予約容量の契約など、いかにコストを節約するかを表示。
- Amazon EC2 リザーブドインスタンス最適化
- Amazon EC2 軽度利用インスタンス
- アイドル中のロードバランサー
- 未活用のAmazon EBS ボリューム
- 関連付けられていない Elastic IP アドレス
- アイドル中の Amazon RDS DB インスタンス
※AWSサポートレベルにより使用可能な機能が制限される(ほとんどの機能はビジネスおよびエンタープライズレベルでのサポートレベル契約が必要)
2. Billing Alert有効化(課金閾値設定による通知機能)
総額またはサービス別合計額に閾値を設けてCloudWatchより通知可能。APIを利用してカスタムメトリクスで値を取得すれば、より複雑な通知も可能。
3. Billing Report有効化(詳細課金レポートをS3に保存)
詳細課金レポートを指定したS3バケットに自動保存する機能。課金に関連するほぼ全ての情報はこれで集めることができる。後はこれをどう分析するか。
レポート種別 | 時間 | タグ | 備考 |
毎月のレポート | 月単位 | なし | デフォルトでBillsページよりダウンロード可 |
請求明細レポート | 時間単位 | なし | |
毎月のコスト配分レポート | 月単位 | あり(※) | |
リソースおよびタグ付きの請求明細レポート | 時間単位 | あり(※) |
※任意で設定可能なユーザデータ(タグ情報)が含まれる
ユーザデータ(タグ情報)は全てのAWSリソースに対して設定しておくことは運用していく上で非常に重要となる。「Name」は必須とし、それ以外にもサブシステム別のIDや本番/開発等の分類情報を付加しておこう。