【トップゲート主催】ゲーム業界様向けGCP活用のポイント 〜Google Kubernetes Engine編〜
- Cloud Monitoring
- GGG Study
- GKE
- 活用事例
弊社トップゲートではGoogle Cloudのプレミアパートナーとして、Google Cloudに関する様々なセミナーを開催しています。この記事では、ゲーム業界様向けにGCPの使い方を解説した「GGG Study」の内容についてご紹介します。
GGG Studyは全6回に分けてGCPの各スキルを習得していただくための勉強会です。第3回では、Google Kubernetes Engine(GKE)について解説していきます。
目次
Kubernetesの概要
まずはGoogle Kubernetes Engine(GKE)のベースとなるKubernetesについて解説します。
Kubernetesとは
Kubernetesは複数のコンテナを管理するためのオーケストレーションツールです。Googleの全てのサービスはコンテナ上で稼働しており、毎週20億以上ものコンテナがデプロイされています。その大規模な環境で運用を行うツールとしてGoogleはBorgというオーケストレーションツールを開発しました。何年にも渡ってBorgを使用してきた経験やノウハウを活かし、OSSとして公開されたのがKubernetesです。
負荷に応じてスケーリング
Kubernetesでは負荷に応じてコンテナを自動でスケーリングさせることが可能です。従来の仮想マシンよりも迅速に立ち上がり、通常は数十ミリ秒〜数秒程度で起動します。また、必要に応じて手動でスケーリングすることもできます。これにより、急激なアクセス数の増加に対応することができます。
しかし、Kubernetesのオートスケールは特にコンテナの状態を気にすることなく行われるため、ステートフルな制御が必要な場合には注意が必要です。例えばゲーム専用サーバーとして利用する場合、サーバーを利用中にスケールインの対象となってしまうと、ゲームプレイが中断され、ユーザー体験を損ねる可能性があります。Kubernetes上の仕組みや、Agones、Google Cloud Game Servers(GCGS)のようなゲームサーバー向けのサービスを利用し、ステートフルな制御を考慮するようにしましょう。
ローリングアップデート
Kubernetesでは、新しいコンテナをリリースする際に、サービスの停止を伴って一度に切り替えるのではなく、段階的にアップデートすることによってサービス断を回避する考え方があります。この方法はローリングアップデートと呼ばれており、古いバージョンのコンテナと新しいバージョンのコンテナを混在させ、徐々に移行していくことで実現しています。
障害時の自動復旧
Kubernetesでは障害が発生してコンテナが停止した場合には自動で再起動されるように設計されています。そのため、コンテナの復旧を考慮する必要はなく、運用コストを軽減することができます。
Kubernetesのアーキテクチャ
Kubernetesはマスターコンポーネント、ノードコンポーネント、アドオンという3つのコンポーネントが連携することによって動作します。マスターコンポーネントでは、クラスタのコントロールプレーンを提供し、クラスター全体の管理を行います。また、ノードコンポーネントでは、コンテナを実行する環境を提供します。
Google Kubernetes Engine(GKE)の概要
ここからは、Google Kubernetes Engine(GKE)についての概要を解説します。
Google Kubernetes Engine(GKE)とは
GKEとは、GCP上で提供しているKubernetesのマネージドサービスです。マスターノードはGKEが管理を行うため、ユーザー側は管理の必要がありません。
クラスタを容易に構築
Kubernetesを自身で構築する場合、先述した複数のコンポーネントが連携し、セキュアに通信できるようにセットアップする必要があります。考慮事項が非常に多いためハードルの高い作業ですが、GKEではコンソールによるGUI経由やCLIで簡単にクラスターを構築することが可能です。
GKEでのクラスター作成は以下のコードで可能です。
$ gcloud container clusters create [cluster-name]
ノードのスケーリングが可能
自分で構築したKubernetesではコンテナが稼働するサーバーであるノード自体はスケールされません。GKEでは負荷に応じてノードの自動スケーリングが可能であり、コンテナリソースのリクエスト数に基づいてノードの調整を自動で行います。
アップグレード
Kubernetesではマイナーバージョンが3ヶ月に1回リリースされます。公式のサポート期間は最新3マイナーバージョンであるため、それ以前のバージョンに対してはメンテナンスは実施されません。そのため、サポートされるバージョンを利用したい場合には少なくとも1年に1度はアップグレードする必要があります。そのため、バージョンアップの運用コストが高くなってしまうという課題があります。
GKEでは、マスターノード及びワーカーノードは自動でアップグレードが実施されるため、運用負荷を大幅に軽減することができます。スケジュールに関してはある程度の調整が可能ですが、マネージドサービスのため保証されているわけではない点に注意が必要です。また、バージョンアップに伴うアプリケーションの動作検証は自身で行う必要があります。
Google Kubernetes Engine(GKE)のメリット
GKEを利用することによるメリットを以下の4つの観点に分類してご紹介していきます。
- マネージド
- セキュリティ
- ネットワーク
- ロギング・モニタリング
以下で詳しく説明していきます。
マネージド
まず、運用管理についてです。前述の通りマスターノードの管理は不要です。また、マスターノード、ワーカーノードは自動でアップグレードされるため、ユーザー自身でメンテナンスする必要がなく、Kubernetesの運用負荷を軽減することができます。
セキュリティ
続いて、セキュリティの観点です。GCPのサービスアカウントやIAMを連携して権限を制御することが可能です。クラスター自体に対する権限だけでなく、クラスター内のオブジェクトに対する権限を設定することができます。
また、GCPではコンテナの実行用に最適化されたOSであるContainer-Optimized OSを利用することができます。オープンソースのChromium OSプロジェクトをベースとして、セキュリティを強化するための様々な機能が実装されています。
ネットワーク
次に、ネットワークです。GCPでは、Googleが自社で敷設しているグローバルネットワークを利用することができます。さらにロードバランサーと連携することで、単一のIPアドレスを使用して複数のリージョンにまたがってトラフィックを負荷分散することが可能です。上図のように複数の地域から同じIPアドレスでアクセスし、最も近いリージョンのインスタンスに自動的にルーティングされるように設計されており、システムのグローバル展開を容易に実現することができます。
ロギング・モニタリング
最後に、ロギング・モニタリングです。GCPでは、Cloud Logging及びCloud Monitoringというサービスと連携することができます。クラスターを作成すると自動的にこれらのサービスは有効化され、ログの収集や監視が開始されます。
Cloud Loggingでは、クラスター自体のログだけでなく、アプリケーションのログもCloud Loggingに出力されるため、1つのサービスで一元的にログを管理することができます。他のサービスとの連携機能も用意されており、BigQueryを活用したリアルタイム分析や、Cloud Storageに対するアーカイブなど、要件に合わせて選択することが可能です。
Cloud Monitoringではリソースの使用状況を確認し、アプリケーションのパフォーマンスを監視することができます。クラスターだけでなく、各ノードやポッド、コンテナ単位で細かくメトリクスを収集することが可能です。
Google Kubernetes Engine(GKE)料金モデル
最後に、課金体系についてご紹介します。GKEでは、クラスタの管理料金と、ワーカーノード対して発生する料金の合計が実際に課金される料金となります。
クラスタの管理料金は1時間、1クラスタあたり$0.10の管理手数料が発生します。1つの請求アカウントにつき1つのゾーンクラスタが無料で利用できます。また、それに加えてワーカーノードが稼働するCompute Engineの利用料金が発生します。
まとめ
GKEは、マネージドのKubernetes環境としてクラウド上で利用できるコンテナのプラットフォームです。構築や運用の負荷を軽減することができ、ユーザーはKuberntes自体の管理やメンテナンスを気にする必要はありません。GCP上の様々なサービスとも容易に連携することができ、要件に応じた権限設定やログの分析を行うことができます。
弊社トップゲートでは、Google Cloud (GCP) 利用料3%OFFや支払代行手数料無料、請求書払い可能などGoogle Cloud (GCP)をお得に便利に利用できます。さらに専門的な知見を活かし、
- Google Cloud (GCP)支払い代行
- システム構築からアプリケーション開発
- Google Cloud (GCP)運用サポート
- Google Cloud (GCP)に関する技術サポート、コンサルティング
など幅広くあなたのビジネスを加速させるためにサポートをワンストップで対応することが可能です。
Google Workspace(旧G Suite)に関しても、実績に裏付けられた技術力やさまざまな導入支援実績があります。あなたの状況に最適な利用方法の提案から運用のサポートまでのあなたに寄り添ったサポートを実現します!
Google Cloud (GCP)、またはGoogle Workspace(旧G Suite)の導入をご検討をされている方はお気軽にお問い合わせください。
お問合せはこちら
メール登録者数3万件!TOPGATE MAGAZINE大好評配信中!
Google Cloud(GCP)、Google Workspace(旧G Suite) 、TOPGATEの最新情報が満載!
ゲーム業界様向けGCP活用のポイントの他の記事
ゲーム業界様向けにGCPの使い方を解説した「GGG Study」は、全6回に分けてGCPの各スキルを習得していただくための勉強会です。全6回の内容とスケジュールを公開しますので、ぜひお楽しみにしてください。
第1回目
【トップゲート主催】ゲーム業界様向けGCP活用のポイント 〜Google App Engine編〜
第2回目
【トップゲート主催】ゲーム業界様向けGCP活用のポイント〜GCP for Gaming編〜
第4回目
【トップゲート主催】ゲーム業界様向けGCP活用のポイント〜BigQuery編〜