DBL Terraform Modules
We create modules here for re-use between projects.
Modules
- certificate - Requests a certificate from the Amazon Certificate Manager.
- cloudwatch - Creates basic cloudwatch dashboard and cloudwatch alarm for monitoring and observability
- cognito - Create user pools for use with authentication.
- ecr - A repository for storing built docker images.
- ecs - Compute cluster for running docker containers.
- elasticache - elasticache cluster based on Redis.
- global-accelerator - Global Accelerator for load balancing across multiple regions.
- iam - Preconfigured IAM groups and roles for sane access policies.
- kms-key - Encryption keys for securing various AWS resources.
- kms-key-replica - KMS Key replica for cross-regional access to encryption keys.
- nat - A reopsitory for setting up a network address translation (NAT).
- rds - Used for creating and configuring databases and their networking.
- s3-private - Private, encrypted S3 bucket with versioning.
- s3-public - S3 bucket to host public files such as a frontend app, or anything you want to servce via a CDN.
- slack - Creates chatbot and SNS topic required to setup Slack message
- snowflake-cloud - Manage a Snowflake Cloud account
- secrets - Used for creating a new secret.
- stack - Creates all resources required to launch the entire application
- vpc - Creates a VPC in AWS account. Also generates a group fo public and private submodules.
- vpc-peering - Creates a VPC Peering Resource.
- vpn - Launches an isolated Outline VPN inside a new VPC.
- xray - Used for creating general xray group and sampling
Conventions
- Use
project
+environment
combination for a workspace/module context - Use
main
for core resource identifiers. e.g.resource "aws_rds_instance" "main" {}
Usage
Refer to specific module README for variables and recommended usage.
module "awesome-module" {
source = "github.com/dbl-works/terraform//awesome-module?ref=v2021.07.05"
# Required
environment = "staging"
project = "someproject"
# Optional
some_variable = "some_value"
}