Amazon Web Services ブログ

持続可能で、効率的かつコストが最適化されたアプリケーションを AWS で構築する

今日、ほぼすべての組織にとって、これまで以上に、持続可能性とコスト削減が最優先事項となっています。調査によると、AWS のインフラストラクチャのエネルギー効率は、米国のエンタープライズデータセンターの中央値の 3.6 倍、ヨーロッパの平均よりも最大 5 倍高いことが判明しています。とはいえ、AWS に移行するだけでは、お客様が設定している環境・社会・ガバナンス (Environment, Social, Governance: ESG)、クラウド財務管理 (Cloud Financial Management: CFM) の目標を達成するには不十分です。地球の資源を意識的に利用するためには、クラウド上で実行されるアプリケーションにかんして効率性を念頭に置いて構築する必要があります。

というのは、クラウドの持続可能性は責任共有モデルに基づきAWS とお客様とで責任を共有しているからです。AWS は、クラウドの持続可能性を最適化する責任があります。つまり、効率的なインフラストラクチャ、あらゆるお客様のニーズを満たす十分なオプション、すべてを効果的に管理するためのツールを構築することです。AWSのお客様は、クラウド内の持続可能性に責任を負います。つまり、利用するリソースの総数を最小限に抑え、消費するリソースを最大限に活用する方法でワークロードを構築します。

AWS のサービス料金の大半はハードウェアの使用量と相関があるため、リソース消費量を減らすことにはコスト削減につながるという利点もあります。この記事では、持続可能性とコスト削減の両方を念頭に置いて、利用率を最大化し、無駄を減らしながら、AWS で効率的なコンピューティング環境を運用するためのベストプラクティスを紹介します。

重要事項を測定

アプリケーションの最適化は継続的なプロセスです。AWS Well-Architected Framework の持続可能性の柱には、AWSクラウドを選択されたお客様がその価値を最大限に享受できるようになるための段階的な移行を計画し、起こり得る変更の影響を理解するのに役立つ改善プロセスが含まれています。「測定できないものは改善できない」という言葉がありますが、ビジネスにとって重要なメトリクスを定義し、定期的に追跡することは重要です。温室効果ガス(Greenhouse Gas: GHG)の排出量を算定報告する際の国際的な基準であるGHGプロトコルでは、温室効果ガスの排出を直接排出であるScope 1、エネルギー起源の間接排出であるScope 2 、その他の間接排出であるScope 3に分類しています。その中でScope 2 炭素排出量 (AWS Customer Carbon Footprint Tool で提供されるものなど) は、多くの組織が持続可能性への取り組みのベンチマークに使用しているメトリクスの 1 つですが、これを唯のメトリクスとするべきではありません。

Amazon は、当初の 2030 年よりも5 年早い2025 年までに、すべての事業を再生可能エネルギーで運営するための取り組みを進めています。そして、使用する資源の利用率を最大化し、総エネルギー消費量を最小限に抑えることは依然として重要です。そのため、AWSに所属する多くのチームが vCPU 時間、ストレージ使用量、データ転送といった、総エネルギー消費量よりも計測しやすく素早く検証できるようなプロキシメトリクスを使用して、ハードウェア消費量を評価し、時間の経過に伴うインフラストラクチャの改善を測定しています。

これらのメトリクスに加えて、エンドユーザーや顧客に提供される価値に対して使用率をベースライン化することが役立ちます。ビジネスメトリクス(出荷された注文数、ページビュー、API呼び出しの合計など)とともに使用率を追跡することで、組織に提供する価値でリソース消費量を正規化できます。また、目標に向けた進捗状況を経時的に追跡する簡単な方法も提供します。たとえば、e コマースサイトでの注文数が先月一定だったのに、AWS インフラストラクチャの使用量が 20% 減少した場合、効率の向上は顧客行動の変化ではなく、最適化の取り組みによるものと考えることができます。

可能な限り、効率的で目的に特化したプロセッサを選択する

