Home

Awesome

This repository contains content for my talk "Manage any AWS resource with Terraform".

Available types of AWS resources:

  1. Supported by Terraform AWS provider. See 1-terraform.
  2. Supported only by AWS CloudFormation, but not by Terraform AWS provider. See 2-cloudformation.
  3. Supported by AWS SDK/CLI and not in AWS CloudFormation. See 3-cli.
  4. Partially supported by Terraform AWS provider (some arguments are not supported). See 4-partial-terraform.
  5. Not supported in AWS CLI/SDK. Good luck with Selenium! or take a look at Ian's work with Puppeteer :trollface: :trollface: :trollface:
  6. New since 2024! AWS Cloud Control API (AWS CC). Potentially, better support than AWS CloudFormation.

Available solutions to manage AWS resources using Terraform include:

  1. Use local-exec provisioner with aws-cli
  2. Use shell provider
  3. Patch the Terraform AWS provider using golang

Flow:

  1. Import existing resources into state

  2. Refactoring states:

  1. Migrate from AWS Cloudformation to Terraform

See also

  1. Talk "I Can’t Do This With Terraform, Now What?" by Patrick Conheady given at HashiTalks 2020. See this repository and this recording.