CTC 教育サービス
[IT研修]注目キーワード Python UiPath(RPA) 最新技術動向 Microsoft Azure Docker Kubernetes
今回からは、2019年に公開されたエッセイ「From Corp to Cloud: Google's Virtual Desktops」を元にして、Google社内の仮想デスクトップ移行プロジェクトを紹介します。Google社内で使用するシステムを自社のパブリッククラウドサービスであるGoogle Cloud Platform(GCP)に移行するという、少しユニークなプロジェクトになります。
Google社内では、開発作業用のワークステーションとして、開発者のデスクに設置したタワー型サーバーの他に、クラウド上の仮想デスクトップ環境も使用しています。元々は、仮想デスクトップ専用のクラスターを構築・管理していましたが、2016年にこれらをパブリッククラウドサービスであるGoogle Cloud Platform(GCP)に移行するプロジェクトを開始しました。先ほどのエッセイでは、その理由として、次の点を挙げています。
・既存の独自クラスターは、クラスターの拡張作業に時間がかかる
・クラスターの管理作業の手間を削減したい
・クラスターの管理には、ハードウェアからゲストOSの構成まで、フルスタックの人材が必要
・夜間などにアイドル状態のマシンが多く発生してリソースの利用効率が良くない
・部署ごとに個別のクラスターを用意するケースがあり、これらを共用サービスとして統合したい
Google社内にも、このような改善が必要なシステムがあるというのは、意外に感じる読者もいるかもしれません。しかしながら、新しい技術に取り組むにはさまざまな試行錯誤が必要で、すべてのシステムが「常に最適化されている」ということはあり得ません。新しい技術を導入しながら、常に改善を続けていくことが大切と言えるでしょう。特に上記のような課題は、一般的なオンプレミスのシステム環境にも当てはまるものですので、パブリッククラウドサービスを利用して解決しようというのは、ある意味、自然な発想と言えます。このプロジェクトでは、GCPに移行することで、次のような点の実現を目指したそうです。
・運用作業の手間(Engineering toil)とTCO(Total cost of ownership)の削減
・ユーザーから見た利便性の向上
・GCPの機能改善
3つ目の「GCPの機能改善」というのは、すこしユニークな視点かもしれません。GCP上に仮想デスクトップシステムを構築する際に、何か不足する機能が発見された場合はそれをGCPの新機能として追加していき、GCPそのものの改善にもつなげようというわけです。冒頭のエッセイでは、Google自身が「GCPの利用者」としてプロジェクトを進めることで、一般のユーザーも同等の仮想デスクトップシステムを構築できる環境の実現を目指したと説明されています。
たとえば、このプロジェクトがきっかけで追加された機能の一例として、「インスタンスのIDの確認」機能が挙げられています。これは、Google Compute Engine(GCE)で起動した仮想マシンインスタンスについて、「Googleによる署名つきのインスタンスIDトークン」を発行するというものです。それぞれの仮想デスクトップ環境は、GCEの仮想マシンインスタンスとして用意されますが、仮想デスクトップシステムの利用者がインスタンスにログインする際に、これが認証済みの正しいインスタンスであることが確認できるようになります。
また、仮想デスクトップ環境からGoogle社内の開発環境にアクセスする際は、第39回の記事で解説した「BeyondCorp」の認証システムが利用されます。これは、インターネットを含む外部ネットワークからGoogleの社内ネットワークへの安全な接続を実現する仕組みで、GCEのインスタンスとして稼働する仮想デスクトップからは、インターネットとGoogle社内ネットワークの双方への接続が可能になります。
今回は、2019年に公開されたエッセイ「From Corp to Cloud: Google's Virtual Desktops」を元にして、Google社内の仮想デスクトップ移行プロジェクトについて、その背景を説明しました。このプロジェクトでは、約20,000ユーザー分の仮想デスクトップ環境の移行が行われましたが、これだけの数を移行するには、移行計画も重要になります。次回は、実際の移行プロセスや移行を自動化する仕組みについて説明していきます。
Disclaimer:この記事は個人的なものです。ここで述べられていることは私の個人的な意見に基づくものであり、私の雇用者には関係はありません。
[IT研修]注目キーワード Python UiPath(RPA) 最新技術動向 Microsoft Azure Docker Kubernetes