アプリケーションに適したプロセッサを選択することは、持続可能性にとって重要です。これは、より高速で効率的なプロセッサを使用すると、より少ないエネルギーで同じ量の処理を実行できるためです。AWS には、Intelが提供するXeon スケーラブルプロセッサ、AMD が提供するAMD EPYC プロセッサ、GPU、FPGA、高速コンピューティング用のカスタム ASICといった幅広いプロセッサの選択肢があります。

AWSが独自開発し最新かつ最も電力効率の高いプロセッサである AWS Graviton3 は、AWS の他のどのプロセッサよりもワットあたり 3 倍高い CPU パフォーマンスを実現し、さまざまなワークロードで同等の現行世代の x86 ベースのインスタンスと比べて最大 40% 高いコストパフォーマンスを実現し、お客様の二酸化炭素排出量の削減にも役立ちます。ワークロードのパフォーマンス効率を向上させるために、ワークロードを Graviton ベースのインスタンスに移行することを検討してください。英語版のみとなりますが、AWS Graviton Fast StartAWS Graviton2 for ISVsをご覧ください。ワークロードを AWS Graviton ベースの Amazon EC2 インスタンスに移行する場合は、こちらも英語版のみとなりますがconsiderations when transitioning workloads to AWS Graviton-based Amazon EC2 instances も参照してください。

機械学習 (ML) ワークロードでは、AWS TrainiumAWS Inferentia などの専用チップをベースにした Amazon EC2 インスタンスを使用すると、同等の GPU 搭載インスタンスよりも少ないエネルギーで、ワットあたりのパフォーマンスを高めて ML モデルを構築して実行できます。

ハードウェア使用率を最適化

環境効率における目標は、ニーズを満たすために必要な分だけのリソースを使用することです。そのため、必要以上のハードウェアを使用していないかを継続的に検証することが重要です。幸いなことに、インスタンスの選択肢が多く、動的にスケーリングでき、インフラストラクチャの追跡と最適化に役立つさまざまなツールがあるため、クラウドの方がより簡単に検証できます。

使用率を測定および追跡するための最も重要なツールとして、Amazon CloudWatch や、AWS コストと使用状況レポート (AWS Cost and Usage Report: CUR) があります。CloudWatch を使用すると、リソースのメトリクスと使用状況を一元的に把握でき、時間の経過に伴うユーザー負荷がキャパシティ使用率に与える影響を分析できます。コストと使用状況レポート (CUR) は、どのリソースの使用が一番多いかの把握に役立ち、その使い方を細かな解像度で調整しながらコストを最適化できます。

AWSが提供する CUR データを利用したツールの 1 つが、AWS Cost Intelligence Dashboardです。Cost Intelligence Dashboardには、AWS の使用状況に関する詳細かつ推奨事項に基づいたビューが表示されます。グラフなどがあらかじめ用意されているため、どのサービスやリソースの利用額が大きいかを特定し、最適化することで実現できる潜在的なコスト削減額を確認するのに役立ちます。また、リソースの最適化に役立つ適切なサイズ設定や適切な EC2 インスタンスファミリーの推奨も行います。

Cost Intelligence Dashboardは AWS Compute Optimizer とも統合されており、ワークロードの特性に基づいたインスタンスタイプとサイズを推奨します。たとえば、CPU使用率の高いワークロードかどうか、日常的なパターンが見られるか、ローカルストレージに頻繁にアクセスしているかを識別できます。次に Compute Optimizer は、ワークロードがさまざまなハードウェアプラットフォーム (例えばAmazon EC2のインスタンスタイプなど) で、あるいはさまざまな設定 (Amazon EBS ボリューム IOPS 設定や AWS Lambda 関数のメモリサイズなど) を使用してどのように実行されたかを推測し、推奨事項を提示します。安定したワークロードであれば、AWS Compute Optimizer を定期的にチェックして、インスタンスの適切なサイズを確認してください。Compute Optimizer で適切なサイジングを行うことで、リソースの使用率を高め、コストを最大 25% 削減したというお客様の事例もあります。

