最適な料金モデルを選択する - コスト最適化の柱

最適な料金モデルを選択する

ワークロードコストモデルを実行する: ワークロードコンポーネントの要件を考慮し、料金のポテンシャルモデルを理解します。コンポーネントの可用性要件を定義します。ワークロードで関数を実行する複数の独立したリソースの有無、経時的に必要となるワークロード要件を確認します。デフォルトのオンデマンド料金モデルと他の適用可能なモデルを使用して、リソースのコストを比較します。リソースまたはワークロードコンポーネントで変更可能なものはすべて考慮します。

アカウントレベルの分析を定期的に実施する: コストモデリングを定期的に実行すると、複数のワークロードにまたがって最適化する機会が確実に得られます。例えば、複数のワークロードでオンデマンドを使用している場合、集計レベルでは変更リスクが低くなり、コミットメントベースの割引を運用すると全体的なコストが低くなります。2 週間から 1 か月の定期的なサイクルで分析を実行することを推奨します。この分析により、調整のための小口購入が可能になり、ワークロードやコンポーネントの変更に合わせて料金モデルの調整を続けることができます。

AWS Cost Explorer のレコメンデーションツールを使用して、コミットメント割引を適用する機会を見つけます。

スポットのワークロードを実行する機会を見つけるには、使用量全体の 1 時間ごとのビューを使用して、定期的に生じる使用量や伸縮性の変化を探します。

料金モデル: AWS には複数の料金モデルがあり、組織のニーズに合った最も費用対効果の高い方法でリソース料金を支払うことができます。次のセクションでは、各購入モデルについて説明します。

  • オンデマンドインスタンス

  • スポットインスタンス

  • コミットメント割引 - Savings Plans

  • コミットメント割引 - リザーブドインスタンス/キャパシティ

  • 地理的選択

  • サードパーティーの契約と料金

オンデマンドインスタンス: こちらはデフォルトの従量制料金モデルです。リソース (EC2 インスタンスや、オンデマンドの DynamoDB などのサービス) を利用する際は、定額料金をお支払いいただくだけで、長期のコミットメントはありません。アプリケーションの需要に応じて、リソースまたはサービスの容量を増減することができます。オンデマンドには時間単位の料金がありますが、サービスによっては 1 秒単位での利用も可能です (Amazon RDS、Linux EC2 インスタンスなど)。オンデマンドは、短期間のワークロード (4 か月間のプロジェクトなど)、定期的に急増するワークロード、中断できない予測不可能なワークロードなどを持つアプリケーションに推奨されます。ほかにもオンデマンドが適しているのは、中断のないランタイムを必要としていて、本番稼働前の環境のように実行時間がコミットメント割引 (Savings Plans またはリザーブドインスタンス) を受けられるほど長くないワークロードです。

スポットインスタンス: スポットインスタンスは、長期のコミットメントを必要とせず、オンデマンド料金の最大 90% 割引で利用できる予備の Amazon EC2 コンピューティングキャパシティです。スポットインスタンスを使用すると、アプリケーションの実行コストを大幅に削減したり、アプリケーションの計算性能を同じ予算でスケールしたりできます。スポットインスタンスはオンデマンドとは異なり、Amazon EC2 で容量を戻す必要がある場合、またはスポットインスタンスの料金が設定された料金を超えた場合に、2 分間の警告により中断されることがあります。スポットインスタンスが中断する時間は平均 5% 未満です。

