https://github.com/vsingh55/aws-multienvdeploy
Provisioning infrastructure for multiple environments using a Terraform module with a remote backend on AWS.
https://github.com/vsingh55/aws-multienvdeploy
aws awsbackend multienvironment terraform terraform-module
Last synced: 3 months ago
JSON representation
Provisioning infrastructure for multiple environments using a Terraform module with a remote backend on AWS.
- Host: GitHub
- URL: https://github.com/vsingh55/aws-multienvdeploy
- Owner: vsingh55
- License: mit
- Created: 2024-02-17T19:57:57.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-05-04T15:28:09.000Z (about 1 year ago)
- Last Synced: 2025-01-26T11:28:20.153Z (4 months ago)
- Topics: aws, awsbackend, multienvironment, terraform, terraform-module
- Language: HCL
- Homepage: https://vijaysingh.cloud/projects/2024409-aws-multienv/
- Size: 243 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# AWS MultiEnvDeploy
## Introduction
Welcome to AWS MultiEnvDeploy! This repository provides Terraform configurations for setting up a multi-environment infrastructure on Amazon Web Services (AWS). It's designed to help you deploy and manage resources like EC2 instances, DynamoDB tables, and S3 buckets across different environments such as development, QA, and production.
## Associate with Real-World Scenario
Imagine you're a software development team tasked with building and deploying a web application. You need different environments to test your code before deploying it to production. AWS MultiEnvDeploy simplifies this process by providing pre-configured Terraform modules for each environment, making it easy to spin up and tear down infrastructure as needed.
## Concepts Used in This Project
- **Infrastructure as Code (IaC)**: Infrastructure is defined in code using Terraform, enabling version control, repeatability, and scalability.
- **Multi-Environment Deployment**: Separate configurations for development, QA, and production environments allow for controlled and consistent deployments.
- **Remote State Management**: Terraform state is stored remotely in an S3 bucket and managed with DynamoDB for locking, ensuring consistency and collaboration in multi-user environments.
## PrerequisitesBefore using this project, ensure you have:
- An AWS account
- Terraform installed on your machine## How to Use
1. Clone this repository to your local machine.
2. Update variables in `main.tf` according to your requirements for each environment.
3. Run `terraform init` to initialize the project.
4. Run `terraform plan` to see the proposed changes.
5. Run `terraform apply` to deploy the infrastructure.## Description About Files
- **module/demo-app**: Contains configurations for deploying the demo application, including DynamoDB tables, EC2 instances, and S3 buckets.
- **module/background_module**: Manages remote state for Terraform using an S3 bucket and DynamoDB table.
- **main.tf**: Configures infrastructure for development, QA, and production environments.
- **provider.tf**: Defines the AWS provider and region.
- **terraform.tf**: Specifies Terraform version and required providers.
- **variable.tf**: Declares variables used throughout the project.## Contribution
Contributions are welcome! If you find issues or have suggestions for improvements, feel free to open a pull request or submit an issue in the repository. Your feedback helps make this project better for everyone.