CloudWatch メトリクスは Amazon EC2 Auto Scaling と連携して使用することができます。Amazon EC2 Auto Scaling は、属性ベースのインスタンス選択によりニーズに合った適切なインスタンスを自動的に選択し、高い使用率を維持するために需要に応じてインスタンスフリート全体をスケールアップおよびスケールダウンできます。CPU の平均使用率やネットワークの平均入出力などのメトリクスに基づいて、スケジュールされたスケーリング、動的スケーリング、予測スケーリングを実行します。次に、AWS Instance SchedulerAmazon EC2 Auto Scaling のスケジュールされたスケーリングを統合して、営業時間内または平日にのみ実行されるリソースのシャットダウンと終了をスケジュールし、リソース消費量と環境フットプリントをさらに削減できます。

Amazon EC2 の利用可能なすべての購入オプションを利用する

コンピューティングタスクは多くのワークロードの基盤を形成するため、コンピューティングインフラストラクチャは通常、最適化によって最大のメリットを得られます。Amazon EC2 は、さまざまなコンピューティングインスタンスにおいてサイズ変更可能なコンピューティングを提供し、事実上あらゆるユースケースに適しており、柔軟性の高い購入オプションを多数用意しています。

EC2 スポットインスタンスは、AWS のコスト削減と効率向上のための優れた方法です。スポットインスタンスは、未使用の Amazon EC2 キャパシティを割引価格でお客様に提供します。AWSは物理リソースを最大限に活用することを一つの目標としており、EC2 スポットインスタンスを選択すると、他の方法ではデータセンターでアイドル状態になってしまうハードウェア上で実行することができます。このように、スポットインスタンスを使用すると、より多くの物理インフラストラクチャが有意義な作業に使用されるため、クラウドの全体的な効率が向上します。なお、スポットインスタンスは需要と供給に基づいて自動的に変化する市場ベースの価格設定を使用しています。つまり、Amazon EC2サービスの空きキャパシティが最も多いハードウェアの割引率が最も高く、場合によってはオンデマンド価格から最大で 90%という高い割引率で、お客様にその構成を選択してもらうことができます。

通常、ワークロードごとに要件が異なっているため、特定のワークロードのニーズに合わせて購入オプションを組み合わせることをお勧めします。24時間365日稼働する必要のあるアプリケーションがあり、これを1年もしくは3年間運用し続けることが分かっている場合、Compute Savings Plans を使用すると、コストを節約したり、あるインスタンスタイプから新しいエネルギー効率の高い代替インスタンスタイプに移行したり、コンピューティングソリューション間で(一例としてEC2 インスタンスから AWS Lambda 関数や AWS Fargate に)移行したりできます。

Savings Plansは、予測可能で定常的なワークロードに最適です。オンデマンドは、インスタンス、場所や時間に対して柔軟に対応できないような、ステートフルで一時的なスパイクが多く発生する新しいワークロードに最適です。最後に、スポットインスタンスは、耐障害性があり柔軟性のあるアプリケーションにおいて、Savings Plansやオンデマンドといった他のオプションを補完することができる方法です。AWS では、ワークロードのニーズと柔軟性に応じて、さまざまな価格モデルを使用することを推奨しています。

これらの購入オプションを使用することで、リソースの需要をより正確に予測し、キャパシティを管理し、より持続可能な方法でインフラストラクチャを利用できるようになります。

オーバーヘッドを最小限に抑え、使用するリソースを減らすようにアプリケーションを設計する

ワークロードやテクノロジーの選択にかかわらず、最新のライブラリとAmazon Machine Images (AMI) を備えた最新世代のハードウェアを使用すると、通常、そのファミリーの中で最高のパフォーマンスあたりの価格とワットあたりのパフォーマンスが得られます。ただし、IntelのDL Boostなど、最新のプロセッサーやハードウェアの省電力機能やパフォーマンス機能を活用するには、多くの場合、最新のソフトウェアライブラリが必要になります。

