Anthos は、Google Cloud Platform (GCP) が提供するハイブリッドおよびマルチクラウドアプリケーションプラットフォームです。Kubernetesをベースにしており、オンプレミス環境、Google Cloud、その他のパブリッククラウド(AWS、Azure など)にわたって一貫したアプリケーション管理を実現します。Anthosを使用することで、企業はアプリケーションをどこで実行するかに関係なく、一貫した方法で開発、セキュア化、管理することができます。
Anthosは以下の主要コンポーネントで構成されています:
コンポーネント | 説明 |
---|---|
GKE (Google Kubernetes Engine) | Google Cloud上で実行されるマネージドKubernetesサービス |
GKE on-prem | オンプレミス環境で実行されるGKE互換のKubernetesプラットフォーム |
Anthos Clusters on AWS/Azure | AWSやAzure上で実行されるGKE互換のKubernetesクラスタ |
Anthos Config Management | 複数のクラスタにわたるポリシーと構成の一元管理 |
Anthos Service Mesh | Istioベースのサービスメッシュによるマイクロサービス管理 |
Cloud Run for Anthos | Anthosクラスタ上でサーバーレスワークロードを実行するためのプラットフォーム |
Anthos Identity Service | クラスタへのアクセスを管理するための認証サービス |
Connect | すべてのクラスタをGoogle Cloudに接続し、一元管理するためのサービス |
Anthosと従来のハイブリッドクラウドソリューションには以下のような違いがあります:
Anthosは、様々な環境に導入することができます。以下に主な導入方法を示します:
Google Cloud上では、GKEを使用してAnthosを導入します:
gcloud container clusters create my-gke-cluster \
--zone=asia-northeast1-a \
--enable-ip-alias \
--release-channel=regular \
--workload-pool=my-project.svc.id.goog
オンプレミス環境では、GKE on-premを使用してAnthosを導入します。これには以下のステップが含まれます:
AWS上では、Anthos Clusters on AWSを使用してAnthosを導入します:
gcloud container aws clusters create my-aws-cluster \
--aws-region=us-west-2 \
--cluster-version=1.21.5-gke.2800 \
--fleet-project=my-project-id \
--vpc-id=vpc-0123456789abcdef0 \
--subnet-ids=subnet-0123456789abcdef0,subnet-0123456789abcdef1 \
--iam-instance-profile=my-instance-profile
Azure上では、Anthos Clusters on Azureを使用してAnthosを導入します:
gcloud container azure clusters create my-azure-cluster \
--location=eastus \
--client=my-client-id \
--fleet-project=my-project-id \
--resource-group=my-resource-group \
--vnet-name=my-vnet \
--cluster-version=1.21.5-gke.2800
Anthos Config Management(ACM)は、複数のクラスタにわたるポリシーと構成を一元管理するためのツールです。GitOpsアプローチを採用しており、Gitリポジトリを「信頼できる唯一の情報源」として使用します。
# ACMのインストール
gcloud beta container fleet config-management enable
# ACMの構成
# 以下の内容をconfig-management.yamlファイルに保存
# apiVersion: configmanagement.gke.io/v1
# kind: ConfigManagement
# metadata:
# name: config-management
# spec:
# clusterName: my-cluster
# git:
# syncRepo: https://github.com/my-org/my-config-repo
# syncBranch: main
# secretType: ssh
# policyDir: "."
# クラスタへの適用
gcloud beta container fleet config-management apply \
--membership=my-cluster \
--config=config-management.yaml
Anthos Service Mesh(ASM)は、Istioをベースにしたサービスメッシュで、マイクロサービス間の通信を管理します。トラフィック管理、セキュリティ、可観測性などの機能を提供します。
# asmcliのダウンロード
curl -LO https://storage.googleapis.com/csm-artifacts/asm/asmcli
# ASMのインストール
chmod +x asmcli
./asmcli install \
--project_id=my-project \
--cluster_name=my-cluster \
--cluster_location=asia-northeast1-a \
--fleet_id=my-project \
--output_dir=./asm-output \
--enable_all
# 仮想サービスの定義
# 以下の内容をvirtual-service.yamlファイルに保存
# apiVersion: networking.istio.io/v1alpha3
# kind: VirtualService
# metadata:
# name: my-service
# spec:
# hosts:
# - my-service
# http:
# - route:
# - destination:
# host: my-service
# subset: v1
# weight: 90
# - destination:
# host: my-service
# subset: v2
# weight: 10
# 適用
kubectl apply -f virtual-service.yaml
Cloud Run for Anthosは、Anthosクラスタ上でサーバーレスワークロードを実行するためのプラットフォームです。Knativeをベースにしており、コンテナ化されたアプリケーションをイベント駆動型で実行できます。
gcloud container clusters update my-cluster \
--zone=asia-northeast1-a \
--update-addons=CloudRun=ENABLED
# 以下の内容をservice.yamlファイルに保存
# apiVersion: serving.knative.dev/v1
# kind: Service
# metadata:
# name: hello
# namespace: default
# spec:
# template:
# spec:
# containers:
# - image: gcr.io/knative-samples/helloworld-go
# env:
# - name: TARGET
# value: "Anthos"
# 適用
kubectl apply -f service.yaml
Anthosは、複数の層でセキュリティを提供します:
# Binary Authorizationの有効化
gcloud container clusters update my-cluster \
--zone=asia-northeast1-a \
--enable-binauthz
# ポリシーの設定
# 以下の内容をbinauthz-policy.yamlファイルに保存
# admissionWhitelistPatterns:
# - namePattern: gcr.io/google-containers/*
# - namePattern: gcr.io/google-samples/*
# defaultAdmissionRule:
# evaluationMode: REQUIRE_ATTESTATION
# enforcementMode: ENFORCED_BLOCK_AND_AUDIT_LOG
# requireAttestationsBy:
# - projects/my-project/attestors/my-attestor
# ポリシーのインポート
gcloud container binauthz policy import binauthz-policy.yaml
Anthosは、Google Cloud Monitoringおよびロギングと統合されており、クラスタとアプリケーションの健全性を監視できます:
# Cloud Monitoringの有効化
gcloud container clusters update my-cluster \
--zone=asia-northeast1-a \
--enable-stackdriver-kubernetes
# Prometheusメトリクスの収集設定
# 以下の内容をpod-monitoring.yamlファイルに保存
# apiVersion: monitoring.googleapis.com/v1
# kind: PodMonitoring
# metadata:
# name: my-app
# namespace: default
# spec:
# selector:
# matchLabels:
# app: my-app
# endpoints:
# - port: metrics
# interval: 30s
# 適用
kubectl apply -f pod-monitoring.yaml
Anthosは以下のようなユースケースに適しています:
Anthosは他のGoogle Cloudサービスと統合して、より強力なソリューションを構築できます:
サービス | 統合の利点 |
---|---|
Google Kubernetes Engine | Google Cloud上でのマネージドKubernetesクラスタの提供 |
Cloud Build | CI/CDパイプラインの自動化とコンテナイメージのビルド |
Artifact Registry | コンテナイメージの安全な保存と管理 |
Cloud Monitoring | クラスタとアプリケーションの監視 |
Cloud Logging | 集中型ロギングとログ分析 |
Secret Manager | 機密情報の安全な管理 |
Cloud SQL | マネージドデータベースサービスとの統合 |
多くの企業がAnthosを採用して、ハイブリッドおよびマルチクラウド戦略を実現しています:
Anthos は、Google Cloud Platformが提供するハイブリッドおよびマルチクラウドアプリケーションプラットフォームです。Kubernetesをベースにしており、オンプレミス環境、Google Cloud、その他のパブリッククラウドにわたって一貫したアプリケーション管理を実現します。
Anthosの主な利点は以下の通りです:
Anthosを効果的に活用するには、適切なクラスタ設計、GitOpsの採用、セキュリティの多層化、包括的なモニタリング戦略が重要です。また、段階的な導入アプローチを取ることで、リスクを最小限に抑えながらハイブリッドおよびマルチクラウド戦略を実現することができます。