スポットインスタンスは、キューまたはバッファがある場合や、独立した動作でリクエスト処理をする複数のリソース (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 を使用すると、1 年または 3 年の間、時間単位の支出コミットメントを行い、リソース全体で割引料金を利用することができます。Savings Plans では、Amazon EC2、AWS Fargate、AWS Lambda などの AWS コンピューティングサービス向けに割引をご用意しています。コミットメントを行った場合、お客様はそのコミットメント額を 1 時間ごとに支払い、その金額がオンデマンド使用量から割引料金で引かれます。例えば、1 時間あたり 50 USD をコミットしていて、オンデマンド使用料が 1 時間あたり 150 USD であるとします。Savings Plans の料金を考慮すると、特定の使用量の割引率は 50% になります。したがって、50 USD のコミットメントで 100 USD のオンデマンド使用料をカバーできます。お客様が支払うのは、50 USD (コミットメント) と、オンデマンド使用料の残りの 50 USD です。

Compute Savings Plans は最も柔軟性のあるプランで、利用料金が最大 66% 割引されます。アベイラビリティーゾーン、インスタンスサイズ、インスタンスファミリー、オペレーティングシステム、テナンシー、リージョン、コンピューティングサービスの全体にわたって、割引が自動適用されます。

Instance Savings Plans の場合、柔軟性は低くなりますが割引率は高くなります (最大 72%)。アベイラビリティーゾーン、インスタンスサイズ、オペレーティングシステム、テナンシーの全体にわたって、割引が自動適用されます。

お支払い方法は 3 つあります。

  • 前払いなし: 前払いがなく、時間単位の割引が適用された合計利用時間分を毎月支払います。

  • 一部前払い: 前払いなしに比べ割引率が高くなります。利用料の一部を前払いで支払います。その後、時間単位の割引が適用された合計利用時間分を毎月支払います。

  • 全額前払い: 全期間の使用料を前払いで支払います。コミットメントでカバーされる使用料については、残りの期間にその他のコストは発生しません。

この 3 つの購入オプションを任意に組み合わせてワークロードに適用できます。

Savings Plans は、まず、割引率の高いものから低いものの順に、購入に使用したアカウントの使用量に適用されます。次に、割引率の高いものから低いものの順に、すべての連結アカウントの使用量に適用されます。

すべての Savings Plans は、管理アカウントのような、使用量やリソースのないアカウントで購入することが推奨されます。そうすれば、Savings Plan がすべての使用の中で最も高い割引料金に適用され、割引額を最大化することができます。

ワークロードと使用量は通常、時間の経過とともに変化します。長期間にわたって、Savings Plans のコミットメントを少額ずつ、継続的に購入することが推奨されます。これにより、割引を最大化するための高いカバレッジレベルを維持できるうえに、コスト削減計画をワークロードや組織で求められる要件と常に一致させることができます。

割引の変動があるため、アカウントにターゲットカバレッジを設定しないでください。カバレッジが低くても、コスト削減の可能性が高くなるとは限りません。アカウントのカバレッジが低い場合でも、ライセンスを取得したオペレーティングシステムで、スモールインスタンスで構成して使用する場合は、割引率がわずか数パーセントにしかならないこともあります。代わりに、Savings Planレコメンデーションツールで利用できる潜在的な削減を追跡してモニタリングします。Cost Explorer で Savings Plans のレコメンデーションを頻繁に確認して (定期的な分析を実行)、削減率の見積りが組織で必要な割引率を下回るまで、コミットメントを引き続き購入します。例えば、潜在的な割引が 20% 未満の状態であることを追跡、モニタリングし、それを上回った場合に購入します。

使用率とカバレッジをモニタリングしますが、変更の検出のみを行います。特定の使用率 (カバレッジ率) を目指さないでください。これは削減額に応じてスケールするとは限らないからです。Savings Plans を購入してカバレッジが増加していることを確認し、カバレッジや使用率が減少した場合は、それを定量化して明確に示すようにします。例えば、ワークロードリソースを新しいインスタンスタイプに移行すると、既存のプランの使用率は低下しますが、パフォーマンス上の利点は削減率を上回ります。

コミットメント割引 – リザーブドインスタンス/コミットメント: Savings Plans と同様に、リザーブドインスタンス (RI) は、最小限のリソースを実行するコミットメントに対して最大 72% の割引を提供します。リザーブドインスタンスは、Amazon RDS、Amazon OpenSearch Service、Amazon ElastiCache、Amazon Redshift、DynamoDB で使用できます。Amazon CloudFront と AWS Elemental MediaConvert では、最低利用料金のコミットメントに対して割引が適用されます。現在、リザーブドインスタンスは Amazon EC2 で利用できますが、Savings Plans では柔軟性が向上し、管理オーバーヘッドなしで利用できる同じレベルの割引を提供しています。

リザーブドインスタンスでも、前払いなし、一部前払い、全額前払い、1 年または 3 年の期間といった同様の料金オプションをご用意しています。

リザーブドインスタンスは、リージョンまたは特定のアベイラビリティーゾーンで購入できます。アベイラビリティーゾーンで購入すると、キャパシティ予約が提供されます。

Amazon EC2 はコンバーティブル RI を備えていますが、柔軟性の向上と運用コストの削減のため、すべての EC2 インスタンスで Savings Plans を使用する必要があります。

リザーブドインスタンスの追跡と購入には、同じプロセスとメトリクスを使用する必要があります。アカウント全体の RI のカバレッジは追跡しないことが推奨されます。また、使用率のモニタリングや追跡はせず、Cost Explorer で使用状況レポートを表示して、その表の「純削減額」列を使用することが推奨されます。純削減額が著しく大きい場合は、未使用の RI を修正するためのアクションを実行する必要があります。

EC2 フリート: EC2 フリートは、ターゲットとするコンピューティングキャパシティを定義し、インスタンスタイプやフリートのオンデマンドとスポットのバランスを指定できる機能です。EC2 フリートによって、リソースの最低料金の組み合わせが自動的に起動され、定義されたキャパシティが達成されます。

地域の選択: ソリューションを設計する際、ユーザーに近いコンピューティングリソースの場所を探して、レイテンシー低下とデータ主権の強化を図ることが推奨されます。グローバルな利用者のニーズに応えるためには、複数のロケーションを使用する必要があります。コストを最低限に抑えられる地理的ロケーションを選択する必要もあります。

AWS クラウドインフラストラクチャはリージョンとアベイラビリティーゾーンを中心に構築されます。リージョンは世界各国にある物理的な場所であり、その中に複数のアベイラビリティーゾーンがあります。アベイラビリティーゾーンは、1 つ、または複数の独立したデータセンターで構成されています。各データセンターには冗長電源、ネットワーキング、および接続が装備されており、個別の施設に格納されています。

各 AWS リージョンは、地域の市場の条件下で運用されており、リソースの料金はリージョンごとに異なります。世界的に最小料金で稼働できるように、ソリューションのコンポーネントまたは全体を運用する特定のリージョンを選択します。AWS Simple Monthly Calculator を使用すると、さまざまな リージョンのワークロードにかかるコストを見積もることができます。

サードパーティー契約と料金: クラウドでサードパーティー製のソリューションまたはサービスを利用する場合、料金構造とコスト最適化の結果を連動させることが重要です。料金は、コスト最適化の結果とサービスの価値に合わせてスケールする必要があります。この一例として、削減率を使用したソフトウェアがあります。削減率 (結果) が高くなるほど請求額も上がるというものです。請求額に合わせてスケールする契約は、特定の請求書のあらゆる部分で結果が得られない限り、ほとんどの場合コストの最適化と連動していません。例えば、 Amazon EC2 の推奨事項を提供し、請求全体のある割合が課金されるソリューションでは、メリットを提供しない他のサービスを利用すると、その分増加します。もう 1 つの例は、管理するリソースのコストの割合に応じて課金されるマネージドサービスです。インスタンスサイズを大きくすると常に管理作業が増えるわけではありませんが、請求額が高くなります。これらのサービス料金設定に、コスト最適化プログラムまたはサービス機能が含まれていることを承知のうえで効率性を向上させます。