E2 VM での動的リソース管理
Google Cloud Japan Team
※この投稿は米国時間 2021 年 7 月 22 日に、Google Cloud blog に投稿されたものの抄訳です。
ワイズ スペンディング(賢明な支出)は、多くの企業にとって最優先課題の一つです。中でも、クラウド コンピューティング インフラストラクチャにおいては喫緊の課題となっています。Google は昨年、Compute Engine の E2 VM ファミリーをリリースしました。E2 VM はさまざまなワークロードに適しており、コスト最適化と優れたパフォーマンスを実現します。Google の E2 マシンには、N1 マシンと比較して最大 31% の総所有コスト(TCO)削減、CPU プラットフォーム全体で一貫したパフォーマンス、最大 32 個の vCPU と 128 GB のメモリが搭載されたインスタンスといったメリットがあります。その基盤となるのは、効率性の高い大規模な物理サーバー、インテリジェントな VM プレースメント、パフォーマンスを重視したライブ マイグレーション、専用のハイパーバイザ CPU スケジューラによって実現される Google の動的リソース管理のテクノロジーです。
このように優れたパフォーマンスと費用対効果を兼ね備えているため、E2 の導入を決断するお客様が著しく増加しています。また、ウェブサービス アプリケーション、中小規模のデータベース、マイクロサービス、開発環境など、さまざまなタイプのワークロードに不可欠なビルディング ブロックとして E2 を選択するケースも増えています。


たとえば、Google Cloud のセキュリティ パートナーである ForgeRock は、E2 で ID ベースのソリューションをいくつか実行しています。
「私たちは、世界的な IAM ソフトウェア企業として、実世界におけるセキュリティ上の最重要課題に、迅速、俊敏、かつ大規模に取り組む使命を担っています。この点を念頭に置いて、パフォーマンスと信頼性を犠牲にすることなく、クラウド インフラストラクチャ関連の費用を最適化する方法を常に模索しています。その過程でコンピューティング ワークロードを E2 VM に移行したところ、弊社が掲げる基準をすべて満たせるようになりました。E2 VM によって社内のデジタル ID プラットフォームのインフラストラクチャが全体的に効率化したほか、カスタマー エクスペリエンスの向上のための投資を行い、企業のお客様向けの追加機能をリリースできました。」 - ForgeRock シニア スタッフ サイト信頼性エンジニア Simon Harding 氏
実地における E2 VM
Google はこの 1 年間、動的リソース管理への投資を強化し、E2 VM のパフォーマンスを制御する大規模なスケジューリング アルゴリズムを改善しました。Google のテレメトリーによると、E2 VM は、CPU を大量に使用するワークロードを含む、さまざまなワークロードにおいて安定したパフォーマンスを実現します。今では、Android や ChromeOS インフラストラクチャなどの Alphabet サービスも E2 VM で正常に実行できるようになりました。Google Kubernetes Engine(GKE)コントロール プレーン ノードも E2 VM とシームレスに連携します。
実例として、Google は、レイテンシの影響を受けやすいウェブ アプリケーションを 16 日間実行し、そのパフォーマンスを測定しました。アプリケーションを実行するマシンには、リクエストをアクティブに処理する e2-standard-4 VM のレプリカを複数使用しました。このアプリケーションは、CPU 使用量の多い作業についてレプリカ 1 つあたり最大で約 247 QPS(秒間クエリ数)の処理を達成しています。また、レプリカによる応答のレイテンシ変動はいずれも、中央値から ±10% 以内に抑えられています。
この例では、一貫したパフォーマンスを維持するために、E2 の動的リソース管理に 2 つの Compute Engine テクノロジーを使用しました。まず、異なるターゲット ホストでのパフォーマンスを予測するため、Google の VM プレースメント テクノロジーによって、さまざまなワークロードからのリソース観察を活用するスケジュール決定を行います。次に、カスタム ハイパーバイザ CPU スケジューラによって、1 マイクロ秒未満の平均ウェイクアップ レイテンシと高速コンテキスト スイッチングを提供することで、隣接する VM からのノイジー ネイバー効果を最小限に抑えます。
16 日間の観察期間中に、アプリケーションでメンテナンス イベントが発生し、レプリカの 1 つでライブ マイグレーションがトリガーされました。Compute Engine では、厳しいテストを経たパフォーマンス重視のライブ マイグレーション テクノロジーを使用しているため、メンテナンス イベント中でも VM の実行が継続します。また、VM を再起動しなくても、同じゾーン内の別のホストにシームレスに移動できます。
次のグラフは、レプリカを別のホストに移動してもライブ マイグレーションのパフォーマンスへの影響がほとんどないことを示しています。イベント中の VM のオーバーヘッドは、平均で 1 秒あたり 0.02~0.1% の CPU 時間となりました。


