home / terraform-modules
$ terraform registry search mikmorley
Open source Terraform modules for AWS.
Free, production-ready modules that encode the security, cost and resilience practices I use on real AWS environments. Published on the Terraform Registry with documentation and examples on GitHub.
01 // modules
Available modules.
Each module is versioned, documented and designed to drop into an existing AWS environment.
-
finops-baseline
FinOps Baseline
A FinOps baseline for a single AWS account in one module block: budgets, cost anomaly alerts, a tag-based dev scheduler for EC2 and RDS, weekly cost reports and opt-in budget actions, with Slack and email alerts.
module "finops_baseline" { source = "mikmorley/finops-baseline/aws" } -
ec2-backup
EC2 Backup
Automated EC2 instance backups using AWS Systems Manager and Lambda. Scheduled snapshots with configurable retention policies, so recovery points exist before you need them.
module "ec2_backup" { source = "mikmorley/ec2-backup/aws" } -
static-website
Static Website
Complete AWS static website hosting with a CloudFront CDN, S3 origin, Route 53 DNS and SSL certificates. A good fit for portfolio sites and static applications.
module "static_website" { source = "mikmorley/static-website/aws" }
02 // approach
How the modules are built.
Efficiency and scalability
Each module encapsulates best practices learned from real-world AWS work and is designed to integrate cleanly with infrastructure you already run.
From routine tasks to complex architectures
The collection covers routine automation, security controls and availability patterns, so teams of different sizes can adopt only what they need.
Customisation over copy-paste
Every cloud environment is different. Modules expose sensible variables and defaults so they can be tailored to your requirements instead of forked. If you need a custom module built for your environment, get in touch.
03 // usage
Using a module.
Reference any module straight from the registry by its source address and pin a version:
module "static_website" { source = "mikmorley/static-website/aws" version = "~> 1.0" }
Check each module's registry page for the current version and its required inputs.