Terraform modules for AWS

Thirty-two modules for building on AWS with Terraform, published on the Terraform Registry and GitHub under the Apache License 2.0.

They are meant to be studied as much as used. Secure settings are the default: storage is encrypted and private, and network access is closed until you open it. Each module’s README explains its inputs, outputs, and examples, and why each default was chosen.

Using one

Every module is on the Registry under AutomateTheCloud/<name>/aws. For example, a private, encrypted S3 bucket:

module "s3_bucket" {
  source  = "AutomateTheCloud/s3_bucket/aws"
  version = "~> 1.0"

  details = {
    scope       = "Automate the Cloud"
    purpose     = "Course Materials"
    environment = "Production"
  }

  name = "example-course-materials"
}

The inputs differ from module to module; the README on each module’s Registry page lists them. Modules create real resources that cost real money, so read the plan before you apply it, and try a module somewhere disposable first.

Networking

DNS and certificates

Data and storage

Security and keys

Delivery and operations