An open API service indexing awesome lists of open source software.

https://github.com/dncrypter/terraform-projects

Welcome to the terraform-projects repository! This repository is a collection of various Terraform projects designed to automate the provisioning and management of infrastructure across different cloud providers
https://github.com/dncrypter/terraform-projects

automation aws azure devops infrastructure-as-code terraform

Last synced: 3 months ago
JSON representation

Welcome to the terraform-projects repository! This repository is a collection of various Terraform projects designed to automate the provisioning and management of infrastructure across different cloud providers

Awesome Lists containing this project

README

          

# Terraform Projects

Welcome to the **terraform-projects** repository! This repository is a collection of various **Terraform** projects designed to automate the provisioning and management of infrastructure across different cloud providers. Each project is focused on solving a specific use case, demonstrating best practices, and following industry standards for security, scalability, and maintainability.

[![MIT License](https://img.shields.io/badge/License-MIT-green.svg)](https://choosealicense.com/licenses/mit/)
[![LinkedIn](https://img.shields.io/badge/LinkedIn-Profile-blue)](https://www.linkedin.com/in/nikhil--chaudhari/)
[![Medium](https://img.shields.io/badge/Medium-Writeups-black)](https://medium.com/@nikhil-c)

## 🍁Table of Contents

- [Introduction](#introduction)
- [Prerequisites](#prerequisites)
- [Project List](#project-list)
- [Project 1: Production-Ready Terraform AWS Infrastructure](#project-1-production-ready-terraform-aws-infrastructure)
- [Installation and Setup](#installation-and-setup)
- [Contributing](#contributing)
- [License](#license)

## 🍁Introduction

This repository contains a variety of Terraform configurations, each targeting different infrastructure use cases across popular cloud platforms like **AWS**, **Azure**, and **Google Cloud**. The goal is to provide ready-to-use Terraform templates that you can easily customize for your own projects. Whether you are setting up a secure VPC, deploying a web application, or managing scalable infrastructure, you'll find a project that fits your needs.

The projects in this repository follow best practices for:
- **Security:** Using least-privilege IAM roles, encrypted resources, and secure access management.
- **Scalability:** Configuring auto-scaling groups, load balancers, and database clustering.
- **Monitoring:** Incorporating monitoring tools like AWS CloudWatch for real-time alerts and logs.
- **Cost Efficiency:** Optimizing resource usage while staying within cloud providers' free tiers where possible.

## 🍁Prerequisites

Before using any of the Terraform configurations in this repository, you need to have the following tools installed and set up:

- **Terraform**: [Download and Install Terraform](https://www.terraform.io/downloads.html)
- **Cloud Provider Account**: Create an account with your desired cloud provider (e.g., AWS, Azure, GCP).

- **AWS CLI (optional)**: If working with AWS, you can install and configure the [AWS CLI](https://aws.amazon.com/cli/).
- **IAM Permissions**: Ensure your IAM user has sufficient permissions to create and manage the resources defined in the projects (e.g., EC2, RDS, IAM).

## 🍁Project List

### Project 1: Production-Ready Terraform AWS Infrastructure
This project demonstrates how to use Terraform to provision a production-ready, scalable, and secure AWS infrastructure. It includes:

- **VPC** with private and public subnets.
- **EC2 instances** with Auto Scaling.
- **RDS** for database services (MySQL/PostgreSQL) with automated backups and encryption.
- **S3** for secure storage with encryption enabled.
- **IAM roles** with least-privilege permissions.
- **CloudWatch** for monitoring and logging.

This project is designed to be industry-ready, focusing on high availability, security, and performance.

## 🍁Installation and Setup

### Clone the Repository

To get started, clone the repository to your local machine:

```bash
git clone https://github.com/yourusername/terraform-projects.git
cd terraform-projects
```
### Install Terraform
Ensure that you have Terraform installed.
```bash
terraform -v
```
If not, install it.
```bash
sudo apt update && sudo apt install terraform
```

### Configure Cloud Provider CLI (AWS, Azure, GCP)
- AWS CLI:
```
aws configure
```
- Azure CLI:
```
az login
```
- Google Cloud SDK:
```
gcloud auth login
```

### Initialize Terraform
After configuring your provider and setting up the necessary environment, navigate to the project directory and initialize the Terraform configuration:
```
terraform init

```
### Plan and Apply
- Run the following command to see the execution plan before applying the configuration:
```
terraform plan
```
- If the plan looks good, apply the configuration to create the infrastructure:

```
terraform apply
```
- To tear down the infrastructure, you can use:

```
terraform destroy

```

## 🍁Contributing
We welcome contributions to this repository! If you would like to contribute, please follow these steps:

1. Fork the repository to your own GitHub account.
2. Create a new branch for your feature:
`git checkout -b feature/your-feature-name`

3. Make your changes and commit them:
`git commit -m 'Add a new feature'`

4. Push to your forked repository:
`git push origin feature/your-feature-name`

5. Open a pull request to the main repository.

🚀 Please ensure that your code adheres to the project's style guidelines and passes any necessary tests before submitting a pull request.

### Thanks for checking out this project! Happy automation! 🚀