Anthosではじめる実践マルチクラウド
2022/05/12
2022/05/12
クラウドに関するITインフラストラクチャーにおいて、
を前提にアーキテクチャを選定、運用する際に「マルチクラウド化により柔軟なカスタマイズと可用性の担保」を考えることがあるかと思います。
本記事では、Accenture社内にて、Google Cloudが提供するマルチクラウド・プラットフォームである「Anthos」を実践的に検証した結果を共有いたします。
Anthosとは、Google Cloudが提供するマルチクラウドを実現するためのマネージド・サービスです。Anthosを導入することで、マネージドなKubernetesをGoogle Cloudだけでなく
でも利用できるようになります。
更に、
などモダナイゼーションに有用な機能も提供されます。
<<< Start >>>
<<< End >>>
Anthos の主要機能は大きく分けて以下の通りです。
今回実施した検証は一部機能になります。詳細は次章で説明いたしますが、あらかじめご了承ください。
また、Anthosの各機能はプラットフォームによってはサポート対象外のものがあり、サポート対象であっても機能が制限されている可能性もあります。詳細はGoogleのHPをご確認ください。
https://cloud.google.com/anthos/deployment-options
参考:
今回の検証について、環境構築、検証項目と検証結果を順に紹介します。
AnthosはGoogle Cloudに限らず色んな環境でインストール出来ます。大きく分けて以下の三つ種類となります。
今回の検証はCloud環境にフォーカスするため、Google Cloud、AWSとAzure版のAnthos環境をそれぞれ作りました。環境に関する詳細の構成図は以下となります。
<<< Start >>>
<<< End >>>
Google Cloud版(GKE)の環境構築は、GKE clusterを立ち上げ、clusterをAnthosの傘下に置くことにより簡単に実現できました。
Anthos Cluster on AWSは検証の時にまだv1版が存在していて、最初にv1版を構築しましたが、その後v2版もpreviewとしてリリースされて、v2版に切り替えました。AWS v1のAnthosはいずれか廃止され、v1とv2のアーキテクチャも大幅に変更されたため、将来的にはv2を理解して学習して良いと考えます。
Anthos Cluster on AWSとAzure v2はどちらも同じアーキテクチャを使用しています。
両方はGoogleが提供するgcloud container aws / azureコマンドを使用して、AWSおよびAzure環境でk8を構築するために必要なVM、ネットワーク、LBなどのリソースを構築しました。Anthos関連機能もGoogle Cloudと同じくインストール出来ます。
<<< Start >>>
<<< End >>>
Ref: https://cloud.google.com/anthos/clusters/docs/multi-cloud/aws/concepts/architecture
<<< Start >>>
<<< End >>>
Ref: https://cloud.google.com/anthos/clusters/docs/multi-cloud/azure/concepts/architecture
「Anthosによる各機能はどういった視点で利用できるか?(特にマルチクラウドでAnthosはどのような強みを持っているか)」をテーマに、以下の検証を行いました。
Google Cloudおよび、AWS/Azureのマルチクラウド検証を行いました(※補足・オンプレミスでの検証は今回行いませんでした)。具体的な検証項目は以下の通りとなります。
「Anthos基本的な機能検証 (Google Cloud)」
「マルチクラウド(AWS/Azure)」
ここからAnthos基本機能の検証内容を紹介します。今回PoCチームはまずAnthos Config Management(ACM)機能を有効にし、その3つのサブ機能を検証しました。
Policy ControllerはOpen Policy Agentに基づくツールであり、Anthosのコンソール上に設定されるとGKEに自動的にインストールされます。
Config Syncは、GitHubなどのリポジトリをAnthosが管理するGKEに接続し、yamlファイルをリポジトリにプッシュして、GKEによって自動的にプルダウンされ、k8sクラスターにデプロイされます。このプロセスはGitOpsとも呼ばれます。つまり、gitコマンドはDevOps全体のトリガー開始点です。これらの2つ機能は多くの場合に組み合わせて使用 されます。検証中は、Policy Controllerの定義テンプレート(yaml)を使用して、k8sクラスター内の名前空間の名前ルールを制限するシナリオをテストしました。
Config Controllerは、Policy Controller、Config SyncとConfig Connectorを組み合わせたものです。これらの組み合わせにより、yamlでGoogle Cloudリソースを定義し、GKEでyamlをデプロイした上で、Google CloudのリソースをGKEクラスター上に管理されます。
ACMの検証が終了後、以下の検証を行いました。
Binary AuthはAnthos固有の機能ではありませんが、k8sクラスターデプロイメントのセキュリティ上の考慮事項に基づいて、Anthosにも含まれています(もちろん、Anthosに追加されていないGKEでもこの機能が使用できます)。今回の検証はBinary Authを設定した後、署名付きイメージのみデプロイ出来るユースケースを実施しました。
ASMに関しては、GKEクラスターをセットアップした後、デモ用のWebアプリケーションをデプロイしました。 Webアプリケーションにアクセスしている間、ASMによって収集されたテレメトリもGoogle Cloudコンソールのネットワークトポロジにより、可視化されました。さらに、2つの異なるリージョンのGKEを同じAnthosに登録した上で、2つのGKEのASMをセットアップし、クラスター間のネットワークの接続を確認しました。言い換えると、Google Cloud上のマルチクラスターサービスメッシュを構築しました。
<<< Start >>>
<<< End >>>
Cloud Run for Anthosは、AnthosバージョンのCloud Runであり、デプロイメント環境がGoogle-ManagedからAnthos GKEに変更されていることを除いて、基本的にCloud Runと同じ機能を備えています。 Cloud Run for Anthosにシンプルなhello worldプログラムをデプロイし、istio-ingress-gatewayを設定してパブリックドメインからhello worldプログラムと接続が出来ました。
マルチクラウドの検証はほぼGoogle Cloudと同じくてAnthosの基本機能を検証しましたが、Anthos Cluster on AWSとAzureはすべてのAnthos機能がサポートされていないため、一部の機能が確認出来ませんでしたAnthos Cluster on AWSとAzureは具体的にAnthosのどの機能はサポートされていない詳細については、Anthosの公式ドキュメントを参照してください。
社内検証の結果、以下のことがわかりました。
ACMは、マルチクラウド管理の強力なツールとして使用できます。 Policy ControllerとConfig Syncは、マルチクラウドのk8s環境を管理するのに役立ちます。さまざまなポリシー制限を設定して、マルチクラウドk8s環境の一貫性が維持できるため、管理の負荷が大幅に軽減されます。Config Controllerはterraform cloudと似ていますが、クラウドリソースをk8s上で管理する新しい手法(CAC)を提供します。これは、terraformが薦めるIaCとは少し異なります。クラウドリソースの定義をyamlに書き込むことで、リソース自体がkubectl create -f yamlによってk8sクラスターに反映されます。k8sクラスター上のリソースを経由して、クラウドのリソースに対してさまざまな操作や監視を行うという形です。
Googleが管理するマネジメント版のistioとして、ASMはオープンソースのistioよりインストールが便利であり、Google Cloudはサービスメッシュの可視化機能も提供します。マルチクラスターに関しては、ASMはGoogle Cloudの違うリージョンにあるGKEクラスターを簡単な設定でお互いに接続できます。そして、ASMのマルチクラウドサポートもGoogle Cloudがロードマップ上にも載せられていますので、今後は更に豊かな便利な機能も展開されるのは期待しています。
Anthosは既にマルチクラウドでいくつかフィールドのサポートをしており、例えばACM機能はAWS、Azure、およびオンプレミス環境で使用できます。ASMに関しては、Google Cloud以外のプラットフォームではまだ利用できない機能がいくつかありますが、上記に述べたようにGoogleも積極的に開発しています。ロギングに関しては、Google Cloud上にAnthosを利用する場合はすべて種類のログ連携がサポートします。AWSやAzureなどの他のクラウドプラットフォーム上のAnthos K8sクラスターは、まだすべての種類のログ連携をサポートしていないです。 Cloud Run for Anthosは現在、主にGoogle Cloud環境をサポートしており、他の環境ではプレビューリリースの状態です。まとめると、Anthosはすでにマルチクラウドに対して主な機能をサポートしており、全プラットフォームに展開していく開発はまだ進行中です。AnthosがASM、AnthosのCloud Run、およびAWSとAzureでのロギング機能を将来Google Cloudと同じレベルのサポートになる場合は、マルチクラウド上のAnthosエコシステムはより強くになります。
以上がAnthosを用いたマルチクラウド実践の検証結果となります。
マルチクラウド環境のKubernetesクラスター環境を個々に運用するのは大変煩雑ですが、Anthos を利用することで、以下のようなメリットを享受することができます。
クラウドサービスのため、スモールスタートで始められるのも嬉しい限りですね。上記のようなメリットに少しでも興味のある方は、Anthosを利用してみてはいかがでしょうか。
最後までお読みいただき、ありがとうございました。