[セッションレポート] コスト、エネルギー、リソースの効率的なコンピュート環境の構築 (CMP204) #reInvent

re:Invent2022のセッション「Build a cost-, energy-, and resource-efficient compute environment」についてのレポートです。
2022.12.24

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

AWS認定トレーニング講師の平野@おんせん県おおいたです。

今日は「Build a cost-, energy-, and resource-efficient compute environment」というタイトルのセッションについてレポートします。

セッション紹介

コンピュートサービスは、多くのワークロードの基盤となっており、コスト、エネルギー、リソースを最適化する大きな機会をもたらします。500種類以上のインスタンスタイプ、複数の購入オプション、マネージドサービス、サーバーレス、コンテナオプションにより、コスト、リソース、エネルギー使用を最小限に抑えながら、必要なものを簡単に構築することができます。本セッションでは、効率的なコンピュート環境とその構築方法、そしてコストと二酸化炭素排出量の削減方法について学びます。

オンデマンド動画

概要

I need to reduce my...

すべての旅はゴールから始まり、共通のゴールは、お客様がコストのために最適化したい、またはお客様が温室効果ガスの排出のために最適化したいことで、コストはしばしばAWSの支出に関連し、排出は温室効果ガスプロトコルによって定義される温室効果ガスの排出に関連しています。

Focus on your inputs

アウトプットから一歩下がって、インプットを見てみると、より大きな絵が見えてきます。コストは、AWSサービスの使用量、いくつかの購入オプション、サービスの価格設定期間の単純な関数であることがわかります。排出量はもっと複雑ですが、2つのものに集約されます。それは、ワークロードのためのサービスを実行するのに必要なエネルギーです。これは温室効果ガスプロトコルにおけるAWSのスコープ1です。そして、すべてのハードウェア、サーバーハードウェアのインフラを構築し、サービスを提供し、出荷し、最終的にリサイクルするために必要な排出量は、温室効果ガスプロトコルにおけるスコープ3です。

Focus on your inputs

図を拡大して、この講演で使用する左から右へのメンタルマップを作成することができます。サービスは、オペレーション・プロセスで使用されます。これらのプロセスは、ビジネスニーズを満たすために実行されます。この3つの部分(緑色で示した部分)を知ることが重要です。なぜなら、効率とは、ビジネスニーズを満たすために必要なリソースを最小限に抑えることだからです。そのため、ユーザーのビジネスニーズを把握することは非常に重要です。 また、ここで3つすべてを見ることで、運用プロセスの領域でさらなるコスト最適化の機会が明らかになります。そして、改善点を探すのは早い者勝ちです。

効率化のために最適化したいのであれば、ビジネス・ニーズに目を向けましょう。 まず、ユーザーは何か、ビジネスのシステムコンテキストは何か?ビジネスニーズは何でしょうか?これらはビジネスニーズでしょうか?

ユーザーに約束するSLAを把握し、定義してください。可用性、ディザスタリカバリ、レスポンスタイムの要件を把握しておけば、アーキテクチャのトレードオフが可能になりますし、運用プロセスを検討する際にも役に立ちます。また、キャパシティ・プランニングの労力や購入プロセスの計画、マネージド・サービスの利用による一部のサービスの管理作業をAWSに移行することで、差別化につながらない重労働(Undifferentiated heavy lifting)を減らす機会も探してみてください。それを行った上で、サービスの利用状況を追跡する必要があります。

効果的な方法として、アプリケーションチームと経営陣の両方が消費できるKPIとメトリックが必要です。つまり、サービス利用を特定のチーム、特定の時間枠、特定の利用形態に分解できることが重要です。そうすれば、すべてのアプリケーション・チームが自分たちの最適化を行うことができます。一方、経営陣は、大きなブロックを見て、さらに深く掘り下げたりレビューしたりして、どこに投資すべきかを特定し、理解することができます。

Examples for cost & usage as normalized KPIs

ここでは、メトリクスやKPIに対して行うことのできる正規化について説明します。 最初のステップとして、使用状況を正規化する必要があります。インスタンスタイプに関する情報を使用し、インスタンス時間とそのインスタンスが持つvCPUの数を掛け合わせるか、リザーブドインスタンスで提供されている正規化係数を使用します。基本的には、同じことがストレージにも当てはまります。バケット数だけでなく、ボリューム数やファイル数でもなく、ギガバイト時間を使って、異なるプロジェクト同士を比較するのです。

