便利なKubernetes、活用するうえでの注意点は?
Kubernetesを用いるとコンテナ管理が容易になるとはいえ、注意しなければならないポイントがいくつかある。例えば、設定によってはPodと呼ばれるプログラムが停止していると見なされると、すぐに破棄されてしまう。「Podが削除されたときにどこにログを送信するかなど、設計のときにあらかじめ決めておくことが大事になる」と泉水氏は指摘する。
またサービスの特性によって、Kubernetesでの管理には向き不向きがあることも注意すべきポイントだ。「KubernetesはVMを共有してサービスを動かすので、Webサイトなどステートレスなサービスやシステムには向いていますが、常時接続やライフタイムが長いなど、CPUやメモリを占有して動かすようなアプリケーションに関してはあまり向いていません。また更新頻度が少ないものや、一定のサイジングで決まっており、スケールしないものなどは、そもそもコンテナ化するメリットが少ないです。アプリケーションの特性を考えて採用することが大事だと思います」(泉水氏)
Kubernetesの向き不向きを踏まえた活用法とは
サービスやアプリケーションの特性によって、向き不向きのあるKubernetes。grasysではどのようなアプリケーションの運用基盤にKubernetesを活用しているのか。泉水氏が紹介してくれたのが、GKE(Google Kubernetes Engine:Google Cloud上にKubernetesクラスターを容易に構築できるマネージド環境)を活用し、グローバルに展開されているオンラインゲームのインフラを構築した事例である。
GKEを採用したのは、「いろいろな対向サービスからアクセスされるのでサイジングが難しかったこと、また対向サービスに合わせてカスタマイズをするなど、プログラムの改修頻度が高かったこと」と泉水氏はその理由を語る。同インフラはAPIベースで設計されており、開発環境とテスト環境もGKE上に構築している。「開発者がプログラムを書きビルドして、GKE上のテスト環境にデプロイし、テストして、問題なければ本番という流れがスムーズにできている。すぐに修正しなければならないクリティカルなバグが発生しても、接続先が違うだけで環境はほぼ同じなので、アップデートもスムーズにできます」と泉水氏は説明する。
だが、Kubernetesで対応しきれない点も、もちろんある。その1つとして挙げられるのが、Podの処理状況までわからないため、意図しないスケールインが行われてしまう可能性があることだ。ゲームインフラにKubernetesを採用した場合、アクセスが落ち着いたときにスケールインによってPodを自動的に減らして欲しいことがある。単純にCPUの負荷などを指標とすると、Kubernetesではユーザーが接続中かどうか判断を行わずスケールインしてしまう。つまりゲームプレイ中のユーザーがいるにもかかわらず、Podが動的に削除されてしまう可能性があるというわけだ。そうすると、ユーザーは通信が途切れてしまい、ゲームへの信頼感も減退してしまう。
「銀の弾丸」は無いから、新しい技術を組み合わせる
このようなKubernetesで対応しきれない点をカバーする技術として、grasysが導入を進めているのが「Agones」である。「AgonesはUbisoftとGoogleが共同開発しているOSSのプロジェクトで、Kubernetes上でDedicated Game Server(DGS:専用ゲームサーバ)をホスティングすることが可能になる技術です。正式リリースはされていないので、現在開発段階で活用し検証しています。Agonesの活用を決めたのは、オートスケールの効率化に加え、意図しないスケールインを防ぐことができるなど、実行中のゲームサーバの保護が可能になるためです」(泉水氏)
また、グローバルでのリージョンをまたいだインフラ管理を容易にするため、Google Cloud Game Server(GCGS)も採用している。「例えば日本、米国、欧州というようにワールドワイドにDGSを展開するためには、複数のKubernetesクラスターを管理しなければなりません。GCGSを活用すれば、設定変更を行う際には1つの設定ファイルを書き換えるだけで、すべてのリージョンで管理しているAgonesに反映できるようになります。もちろん、別々の設定にすることも可能。管理を容易にするために、GCGSの活用を決めました」(泉水氏)
Kubernetesを活用するメリットは、必要に応じて容易にスケールアウト、スケールインができること。このメリットにより、向き不向きはあるとはいえ、コストが抑えられるのであれば、誰もが使いたいと思う技術だ。しかし「Kubernetesは銀の弾丸ではない」と泉水氏は忠告する。小さなシステムの場合は、コストが余計にかかってしまうこともある。「あくまでも大切なのはビジネスの課題解決。コストも考慮に入れ、技術者はさまざまな選択肢を持っておくと良いでしょう」(泉水氏)
課題解決のために、新しい技術へのキャッチアップを続けていきたい
現在、2025年の崖を乗り越えるべく、多くの企業がDX(デジタルトランスフォーメーション)に取り組んでいる。grasysでもそれを支援すべく、既存インフラのクラウド移行をはじめ、ピープルアナリティクスやデータマーケティングなどの分野で、機械学習を用いたデータ活用基盤の構築を支援しているという。
「お客さま第一で、お客さまのアプリケーションが安心して稼働できるインフラの提供を心がけていきたいですね。そのために新しい技術が必要なら、どんどん取り入れていきたい。そのためにも新しい技術のキャッチアップをし続けていきたいと思います」(泉水氏)
新しい技術を貪欲に取り入れ、お客さまにとって最適なインフラを提供する。これからどんなKubernetesの事例が登場するのか。grasysの先進的な取り組みに注目したい。