AWS Controllers for Kubernetes (ACK) は、ユーザがKubernetesから直接AWSサービスを管理できるようにするAWSの新しいツールである。ブログ投稿で、パブリッククラウドベンダは、このツールにより、AWSサービスを利用するスケーラブルで可用性の高いKubernetesアプリケーションを簡単に構築できるようになると述べている。
ACKは、2018年に最初に導入されたAWS Service Operatorプロジェクトを再始動したオープンソースである。プロジェクトはACKに名前が変更され、内部の利害関係者やコミュニティからのフィードバックに基づいて追加の機能が追加された。ブログの投稿によると、ACKには以下の更新がある:
- CloudFormationの代わりにAPIを介してAWSリソースを直接管理する。
- AWS Kubernetesチームがプロジェクトを構築して維持する。
- コントローラのコードとカスタムリソース定義は、AWS Go SDKから自動的に生成される。
さらに、ブログ投稿者は、ACKが高レベルの観点からどのように機能するかを説明した:
1. 「作者が主導するプロジェクトチーム」のように、私たちは、アーティファクト(バイナリ、コンテナイメージ、Helmチャートなど)のコレクションを作成して管理します。これらのアーティファクトはAWSサービスAPIから自動的に派生し、Kubernetes内からAWSリソースを管理する方法のビジネスロジックを表します。
2. クラスタ管理者は、担当するクラスタにインストールおよび構成する1つ以上のACKコントローラを選択します。
3. アプリケーション開発者は、AWSリソースを表す (Kubernetes) カスタムリソースを作成します。
4. それぞれのACKコントローラ (ステップ2でインストール) は、カスタムリソースを管理し、それを基にAWSリソースを管理します。ステップ3で定義されたカスタムリソースに基づいて、コントローラはAWS APIを使用して基になるAWSリソースを作成、更新、または削除します。
出典: https://aws.amazon.com/blogs/containers/aws-controllers-for-kubernetes-ack/
AWSは、Kubernetesからのクラウドプラットフォームリソースを管理するツールを提供する唯一のパブリッククラウドプロバイダではない。たとえば、Googleは昨年末にCloud Platform (GCP) でConfig Connectorのベータ版をリリースした。これは、今年の2月から一般提供されている。さらに、マイクロソフトは6月にAzure Service OperatorとCrossplaneを発表し、より一般的なソリューションを提供している。
GoogleのデベロッパーアドボケイトスタッフであるKelsey Hightower氏がツイートで述べている:
AWS Controllers for Kubernetesはかなりすばらしいです。Kubernetesを利用して、APIゲートウェイやS3バケットなどのAWSリソースを管理できます。Terraformを考えますが、KubernetesスタイルのAPIと「リアルタイム」の制御ループに支えられています。
ただし、他の人はRedditスレッドの回答者に次のように反対するかもしれない:
CrossplaneのAWSだけのバージョンに人々をベンダーロックするツールを用意する以外に、AWSが何をしようとしているのかを理解しようとしています。
現在、ACKは開発者プレビューにあり、Amazon SNS、Amazon SQS、Amazon API Gateway V2、Amazon DynamoDB、Amazon ECRをサポートしている。AWSは、Amazon Relational Database Service (RDS) やElastiCacheなどのより多くのサービスをオンボードすることを期待している。さらに、同社はクロスアカウントリソース管理やネイティブアプリケーションシークレット統合などの新機能も間もなく追加する。