VM とクラウドネイティブな未来との関連性に関する会話

Google Cloud Japan Team
※この投稿は米国時間 2021 年 9 月 15 日に、Google Cloud blog に投稿されたものの抄訳です。
VM とクラウドネイティブな未来との関連性に関する会話
先週、Google は VM エンドツーエンドの最初のエピソードを公開しました。これは、「VM に懐疑的な人」と「VM ファン」の間で交わされる会話を集めたシリーズです。Brian と Carter の会話を通して、VM が Google にとって信頼性の高いプロダクトである理由と、VM がクラウドで大規模に事業を展開する企業にもたらすメリットを一緒に探っていきましょう。これは最初のエピソードを文字起こししたものです。
Carter Morgan(VM に懐疑的): チームから、VM を調査して、マイクロサービスやコンテナ、サーバーレスといった他のクラウドネイティブなアプローチと比較してみてほしいと言われました。正直に言うと、まったく期待していません。そこで、VM の専任エキスパートである Brian に来てもらいました。こんにちは、Brian。
Brian Dorsey(VM ファン): こんにちは。私は VM には非常に期待しているので、ここに来られてすごく嬉しいです。
Carter: なぜですか?あなたに来てほしいと思った理由は、そこなんです。どうして VM でそこまで盛り上がれているのか理解できないんです。
Brian: そのうちおわかりいただけると思います。VM はオンプレミスとクラウドのいいとこ取りをしたようなプロダクトです。何でも実行できる、安定した信頼性の高いシステムを利用しつつ、クラウドで新しい機能に触れ、新しい自動化ツールを手に入れることもできるのです。
Carter: 私はその点に懐疑的なんです。最新システムの機能を考えたとき、今おっしゃったようなメリットを VM で提供できるのか疑問です。
Brian: そうですね。では、具体的に説明しましょう。最新システムというのはどのようなものをお考えですか?
Carter: 最新システムについて、私はモジュール性といったことを考えています。スケーラビリティや信頼性についても考えます。自動化も欲しいです。すべてを手動で行うのは嫌です。ポータビリティについても考えます。ワークロードをどこにでも移動できるといいですね。また、すべてを手動で実装することはしたくありません。何もかも自分でやらなければならないのは嫌ですからね。こうしたことは VM で達成できますか?
Brian: なるほど、よくわかりました。実際にそのほとんどを達成できます。逆に、できない理由が見当たりません。少し深く掘り下げてから、また戻って考えましょう。VM とは何だと思われますか?
Carter: Brian、難しい質問をしてきますね。
Brian: ええ。
Carter: そうですね。VM はコンピュータですが、仮想化されたものですよね。コンピュータの一部だと思います。そのため、1 台のマシン上で複数のオペレーティング システムを動作できます。それで、あたかも 1 台の物理的なマシン上で複数のマシンが動作しているように見えます。
Brian: ええ。そのとおりです。ですが、クラウドではそうではないんです。
Carter: そうなんですか?
Brian: 驚きますよね。なぜそうではないかを説明します。障害となるものには、メモリ、CPU、ディスク、ネットワークがあります。クラウドでは 1 台のコンピュータというより、データセンターにあるすべてのコンピュータからデータが送られてきます。つまり、CPU がたくさんのマシンから提供されると考えられます。ネットワークはデータセンター全体のものです。ですから私は、クラウドはコンピュータの一部というより、データセンターの一部だと考えています。
Carter: コンピュータの一部ではなく、データセンターの一部ということですね。それは興味深いですね。すばらしいです。しかし、抽象的でもありますね。従来の 1 台のマシン上の VM では得られない、クラウド VM で得られる機能の例はありますか?
Brian: 私が具体的に話す番ですね。ええ。これはビンパッキングのようなものだと考えられます。これらの VM について、その形状の違いについて話していますよね。多くの CPU を必要とするものと、多くのメモリを必要とするものがあります。もしかしたら、多くの CPU を必要とするものをたくさん持っていると、メモリや CPU の一部を犠牲にしないと、同じボックスにうまく収まらないかもしれません。それらをデータセンター全体で運用している場合や、基本的にこの問題を Google に任せる場合は、好きな形状のマシンを用意しておけば、どこに設置するかは Google が決定します。基本的には、お客様のニーズに合わせてマシンをカスタマイズできます。
Carter: OK。非常に興味深いですね。それは、難しい問題ですからね。ワークロードの行き先を Google に任せられるなら、それだけでメリットがあります。ですが、クラウド VM の利点がそれだけなら、他のアプローチよりもクラウド VM に魅力を感じることはなさそうです。ほかにも何かありますか?
Brian: もちろんです。自動化についてなど、話は山のようにあります。しかし、もうひとつの具体的な例はディスクだと思います。これは私のお気に入りです。物理的なディスクを考えて、そこからブロックを読み書きしますよね。これはブロック デバイスです。データセンター レベルでは、これらのブロックは何百、何千もの異なるマシン上に存在する可能性があります。そして、それらすべてが連携することで信頼性を高め、よりスムーズで予測可能なパフォーマンスを実現します。その結果、SAN によく似たものが得られ、稼働中のディスクのバックアップも取ることができます。また、ほとんどの人が経験していると思いますが、スペースが足りなくなった場合は、ディスクを大きくできます。そういったことです。
Carter: すばらしいですね。特に、実行中に、スケールアップ、スケールダウン、サイズ変更できるという点は魅力的です。もう一つ、突っ込んだ質問をしたいと思います。厳しい質問のように聞こえるかもしれません。そんなつもりではないのですが。Google は、Google Kubernetes Engine(GKE)に多くの労力とリソースを投入しています。それでもなお Google は VM に投資を続けるのですか?
Brian: もちろんです。コンテナはどこで動作していると思いますか?すべての Kubernetes クラスタは、大量の VM 上で動作しています。そのため、ここまでで VM について学んだことはすべて、動作中のクラスタにも適用されます。また、別の例として、マネージド データベース、つまり Cloud SQL があります。つまり、Cloud SQL 上で Postgres や MySQL を動かしている場合、それは VM 上で動作しているということです。ほかにもたくさんの例があります。
Carter: VM から離れようと思っても、離れらない、ということですね。
Brian: そうですね。
Carter: わかりました。今の話を聞いていると、VM はほこりをかぶった古くさい技術だという考えを見直す必要があるかもしれませんね。聞いておきたいのですが、クラウドネイティブな未来にも VM の居場所があるということになりますか?
Brian: もちろんです。ほこりをかぶった、古くさいものを、成熟した、信頼性のあるものに変えていきたいですね。未来に関する質問ですが、これらすべてのものが VM 上に構築され、時間とともに新しいものが作られていきます。そのため、マシンのクラスタをスケールアップ、スケールダウンするためのツールが用意されています。Kubernetes に搭載されているツールですが、直接使うこともできます。Google はその領域に投資し、機能をどんどん充実させています。ですから、VM が未来の一部にもなっていることは確かです。
Carter: OK。では VM に切り替えたい場合はどうすればよいですか?私は Kubernetes にはかなり精通しています。Kubernetes を始めるのは簡単ですが、VM はどうですか?使い始めるまでに年単位の時間がかかりますか?
Brian: いいえ。VM はただのコンピュータです。基本的には、どこかのコンピュータ上ですでに動作しているものであれば、それを作ったチームが近くにいなくても、VM 上で動作させることができます。さらにそれをクラウド VM 上で動作させることで、多くのクラウドのメリットを受けることができます。
Carter: わかりました。正直、気持ちが少し動きました。まだ半信半疑ですが、あなたの説明はとても理にかなっています。でも、まだ質問がたくさんあります。費用を抑える方法や、VM をアップデートする方法を知りたいです。私には、「起動と停止がとても遅い」というイメージがあります。ステートフル データも気になりますね。
Brian: もちろんお答えします。今日はまだ時間がありますか?
Carter: そうでしたね。この話は別の日にしましょう。そうすれば、もしかすると、クラウドネイティブな未来においても VM が重要であることに同意できるかもしれません。
-デベロッパー アドボケイト Carter Morgan
-デベロッパー アドボケイト Brian Dorsey