メンテナンス イベント中にレプリカに接続されたクライアントでは、接続の損失や低下は検出されませんでした。実際、レイテンシは 1 ミリ秒改善しました。


動的リソース管理がもたらすもう 1 つの E2 VM の利点は、任意の VM ファミリーにおいて Compute Engine で使用可能な最大のコンピューティング リソース プールにアクセスできることです。動的リソース管理を活用することで、E2 VM は Intel ベースのサーバーと AMD ベースのサーバーを組み合わせたプールから、x86 プラットフォーム全体でシームレスにスケジュールされます。実際、Google のアプリケーションのレプリカは両ベンダーの CPU を使用するホストが混在する環境でスケジュールされており、ホストエラーを発生させることなくスムーズに実行され、特定の CPU ベンダー向けに再構築する必要はありませんでした。設計されたとおり、ベンダーごとの全体的なパフォーマンスは同等であり、処理された合計 QPS の差は 0.1% 以内でした。レイテンシの中央値の差は 10% で、CPU 使用率も Intel ベースのホストで 55%、AMD ベースのホストで 60% と安定していました。
つまり、Compute Engine の E2 VM は、大規模なマルチベンダーの x86 プラットフォーム プールを中心に実行され、Google Cloud の動的リソース管理機能を活用するように設計されているため、安定したパフォーマンスを発揮できるアプリケーション環境が実現するということです。
使ってみる
費用対効果を重視するならば、E2 VM は最適な選択肢です。E2 の最初のリリース以降、E2 VM にはいくつかの新機能が追加されています。
32 個の vCPU インスタンスをサポート - 多様なワークロードに必要な処理能力を満たすために、最大 32 個の vCPU がサポートされます。さらに、e2-standard-32 と e2-highcpu-32 が追加されています。
E2 共有コア マシンタイプのカスタムメモリ - 小規模なワークロード向けにカスタム マシンタイプを拡張し、e2-micro、e2-small、e2-medium がサポートされるようになりました。これらの VM は、0.25 vCPU~1.0 vCPU の範囲に対応し、最大 2 vCPU までバーストできます。また、1~8 GB の範囲でメモリの容量をカスタマイズできます。
Google Cloud の無料枠のアップデートにより、毎月 1 つの非プリエンプティブル e2-micro インスタンスの無料提供が近々始まりますので、引き続きご注目ください。e2-micro インスタンスでは 2 つの vCPU が提供されます。それぞれ CPU 稼働時間は 12.5%(0.25 vCPU)、メモリは 1 GB です。
E2 の機能強化は、Tau VM を含む多様なプロダクト ポートフォリオによってお客様のアプリケーション ニーズに対応する幅広い取り組みの一環です。Tau VM は、業界トップクラスのコスト パフォーマンスに重点を置いた最新の仮想マシンです。E2 VM と Compute Engine VM ファミリーの完全なポートフォリオの詳細については、E2 と VM ファミリーのドキュメントを参照してください。
-プロダクト マネージャー Shamel Jacobs
-ソフトウェア エンジニア Alex Matute


