CDK v2.0
See original GitHub issuePR | Champion |
---|---|
#156 | @eladb |
Description
Proposal detailing how we release aws-cdk 2.0 and how we want to handle major versions in the future.
Things to consider
- Release process
- Long-term support for previous major versions
- Regular clean ups across major versions such as:
- Remove all deprecated APIs
- Reset all feature flags
v2.0 Candidates
Required
- Monocdk
- Reset Feature Flags
- Remove All Deprecations
Recommended
- Easier Identification of Experimental Modules and APIs
- Public S3 Artifacts
- Rename ID Parameter
- Remove all usage of Type unions
Not Recommended
- Unmangled L2 Logical IDs
- Removal of All Union Types
- Remove Custom Resource Implementation of Fargate Event Target
- Change Logical IDs to Avoid Potential Collisions
- Replace
addToPolicy
withaddTo{Principal,Identity}Policy
More Info Needed
- AliasOptions and VersionOptions should not extend EventInvokeConfigOptions
- Remove Support for Docker Assets with Parameters
Progress
- Tracking Issue Created
- RFC PR Created
- Core Team Member Assigned
- Initial Approval / Final Comment Period
- Ready For Implementation
- implementation issue 1
- Resolved
Issue Analytics
- State:
- Created 4 years ago
- Comments:13 (5 by maintainers)
Top Results From Across the Web
Migrating to AWS CDK v2 - AWS Documentation - Amazon.com
To migrate your app to AWS CDK v2, first update the feature flags in cdk.json . Then update your app's dependencies and imports...
Read more >CDK v2.0 - GitHub
The AWS Cloud Development Kit is a framework for defining cloud infrastructure in code - CDK v2.0 · aws/aws-cdk.
Read more >How to migrate CDK v1 to CDK v2 in 10 minuets
The AWS Cloud Development Kit (AWS CDK) v2 is GA on Dec. 2nd, 2021 (Thur). You might have been using CDK v1, either...
Read more >What's new in AWS CDK v2? - YouTube
In this video, I show you the most relevant changes to AWS CDK v2. How to create a new project and how to...
Read more >How to migrate to AWS CDK v2 - Towards the Cloud
This guide will show you how you can upgrade an existing AWS CDK v1 app to v2 without breaking its functionality…
Read more >Top Related Medium Post
No results found
Top Related StackOverflow Question
No results found
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start FreeTop Related Reddit Thread
No results found
Top Related Hackernoon Post
No results found
Top Related Tweet
No results found
Top Related Dev.to Post
No results found
Top Related Hashnode Post
No results found
Top GitHub Comments
Along the lines of what @flemjame-at-amazon said, it would be great if security-relevant properties either defaulted to a “most secure” setting, or, where the property may be availability or cost impacting, were required properties so developers could make a conscious decision about the setting.
To give a concrete example:
It may not be clear to developers that this would default to unencrypted, or that
encryption
is even a property. If something likeencryption
was a required property, then devs would be aware of the property and could make the decision to use it or not.One of the well-architected tenets is cost optimization (and there’s the Amazon LP of Frugality), so can we try to avoid having CDK create unnecessary resources?
Eg: By default, the L3 VPC construct creates an EIP for each AZ. The default limit is 5 EIPs. To deploy more than one VPC in the same region, you first need to request a quota increase. If you’re using those VPCs for Lambda(s), then the EIPs will go unused. (And of course, EIPs are billed only if they are unused.) There seems to be no option in the L3 construct to not have EIPs for the VPC.
In a multi-region, microservice architecture, this could easily end up being hundreds of unused EIPs. Suppose we have a distributed system that consists of 10 microservices, each in their own VPC. Suppose for each microservices, we deploy 1 test instance, and a production instance in 4 regions, with 3 AZs per VPC. Now, we have 150 unused EIPs which will cumulatively cost over $500 per month.
It’s possible to delete unnecessary resources (once you realize that they exist) using this obscure and undocumented method, but in this case, a better solution might be to have no EIPs by default or to have different L3 VPC constructs for different purposes (ie. create a LambdaVPC that encompasses best practices for running a Lambda VPC).
I only have this one example, but I wouldn’t have even noticed this example if I didn’t run into the quota limit when I was trying to deploy multiple serverless applications to the same development account. It would be very easy for other instances of this problem to occur completely unnoticed until you dive deep into a bill at some point in the future.