Skip to content

The project includes setting up a VPC with private subnets, EC2 instances, RDS, and S3, along with Docker containers for application deployment. It also features a CI/CD pipeline with AWS CodeDeploy and CodePipeline. Live data visualisation using Metabase BI tool.

Notifications You must be signed in to change notification settings

imsalmanmalik/Terraform-AWS-CodePipeline-CodeDeploy-Docker-Metabase-Project

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

End-to-End AWS Infrastructure Deployment: Terraform, Docker, CI/CD, and Live Data Visualization with Metabase

This repository showcases a complete deployment of a PHP application on AWS using Terraform, Docker, AWS CodeDeploy and CodePipeline.

Table of Contents

Project Overview

This project demonstrates the following key aspects:

  • Infrastructure as Code (IaC): Automated deployment of AWS resources including VPC with private subnets using Terraform.
  • AWS Services: Deployment of EC2 instances, RDS, S3, and more.
  • Application Setup: Nginx and PHP applications deployed using Docker containers.
  • CI/CD Pipeline: Continuous Integration and Continuous Deployment using AWS CodeDeploy.
  • Security: SSL certificates configuration via Cloudflare.
  • Live Visualization: Metabase BI tool for monitoring the RDS MySQL database.
  • Access Management: Secure access to private resources using a jump server.

Getting Started

To get a local copy up and running, follow these steps.

Prerequisites

  • AWS Account
  • Terraform
  • Docker
  • AWS CLI
  • Cloudflare Account

Installation

  1. Configure AWS CLI:
aws configure

Infrastructure Setup

  1. Apply Terraform Configuration:
terraform init
terraform plan
terraform apply
  1. Access Jump Server:
ssh -i your-key.pem ec2-user@jump-server-ip
  1. Access Backend Server via Jump Server:
ssh -i your-key.pem ec2-user@private-vm-ip

CI/CD Pipeline

  1. Setup Docker and Docker-Compose:
  • Ensure Docker and Docker-Compose are installed on the deployment servers.
  1. Configure CodeDeploy:
  • Use the provided appspec.yml and buildspec.yml files to setup CodeDeploy.
  1. Deploy Applications:
  • Deploy Nginx and PHP applications using Docker containers.

Domain and SSL Configuration

  1. Domain Setup:
  • Configure your domain with Cloudflare.
  1. SSL Certificates:
  • Add a CNAME record in Cloudflare to get free SSL certificates for your domain.

Monitoring

  1. Setup Metabase:
  • Deploy Metabase using Docker.

  • Configure Metabase to monitor the RDS MySQL database.

About

The project includes setting up a VPC with private subnets, EC2 instances, RDS, and S3, along with Docker containers for application deployment. It also features a CI/CD pipeline with AWS CodeDeploy and CodePipeline. Live data visualisation using Metabase BI tool.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published