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: [...