Simple & clean modules to use.
This repository contains a comprehensive collection of Terraform modules for AWS services, organized by service category. Each module is designed to be:
- Simple & Clean: Minimal complexity with clear configuration options
- Production-Ready: Follows AWS best practices and security guidelines
- Well-Documented: Each module includes detailed README files with examples
- Modular: Can be used independently or composed together
- Terraform/OpenTofu Compatible: Works with both Terraform and OpenTofu
This repository is organized by AWS service categories, with each service containing one or more specialized modules. The directory structure follows a clear hierarchy:
terraform-aws-modules/
|-- service-name/ # AWS Service (e.g., vpc, ecs, s3)
| |-- module-name/ # Specific module (e.g., vpc, subnet, security-group)
| | |-- main.tf # Main resource definitions
| | |-- variables.tf # Input variables
| | |-- outputs.tf # Output values
| | `-- README.md # Module documentation with examples
Key Points:
- Each module is self-contained and can be used independently
- Modules follow consistent naming conventions and structure
- Every module includes a detailed README with usage examples
- Variables are well-documented with descriptions and defaults
- Outputs are clearly defined for easy integration with other modules
Modules are referenced using the following pattern:
module "resource_name" {
source = "github.com/weyderfs/terraform-aws-modules//service/module-name"
# Your configuration here
}Before using these modules, ensure you have:
- Terraform >= 1.0 or OpenTofu >= 1.6 installed
- AWS CLI configured with valid credentials
- AWS Provider >= 4.0 configured in your Terraform code
- Appropriate IAM permissions to create the resources
terraform {
required_version = ">= 1.0"
required_providers {
aws = {
source = "hashicorp/aws"
version = ">= 4.0"
}
}
}
provider "aws" {
region = "us-east-1"
}- ACM
- AMI
- Cloud Map
- CloudFront
- CloudWatch
- DMS
- DynamoDB
- EC2
- ECS
- ECR
- EKS
- ElastiCache
- IAM
- Kinesis
- KMS
- Lambda
- RDS
- Route53
- S3
- Secrets Manager
- SNS
- SQS
- VPC
Contributions are welcome! If you'd like to contribute:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
- Follow existing code style and structure
- Update documentation (README.md) for any changes
- Add examples when introducing new features
- Test your changes thoroughly
- Keep modules simple and focused
If you encounter issues or have questions:
- Documentation: Check the module-specific README files
- Bug Reports: Open an issue on GitHub
- Feature Requests: Open an issue with the "enhancement" label
- Direct Contact: Reach out via LinkedIn
SRE | DevOps Culture | AWS
LinkedIn: @weyderfs