Skip to content

Get started quickly with AWS infrastructure using a robust Terraform starter kit incorporating secure state management, VPC configuration, security groups, RDS provisioning, secrets management, SSM parameter store, and GitHub Actions integration!

License

nanlabs/terraform-aws-starter

Repository files navigation

Terraform AWS Starter Kit 🔥 🚀

Welcome to the Terraform AWS Starter Kit! This comprehensive and robust starter kit will empower you to quickly and confidently set up your AWS infrastructure. With secure state management, scalable VPC configuration, enhanced security features, database provisioning, secrets management, SSM parameter store integration, and GitHub Actions integration, this starter kit incorporates proven best practices for building reliable and maintainable AWS environments.

📖 CLICK OR TAP ❲☰❳ TO SHOW TABLE-OF-CONTENTS 📖

Motivation

The Terraform AWS Starter Kit solves the most challenging aspect of AWS infrastructure building by providing a powerful solution for our clients. Our goal is to simplify the process of setting up a reliable and scalable AWS environment, allowing you to focus on developing and deploying your applications swiftly and confidently.

Key Features

Secure State Management 🔒

The Terraform AWS Starter Kit includes secure state management configurations. Your Terraform state is stored in an S3 bucket with a DynamoDB table for state locking. This ensures the security of your infrastructure's state and facilitates easy management and sharing among team members.

Scalable VPC Configuration 🌐

Our starter kit provisions a Virtual Private Cloud (VPC) with public and private subnets across three availability zones. This scalable VPC configuration enables the segregation of application and database resources, providing high availability for your infrastructure components.

Enhanced Security 🔐

The starter kit implements security groups for the bastion host and database instances, ensuring controlled access to your resources. The bastion host allows secure access to private resources within the VPC, providing an additional layer of security.

Database Provisioning 🗃️

We have included configurations to provision an RDS PostgreSQL instance and other database resources. This allows you to easily set up and manage your database infrastructure in a consistent and reproducible manner.

Secrets Management 🔑

The Terraform AWS Starter Kit integrates with AWS Secrets Manager to securely store and manage your database credentials. This ensures that sensitive information, such as usernames and passwords, is not exposed in your Terraform code or version control system.

Parameter Management 🔧

Our starter kit leverages AWS Systems Manager (SSM) Parameter Store to store and manage various parameters required for your infrastructure, such as VPC ID, subnet IDs, and other configuration details. This centralizes the management of configuration parameters, making it easier to update and maintain your infrastructure as it evolves.

GitHub Actions Integration 🚀

We have preconfigured GitHub Actions workflows that provide linting, security checks, and more for your Terraform code. This integration enables automated checks and validation, ensuring adherence to coding standards and identifying potential security vulnerabilities early in the development process.

By using the Terraform AWS Starter Kit, you can expedite the initial setup of your AWS infrastructure while incorporating proven best practices. It empowers you to focus on building and deploying your applications while providing a solid foundation for scalability, security, and maintainability.

We welcome contributions and feedback to improve this starter kit further, making it a valuable resource for the community.

Quick Start

Check the Live Infrastructure section for more information about existing infrastructure modules and how to use them.

Once you have chosen the infrastructure module you want to use, move to the module directory and follow the instructions in the README file.

Live Infrastructure

The live directory houses our live infrastructure components. This is where you'll find our Terraform variables, backend configuration, and Terraform root modules.

It is recommended to create a separate directory for each domain that you want to manage with Terraform. For example, you could have a core-networking directory for managing your VPC, subnets, and security groups, and a common-infra directory for managing your RDS instances, S3 buckets, and other shared resources.

Module Description
Common Infrastructure Terraform module for managing common infrastructure components such as VPC, subnets, security groups, and RDS instances.
Terraform Backend Configuration Terraform module for setting up the S3 backend.

Terraform Modules

We have created custom Terraform modules to bootstrap our infrastructure, which are located in the modules directory.

Module Description
Amplify App Terraform module for bootstrapping an Amplify app.
Bastion Terraform module for bootstrapping a bastion host.
MongoDB Atlas Cluster Terraform module for bootstrapping a MongoDB Atlas Cluster. It makes it possible to create a VPC Peering between the VPC and the MongoDB Atlas Cluster.
RDS Instance Terraform module for bootstrapping an RDS Instance.
RDS Aurora Cluster Terraform module for bootstrapping an RDS Aurora Cluster.
VPC Terraform module for bootstrapping a VPC for use with our shared infrastructure.

Apps and Services

In addition to infrastructure provisioning, we have included a few apps and services to help you get started.

These apps and services are located in the apps directory. In there you can find useful examples of how to use the infrastructure we have provisioned.

Service Description
Start and Stop EC2 Instance This is a Serverless Framework based project to start and stop EC2 instances based on a schedule.

Contributing

We appreciate contributions from the open-source community. Any contributions you make are truly appreciated. Please refer to our contribution guidelines for more information.

Contributors

Contributors

Made with contributors-img.

About

Get started quickly with AWS infrastructure using a robust Terraform starter kit incorporating secure state management, VPC configuration, security groups, RDS provisioning, secrets management, SSM parameter store, and GitHub Actions integration!

Topics

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Sponsor this project

 

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •