Fork me on GitHub
Drew Verlee16:09:24

aws is so mysterious at times that i'm starting to turn religious. Is there a patron saint of Cloudformation i can turn to in my time of need? (i'll also accept a less holy bond, some form of ancient being of unspeakable horror maybe)

😂 1

yes, switch to Terraform 😉

🙏 1
👏 5
Drew Verlee17:09:24

One issue is that cloudformation isn't re-playable. e.g i can't submit a createChangeSet without manually removing some resources like the git repo and deleting the previous stack.

Drew Verlee17:09:07

and the feedback i'm getting on cloudformation is very limted. I have a stack that has been in review for 10 minutes, it clearly has failed, but it's not moving to that state or signaling what went wrong. It's like i'm coding in a language that doesn't want to admit its code by simply not sharing the stack trace.


you can have cloudformation send event information to sqs, where you can consume it with our own tools, but it is pretty much the same data that is displayed in the ui

👀 1
Drew Verlee17:09:14

I could see how that would be useful.

Daniel Jomphe18:09:56

In reaction to your thoughts, Drew, I'll add that I'm very curious of how CDK, Terraform (with or without) CDK and Pulumi bring (or don't bring) improvements over our experience with classic CloudFormation. I'm still using standard CloudFormation until I get more time to investigate these options.

Daniel Craig19:09:07

Cloudformation makes me feel like this: 😱


I use CDK (typescript) for everything now and it has been great. if you don’t need multi-cloud I would suggest it’s the best option


of course I’m biased by my own choice. ymmv


I actually like plain Cloudformation (plus aws-api for deploying). I've been using it with a fairly light clojure wrapper I've been slowly building up at my company. I like that it's just json and I can write it as edn. I have a multimethod that can transform a nested value in the template map according to a qualified key, and output some deterministic value to show up in the template, optionally building and deploying the actual resources. ie if a resource needs a s3 object, we generate the path based on some config, and optionally actually upload the file to that path. This has gone a long way for me. There are definitely a lot of times where cloudformation feels like they're challenging you for the fun of it with arbitrary seeming rules/edge cases, but overall I like it.