https://github.com/ahmedheikall/ci-cd-project
AWS CI/CD Infrastructure Automation with Multi-Environment Support
https://github.com/ahmedheikall/ci-cd-project
automation aws ci-cd devops infrastructure-as-code
Last synced: 2 months ago
JSON representation
AWS CI/CD Infrastructure Automation with Multi-Environment Support
- Host: GitHub
- URL: https://github.com/ahmedheikall/ci-cd-project
- Owner: AhmedHeikall
- Created: 2025-09-15T11:20:00.000Z (10 months ago)
- Default Branch: main
- Last Pushed: 2025-09-20T06:57:17.000Z (9 months ago)
- Last Synced: 2025-10-10T14:52:06.384Z (9 months ago)
- Topics: automation, aws, ci-cd, devops, infrastructure-as-code
- Language: Shell
- Homepage:
- Size: 257 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Security: security.sh
Awesome Lists containing this project
README
# AWS CI/CD Infrastructure Automation with Multi-Environment Support
This project implements a **CI/CD pipeline with AWS CLI & Bash scripting**.
It provisions infrastructure and configures pipelines for **multi-environment deployment** (QC and Production).
## Architecture Diagram
### AWS CI/CD Infrastructure Automation Architecture

## Features
- **Infrastructure as Code (IaC)**
- VPC with subnets (public & private), internet gateway, route tables.
- Security Groups with SSH & self-referencing rules.
- IAM Roles & Policies for EC2, CodeDeploy, CodePipeline.
- Auto Scaling Group with EC2 Launch Template & scaling policies.
- Network Load Balancer (NLB) + Route53 DNS records.
- SSH Key managed in **AWS Secrets Manager**.
- **CI/CD Pipeline**
- Source: CodeCommit (branch-based triggers).
- Build: CodeBuild project with buildspec.
- Deploy: CodeDeploy application with in-place deployment.
- Pipeline: CodePipeline (Source → Build → Deploy).
- **Automation**
- `deploy.sh` orchestrates provisioning for QC or Prod.
- EC2 installs runtime + CodeDeploy agent.
- `AfterInstall` creates **systemd service** for app runtime.
## Project Structure
├── autoscalinggroup.sh # Launch Template, Auto Scaling Group,Target Group, Listener
├── dns.sh # Route53 DNS records
├── deploy.sh # Orchestrator (QC/Prod configs + infra provisioning)
├── security.sh # SSH key, Secrets Manager, Security Group
├── conf-prod.sh # Production environment configuration
├── conf-qc.sh # QC environment configuration
├── vpc.sh # VPC, Subnets, Internet Gateway, Route Tables
├── build.sh # CodeBuild project setup
└── README.md # Documentation
## Scripts Execution Order (handled by deploy.sh)
VPC → Security → Auto Scaling → DNS
## Pipeline Flow
Push code → CodeCommit triggers → CodeBuild builds → CodeDeploy deploys → EC2 Auto Scaling instances + Route53 DNS.
## Technologies
AWS Services: EC2, VPC, Route53, IAM, CodeCommit, CodeBuild, CodeDeploy, CodePipeline, Auto Scaling, NLB, Secrets Manager
Tools: AWS CLI, Bash scripting, systemd
Concepts: Infrastructure as Code (IaC), CI/CD, multi-environment automation, DevOps best practices
## Author
Ahmed Heikal
Full Stack Engineer | Cloud & DevOps Specialist