最適な料金モデルを選択する
ワークロードコストモデルを実行する: ワークロードコンポーネントの要件を考慮し、料金のポテンシャルモデルを理解します。コンポーネントの可用性要件を定義します。ワークロードで関数を実行する複数の独立したリソースの有無、経時的に必要となるワークロード要件を確認します。デフォルトのオンデマンド料金モデルと他の適用可能なモデルを使用して、リソースのコストを比較します。リソースまたはワークロードコンポーネントで変更可能なものはすべて考慮します。
アカウントレベルの分析を定期的に実施する: コストモデリングを定期的に実行すると、複数のワークロードにまたがって最適化する機会が確実に得られます。例えば、複数のワークロードでオンデマンドを使用している場合、集計レベルでは変更リスクが低くなり、コミットメントベースの割引を運用すると全体的なコストが低くなります。2 週間から 1 か月の定期的なサイクルで分析を実行することを推奨します。この分析により、調整のための小口購入が可能になり、ワークロードやコンポーネントの変更に合わせて料金モデルの調整を続けることができます。
AWS Cost Explorer
スポットのワークロードを実行する機会を見つけるには、使用量全体の 1 時間ごとのビューを使用して、定期的に生じる使用量や伸縮性の変化を探します。
料金モデル: AWS には複数の料金モデル
-
オンデマンドインスタンス
-
スポットインスタンス
-
コミットメント割引 - Savings Plans
-
コミットメント割引 - リザーブドインスタンス/キャパシティ
-
地理的選択
-
サードパーティーの契約と料金
オンデマンドインスタンス: こちらはデフォルトの従量制料金モデルです。リソース (EC2 インスタンスや、オンデマンドの DynamoDB などのサービス) を利用する際は、定額料金をお支払いいただくだけで、長期のコミットメントはありません。アプリケーションの需要に応じて、リソースまたはサービスの容量を増減することができます。オンデマンドには時間単位の料金がありますが、サービスによっては 1 秒単位での利用も可能です (Amazon RDS、Linux EC2 インスタンスなど)。オンデマンドは、短期間のワークロード (4 か月間のプロジェクトなど)、定期的に急増するワークロード、中断できない予測不可能なワークロードなどを持つアプリケーションに推奨されます。ほかにもオンデマンドが適しているのは、中断のないランタイムを必要としていて、本番稼働前の環境のように実行時間がコミットメント割引 (Savings Plans またはリザーブドインスタンス) を受けられるほど長くないワークロードです。
スポットインスタンス: スポットインスタンス
スポットインスタンスは、キューまたはバッファがある場合や、独立した動作でリクエスト処理をする複数のリソース (Hadoop データ処理など) がある場合に最適です。通常、これらのワークロードは、バッチ処理、ビッグデータと分析、コンテナ化された環境、ハイパフォーマンスコンピューティング (HPC) などの耐障害性、ステートレス性、柔軟性を備えています。テスト環境や開発環境などの重要性の低いワークロードもスポットの候補です。
スポットインスタンスは、Amazon EC2 Auto Scaling グループ、Amazon EMR、Amazon Elastic Container Service (Amazon ECS)、AWS Batch など、複数の AWS サービスにも統合されています。
スポットインスタンスを回収する必要がある場合、Amazon EC2 から、CloudWatch Events を介して、およびインスタンスメタデータで、スポットインスタンスの中断通知により 2 分前の警告が送信されます。この 2 分間を使って、アプリケーションの状態を保存したり、実行中のコンテナを空にしたり、最終ログファイルをアップロードしたり、ロードバランサーからインスタンスを削除したりできます。2 分経つと、スポットインスタンスに休止、停止、終了のいずれかが行えます。
ワークロードにスポットインスタンスを採用する際は、以下のベストプラクティスに従ってください。
-
可能な限り多くのインスタンスタイプに柔軟に対応: インスタンスタイプのファミリーとサイズに柔軟に対応することで、目標とするキャパシティ要件を満たす可能性を高め、コストを可能な限り削減し、中断の影響を最小限に抑えます。
-
ワークロードの実行場所に柔軟に対応: 使用できる容量はアベイラビリティーゾーンに応じて異なります。それにより、複数の予備容量プールを利用して目標容量を満たせる可能性が増し、コストを最小限に抑えることができます。
-
継続性に配慮した設計: ステートレスかつ耐障害性のあるワークロードを設計し、EC2 キャパシティの一部が中断されても、ワークロードの可用性やパフォーマンスに影響がないようにします。
-
パフォーマンスに応じてワークロードのコスト最適化を最大化するため、オンデマンドおよび Savings Plans/リザーブドインスタンスと組み合わせてスポットインスタンスを使用することが推奨されます。
コミットメント割引 - Savings Plans: AWS で特定量のリソースの使用を予約またはコミットすると、さまざまな方法でコストを削減でき、リソース料金の割引を受けることもできます。Savings Plans
Compute Savings Plans
Instance Savings Plans
お支払い方法は 3 つあります。
-
前払いなし: 前払いがなく、時間単位の割引が適用された合計利用時間分を毎月支払います。
-
一部前払い: 前払いなしに比べ割引率が高くなります。利用料の一部を前払いで支払います。その後、時間単位の割引が適用された合計利用時間分を毎月支払います。
-
全額前払い: 全期間の使用料を前払いで支払います。コミットメントでカバーされる使用料については、残りの期間にその他のコストは発生しません。
この 3 つの購入オプションを任意に組み合わせてワークロードに適用できます。
Savings Plans は、まず、割引率の高いものから低いものの順に、購入に使用したアカウントの使用量に適用されます。次に、割引率の高いものから低いものの順に、すべての連結アカウントの使用量に適用されます。
すべての Savings Plans は、管理アカウントのような、使用量やリソースのないアカウントで購入することが推奨されます。そうすれば、Savings Plan がすべての使用の中で最も高い割引料金に適用され、割引額を最大化することができます。
ワークロードと使用量は通常、時間の経過とともに変化します。長期間にわたって、Savings Plans のコミットメントを少額ずつ、継続的に購入することが推奨されます。これにより、割引を最大化するための高いカバレッジレベルを維持できるうえに、コスト削減計画をワークロードや組織で求められる要件と常に一致させることができます。
割引の変動があるため、アカウントにターゲットカバレッジを設定しないでください。カバレッジが低くても、コスト削減の可能性が高くなるとは限りません。アカウントのカバレッジが低い場合でも、ライセンスを取得したオペレーティングシステムで、スモールインスタンスで構成して使用する場合は、割引率がわずか数パーセントにしかならないこともあります。代わりに、Savings Planレコメンデーションツールで利用できる潜在的な削減を追跡してモニタリングします。Cost Explorer で Savings Plans のレコメンデーションを頻繁に確認して (定期的な分析を実行)、削減率の見積りが組織で必要な割引率を下回るまで、コミットメントを引き続き購入します。例えば、潜在的な割引が 20% 未満の状態であることを追跡、モニタリングし、それを上回った場合に購入します。
使用率とカバレッジをモニタリングしますが、変更の検出のみを行います。特定の使用率 (カバレッジ率) を目指さないでください。これは削減額に応じてスケールするとは限らないからです。Savings Plans を購入してカバレッジが増加していることを確認し、カバレッジや使用率が減少した場合は、それを定量化して明確に示すようにします。例えば、ワークロードリソースを新しいインスタンスタイプに移行すると、既存のプランの使用率は低下しますが、パフォーマンス上の利点は削減率を上回ります。
コミットメント割引 – リザーブドインスタンス/コミットメント: Savings Plans と同様に、リザーブドインスタンス
リザーブドインスタンスでも、前払いなし、一部前払い、全額前払い、1 年または 3 年の期間といった同様の料金オプションをご用意しています。
リザーブドインスタンスは、リージョンまたは特定のアベイラビリティーゾーンで購入できます。アベイラビリティーゾーンで購入すると、キャパシティ予約が提供されます。
Amazon EC2 はコンバーティブル RI を備えていますが、柔軟性の向上と運用コストの削減のため、すべての EC2 インスタンスで Savings Plans を使用する必要があります。
リザーブドインスタンスの追跡と購入には、同じプロセスとメトリクスを使用する必要があります。アカウント全体の RI のカバレッジは追跡しないことが推奨されます。また、使用率のモニタリングや追跡はせず、Cost Explorer で使用状況レポートを表示して、その表の「純削減額」列を使用することが推奨されます。純削減額が著しく大きい場合は、未使用の RI を修正するためのアクションを実行する必要があります。
EC2 フリート: EC2 フリート
地域の選択: ソリューションを設計する際、ユーザーに近いコンピューティングリソースの場所を探して、レイテンシー低下とデータ主権の強化を図ることが推奨されます。グローバルな利用者のニーズに応えるためには、複数のロケーションを使用する必要があります。コストを最低限に抑えられる地理的ロケーションを選択する必要もあります。
AWS クラウドインフラストラクチャはリージョンとアベイラビリティーゾーンを中心に構築されます。リージョンは世界各国にある物理的な場所であり、その中に複数のアベイラビリティーゾーンがあります。アベイラビリティーゾーンは、1 つ、または複数の独立したデータセンターで構成されています。各データセンターには冗長電源、ネットワーキング、および接続が装備されており、個別の施設に格納されています。
各 AWS リージョンは、地域の市場の条件下で運用されており、リソースの料金はリージョンごとに異なります。世界的に最小料金で稼働できるように、ソリューションのコンポーネントまたは全体を運用する特定のリージョンを選択します。AWS Simple Monthly Calculator を使用すると、さまざまな リージョンのワークロードにかかるコストを見積もることができます。
サードパーティー契約と料金: クラウドでサードパーティー製のソリューションまたはサービスを利用する場合、料金構造とコスト最適化の結果を連動させることが重要です。料金は、コスト最適化の結果とサービスの価値に合わせてスケールする必要があります。この一例として、削減率を使用したソフトウェアがあります。削減率 (結果) が高くなるほど請求額も上がるというものです。請求額に合わせてスケールする契約は、特定の請求書のあらゆる部分で結果が得られない限り、ほとんどの場合コストの最適化と連動していません。例えば、 Amazon EC2 の推奨事項を提供し、請求全体のある割合が課金されるソリューションでは、メリットを提供しない他のサービスを利用すると、その分増加します。もう 1 つの例は、管理するリソースのコストの割合に応じて課金されるマネージドサービスです。インスタンスサイズを大きくすると常に管理作業が増えるわけではありませんが、請求額が高くなります。これらのサービス料金設定に、コスト最適化プログラムまたはサービス機能が含まれていることを承知のうえで効率性を向上させます。