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

https://github.com/olymahmudmugdho/aws-terraform-workshop

This repository contains the hands-on exercises and code samples from a comprehensive workshop on Terraform and AWS. The workshop covers fundamental to advanced topics in Infrastructure as Code (IaC) using Terraform, along with practical implementations on AWS.
https://github.com/olymahmudmugdho/aws-terraform-workshop

amazon-web-services aws cloud-computing iac infrastructure-as-code terraform

Last synced: 2 months ago
JSON representation

This repository contains the hands-on exercises and code samples from a comprehensive workshop on Terraform and AWS. The workshop covers fundamental to advanced topics in Infrastructure as Code (IaC) using Terraform, along with practical implementations on AWS.

Awesome Lists containing this project

README

          

# Terraform and AWS Workshop

## Introduction

This repository contains the hands-on exercises and code samples from a comprehensive workshop on **Terraform and AWS**. The workshop covers fundamental to advanced topics in **Infrastructure as Code (IaC)** using Terraform, along with practical implementations on AWS.

## Workshop Modules

### 1. Introduction to Terraform and AWS

- Get acquainted with the fundamentals of **Terraform** and **AWS**.
- Connect your AWS instance with Terraform and deploy a basic **EC2 instance**.
- Understand the core principles of **Infrastructure as Code (IaC)** and its significance in modern cloud environments.

### 2. Setting up Terraform with AWS

- Learn about the importance of **Terraform state** and how to leverage AWS cloud for state storage.
- Securely store credentials in AWS and retrieve them using Terraform.

### 3. Writing Terraform Configurations

- Explore **HashiCorp Configuration Language (HCL)** and write real-world Terraform configurations.
- Use **variables and outputs** in infrastructure code to manage AWS resources.
- Create **Terraform modules** for reusable and scalable infrastructure.

### 4. Managing Terraform State

- Understand the significance of **state management** in Terraform.
- Utilize **remote state storage**, state locking, state migration, and resolve state conflicts.
- Follow best practices in managing and securing Terraform state files.

### 5. Advanced Terraform Features

- Implement **workspaces** to manage multiple environments efficiently.
- Leverage **data sources and provisioners** to enhance Terraform capabilities.

### 6. Automating AWS Deployments with Terraform

- Set up **CI/CD pipelines** on AWS using Terraform.
- Automate application deployment on **Elastic Beanstalk** using **AWS CodePipeline** and Terraform configurations.

### 7. Troubleshooting and Debugging Terraform Configurations

- Learn best practices for troubleshooting common Terraform issues.
- Understand error messages, logging, and debugging techniques to maintain configurations efficiently.

### 8. Final Project: Deploying Secure EC2 Instances with a Shared RDS Database

- Apply everything learned in a comprehensive **final project**.
- Deploy secure **EC2 instances** sharing a centralized **RDS database**.

## Folder Structure

```
📂 terraform-aws-workshop
├── 📂 part-1 # Introduction to Terraform and AWS
├── 📂 part-2 # Setting up Terraform with AWS
├── 📂 part-3 # Writing Terraform Configurations
├── 📂 part-4 # Managing Terraform State
├── 📂 part-5 # Advanced Terraform Features
├── 📂 part-6 # Automating AWS Deployments with Terraform
├── 📂 part-7 # Troubleshooting and Debugging
├── 📂 part-8 # Final Project: Secure EC2 with RDS
```

## Prerequisites

Before using the code, ensure you have the following installed:

- [Terraform](https://www.terraform.io/downloads)
- [AWS CLI](https://aws.amazon.com/cli/)
- AWS IAM credentials with necessary permissions

## Getting Started

1. Clone this repository:
```bash
git clone https://github.com/OlyMahmudMugdho/your-repository-name.git
```
2. Navigate to the specific module you want to work with:
```bash
cd part-1 # Change as needed
```
3. Follow the instructions in the corresponding `README` file

## Author

[M. Oly Mahmud](https://github.com/OlyMahmudMugdho)