Google Cloud INSIDE Games & Appsにて少しだけ未来の風に触れてきた
今回、先日のAWS Solution Days 2019の参加に続き、「第 7 回 Google Cloud INSIDE Games & Apps 」に参加してきたので、そのご報告です。
自分たちも、AWSの利用やAzureの利用はしておりましたが、GCP(Google Cloud Platform)関連は、私自身は過去にちょっとGAEに触っただけでしたので、今回はGCPの勉強です。
これを読む方は、学生も含めてかなり幅広いと想定されるので、今回は少し背景から説明します。
今回のお話の背景
一般に、オンラインゲームを含め、インターネットのサービスは、物理的なサーバ用意して、OSを用意して、アプリケーションの実行環境を用意して、その上で、そのサービス用に作ったアプリケーション(例えば、オンラインゲームなど)を動かします。これは、PC向けのサービス、モバイル向けのサービス、同じ話だと思います。
通常、インターネットの商業サービスは、サービスが止まるなどのトラブルなどが無いように様々な工夫をしております。
特に、ハードウェアに関しては、サーバを2重化したり、モニタリングしたり、トラブル発生時のバックアップの手段を用意したりしています。
従来は、(今でもしているところは多いですが)ハードウェアサーバを自社の建屋に設置するなどして、上のようなシステム運用環境を構築し、維持し続けていました。
しかし、これらの運用環境を構築し維持していくのは大変なので、代わりに、サーバの設置場所を提供してくれる会社、サーバの管理を代わりに行ってくれる会社などが登場してきました。
当初は、サーバを設置する場所が変わっただけの話だったのですが、2000年代中盤頃から、仮想化技術を活用し、サーバ環境を提供するサービスが登場しました。
それが、AWSに代表される、いわゆるIaaS型のクラウドサービスです。こちらのクラウドサービスを使うと、ブラウザから自分の欲しいサーバ環境(CPU、ストレージ容量、OSなど)を、仮想マシン(VM)として簡単に用意できます。
今、インターネットサービスの多くはクラウドを用いていると思います。
昔ながらの職人気質のエンジニアの方は、「クラウドは信用ならぬ」と、オンプレに誓った永遠の愛を頑なに守っている方もおりますが、国内メガバンクさんの基幹システムですらクラウドへ移行するという話も出ていますので、「オンプレvsクラウド」の議論はもうどうでもいいかなと感じます。
そして、今、時代はさらに進み、この「これまでのクラウド」を超えた時代に入りつつあります。
今回は、「第 7 回 Google Cloud INSIDE Games & Apps 」に参加したので、その片鱗をご紹介できればと思います。
今、クラウドは「VMの提供」だけじゃない
今回、「第 7 回 Google Cloud INSIDE Games & Apps 」では、最初に、サンフランシスコで開催されたGoogle Cloud Next ’19で発表されたサービスがいくつか紹介されました。こちらに、日本語記事があるので、ご参考に。day1、day2、day3
さて、次に国内ゲーム事業者/ゲームインフラ事業者さん達からの事例報告(2019/04/18現在公開されているもののみ)がありました。
下の番号はここでの説明用に勝手に採番したものです。
- Cloud 2.0 時代のゲーム開発を支える GS2 | Google Cloud INSIDE Games & Apps
- 長期運用タイトルの GCP 移行実例とグレンジのこれから | Google Cloud INSIDE Games & Apps
- 『 イドラ ファンタシースターサーガ 』を支える GCP | Google Cloud INSIDE Games & Apps
いずれも、インフラ周りのシステムの構築・運用を効率化するためのGCPの活用事例です。
項番1はGS2というゲームインフラでの活用事例、項番2は社内プライベートクラウドからの移行などの事例、項番3はKubernetes Engine活用などの事例でした。
いずれも大変興味深く参考になりましたが、特に、項番1の内容は大きな視点からのコンセプトの話で面白かったです。
こちらを簡単にご紹介します。
まず、Cloud2.0という言葉の紹介がありました。「これまでのクラウド」を、Cloud1.0とするならば、その先にある新しい技術パライダイムとして、Cloud2.0と呼んでいるようです。
このCloud2.0とは、イベントドリブン、サーバレスなコンピュートサービスとして登場した、AWS Lambda、Google Cloud Functions、MicrosoftのAzure Functionsサービスなどの技術とその効果を示しているようです。
AWS Lambda(CS分野でプログラム理論を学んだ人は懐かしのラムダ式のLambda)のようなサービスは、スクリプトを書いておけば、何らかの「イベント」をトリガーとしてこれを起動できるサービスで、自動的スケーリングもされます。
また、通常、VMインスタンスを利用する場合、「本当にやりたい処理」を行っているかどうかにかかわらず、例えば、OSのアップデートをしている間など、イメージを実行している間は課金されますが、AWS Lambdaなどは実際に行うべき作業がある場合にのみソフトウェアが実行されます。
VMの利用コストは、(ワークロードとは無関係に)固定されていますが、Lambdaの利用コストは可変で使った分だけの課金です。
さらに、Cloud2.0とは、フルマネージドサービスの活用や、マイクロサービスを活用した、サーバレスでのインフラの構築までを含む技術パラダイムのようです。
AWS、Google、Microsoft といったクラウド事業各社、ほぼ同じ方向に爆進しており、今や、VMの提供だけでなく、コンテナ技術を活用し、フルマネージドサービス、マイクロサービスなどを提供しております。
項番1の会社では、
- 本業に関係ないことを減らすことにより ーー> 本業サービス開発のリソースを最大化し、
- Googleのフルマネージドサービスを活用することにより ーー> システム障害を最小化し、
- アイドル時には課金しないCloud2.0サービスの活用により ーー> 無駄な維持費を削減し、
- 自社コードを極力減らすことによりーー>「技術的負債」を減らす、
これらによるメリットを最大限に享受するための方針に転換していったそうです。なんと、社内からほぼVMインスタンスを排除したそうです、すげ〜
今、この会社だけなく、先進的な企業(サービス事業者)は、Cloud2.0技術を積極的に活用し、インフラ管理コストを最小化しているようですね。
もちろん、紹介されているのは先進事例であるので、まだまだ、「当たり前」という話ではないのでしょうが、今、技術トレンドはこっちに向かっているようですね。
いや、勉強になりました。
ただ、やはり、登壇者のどなたかがいっていましたが、これらの最新技術を使いこなすには学習コストがバカになりません。
あと、自分も直面したことがありますが、自称スーパーエンジニアの大御所から「コンテナ技術?VM技術と何が違うんだよ?」とか「実運用の実績ない(知らないだけ)から導入は慎重に行こうよ」とかの抵抗に遭い、不毛な議論が起こるので結構辛いですよね。
最近、世間では、「AI人材XX万人育成」とか「打倒GAFAM」とか、トンチンカンな話が沸いているそうですが、利用者が使いこなす以上の速さで基盤技術を開発しサービス化していくGAFAMと(若者よ)戦え!ってのは「竹槍でB29を撃ち落とせ!」と言っているのと変わりませんよ、本当に。第二次世界大戦末期かよ。
2019/04/18