そこで、マネージドサービスを利用すると、高いリソース使用率を維持する責任を AWS に移すことができます。マネージドサービスを使用すると、そのサービスを使用するすべてのお客様にサービスの持続可能性の影響が分散され、お客様の個々の貢献を減らすことにつながります。ただし、すべてのマネージドサービスがデフォルトで最適化されているわけではありません。以下のマネージドサービスの推奨事項は、管理サービスごとに自動的に最適化されたキャパシティ管理により、環境への影響を軽減するのに役立ちます。

    AWS マネージドサービス     持続可能性改善への推奨事項
Amazon Aurora Amazon Aurora Serverless の利用で、アプリケーションのニーズに応じて、自動的に起動、シャットダウン、キャパシティのスケールアップまたはスケールダウンを行うことができます
Amazon Redshift Amazon Redshift Serverless の利用で、データウェアハウスのキャパシティを自動的にスケーリングします
AWS Lambda AWS Lambda 関数を ARM ベースの AWS Graviton2 プロセッサに移行できます (英語版の記事のみ)
Amazon ECS Amazon ECS を AWS Fargate で実行することにより、コントロールプレーンの管理に AWS が導入した持続可能性のベストプラクティスを活用できます
Amazon EMR EMR Serverless を使用すると、データ処理ジョブのリソースを過剰または過小にプロビジョニングすることがなくなります
AWS Glue AWS Glue 向けのAuto Scalingを有効にして、Glue コンピューティングリソースをオンデマンドでスケールアップおよびスケールダウンします

データ転送は、アプリケーション設計における、持続可能性に影響を与えるもう1つの選択肢です。エッジコンピューティングは、データが作成されたデバイス上またはその近くでデータを保存して使用することで、クラウドに送信されるトラフィックの量を減らし、規模が大きくなればエネルギー利用と二酸化炭素排出量を抑えることができます。 AWS OutpostsAWS Local Zones 、および AWS Wavelenth サービスは、エンドポイントの近くでデータ処理、分析、およびストレージを提供し、API やツールを AWS データセンター外の場所にデプロイできます。エッジコンピューティングは、データソースに近い場所でデータを処理することでレイテンシを低減できます。つまり、デバイスやアプリケーションをスムーズに実行するために必要なエネルギーを少なくすることができます。

まとめ

AWS コンピューティングインフラストラクチャを最適化してリソース効率を高めるには、継続的な測定、ハードウェア使用率、プロセッサの選択、アプリケーションの設計のすべてが重要です。かんたんに言えば、組織の環境、社会、ESG、CFMといった目標を達成するために、クラウド上の持続可能なインフラストラクチャでは可能な限り少ないリソースを利用するように設計します。プロキシメトリクスに加えて、Customer Carbon Footprint Tool を使用して、 AWS のインフラストラクチャの進化と組合せて、最適化の過程における二酸化炭素排出量を追跡することができます。

これらすべてのトピックに関する詳細なガイダンスについては、AWS Well-Architectedの持続可能性の柱をご覧ください。また、AWS Sustainability ページでは、AWSの持続可能性への取り組み、再生可能エネルギーの使用に関する AWS の現在の進捗、クラウドを通じた持続可能性に関するケーススタディなどについて詳しく知ることができます。
 
    
 
この記事はシニアソリューションアーキテクトのIsha Dua、ソリューションアーキテクトのAnanth Kommuri 、Well-Architected担当シニア持続可能性リードソリューションアーキテクトのDr. Sam Mokhtari、EC2持続可能性担当プリンシパルスペシャリストのAdam Boeglinが2023年1月10日に執筆した「Building Sustainable, Efficient, and Cost-Optimized Applications on AWS」を翻訳したものです。翻訳はソリューションアーキテクトの石神靖弘が担当しました。