クラウドに関するITインフラストラクチャーにおいて、

  • カスタマイズの柔軟性
  • リスク分散・回避

を前提にアーキテクチャを選定、運用する際に「マルチクラウド化により柔軟なカスタマイズと可用性の担保」を考えることがあるかと思います。

本記事では、Accenture社内にて、Google Cloudが提供するマルチクラウド・プラットフォームである「Anthos」を実践的に検証した結果を共有いたします。

目次 

  • Anthosとは
  • 環境構築
  • 検証項目
  • 検証の結果・振り返り
  • 結び

Anthosとは

Anthosとは、Google Cloudが提供するマルチクラウドを実現するためのマネージド・サービスです。Anthosを導入することで、マネージドなKubernetesGoogle Cloudだけでなく

  • 他社クラウド(AWS, Azureなど)
  • オンプレミス
  • エッジ

でも利用できるようになります。

更に、

  • サービスメッシュ
  • サーバーレス
  • GitOps
  • コンテナセキュリティ

などモダナイゼーションに有用な機能も提供されます。

<<< Start >>>

<<< End >>>

Anthos の主要機能は大きく分けて以下の通りです。

  • Anthos Service Mesh (ASM)
    • Google Cloud、オンプレミス、他社クラウドで利用可能なサービスメッシュです。Istioをベースとしているため信頼性が高く、Google Cloud上でモニタリング、管理が可能になります。
  • Anthos Config Management (ACM)
    • Google Cloud、オンプレミス、他社クラウドでカスタムポリシーを含むすべてのインフラストラクチャに共通の構成管理を作成することが可能になります。例えば、1つのGit リポジトリにマニフェストをpushするとACMを有効にした全てのGKEクラスタにそのマニフェストがデプロイされます。
  • Cloud Run for Anthos
    • Google Cloud、オンプレミス、他社クラウドでAnthosをインストールしているGKEクラスタ上にサーバレスコンテナをデプロイすることが可能になります。また、デプロイされたアプリをASMに参加させることできます。
  • Binary Authorization
    • Google Cloud、オンプレミスで署名によりコンテナイメージの信頼性をチェックすることが可能になります。不正なコンテナイメージのデプロイを防ぐことが可能になります。
  • Multi Cluster Ingress
    • Google Cloudでクラスタやリージョン間で共有されたマネージドな負荷分散リソースの作成が可能になります。
  • Migrate for Anthos
    • VMware オンプレミス、AWSAzureCompute Engine のいずれかで実行されている VM ベースのワークロードをGKEまたはAnthosのコンテナに変換することが可能になります。

今回実施した検証は一部機能になります。詳細は次章で説明いたしますが、あらかじめご了承ください。

また、Anthosの各機能はプラットフォームによってはサポート対象外のものがあり、サポート対象であっても機能が制限されている可能性もあります。詳細はGoogleHPをご確認ください。

https://cloud.google.com/anthos/deployment-options

参考:

環境構築

今回の検証について、環境構築、検証項目と検証結果を順に紹介します。

AnthosはGoogle Cloudに限らず色んな環境でインストール出来ます。大きく分けて以下の三つ種類となります。

  • Cloud環境 (Google CloudAWSAzure)
  • On-premise環境 (Bare metalVMware)
  • Attached K8s環境 (Amazon EKSMicrosoft AKSRed Hat OpenShift Kubernetes Engineなど)

今回の検証はCloud環境にフォーカスするため、Google CloudAWSAzure版のAnthos環境をそれぞれ作りました。環境に関する詳細の構成図は以下となります。

<<< Start >>>

<<< End >>>

 

GKE

Google Cloud版(GKE)の環境構築は、GKE clusterを立ち上げ、clusterAnthosの傘下に置くことにより簡単に実現できました。

AWS / Azure

