Skip to content

christian-deleon/portfolio-iac

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 

Repository files navigation

Logo

My Personal Portfolio Infrastructure

Visit my Portfolio Website

About this Project

With the idea of showing off my skills, I have created this repository to list all of the ways I have designed infrastructures that run my portfolio using different IaC and cloud resources.

The front end was designed and developed by me using React.Js, Javascript, HTML, and CSS.

Frontend Repository: https://github.com/christian-deleon/portfolio

Infrastructures

AWS - Serverless Architecture

Using a serverless architecture I have created a very simple application that consists of the following AWS resources:

  • AWS S3 as the backend server
  • AWS CloudFront as the CDN ( Content Delivery Network )
  • AWS Route 53 for the domain name services
  • AWS CodePipeline for the CI/CD ( Continuous Integration and Continuous Delivery )
  • AWS CodeBuild which takes changes from the respective GitHub repository and builds the React application
  • AWS CodeDeploy to deploy the application to the AWS S3 bucket running as the application backend

( The active infrastructure ) Terraform Repository: https://github.com/christian-deleon/portfolio-iac-terraform

AWS CDK Repository: https://github.com/christian-deleon/portfolio-iac-aws-cdk

AWS CDK - Using ECS Fargate

Repository: https://github.com/christian-deleon/portfolio-iac-aws-cdk-ecs

Using AWS CDK ( Cloud Development Kit ) with AWS ECS Fargate running the web servers, I have created an application which uses Docker to containerize the Node.Js server and consists of the following AWS resources:

  • AWS ECS ( Elastic Container Service ) as the container service for the web servers
  • AWS Route 53 for the domain name services and creates a hosted zone in each AWS region that has been specified
  • AWS Certificate Manager which provides the SSL certificate for secure connection from the client to the load balancers
  • AWS ELB ( Elastic Load Balancing ) which balance all HTTPS to the web servers
  • AWS ASG ( Auto Scaling Groups ) which auto scales the Fargate web servers running on ECS based on CPU usage
  • AWS CodePipeline for the CI/CD ( Continuous Integration and Continuous Delivery )
  • AWS CodeBuild which takes changes from the respective GitHub repository and builds the React application image using Docker and updates or stores it in AWS ECR
  • AWS Lambda that updates the AWS ECS cluster service with the updated Docker image from ECR
  • AWS EventBridge which triggers the above Lambda function when a successful push has been made to the main region ECR repository

Deployment

Decide which architecture you would like to deploy and follow the instructions found in the respective repository.