AWS Controllers for Kubernetes (ACK)
AWS Controllers for Kubernetes (ACK)
ACK を使用すると、Kubernetes API からの AWS リソースのデプロイおよび管理を行うことができます。ACK を通じて、AWS は Lambda、Amazon Elastic Container Registry (Amazon ECR)、Amazon Simple Storage Service (Amazon S3)、Amazon SageMaker AI などの AWS サービス用にオープンソースのカスタムコントローラーを提供します。サポートされている各 AWS サービスには、独自のカスタムコントローラーがあります。Kubernetes クラスターに、使用する各 AWS サービス用のコントローラーをインストールします。次に、カスタムリソース定義 (CRD)
Helm 3.8 またはそれ以降
ACK カスタムリソースは、作成後、他の組み込み Kubernetes オブジェクトと同様に使用できます。例えば、kubectl
ACK を使用して Lambda 関数をプロビジョニングするユースケースの例を次に示します。
-
組織で ロールベースアクセス制御 (RBAC)
およびサービスアカウントの IAM ロールを使用して、アクセス許可の境界を作成する。ACK を使用すると、新しいユーザーやポリシーを作成しなくても、このセキュリティモデルを Lambda に再利用できます。 -
組織に、Kubernetes マニフェストを使用して Amazon Elastic Kubernetes Service (Amazon EKS) クラスターにリソースをデプロイする DevOps プロセスがある。ACK を使用すると、コードテンプレートとして個別のインフラストラクチャを作成しなくても、マニフェストを使用して Lambda 関数をプロビジョニングできます。
ACK の使用に関する詳細については、ACK ドキュメントの Lambda チュートリアル
Crossplane
Crossplane
Crossplane を使用すると、Kubernetes にマニフェストをデプロイできる任意の CI/CD パイプラインや kubectl
-
組織が、Lambda 関数に正しいタグがあることを確認することでコンプライアンスを強化したいと考えている。プラットフォームチームは、Crossplane Compositions
を使用し、API 抽象化を通じてこのポリシーを定義できます。その後、デベロッパーはこれらの抽象化を使用してタグ付きの Lambda 関数をデプロイできます。 -
プロジェクトに、Kubernetes で GitOps を使用している。このモデルでは、Kubernetes は git リポジトリ (望ましい状態) とクラスター内で実行されているリソース (現在の状態) を継続的に照合します。相違がある場合、GitOps プロセスによって自動的にクラスターに変更が加えられます。Kubernetes で GitOps を使用すると、使い慣れた Kubernetes ツールや CRD
、Controllers のような概念を使用して、Crossplane を通じて Lambda 関数のデプロイおよび管理を行うことができます。
Lambda で Crossplane を使用する方法の詳細については、次を参照してください。
-
AWS Blueprints for Crossplane
: このリポジトリには、Crossplane を使用して Lambda 関数などの AWS リソースをデプロイする方法の例が含まれています。 注記
AWS Blueprints for Crossplane は現在開発中であり、本番環境では使用することはできません。
-
Deploying Lambda with Amazon EKS and Crossplane
: この動画では、Crossplane を使用した AWS サーバーレスアーキテクチャの高度なデプロイの例が紹介されており、デベロッパーとプラットフォームの両方の観点から設計が検討されています。