Comment by gchamonlive

Comment by gchamonlive 5 days ago

22 replies

S3 + cloudfront is also incredibly popular so you can just find recipes for automating that in any technology you want, Terraform, ansible, plain bash scripts, Cloudformation (god forbid)

gigatexal 5 days ago

Yeah holy crap why is cloud formation so terrible?

  • gchamonlive 5 days ago

    It's designed to be a declarative DSL, but then you have to do all sorts of filters and maps in any group of resources and suddenly you are programming in yaml with both hands tied behind your back

    • gigatexal 5 days ago

      Yeah it’s just terrible. If Amazon knew what was good they’d just replace it with almost anything else. Heck just got all in on terraform and call it a day.

      • mdaniel 4 days ago

        This may be heresy in an AWS thread, but as a concept Bicep actually isn't terrible: https://github.com/Azure/bicep/blob/v0.37.4/src/Bicep.Cli.E2...

        It does compile down to Azure Resource Manager's json DSL, so in that way close to Troposphere I guess, only both sides are official and not just some rando project that happens to emit yaml/json

        The implementation, of course, is ... very Azure, so I don't mean to praise using it, merely that it's a better idea than rawdogging json

        • hnlmorg 4 days ago

          I’ve heard so many bad things about bicep on Azure that I’m not convinced it’s an upgrade over TF.

          The syntax does look nicer but sadly that’s just a superficial improvement.

      • hnlmorg 4 days ago

        They do contribute to the AWS provider for Terraform.

        Also that have CDK which is a framework for writing IaC in Java/TypeScript, Go, Python, etc.

      • [removed] 5 days ago
        [deleted]
      • mdaniel 4 days ago

        As for "go all in on terraform," I pray to all that is holy every night that terraform rots in the hell that spawned it. And that's not even getting into the rug pull parts, I mean the very idea of

        1. I need a goddamn CLI to run it (versus giving someone a URL they can load in their tenant and have running resources afterward)

        1. the goddamn CLI mandates live cloud credentials, but then stright-up never uses them to check a goddamn thing it intends to do to my cloud control plane

        You may say "running 'plan' does" and I can offer 50+ examples clearly demonstrating that it does not catch the most facepalm of bugs

        1. related to that, having a state file that believes it knows what exists in the world is just ludicrous and pain made manifest

        1. a tool that thinks nuking things is an appropriate fix ... whew. Although I guess in our new LLM world, saying such things makes me the old person who should get onboard the "nothing matters" train

        and the language is a dumpster, imho

  • SteveNuts 5 days ago

    Last time I tried to use CF, the third party IAC tools were faster to release new features than the functionality of CF itself. (Like Terraform would support some S3 bucket feature when creating a bucket, but CF did not).

    I'm not sure if that's changed recently, I've stopped using it.

    • tkjef 4 days ago

      I have been on the terraform side for 7 years-ish.

      eksctl just really impressed me with its eks management, specifically managed node groups & cluster add-ons, over terraform.

      that uses cloudformation under the hood. so i gave it a try, and it’s awesome. combine with github actions and you have your IAC automation.

      nice web interface for others to check stacks status, events for debugging and associated resources that were created.

      oh, ever destroy some legacy complex (or not that complex) aws shit in terraform? it’s not going to be smooth. site to site connections, network interfaces, subnets, peering connections, associated resources… oh, my.

      so far cloudformation has been good at destroying, but i haven’t tested that with massive legacy infra yet.

      but i am happily converted tf>cf.

      and will happily use both alongside each other as needed.

  • dragonwriter 5 days ago

    Because its an old early IaC language, but it works and lots depends on it, so instead of dumping or retooling it, AWS keeps it around as a compilation target, while pushing other solutions (years ago, the SAM transform on top of it, more recently CDK) as the main thing for people to actually use directly.

  • baby_souffle 5 days ago

    > Yeah holy crap why is cloud formation so terrible?

    I can't confirm it, but I suspect that it was always meant to be a sales tool.

    Every AWS announcement blog has a "just copy this JSON blob, and paste it $here to get your own copy of the toy demo we used to demonstrate in this announcement blog" vibe to it.