Skip to content

A collection of modules for configuring AWS resources through Terraform. For convenience.

License

Notifications You must be signed in to change notification settings

benyap/terraform-aws-modules

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

terraform-aws-modules

A collection of modules for configuring and provisioning AWS resources through Terraform. For convenience.

All modules require Terraform version v0.12.x

Modules

These configurations are designed to be used as modules within your own Terraform code. Each module has its own README where you can find information about its inputs, outputs and required IAM permissions.

Configuration

  • external-access for setting up the external trust relationships for an AWS account

  • terraform-setup for setting up the scaffolding for Terraform to manage infrastructure using good AWS IAM practices

Static site hosting

External site hosting

Custom email

  • ses-domain-identity for creating DNS and MX records in Route53 for a custom email domain

  • ses-service-user for creating IAM service users to send emails through SES

  • ses-mail-bucket for creating a S3 bucket that is configured for storing emails from SES

  • ses-mail-forwarder-lambda-v2 for configuring SES to receive and automatically forwarding emails on a custom email domain

  • ses-mail-bouncer for configuring SES to bounce specified email addresses on a custom email domain

Other utilities

  • s3-resource-bucket for creating S3 buckets to store resources to be accessed by a backend

Installation

You will need Terraform installed on your computer. Go to terraform.io to download. Make sure the command terraform is available from the command line.

How to run these configurations

Each of these configurations contain a README.md file in its root, where it will detail what the configuration does, and what pre-requisites are required.

If it is your first time running a configuration, you will need to do the following:

  1. Set up the AWS credentials with the details of the IAM user Terraform will be using in the AWS credentials file at ~/.aws/credentials like so:
[PROFILE_NAME]
aws_access_key_id=********************
aws_secret_access_key=****************************************
  1. Switch to the profile by exporting the name of the profile to the variable AWS_PROFILE:
export AWS_PROFILE=PROFILE_NAME
  1. Run terraform init in the root of the configuration to initialise Terraform and download modules and plugins.

Once you have completed all pre-requisites for a configuration, you can apply the configuration to your AWS infrastructure:

  1. Run the command terraform plan to see how Terraform will change your infrastructure.

  2. Run the command terraform apply to actually apply the configuration to your infrastructure.

  3. If you ever need to destroy infrastructure created by Terraform, run terraform destroy.

For more information on how to use Terraform, go to the documentation.

About

A collection of modules for configuring AWS resources through Terraform. For convenience.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published