「なぜわざわざAWS上でGKEを動かすのか?」と疑問に思う方もいるかもしれません。もっともな疑問で、その理由は企業によってさまざまです。代表的なユースケースには次のようなものがあります。
- アクティブ-アクティブ構成のマルチクラウド戦略による耐障害性の確保
- 管理を一元化しながら各ベンダーのクレジットを活用
- ダウンタイムを最小限に抑えたクラウド間移行
- 既存のインフラとノウハウを活かしつつk8sの使い勝手を向上
- クラスタ作成の高速化(EKSの一般的な20分以上に対し、5〜7分)
理由はどうあれ、本記事ではAnthos GKEを使ってAWS上にGoogle Kubernetes Engine(GKE)をデプロイする方法を見ていきます。
本記事は、Google Anthos GKEを掘り下げる全3回シリーズの第1回です。
- 第1回:AWS上で動作するAnthos GKEのプレビュー
- 第2回:インストール手順をステップごとに解説
- 第3回:GKEクラスタのworkloadsからAWSサービスを利用する
アーキテクチャ

Amazon Web Services上で動作するGoogle Anthos GKE
AWS上のノードプールと手軽なk8sオートスケーリング
AmazonのマネージドKubernetesサービスであるEKSには、Googleのマネージドサービス GKE が備える多くの機能が欠けています。UIや、コントロールプレーンとワーカーノードのアップグレード操作が簡単な点に加え、人気が高いのがGoogleのオートスケーリングとノードプールです。これからは、もう妥協する必要はありません。
apiVersion: multicloud.cluster.gke.io/v1
kind: AWSNodePool
metadata:
name: cluster-0-pool-0
spec:
clusterName: cluster-0
version: 1.16.9-gke.12
region: us-east-2
subnetID: subnet-XXXXXXXX
minNodeCount: 3
maxNodeCount: 5
instanceType: t3.medium
keyName: gke-XXXXXXX-keypair
iamInstanceProfile: gke-XXXXXXXX-nodepool
maxPodsPerNode: 100
securityGroupIDs:
- sg-XXXXXXXX
rootVolume:
sizeGiB: 10

kubectlで確認したAWSインスタンス上のGKEノード
コマンドラインインターフェース(CLI)
Anthosには anthos-gke というコマンドラインインターフェース(CLI)が用意されており、gcloud CLIと同様の機能を提供しつつ、Terraformスクリプトの生成にも対応しています(本シリーズ第2回で詳しく解説します)。このツールを使えば、以下のようにコントロールプレーンと各クラスタを切り替えられます。

コントロールプレーン

テスト用クラスタ(cluster-0)
エンタープライズコンテナ管理(ECM)
これまで、企業がKubernetesクラスタの管理を一元化したいと考えたとき、選択肢となってきたのはRedhat OpenShift、VMWare Tanzu、Docker Enterprise、Rancher LabsといったECMベンダーのソリューションでした。しかし、いずれも独自の制約やベンダーロックインの課題を抱えています。

ローカルとリモートのクラスタを単一のGoogle Cloud Consoleから管理
Google Anthosなら、軽量な gke-connect-agent workloadをインストールするだけで、オンプレミス、他クラウド、さらにはGoogleのインフラ上で動作しているものまで、あらゆるKubernetesクラスタを登録できます。これにより、Google Kubernetes Engineのクラウドコンソールから任意のクラスタを操作・モニタリングできるようになります。クラスタはセルフマネージドでもクラウドマネージドでも構わず、前述のECMソリューションの一部にも対応しています。
それでは、実際に動かしてみましょう……手順はたった1-2-3です。
1\. GCP Cloud ConsoleからAWSへアプリをデプロイ
Kubernetesの管理にはkubectlコマンドラインツールやCI/CDパイプラインを使うのが一般的ですが、AWS上で稼働するGKEクラスタへのworkloadsのデプロイは、GCPコンソール(Web UI)からも実行できます。

Webからデプロイ

kubectlで確認
2\. ELBの自動プロビジョニングでアプリを公開
必要に応じてworkloadsを公開すれば、Anthos GKEがAWS ELBインスタンスを自動的にプロビジョニング・構成し、アプリを外部からアクセス可能にします。

workloadsの公開とELBの作成
サービスを「expose」したあとは、GKEのUIからサービスの詳細を確認できます。この例ではLoadBalancerタイプです。

GKEサービスの詳細画面
3\. 完了!
AWSコンソールに戻ると、Anthos GKEがプロビジョニングしたロードバランサーを確認できます。

AWSリソースに表示されるロードバランサー
ブラウザでエンドポイントURLにアクセスすれば、AWS上のGKEクラスタにデプロイしたnginxサーバー(本例)が正常に動作している様子を確認できます。わずか数クリックで、ELBによる公開まで完了しました。

やりました!数秒後にはNginxがブラウザからアクセスできる状態に
次のステップ
次回の記事では、AWS上にAnthos GKEをインストールする手順を一つずつ詳しく解説します。
公開され次第こちらにリンクを掲載しますので、ぜひチェックしてみてください。新着記事を見逃さないためにフォローもおすすめです。さまざまな記事を掲載しているhttps://blog.doit-intl.com もぜひご覧ください。