追跡するKPIとして適切であるために。分母に総使用量に対する希望使用量の比率を計算する必要があります。そして、それがすでにCPU使用率の定義です。しかし、もしあなたの目標が、例えばスポット的な採用であれば、スポットvCPU時間を全vCPU時間で割ったものになるでしょうし、あなたの目標がGravitonの採用であれば、GravitonのLambda関数のカウントを全Lambda関数で割ったものになるかもしれません。

効率性とは、ビジネスニーズを満たすために必要な最小限のリソースであり、だからこそKPIはビジネス単位での作業も反映させるべきだという考えをベクトル化したものです。それは、月間アクティブユーザーあたりのコストかもしれませんし、保険契約処理あたりのvCPUかもしれません。このようなKPIを設定することで、チームは前月や前年のパフォーマンスを比較することができます。

  1. 改善目標の設定
  2. 具体的な改善点を評価する
  3. 改善の優先順位付けと計画
  4. 改善のテストと検証
  5. 変更を本番環境に導入する
  6. 結果の測定と成功の再現

新しいKPIがあれば、目標を定め、典型的な計画、構築、測定、繰り返しのプロセスを実行することができます。

まず、全体の状況を見ることから始まります。そして、利用形態や小さな変化がもたらす影響によってワークロードを特定し、優先順位をつけます。そして、自動スケーリングやライトサイジング、アーキテクチャーの変更など、仮説を立てながら改善策を検討します。そして、これらの改善点をリスクとコスト、インパクトの観点から最適化し、まずテスト環境で実験を行い、本番環境にデプロイします。そして、望ましくない結果が出た場合は、もちろん、その変更を元に戻します。その変更が良かった場合は、他のアプリケーションでも同じような変更を行う機会を探します。そして、次の仮説に進むのです。

スコープ3と2の排出は、AWSのアーキテクチャ、AWSのトレードオフ、そしてオペレーションに起因するものです。そして、Amazonが購入するエネルギーは何なのかも問題です。

これらの最適化は451 Research社の調査報告書に記載されています。

Carbon reduction opportunity

報告書では、企業のデータセンターを取り上げ、クラウドと比較することで、AWSに移行した場合のサステナビリティの向上、およびサステナビリティのメリットを定量化しています(ヨーロッパとAPEC)。その結果、移行による主なメリットはエネルギーの削減であることがわかりました。私たちは、最も環境に優しいエネルギーは、使わないエネルギーであると言いますが、彼らは、シフト中のほぼ80%がエネルギー削減によるものであることを定量的に示しました。

炭素排出量については、お客様のアプリケーションやアカウントの結果を個別に測定し、排出量の見積もりやAWSのお客様のカーボンフットプリントを見ることができます。

すべてのアカウントで利用可能で、課金コンソールに行くと、カスタマーユーザーレポートの隣に表示されます。これにより、お客様のワークロードの排出量を追跡することができます。月別にこのアカウントの過去のフットプリントを理解することができ、また、使用量に基づいた排出量の予測も見ることができます。また、AWSの再生可能エネルギー・プロジェクトに基づく排出量の予測も可能です。

The instance configration to exactly your needs

ここから、EC2を効率的に利用する方法についてお話しします。

私たちが持つインスタンスの数が爆発的に増えていることに、みなさんはしばらく前から気づいているはずです。私が入社した2014年当時は、インスタンスの種類は30でした。当時は、どうやってこの数についていけるのだろう、と思ったものです。現在では500種類を超え、超高速、ネットワークスループット、ローカルインスタントストレージなど、さまざまなオプションを提供しています。これらのオプションは、お客様のワークロードに最適なインスタンスを選択することができるため、非常に便利です。私たちのゴールは、お客様のニーズに最も適したインスタンスを見つけることです。

しかし、これだけのインスタンスがあると、どれを使うか迷うかもしれません。

