【AWS認定(SAP-C02)ノート】コスト最適化
はじめに
本記事は、AWS Certified Solutions Architect - Professional の下記の分野とタスクステートメントに関連するAWSサービスの特徴やポイントのまとめです
- 第 1 分野: 複雑な組織に対応するソリューションの設計
- タスクステートメント 5: コスト最適化と可視化の戦略を決定する。
- 第 2 分野: 新しいソリューションのための設計
- タスクステートメント 6: ソリューションの目標と目的を達成するためのコスト最適化戦略を決定する。
- 第 3 分野: 既存のソリューションの継続的な改善
- タスクステートメント 5: コスト最適化の機会を特定する。
EC2
リザーブドインスタンス
依然として有効な割引オプション
- Organizationsで一括請求している場合は、複数のアカウントで共有可能
- 即時購入も購入予約をキューに入れることも可能
- 購入予約ではAZの指定はできない、予約日まではいつでもキャンセル可能
購入期間
1年 or 3年
支払い
- すべて前払い
- 一部前払い
- 前払いなし (毎月払い)
提供クラス
スタンダード | コンバーティブル | |
---|---|---|
変更 | O - サイズ:元の正規化係数の合計と一致すること (必要) |
O |
交換 | X | O (インスタンスファミリー、プラットフォーム、テナンシー) ※ 元のリザーブドインスタンスよりも下がるレベルには交換不可 |
スポットインスタンス
上限料金をリクエストして使用
- 中断される場合
- スポット料金が上限料金を超えた場合
- AZに利用可能なキャパシティがなくなった場合
中断の2分前に
- メタデータ(
spot/instance-action
)への通知 - EventBridge(
”detail-type”:”EC2SpotInstance Interruption Warning”
)
で知ることができる
中断のリスクが高まったとき:推奨事項が EventBridge(”detail-type”:”EC2SpotInstance Rebalance Recommendation”
)で通知される
中断時:EC2インスタンスは終了、停止、休止状態になる
中断が発生してもアプリケーションに影響が少ないケースで使用:データ分析、バッチジョブ、検証環境
Dedicated Hosts (専用ホスト)
- 専用物理サーバーにEC2インスタンスを起動できる
- ソフトウェアのライセンスを、既存のソケット単位、コア単位、VM単位でBYOLとして使用できる
- インスタンスファミリー、AZを指定する必要がある
- ホストが起動した後は、ホストにインスタンスを作成
- アフィニティで「ホスト」選択:EC2インスタンスが停止した後に再起動する時に、同じホストで再開
料金オプション
- オンデマンドDedicated Hosts:最低1分、以降1秒単位で請求発生
- Dedicated Hosts Reservations:1年または3年でインスタンスファミリー、AZを指定して予約することで割引が適用される
- 支払いオプション:全額前払い、一部前払い、前払いなし
Savings Plans
1年または3年期間で時間あたりの使用料金を契約することで、割引料金で使用できる
EC2 Instance Savings Plans
インスタンスタイプではなく、インスタンスファミリーを決めればいいので、Dedicated Hostsにも適用される
Compute Savings Plans
EC2インスタンス、Fargate、Lambdaの使用に適用
- EC2:リージョン、Dedicated Hostsなどテナンシー、インスタンスファミリー、サイズ、OSに関係なく適用
- Fargate、Lambda:リージョンに関係なく適用
SageMaker Savings Plans
対象となるSageMaker MLインスタンスに関係なく適用
リザーブドインスタンスとSavings Plansの比較
インスタンスタイプ | リージョン | OS | |
---|---|---|---|
リザーブドインスタンス | 選択 | 選択 | 選択 |
EC2 Instance Savings Plans | ファミリーのみ | 選択 | - |
Compute Savings Plans | - | - | - |
S3
S3 Intelligent-Tiering
アップロード後の経過日数によってアクセス頻度の変化するパターンが一定でない場合や、アクセスパターンが予測できない場合に最もコスト効率の良いストレージクラス
- 30日間アクセスされていないオブジェクト:低頻度アクセス階層へ移動
- 90日間アクセスされていないオブジェクト:アーカイブインスタンス階層へ移動
- 低頻度アクセス階層、アーカイブインスタンス階層のオブジェクトにリクエストがあると高頻度アクセス階層へ移動
S3リクエスタ支払い
- リクエスト料金とデータ転送料金をリクエストした側のアカウントに請求する
- 有効にすると、AWSアカウント以外からのアクセスができなくなる
- リクエスタはヘッダーに
x-amz-request-payer
を含むことで、請求されることを了解している旨を伝える必要がある-
x-amz-request-payer
の値には、requester
を設定
-
S3 Storage Lens
- 複数アカウント、複数のS3バケットの使用状況をS3コンソールのダッシュボードで分析できる
- バブル分析、棒グラフ、折れ線グラフなどでX軸とY軸に任意のメトリクスを選択しながら分析できる
DynamoDB
オンデマンドモード
書き込み、読み込みリクエストが発生するごとに料金が発生する
プロビジョンドキャパシティモード
WCU、RCUを設定する
WCU
1秒間の書き込み回数・容量に対して設定
1 WCU:1秒間に1KBの項目を1回書き込む
RCU
1秒間の読み込み回数・容量に対して設定
1 RCU:1秒間に4KBの項目に1回 (強い整合性)、または2回 (結果整合性)読み込む
リザーブドキャパシティ
1年 or 3年
容量:100RCU、100WCU単位
比較
オンデマンドモード | プロビジョンドキャパシティモード | |
---|---|---|
ケース | - リクエストが常に発生せず、稀に発生 - 急激なスパイクリクエストが発生 |
継続的なリクエストが発生し、緩やかな増減が発生 |
DynamoDB Accelerator (DAX)
- VPC内でDynamoDBのキャッシュにアクセスできる
- マイクロ秒の応答が必要なケースで検討できる
- 複数のノードでクラスタを作成して、複数のAZに配置できる
- ノードの時間単位で料金が発生
コスト配分タグ
- 組織におけるタグのルール (Organizationsタグポリシー、SCPなど) を決め、そのルールに基づいてタグを運用する
- タグは、請求メニューのコスト配分タグで指定してアクティブにできる
- アクティブにしたタグは、コスト配分レポートで使用され、Cost Explorerで分析に使うことも可能
AWS Cost Explorer
- コストと使用状況のグラフビューが使用できる
-コスト配分タグでアクティブにしたタグキーで分析したり、フィルタリングでコストデータを確認できる - 特定サービスの使用状況のモニタリングにも使用可能
- 除外フィルターで、より正確な使用状況を確認できる
- 設定したフィルター状態を保存、CSVでダウンロードできる
コストの予測
過去12ヶ月のコストデータに基づくコストの分析や予測を行える
これにより、次の12ヶ月のコストを予測するのに役立つレポートを作成できる
予約とSavings Plans
- 予約(EC2 RI、ElastiCache、OpenSearch Service、Redshift、RDS)の使用状況と過去実績に基づく推奨事項が確認できる
- 期限切れのアラートを、指定したメールに送信できる
- 現在の使用状況に対しての予約推奨事項を提供してくれる
AWS Cost Anomaly Detection
- 支払いパターンをモニタリングしながら異常なコストを検出する
- コストカテゴリーで任意のカテゴリーを設定しての異常検出が可能
- Organizationsでの連結アカウントは、最大10までコストモニターで選択できる
AWS Cost and Usage Reports (AWS CUR)
詳細な課金の情報を、S3に保存されるCSV、Parquetデータで確認できる
CSVデータを、以下の方法で分析できる
- AthenaからSQLクエリで分析
- QuickSightを使用して可視化されたグラフのGUIで分析
- RedShiftにロードして統計レポート分析
AWS Budgets
AWSアカウント、Organizations組織に跨った全体の予算や特定の条件でフィルタリングした条件での予算を作成できる
Budgetsダッシュボード
- 予算に対しての使用状況モニタリング
- 固定目標金額で予算管理
- 月次予算や増加していく予算パターンの設定
- Budgetsの情報は8 ~ 12時間に1回更新
予算アラート
最大10個のメールに直接送信、または1つのSNSトピックにパブリッシュできる
アラート発信
- 超えることが予測されたタイミング
- 設定した予算のしきい値を超えた時
請求アラーム
アカウントの請求設定で「請求アラートを受け取る」オプションを有効にすると、バージニア北部のCloudWatchで請求アラームを設定できる
AWSアカウント全体、Organizations組織全体の請求額メトリクスに対してアラームを設定し、SNSトピックを介して担当者に通知できる
Organizations一括請求:マスターアカウントで組織の合計請求額に対しての請求アラームと各アカウント別の請求アラームを設定できる
AWS Compute Optimizer
AWS リソースの設定と使用率のメトリクスを分析するサービス
リソースが最適かどうかを報告し、最適化に関するレコメンデーションを生成してコストを削減およびワークロードのパフォーマンスを改善する
次のリソースに関するレコメンデーションを生成する
- EC2インスタンス
- Auto Scaling グループ
- EBS ボリューム
- Lambda 関数
- ECSのFargate
Discussion