Kubernetes 運用を効率化できる GKE とは?特徴や活用事例、料金体系まで一挙に解説!
Google Kubernetes Engine (以下 GKE と記載)というサービスをご存知でしょうか? Google が提供するパブリッククラウド「 Google Cloud 」に内包されており、 Kubernetes の運用を効率化できるマネージドサービスです。
本記事では、 GKE とは何かという基礎的な内容に加えて、 GKE の特徴や活用事例、料金体系などを一挙にご紹介します。 GKE について関心のある方は、ぜひ最後までご覧ください。
目次
Kubernetes とは?
Google Kubernetes Engine ( GKE )について解説する前に、まずは Kubernetes の基礎知識を理解しておきましょう。
Kubernetes (読み方:「クーベネティス」または「クバネティス」)とは、コンテナの運用管理や自動化を行うための OSS ( Open Source Software :誰でも自由に取得・利用できる一般公開されたソフトウェア)を意味する言葉であり、一般的には「コンテナオーケストレーションツール」と呼ばれています。
なお、コンテナとは、アプリケーションを動作させるために必要なものを一つにまとめた仕組みであり、オーケストレーションツールとは、システム・サービスなどの構築や運用管理を自動化するためのツールを意味する言葉です。
従来、 Google は大規模な環境で運用を行うための Borg というオーケストレーションツールを開発・提供していました。その後、 Borg で得られた知見を活用することで、 Kubernetes を新たなコンテナオーケストレーションツールとして公開したのです。
コンテナの特徴として、アプリケーションを実行するための機能が備わっている点が挙げられますが、コンテナの管理や他のサーバーと連携することはできません。そのため、これらの課題を解決するための仕組みとして Kubernetes が生み出されました。
例えば、複数のコンテナを運用する際には、ストレージやネットワークなどの連携管理が求められます。従来、これらの作業は大きな負荷を伴うものでしたが、 Kubernetes を活用することで、連携管理を容易に行うことができ、予期せぬトラブルが起きた場合でも安定的にシステムを継続稼働させることが可能です。
このように、 Kubernetes はコンテナを活用するうえで重要な要素の一つになります。実際、多くの企業がコンテナや Kubernetes を使い、自社の業務効率化や生産性向上を実現しています。
Google Kubernetes Engine ( GKE )とは?
Google Kubernetes Engine ( GKE )は、 Google のパブリッククラウド Google Cloud に内包されているサービスの一つです。前述した Kubernetes の運用を効率化できるサービスであり、 GKE ならではの様々な特徴を有しています。
例えば、 GKE はマネージドサービスとして提供されており、インフラ部分の保守・運用は Google が対応するため、自社の負荷軽減に繋がります。障害などのトラブルが発生した場合でも、 Google のエンジニアが全面的に対応してくれるので、ビジネスシーンにおいても安心して利用できます。
また、 GKE には使いやすいコンソール(管理画面)が搭載されており、これを使うことでクラスターを簡単に構築できます。さらに、負荷に応じてノードを自動的にスケーリングしたり、 Google Cloud のアカウントと連携して権限制御をしたりするなど、ビジネスシーンで便利に使える機能が多数備わっています。
加えて、 GKE には「 GKE Standard 」と「 GKE Autopilot 」という 2 つのモードが用意されており、 GKE Autopilot を使えば、ユーザー側でマスターノード(構成内で特別な役割を有しているノードのこと)を管理する必要はなく、 GKE 側で管理してくれる点も嬉しいポイントです。
そのほかにも、トラフィックの負荷分散やロギング・モニタリング(機器・アプリケーションの動作状況をデータで見える化し、ストレージへ保存する機能)など、多種多彩な機能が搭載されています。 Cloud Build や他の CI / CD ツールとも統合可能であり、自動化されたビルドやテスト、デプロイメントプロセスなどをサポートしている点も大きな特徴です。
このように、 GKE は Kubernetes の運用を効率化し、自社の負荷軽減や生産性向上を実現できる高性能なコンテナプラットフォームであると言えるでしょう。
Google Kubernetes Engine ( GKE )の特徴
ここまで、 Google Kubernetes Engine ( GKE )の概要についてご説明しましたが、具体的に GKE はどのような特徴を持っているサービスなのでしょうか?本章では、 GKE の代表的な特徴についてご紹介します。
フルマネージドな Kubernetes サービス
Google Kubernetes Engine ( GKE )の大きな特徴として、フルマネージドで提供されている点が挙げられます。フルマネージドとは、ほぼ全ての業務をベンダーが代行してくれることを意味しており、システムの保守・運用はもちろんのこと、有事の際の障害対応などもベンダーが巻き取ってくれます。
GKE の類似サービスとしては、 kubeadm や kops 、 Rancher 、Minikube などが該当しますが、これらは「セルフマネージド Kubernetes 」であり、サーバーやソフトウェアの運用・管理をユーザー側で行う必要があります。そのため、自社の工数を削減しながら Kubernetes を効率的に運用するためには、 GKE が有効なサービスになると言えるでしょう。
GKE Autopilot による運用の自動化
前述した通り、 Google Kubernetes Engine ( GKE )には「 GKE Autopilot 」というモードが用意されています。 GKE Autopilot は手動操作が不要な運用モードであり、これを活用することでクラスタの基盤となるコンピューティングを効率的に管理でき、ユーザーによる構成・モニタリングが一切不要になります。
その結果、人間は利益に直結する重要性の高い業務に集中できるため、自社のビジネス成長に繋がります。なお、次章で GKE Standard と GKE Autopilot の違いについて解説していますので、あわせてご確認ください。
コンテナネイティブのネットワーキングとセキュリティ
Google Kubernetes Engine ( GKE )における限定公開のネットワーククラスタへのアクセスは、
- プライベートエンドポイント
- 特定のアドレス範囲のみがアクセス可能なパブリックエンドポイント
に限定することが可能です。
また、 GKE Standard モードの GKE Sandbox では、コンテナ化されたワークロード間に第 2 の防御レイヤーを設けて、ワークロードのセキュリティを強化できます。さらに、 GKE のクラスタは Kubernetes のネットワークポリシーを本質的にサポートしており、 Pod レベルでのファイアウォールルールにより、トラフィックを制限することも可能です。
このように、 GKE を活用することで、コンテナネイティブなネットワーキングやセキュリティの強化を実現できます。
Pod とクラスタの自動スケーリング
Google Kubernetes Engine ( GKE )では、
- Kubernetes API
- 4 方向の自動スケーリング
- リリースチャンネル
- マルチクラスタサポート
などが実装されており、最大 15,000 ノードまで自由自在にスケーリングすることが可能です。また、水平 Pod 自動スケーリングは、 CPU の使用率やカスタム指標に合わせて実行されるため、自社の状況に合わせて柔軟な運用を実現できます。
さらに、クラスタに関してはノードプールごとに自動スケーリングが動作します。垂直 Pod 自動スケーリングでは、 Pod の CPU やメモリの使用率などを継続的に分析することで、 CPU とメモリリクエストを自動調整してくれます。
このように、 GKE を活用することで、 Pod やクラスタの自動スケーリングを実現でき、自社の業務効率化や生産性向上に直結します。
マルチクラウドとハイブリッドクラウド
昨今、複数のクラウドサービスを並行利用する「マルチクラウド」や、オンプレミスとクラウドをどちらも利用する「ハイブリッドクラウド」などを採用する企業も珍しくありません。そして、 Google Kubernetes Engine ( GKE )を GKE on-prem や Anthos などの別サービスと組み合わせて使えば、マルチクラウド・ハイブリッドクラウドの環境を構築することが可能になります。これにより、クラウド活用の幅が大きく広がるため、この点は GKE の大きなメリットの一つだと言えるでしょう。
Google Kubernetes Engine ( GKE )の 2 つのモードによる違い
Google Kubernetes Engine ( GKE )には、
- GKE Standard
- GKE Autopilot
の 2 つのモードが存在しており、それぞれ異なる特徴を持っています。
以下、モードごとの違いを表にまとめます。
機能 | GKE Standard | GKE Autopilot |
---|---|---|
ネットワークタイプ | VPC ネイティブクラスタ または Route based クラスタ | VPC ネイティブクラスタ |
SLA | ノード単位 + Control Plane の SLA | Pod 単位 + Control Plane の SLA |
ノード | マネージド | フルマネージド |
Control Plane | フルマネージド | フルマネージド |
アップグレード | Control Plane :自動ノード:自動 または 手動 | Control Plane :自動ノード:自動 |
クラスタタイプ | リージョン または Multi zonal または Single zonal クラスタ | リージョンクラスタ |
このように、 GKE は選択するモードに応じて機能・特徴が異なる部分が存在します。両者の違いを理解したうえで、自社にとって最適なモードを選んでください。
Google Kubernetes Engine ( GKE )が適している環境
Google Kubernetes Engine ( GKE )は、コンテナ化されたアプリケーションを実行するためのプラットフォーム構築に最適なサービスです。
例えば、
- ネットワーキング
- スケーリング
- ハードウェア
- セキュリティ
などのインフラストラクチャを構成したい場合、 GKE を活用すれば、アプリケーションの実行環境(プラットフォーム)を手間なく構築することが可能になります。また、 GKE は Kubernetes を効率的に運用するだけではなく、コントロールプレーンやノードなど、基盤となる様々なコンポーネントを管理することもできます。
このように、 GKE を活用することで、プラットフォーム構築やコンポーネント管理にかかる工数削減に繋がります。サービスの特徴や適している環境を理解し、自社の状況に合わせて最適なシーンで GKE を活用してみてください。
Google Kubernetes Engine ( GKE )の活用事例
有名な Web サービスである「価格 .com 」や「食べログ」などを運営する株式会社 カカクコムでは、 2019 年にリリースした「食べログテイクアウト」という新サービスを開発するにあたり、 Google Cloud 上にプラットフォーム環境を構築しました。
当時、食べログの競合サービスが多く存在していたため、同社は 1 日でも早く新サービスを立ち上げたいと考えていました。しかし、オンプレミスでは長いリードタイムを要するため、プロジェクトを円滑に進めるためにクラウドおよび Kubernetes の利用を決断したのです。
Kubernetes はインフラをすべてコードで管理でき、ネットワークを含めた構成を 1 つのマニフェストで書くことが可能なため、システムの開発・運用の効率化に繋がります。しかし、同社では Kubernetes の運用経験を持つ人材がおらず、この点が大きな課題となっていました。
そこで、同社は Kubernetes 運用を手間なく行うため、マネージドサービスとして提供されている Google Kubernetes Engine ( GKE )を採用しました。また、 GKE だけではなく、データベースには Cloud SQL 、ログ監視には Cloud Monitoring や Cloud Logging を使うなど、 Google Cloud に搭載されている各種サービスをフル活用し、食べログテイクアウトの全体構成を設計しています。
これにより、プロジェクトの担当者は手間なく新サービスの開発を進めることができ、結果的に短期間でのリリースを実現できました。インフラ周りの作業に手間を取られることなく、アプリケーションの開発に専念できたことが成功の要因だと言えるでしょう。
今後については、データ分析基盤を BigQuery へ移行し、より効率的かつ高精度なデータ分析を実現すべく準備を進めています。このように、 GKE や Google Cloud を有効に活用し、自社のビジネス成長に繋げた好事例となっています。
Google Kubernetes Engine ( GKE )の料金体系
Google Kubernetes Engine( GKE )の利用料金は、
- エディション
- クラスタ運用モード
- クラスタ管理手数料
- 該当する受信データ転送料金
などの要素をもとに決定されます。
以下、 GKE の料金体系を表にまとめます。
サービス | エディション / モード | 1 時間あたりの料金 |
---|---|---|
Kubernetes | Enterprise エディション | 0.0083 米ドル / vCPU |
Standard エディション | 0.1000 米ドル / クラスタ | |
コンピューティング | Autopilot モード | Pod にプロビジョニングされた CPU 、メモリ、コンピューティングの各リソースに応じて課金 |
Standard モード | Compute Engine の料金設定に沿ってインスタンスごとに課金 |
※参照元:Google 公式サイト「 GKE の料金の仕組み」
このように、 GKE の料金は利用するエディションやモードによって変動します。一点、 Enterprise エディションは vCPU ごとの課金であるのに対して、 Standard エディションはクラスタごとの課金になるため、この点には注意が必要です。
ちなみに、 Enterprise エディションは Standard エディションで利用できる各種機能に加えて、マルチチームやマルチクラスタ、セルフサービスの運用、高度なセキュリティ、統合されたコンソールなどの機能が追加されています。
そのため、自社の状況に合わせて利用するエディションやモードを選択することが大切です。なお、 GKE にはゾーンクラスタと Autopilot クラスタに適用される「 74.40 米ドル / 月」分の無料枠が用意されているため、 GKE の利用イメージを掴みたい場合には、この無料枠を活用すると良いでしょう。
まとめ
本記事では、 Google Kubernetes Engine ( GKE )とは何かという基礎的な内容に加えて、 GKE の特徴や活用事例、料金体系などを一挙にご紹介しました。
企業が GKE を活用することで、コンテナ運用の自動化やセキュリティ強化など、様々なメリットを享受できます。この記事を読み返して、サービスの特徴や料金体系などを理解しておきましょう。
当社センティリオンシステム 大阪事業所はこれまでの多くのクラウド開発を支援してきた知見を活かし、クラウドを活用した内製化に取り組まれるお客様を全力でサポートします。
以下のような課題をお持ちの方は、ぜひお気軽にご相談ください。
- クラウド活用を推進するための開発体制作りが進まない
- 既存資産をどのようにクラウド移行するか検討する知見が不足している
- 内製化するためのクラウド開発スキルを持った人材が不足している
- コスト削減の実現方法に悩んでいる
- SRE を実現したい
貴社の状況に合わせて、体制づくり支援や開発計画支援、クラウド開発スキルアップ支援など、様々な支援メニューを提供しています。
無料で相談できるため、まずは問い合わせフォームからご連絡いただければと思います。
本記事を参考にして、 Google Cloud の導入および GKE の活用を検討してみてはいかがでしょうか?