そこで、昨年のre:Inventで発表した「属性ベースのインスタンス選択」という機能注目します。 これは、サーバー重視のインスタンスからアプリケーション重視のインスタンスに移行するための、最も強力なツールの一つになります。私たちの仕様書やマーケティング・ページ、サードパーティのウェブサイトを全部見て回る代わりに、私たちがインスタンス設定をリストアップすれば、もっといい仕事ができるようになります。あなたのアプリケーションが何を必要としているかを考えてみてください。そして、属性ベースのインスタンス選択を使用すると、その仕事に最適なインスタンスを選択するようになります。

また、スポットインスタンスとオートスケーリングを利用して効率化することが出来ます。

Customers who have cost-optimized with Spot Instances

数多くのサービスがスポットインスタンスを活用しています

Automated recommendations

旅の途中には、より効率的な運用を支援するさまざまなツールが必要になります。コスト管理コンソールを使って節約プランを提案することはすでに述べました。しかし、私たちが用意しているツールはそれだけではありません。AWS Trusted AdvisorとAWS Compute Optimizerもぜひチェックしてみてください。この2つのツールは、アカウント内の効率と使用量を管理するためのさまざまな方法について検討しています。しかし、もしあなたが彼らの提案に従うならば、AWSの請求額を下げ、AWS上で実行しているリソースを最大限に活用することができます。

70% of the world's population use Arm processor techinology

ここからARMについての話題になります。現在、世界の70%以上の人がARMベースの技術を使っています。ARMのテクノロジは、スマートフォンからテレビ、サーバ、スーパーコンピュータに至るまで、あらゆるものに搭載されています。 AWSでは、ネットワーキング、ストレージ、セキュリティサービスを提供するNitroチップ、そしてコンピューティングを提供するGravitonシリーズのチップに採用されています。

Gravitonは従来のx86系のチップと比べ、コストパフォーマンスが向上します。さらに、電力消費も抑えられるため、二酸化炭素排出量を抑えることができます。

Summary

  • 効率性を引き出す
    • 容量の制約からエンジニアリングの制約へ
  • より速く革新する
    • 最大6倍のスループット向上
    • 1000倍速いバグ検出
  • コスト削減
    • AWS Gravitonによるスポット利用の拡大
    • 最高のパフォーマンス/$パフォーマンス/W

これまでお話ししてきたテーマのひとつは、柔軟性と適切なオプションの選択によって、いかに効率を高められるかということです。しかし、もうひとつの考え方は、必要なものをより多く伝え、必要な方法をより少なく伝えれば、より効率的な運用を支援することができるということです。先ほど、属性ベースのオートスケーリングやインスタンスの選択について触れましたが、AWSのサービスの観点からも見ることができます。

Managed services increase utilization

このグラフには2つの異なる側面があり、コンピュート管理に対する2つの異なるアプローチがあります。左側にはEC2があり、多くのお客様がEC2のインフラを構築・管理し、オートスケーリングやパッチ適用、適切なインスタンスの選択などを行い、効率的に運用することが可能ですが、多くの作業と時間と労力が必要です。一方、グラフの右側にはLamdaがあり、コードを書いてAPIエンドポイントを指定すると、スケーリングやライフサイクル管理、リソース利用の管理など、すべての作業をAWSに任せてくれます。

Your journy for efficiency

  • コストと使用量を正規化したKPIとして追跡し、インパクトのあるものに優先順位をつける
  • 効率化のための最適化は共有の責任であり、上位のサービスを利用してクラウドに責任を移行する。
  • ガイドとツールを活用して、お客様のアカウントに最適化の可能性があることを確認します。
    • AWS Compute Optimizer
    • AWS Cost Management Console
    • AWS Trusted Advisor
    • AWS Well-Architected ツール & ホワイトペーパー

私たちは、コンピュート・オプティマイザーやトラステッド・アドバイザーなど、多くのツールやドキュメントを提供し、お客様をサポートしています。 そして、今日取り上げたすべてのものを本当に結びつけているのは、AWS Well-Architectedフレームワークです。まだの方は、ぜひWell-Architectedをご覧になって、これまでお話ししたようなことを実践していただきたいと思います。

まとめ

コストとサステナビリティを最適化するアプローチについてのセッションを紹介しました。ご興味があれば上記のリンクよりセッション動画をご覧ください。