Facilitating template development with AWS CDK
Why would we choose CDK if we already have extensive experience with CloudFormation? While CloudFormation has a lot of powerful features and deep integration with AWS, its declarative nature may be a burden for those who have just started practicing infrastructure-as-code and AWS.
CloudFormation is simple when you need to create a sample set or resources and want to set most of the properties to the default values. But let's take a look at the full declaration of an S3 bucket:
Type: AWS::S3::Bucket Properties: Â Â AccelerateConfiguration: ... Â Â AccessControl: ... Â Â AnalyticsConfigurations: [ ... ] Â Â BucketEncryption: ... Â Â BucketName: ... Â Â CorsConfiguration: ... Â Â InventoryConfigurations: [ ... ] Â Â LifecycleConfiguration: ... Â Â LoggingConfiguration: ... Â Â MetricsConfigurations: [ ... ] Â Â NotificationConfiguration: [...