News for hackers. Stuff that matters.
Re:Forget CDK and AWS's insane costs. Pulumi and DigitalOcea... by 8note on Wednesday November 06, 2024 @08:31PM (#42072285)
The biggest hurdle is when you want to refactor your stacks, and you pretty well just can't, without risk of deleting everything
Re:Forget CDK and AWS's insane costs. Pulumi and DigitalOcea... by irjustin on Wednesday November 06, 2024 @09:56PM (#42072884)
> you pretty well just can't, without risk of deleting everything

This is one hyper annoying area.

It is possible to get around it, but it's ugly, drop to L1 and override logical id:

   let vpc = new ec2.Vpc(this, 'vpc', { natGateways: 1 })
   let cfnVpc = vpc.node.defaultChild as ec2.CfnVPC
   cfnVpc.overrideLogicalId('MainVpc')
You have to do this literally for every resource that's refactored.

For us, we run 2 stacks. One that basically cannot/should-not be deleted/refactored. VPC, RDS, critical S3 buckets - i.e. critical data.

The 2nd stack runs the software and all those resources can be destroyed, moved whatever w/o any data loss.

Re:Forget CDK and AWS's insane costs. Pulumi and DigitalOcea... by wcchoi on Friday November 08, 2024 @08:53AM (#42086833)
+1 CDK refactoring is annoying and ugly

in my experience you'd need to read the CDK source code to find the offending node and call `overrideLogicalId`

there is a library to do it in nicer way: https://github.com/mbonig/cdk-logical-id-mapper

however it does not work in every case

Re:Forget CDK and AWS's insane costs. Pulumi and DigitalOcea... by nuker on Friday November 08, 2024 @07:44PM (#42091676)
> we run 2 stacks. One that basically cannot/should-not be deleted/refactored. VPC, RDS, critical S3 buckets

Why, dear god, you put VPC and RDS in one stack? They are much better off as separate CFN stacks.

Re:Forget CDK and AWS's insane costs. Pulumi and DigitalOcea... by LunaSea on Thursday November 07, 2024 @04:33AM (#42075139)
There are deletion protection flags that can be enabled.

But circular dependencies can also lead to issues here where CDK will prevent you from deleting a resource used or referenced by a different stack.