請求とコストの最適化の要点
入門ガイド
はじめに
クラウドを使用してアプリケーションやシステムをホストする場合、請求モデルがどのように機能し、どのようにコストを最適化できるかを理解することが重要です。クラウドを使えば、固定支出 (データセンターや物理サーバーなど) を変動費の支出に置き換え、消費した分のリソースに対してのみ支払うことができます。使用するリソースの種類に応じて、さまざまな請求項目があります。リソースの稼働時間、保存、転送、処理されるデータの量、API 呼び出しの回数など、さまざまです。
-
コストを確認するにはどうすればよいですか?
請求内容を理解する最初のステップは、所有しているリソースとその実行コストを確認することです。AWS マネジメントコンソールの AWS 請求ダッシュボードには、現在の月額費用の概要と、現在実行中のリソースに基づく予測が表示されます。コンソールにまだ慣れていない場合は、AWS マネジメントコンソール入門チュートリアルを読むことをお勧めします。請求情報は機密情報と見なされるため、最初は AWS アカウントのルートユーザーのみがコンソールのこのセクションにアクセスできます。請求ダッシュボードを表示できない場合は、AWS IAM ユーザーにアクセスを委任する必要があります。以下は請求ダッシュボードの例で、現在使用されているサービスと発生した料金を示しています。
請求ダッシュボードにはコストの概要と大まかな内訳が表示されますが、コストをさらに詳しく調べたい場合もあるでしょう。これは AWS Cost Explorer を使用して実行できます。どのサービスが使用されたか、各サービスが毎月の支出に寄与した金額を確認できます。さまざまな値を示すグラフもあり、これを使用して、リージョンやサービスなど、さまざまなディメンションでフィルタリングできます。請求ダッシュボードの例を次に示します。
-
支出予測が一定の金額を超えたときにアラートを受け取ることはできますか?
はい。 これは、新しい AWS アカウントを作成するときに最初に設定するものの 1 つになるでしょう。Amazon CloudWatch ユーザーガイドの指示に従って、推定請求額の合計に基づいてアラートを設定します。必要に応じて、さまざまなメトリクスやディメンションに基づいて追加のアラームを設定できます。
-
無料のリソースにはどのようなものがありますか?
AWS 無料利用枠では、さまざまな AWS のサービスをそれぞれの上限まで無料でお試しいただけます。無料利用枠には、12 か月無料、無期限無料、短期トライアルの 3 タイプがあります。12 か月無料タイプを使用したサービスでは、アカウント作成日からの 1 年間、所定の上限までサービスを無料でご使用いただけます。無期限無料タイプを使用したサービスでは、AWS アカウントをお持ちのあいだは常に、所定の上限までサービスを無料でご使用いただけます。短期トライアルタイプを使用したサービスでは、選択されたサービスに応じて、所定の期間か、または 1 回に限り、製品を無料でご使用いただけます。現在使用している無料利用枠リソースとその使用量を確認するには、AWS アカウントの [Billing] (請求) セクションにある 無料利用枠ダッシュボードを開きます。表示される内容の例を以下に示します。アカウントをまだ設定していない場合、または AWS を初めて使用する場合は、AWS マネジメントコンソールに習熟し、「AWS 環境のセットアップ」を読むことをお勧めします。
-
毎月予測可能な固定金額を支払うことはできますか?
AWS のサービスは通常、リソースの実行時間、処理または転送されるデータの量、リクエスト数など、さまざまな要素に基づいて消費量ごとに請求されます。一部のサービスには無料利用枠があり、月額料金は使用するサービスの組み合わせによって異なります。
予測可能な固定料金のソリューションをお探しなら、Amazon Lightsail は使いやすい仮想プライベートサーバー (VPS) インスタンス、コンテナ、ストレージ、データベースなどを費用対効果の高い月額料金で提供するサービスです。例として、このチュートリアルに従って Amazon Lightsail に WordPress サイトをデプロイしてみましょう。
-
毎月の請求額を減らすにはどうすればいいですか?
毎月の請求額をさまざまな方法で削減できます。使用しているインスタンスやデータベースの数量やサイズの最適化、 ライセンスされたデータベースからオープンソースのデータベースへの移行、 需要に応じた自動的なスケールアップとスケールダウン、AWS Lambda や使用していないときはゼロにスケールダウンするその他のサーバーレスサービスを使用するようにサービスを変更することなど、多岐にわたります。もう 1 つの選択肢は、24 時間 365 日使用されていない環境やリソースをオフにすることです。一例として、1 週間の合計時間は 168 時間です。デベロッパーが週 7 日、営業時間 (午前 8 時から午後 6 時 [10 時間]) にのみ開発環境を使用している場合、開発環境をオフにすると、週に 98 時間 (約 58.33%) 節約できます。このソリューションを実装するには、 AWS での Instance Scheduler を検討し、スケジュールに従ってインスタンスとデータベースを自動的にオフにします。以下のセクションでは、AWS スポットインスタンスの使用、負荷に応じてスケールアップまたはスケールダウンする自動スケーリング、ネットワーク、コンピューティング、およびデータベースのコストを最適化する具体的なシナリオについて説明します。
-
スポットインスタンスとは?
EC2 インスタンスを起動すると、そのインスタンスはオンデマンドインスタンスと呼ばれ、関連する実行コストが秒単位で発生します。また、EC2 スポットインスタンスとしてスピンアップして、AWS クラウドの未使用の EC2 容量を活用することもできます。スポットインスタンスは、オンデマンド料金に比べ最大 90% の割引料金でご利用いただけます。ここで注意すべき点は、未使用の EC2 容量に依存しているため、オンデマンドインスタンスが急増した場合、ある時点で終了し、その際には 2 分間の警告が表示されることです。これにより、インスタンスで実行中のリクエストをすべて完了し、正常にシャットダウンしたり、スポット容量が再び利用可能になるまで一時停止したりできます。また、さまざまなスポットインスタンスタイプを組み合わせて、リクエストのための十分な容量がなくなる可能性を減らすこともできます。詳細については、次のセクションを参照してください。
-
需要に応じてリソースを自動的にスケーリング
現在のワークロードに基づいてリソースをスケールアップまたはスケールダウンすることで、受け取るリクエストを処理するのに十分な容量を確保できます。Amazon EC2 インスタンスの場合は、自動スケーリングを使用し、CPU 負荷、ネットワーク入出力、リクエスト数などのメトリクスに基づいてスケーリングルールを設定することでこれを実現できます。例として、ほとんどの人がログインして午前 7 時に使い始める学校で使用しているシステムなど、急増が予測できるワークロードでは、予測スケーリングを使用して例えば午前 6 時 50 分から午後 6 時 10 分までのスケジュールでスケーリングするように自動スケーリングを設定できます。
前のセクションで説明したように、スポットインスタンスは EC2 インスタンスのコストを削減するもう 1 つの方法です。自動スケーリングを使用すると、オンデマンドインスタンスとスポットインスタンスを組み合わせた混合インスタンスフリートを作成できます。使用するスポットインスタンスを選択することもできます。例えば、m5.large と m5.xlarge の両方にスポットインスタンスを使用し、それぞれがどれだけの容量を提供するかを示す重み付けを付けて設定できます。この場合、 m5.xlarge には m5.large の 2 倍の計算能力があるため、2 の値を割り当て、m5.large に 1 の値を割り当てると、スケーリング時に選択するタイプを自動スケーリングが決定できます。どのスポットインスタンスを選択するかのディメンションは、最低料金に基づいて設定できます。この場合、重み付けで定義された単位あたりのコストが最も低いインスタンスを選択するか、容量を最適化して最新のスポット容量を持つインスタンスタイプを選択し、ワークロードが中断される可能性を減らします。
アプリケーションに Lambda 関数を使用している場合は、GitHub でホストされているオープンソースツール AWS Lambda Power Tuning があります。このツールは、さまざまな Lambda 設定を使用してコードをテストし、最適なコストとパフォーマンスの組み合わせを見つけるのに役立ちます。
-
コンピューティングコストの最適化
コスト最適化の出発点は、EC2 インスタンスまたは Lambda 関数のサイズをその処理量に基づいて分析することから始めるとよいでしょう。さまざまな EC2 インスタンスタイプが、高周波 CPU、大容量メモリ、高速 NVME SSD ローカルストレージ、機械学習用の接続 GPU、高いネットワークスループットなど、さまざまなワークロードに最適化されています。例えば、ワークロードが CPU を大量に消費していることがわかった場合は、M5 汎用インスタンスの代わりに C5 ファミリーのインスタンスを使用する方が安価かもしれません。逆に、CPU 使用率が定期的に急上昇するだけの場合は、バースト可能な T ファミリーのインスタンスの方がワークロードに適している可能性があります。コンピューティングの最適化を始めるには、AWS Compute Optimizer を使用して実行中のワークロードを分析し、レコメンデーションを作成できます。
-
データ転送コストの最適化
AWS リージョン、アベイラビリティーゾーン (AZ) 間、または AWS とインターネット間のデータ転送には関連コストが発生します。トラフィックを最適なルートにルーティングするようにインフラストラクチャを設計することで、このコストを削減できます。Amazon S3 や Amazon ECR などの AWS のサービスを呼び出す場合、最初のステップは VPC エンドポイントを調べることです。VPC 内に VPC エンドポイントを作成すると、サポートされている AWS のサービスへの呼び出しは VPC を経由してルーティングされ、VPC からインターネットに呼び出してから AWS ネットワークに戻る代わりに、AWS ネットワーク内に留まります。これにより、ネットワークの送信コストを回避できます。
次のステップは、インフラストラクチャ間の呼び出しを最適化することです。耐障害性を考慮して複数の AZ にデプロイする場合、アベイラビリティーゾーンのアフィニティを使用して、呼び出しが各アベイラビリティーゾーン内で可能な限りルーティングされるようにすることができます。アプリケーションが Amazon RDS でサポートされているデータベースを使用している場合は、リードレプリカを作成して、実行されるすべてのリードコールを同じアベイラビリティーゾーン内のリードレプリカを使用して実行できます。
-
データベースコストの最適化
データベースコストの最適化を開始するには、追加のリードレプリカをデプロイして、データを読み取るだけのプライマリデータベースからクエリをオフロードできます。これにより、すべてのデータ変更 (更新、挿入、削除) を処理するプライマリノードの容量が解放されます。これにより、負荷の変動に合わせてデータベースインスタンスのスケールアップまたはスケールダウンを開始する必要があるところまで最適化できます。Amazon RDS データベースのインスタンスサイズは変更できますが、そのためには、インスタンスタイプを変更する間はデータベースをオフラインにする必要があります。アプリケーションに継続的なアップタイムが必要な場合は、Amazon Aurora を使用する価値があります。Amazon Aurora は、高性能の商用データベースのスピードと可用性、およびオープンソースデータベースのシンプルさと費用対効果を兼ね備えたリレーショナルデータベースサービスです。Aurora は、MySQL および PostgreSQL と完全な互換性があり、既存のアプリケーションやツールを変更することなく実行することができます。Amazon Aurora Serverless は、Aurora のオンデマンドでスケーラブルな設定です。アプリケーションのニーズに基づいてデータベースを自動的に起動、シャットダウンし、容量をスケールアップまたはスケールダウンします。
-
固定ワークロードを最適化する方法
ワークロードを可能な限り最適化し、サポートする必要のある最小負荷が決まっている場合は、Savings Plan への登録を検討すると良いでしょう。Savings Plan は柔軟な割引モデルで、1 年または 3 年間にわたって特定の量 (1 時間あたりの USD で測定) のコンピューティング能力を使用するという契約と引き換えに、リザーブドインスタンスと同じ割引を受けることができます。Savings Plans には次の 2 種類があります。
Compute Savings Plans は、最も優れた柔軟性を提供し、コストを最大 66% 削減するために役立ちます (Convertible RI と同様)。プランは、Amazon EMR、Amazon ECS、Amazon EKS クラスターの一部であるものを含め、リージョン、インスタンスファミリー、オペレーティングシステム、テナントに関係なく、すべての EC2 インスタンスに自動的に適用されます。例えば、C4 インスタンスから C5 インスタンスに移行したり、ダブリンからロンドンにワークロードを移行したり、EC2 から AWS Fargate に移行したりすることができます。途中、何もすることなく Savings Plan の料金の恩恵を受けることができます。
EC2 Instance Savings Plans はリージョン内の特定のインスタンスファミリーに適用され、最大の割引が適用されます (Standard RI と同様、最大 72%)。RI の場合と同様に、Savings Plan ではリージョン全体でさまざまなサイズの同じインスタンスタイプ (c5.4xlarge や c5.large など) の使用がカバーされます。Savings Plan を変更することなく、引き続き特典を受けながら Windows から Linux に切り替えることもできます。
-
コスト最適化に役立つツールとサービス
コスト最適化に役立つツールとサービス
- Intelligent Tiering を使用した Amazon S3 ストレージコストの最適化
- Amazon S3 ストレージレンズ
- AWS コスト異常検出