コスト予測
AWSのようなクラウド環境☁️ では、使った分だけお金💰 がかかります!
残念ながら会社の資金は無限ではなく😢 、不要なコストを削った分だけ利益も上がるので、
- 🤔 これからやろうとしていることにどれだけコストが掛かりそうか(コスト予測)
- 🤔 今自分がしていることにどれだけコストがかかっているか(コスト把握)
この二点を意識しましょう!
うっかりしていると、とんでもない請求額になってしまうかもしれません……
AWSには、簡単にコスト予測をするためのツールが用意されています。
AWS Pricing Calculator
リソースごとの予測値を入れるだけで、簡単にコストを見積もることができます。
新しいサービスを作ったり、構成を変えたりする場合は事前に見積もりをしましょう。
https://calculator.aws/#/estimate?id=0d1acc8d6c9d2d9fa2854e382ae2599115d2e945
使い方
- ハンズオン2と似たようなチャットサービス
- APIが二種類
- チャットを書き込むためのAPI
- チャットを読み込むためのAPI
- ページ本体はCloudFront + S3
- アクセス数
- 1時間あたり1,000アクセス
- 1時間あたり100回書き込み
- APIが二種類
利用しているサービス
- API Gateway
- リクエスト回数: 1100req/h
- 書き込み+読み込み
- リクエストあたりの平均データ量: 2KB
- リクエスト回数: 1100req/h
- Lambda
- 書き込み
- リクエスト回数: 100req/h
- リクエストあたりの平均処理時間: 100ms
- メモリ: 128MB
- ストレージ: 512MB
- 読み込み
- リクエスト回数: 1000req/h
- リクエストあたりの平均処理時間: 100ms
- メモリ: 128MB
- ストレージ: 512MB
- 書き込み
- cloudwatch logs(lambdaのみ)
- データ取り込み量: 237.6MB/月
- lambda1回あたり 0.3KB * 24h * 30d = 237.6MB
- データ取り込み量: 237.6MB/月
- dynamodb
- オンデマンドキャパシティ
- テーブル: スタンダード
- テーブルサイズ: 0GB
- 1ヶ月のみ履歴保存 100rec*24h*30d*100B = 7.2MB/m
- 平均アイテムサイズ: 100B
- キャパシティユニット
- write
- 書き込み回数: 100/h
- read
- 読み込み回数: 1000/h
- write
- s3
- スタンダード
- ストレージ: 0.00002GB/m
- cloudfront(東京リージョン)
- インターネット転送量: 0.8GB
- 1KB * 792000rec/m ≒ 0.8GB
- リクエスト数: 2376000rec/m
- 792000rec/m * 3ファイル(html・css・js) = 2376000rec/m
- インターネット転送量: 0.8GB
- WAF
- 制御リソース数: 1(cloudfront)
- ルール数: 1
- リクエスト数: 2.3 million/m
計算結果
コスト把握
事前に予測をしても、あくまで予測です。
しっかり現在どれだけのコストが掛かっているのか確かめましょう。
実は想定外のコストが発生しているかもしれません……
Cost Explorer
コスト確認には欠かせない、AWSの重要サービス。
- リソースごとのコストをグラフ・表形式で可視化
- 毎時、日別、月別でグループ化
- リソースのオペレーション単位でも可視化
- フィルタ機能で条件を絞りながら確認可能
タグ付け
AWSリソースにはタグ🏷️ をつけることができます。
タグ付けをするメリット
- リソースの情報を残す
- 動作している環境
- リソースの役割 etc.
- Cost Explorerでの条件の絞り込みに使える(コスト配分タグのみ)
- Application
- ApplicationRole
- Name
- Project
- Purpose
- Service
クラウド破産・クラウド死☠️
クラウドでは、使い方次第ではとんでもない料金の請求を受ける可能性があります。
https://cloud-textbook.com/84/
主な要因
- 設計・実装ミス
- Lambdaの大量発火によるCloudWatch Logsの増大
- ECS/Fargateの設定のせいでコンテナが起動しようとしては失敗するのを毎分繰り返す→ AWS Configで構成変更の記録がそのたびに走る
- 第三者による不正利用
- アクセスキー、シークレットアクセスキーを第三者に奪われ、上限までマイニング ⛏️ 用のEC2を建てられる
まとめ
- AWSを使う際は、以下の二点に気を付ける
- 事前にどの程度コストがかかるか予測する
- 実際にどれだけコストが掛かっているか確認する