Anthos Cluster on AWSは検証の時にまだv1版が存在していて、最初にv1版を構築しましたが、その後v2版もpreviewとしてリリースされて、v2版に切り替えました。AWS v1Anthosはいずれか廃止され、v1v2のアーキテクチャも大幅に変更されたため、将来的には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はどのような強みを持っているか)」をテーマに、以下の検証を行いました。

  • Anthosの基本的な機能検証 (Google Cloud)
  • マルチクラウド(AWS/Azure

Google Cloudおよび、AWS/Azureのマルチクラウド検証を行いました(※補足・オンプレミスでの検証は今回行いませんでした)。具体的な検証項目は以下の通りとなります。

Anthos基本的な機能検証 (Google Cloud)

  • Anthos on Google Kubernetes Engine(GKE
  • Anthos Config Management
    • Policy Controller
    • Config Sync
    • Config Controller
  • Binary Authorization
  • Anthos Service Mesh
  • Cloud Run for Anthos
  • Multi-Cluster間のService Mesh構築

「マルチクラウド(AWS/Azure)」

  • Anthos基本的な機能検証 (GKE版と同じ項目を検証)

ここからAnthos基本機能の検証内容を紹介します。今回PoCチームはまずAnthos Config Management(ACM)機能を有効にし、その3つのサブ機能を検証しました。

  • ポリシーコントローラー (Policy Controller)
  • 構成同期 (Config Sync)
  • 構成コントローラー (Config Controller)

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 ControllerConfig SyncConfig Connectorを組み合わせたものです。これらの組み合わせにより、yamlGoogle Cloudリソースを定義し、GKEyamlをデプロイした上で、Google CloudのリソースをGKEクラスター上に管理されます。

ACMの検証が終了後、以下の検証を行いました。

  • Binary Authorization(Binary Auth
  • Anthos Service Mesh(ASM
  • Cloud Run for Anthos

Binary AuthはAnthos固有の機能ではありませんが、k8sクラスターデプロイメントのセキュリティ上の考慮事項に基づいて、Anthosにも含まれています(もちろん、Anthosに追加されていないGKEでもこの機能が使用できます)。今回の検証はBinary Authを設定した後、署名付きイメージのみデプロイ出来るユースケースを実施しました。

ASMに関しては、GKEクラスターをセットアップした後、デモ用のWebアプリケーションをデプロイしました。 Webアプリケーションにアクセスしている間、ASMによって収集されたテレメトリもGoogle Cloudコンソールのネットワークトポロジにより、可視化されました。さらに、2つの異なるリージョンのGKEを同じAnthosに登録した上で、2つのGKEASMをセットアップし、クラスター間のネットワークの接続を確認しました。言い換えると、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 AWSAzureはすべてのAnthos機能がサポートされていないため、一部の機能が確認出来ませんでしたAnthos Cluster on AWSAzureは具体的にAnthosのどの機能はサポートされていない詳細については、Anthosの公式ドキュメントを参照してください。

検証の結果・振り返り

社内検証の結果、以下のことがわかりました。

  • ACMはマルチクラウドの強力なツールである
  • マイクロサービスのネットワーク管理としてのASMの利便性
  • マルチクラウドの対応状況

ACMはマルチクラウドの強力なツールである

ACMは、マルチクラウド管理の強力なツールとして使用できます。 Policy ControllerConfig Syncは、マルチクラウドのk8s環境を管理するのに役立ちます。さまざまなポリシー制限を設定して、マルチクラウドk8s環境の一貫性が維持できるため、管理の負荷が大幅に軽減されます。Config Controllerterraform cloudと似ていますが、クラウドリソースをk8s上で管理する新しい手法(CAC)を提供します。これは、terraformが薦めるIaCとは少し異なります。クラウドリソースの定義をyamlに書き込むことで、リソース自体がkubectl create -f yamlによってk8sクラスターに反映されます。k8sクラスター上のリソースを経由して、クラウドのリソースに対してさまざまな操作や監視を行うという形です。

マイクロサービスのネットワーク管理としてのASMの利便性

Googleが管理するマネジメント版のistioとして、ASMはオープンソースのistioよりインストールが便利であり、Google Cloudはサービスメッシュの可視化機能も提供します。マルチクラスターに関しては、ASMGoogle Cloudの違うリージョンにあるGKEクラスターを簡単な設定でお互いに接続できます。そして、ASMのマルチクラウドサポートもGoogle Cloudがロードマップ上にも載せられていますので、今後は更に豊かな便利な機能も展開されるのは期待しています。

マルチクラウドの対応状況

Anthosは既にマルチクラウドでいくつかフィールドのサポートをしており、例えばACM機能はAWSAzure、およびオンプレミス環境で使用できます。ASMに関しては、Google Cloud以外のプラットフォームではまだ利用できない機能がいくつかありますが、上記に述べたようにGoogleも積極的に開発しています。ロギングに関しては、Google Cloud上にAnthosを利用する場合はすべて種類のログ連携がサポートします。AWSAzureなどの他のクラウドプラットフォーム上のAnthos K8sクラスターは、まだすべての種類のログ連携をサポートしていないです。 Cloud Run for Anthosは現在、主にGoogle Cloud環境をサポートしており、他の環境ではプレビューリリースの状態です。まとめると、Anthosはすでにマルチクラウドに対して主な機能をサポートしており、全プラットフォームに展開していく開発はまだ進行中です。AnthosASMAnthosCloud Run、およびAWSAzureでのロギング機能を将来Google Cloudと同じレベルのサポートになる場合は、マルチクラウド上のAnthosエコシステムはより強くになります。

結論・総括

以上がAnthosを用いたマルチクラウド実践の検証結果となります。

マルチクラウド環境のKubernetesクラスター環境を個々に運用するのは大変煩雑ですが、Anthos を利用することで、以下のようなメリットを享受することができます。

  • クラウド間のインフラレイヤーを抽象化し、統合管理により運用負荷を低減
  • コンテナアプリケーションを各クラウドが提供する最適なサービスを利用するために分散展開
  • 最適な分散展開により、クラウド間で発生していた無駄な通信費用を抑制
  • オンプレミスにあるリソースも有効活用
  • マルチクラウドによる高可用性とオペレーションの一貫性を両立

クラウドサービスのため、スモールスタートで始められるのも嬉しい限りですね。上記のようなメリットに少しでも興味のある方は、Anthosを利用してみてはいかがでしょうか。

最後までお読みいただき、ありがとうございました。

執筆者

  • テクノロジーコンサルティング 本部マネジャー 山口 公浩
  • テクノロジーコンサルティング 本部マネジャー 中川 伸一
  • テクノロジーコンサルティング 本部アソシエイトマネジャー 傅 楽
  • テクノロジーコンサルティング 本部アナリスト 牛澤 克哉

傅 楽

テクノロジー コンサルティング本部 アソシエイト・マネジャー


中川 伸一

テクノロジー コンサルティング本部 マネジャー 


牛澤 克哉

テクノロジー コンサルティング本部 アナリスト


山口 公浩

テクノロジー コンサルティング本部 マネジャー

ニュースレター
Subscribe to アクセンチュア・テクノロジー・ダイアリーズ Blog Subscribe to アクセンチュア・テクノロジー・ダイアリーズ Blog