AWS CDK vs AWS Controllers for Kubernetes
AWS CDK
aws.amazon.comAWS Controllers for Kubernetes
aws-controllers-k8s.github.ioSide by side
| Figure | AWS CDK | AWS Controllers for Kubernetes |
|---|---|---|
| Price from | Free | Free |
| Free plan | Yes | Yes |
| Free trial | — | — |
| Open source | — | — |
| Windows | Yes | — |
| macOS | Yes | — |
| Linux | Yes | — |
| API | — | Yes |
| Self-hosted | — | Yes |
| Plans published | 1 | 2 |
| Spec score · Infrastructure as Code Tools | 8.0 (#7) | 7.9 (#8) |
| Intended users | AWS describes CDK as a framework for developers and administrators defining cloud infrastructure with supported programming languages. | The documentation recommends EKS Capabilities for EKS users seeking a managed experience and self-managed installation for users needing version and configuration control or running other Kubernetes environments. |
| Purpose | AWS CDK lets you define cloud application resources using familiar programming languages. | ACK lets users define and manage AWS resources directly from Kubernetes using Kubernetes custom resources. |
Plans
AWS Controllers for Kubernetes
- Self-managed ACKFree
- ACK EKS CapabilityPriced on request
In their own words
AWS CDK
AWS CDK is a framework for defining AWS cloud application infrastructure with familiar programming languages and deploying it through AWS CloudFormation. Stable bindings are available for TypeScript, JavaScript, Python, Java, C#/.NET, and Go. The AWS Construct Library supplies reusable constructs for AWS services and features. CDK Pipelines supports CI/CD deployment to testing, integration, and production environments. In Visual Studio Code, the AWS CDK Explorer preview can browse projects, stacks, resources, and policies. The tool supports AWS only and provides managed state, policy as code, drift detection, importing existing resources, and self-hosted execution. CDK itself has no charge, although deployed AWS resources may incur charges. Developers need Node.js 22.x or later regardless of application language. Deployments use configured AWS credentials and IAM roles. AWS recommends IAM security practices, and custom constructs cannot guarantee compliance because general-purpose code can bypass their checks.
AWS Controllers for Kubernetes
AWS Controllers for Kubernetes (ACK) lets Kubernetes users define AWS resources with Kubernetes custom resources. It periodically compares desired and actual AWS state and corrects drift. Documentation lists 74 service controllers, including S3, RDS, Lambda and DynamoDB. ACK supports declarative, version-controlled infrastructure alongside applications, across AWS accounts and regions. Read-only resources and read-only adoption support migration from other infrastructure-as-code tools. EKS users can install managed EKS Capabilities, where AWS handles controller installation and upgrades with automatic updates, auto-scaling and auto-tuning. Self-managed Helm installation runs on EKS, GKE, AKS, on-premises clusters and local environments, providing version and configuration control. AWS IAM authorizes controller access. Self-managed ACK costs nothing for Helm installation on Kubernetes 1.20+ on any Kubernetes cluster. EKS Capability pricing is hourly, with a base rate per enabled capability plus usage charges for each ACK resource managed.