Hacker News new | ask | show | jobs
by okhudeira 3485 days ago
I think CloudFormation [https://aws.amazon.com/cloudformation/] might be what you're looking for, they even use the term "stack".

At first blush it might seem to have a high learning curve given the verbosity of the syntax to define a stack, but with the launch YAML support, the syntax has become more succinct. Once you use it, you'll wonder how you ever lived without it.

The product page doesn't do it justice, but in short, CloudFormation allows you to:

- Describe the AWS resources you need in a single file (YAML or JSON), this would be your "stack".

- View all the resources provisioned based on your code in a single UI grouped under the "stack" in the CloudFormation console.

- Manage changes to your resources as different versions of the code file, meaning if you update a resource's properties in code, it'll know and update the already provisioned resource.

- You can delete an entire "stack" and be certain that all associated resources are also destroyed.

- When I used it, the coverage of types of resources you can code for was wide and they're continuously adding more.

I recommend trying it out by setting up a simple S3 hosted website using this template http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuid...

If you're trying to remain cloud-agnostic, then I suggest you also checkout HashiCorp's Terraform [https://www.terraform.io/]. Think of Terraform as a scripting language that compiles into AWS CloudFormation or any other cloud provider.

1 comments

Thanks for the heads up on CloudFormation. I've just poked around and realise the our Elastic Beanstalk instances all create a stack in there automatically. Seems pretty useful, and I will investigate a little more to see if we can integrate other AWS assets like S3 buckets, RDS servers etc. into each stack for better management.
Save yourself the pain of CloudFormation and check out Terraform.