본문 바로가기

Project

Project: CICD 프로젝트①-개요

1. 프로젝트 명
2. 프로젝트 목적
3. 프로젝트 기대 효과
4. 프로젝트 구성도

5. 사용 기술 및 도구

 

1. 프로젝트 명


AWS CodePipeline을 활용한 CICD Container 인프라 구축 프로젝트

 

2. 프로젝트 목적


- 코드로 인프라 구축(IaC)

- 지속 가능한 개발과 배포(CICD)

- 확장성과 고가용성의 인프라 구축

 

3. 프로젝트 기대 효과


- 코드로 인프라를 구축함으로써 컴퓨팅 리소스를 유연하게 확장 및 축소하고 코드를 재사용할 수 있다.

 

- 멀티 AZ 서비스를 운영하여 Database 장애 시 지속적인 서비스를 제공할 수 있다.

 

- CICD 인프라를 구축하여 지속적인 개발과 지속적인 배포를 통해 완전 자동화된 서비스를 제공한다.

 

- 사용자 증가 시, Auto Scaling으로 리소스 크기를 조절하여 지속적인 서비스를 보장한다.

 

4. 프로젝트 구성도 및 시나리오


4.1. 개발자 입장

 - 개발자가 Github Repository에 코드를 업로드하면 CodePipeline이 이를 감지한다.

 - CodeBuild는 Dockerfile을 빌드하며 Docker Image는 ECR Repository에, 배포를 위한 appspec.yaml, taskdef.json

  파일은 S3 Bucket에 저장한다

 - 저장된 각 파일을 CodeDeploy가 참조하여 ECS Container에 배포한다.

  배포 시 ECS Container Insights는 CloudWatch로 모니터링한다.

4.2. 사용자 입장

 - Route 53에 등록된 도메인으로 접속한다.

 - 요청은 Internet Gateway를 통해 들어오며 Public Zone의 ALB가 이를 처리한다.

 - ALB는 Private Zone의 Container로 요청을 분산한다.

4.3. Application 입장

 - Dockerfile로 빌드된 Wordpress 이미지는 ECS Container에서 실행된다.

 - 각 Container는 RDS의 MySQL와 연동된다.

 

5. 사용 기술 및 도구


목적 사용 기술 및 도구
Application Docker, Wordpress
Application 배포 Amazon ECS (Fargate)
Database Amazon RDS (MySQL)
CICD AWS CodePipeline, AWS CodeBuild, AWS CodeDeploy
Amazon ECR, Amazon S3
IaC Terraform
Monitoring Amazon CloudWatch

'Project' 카테고리의 다른 글

112_Docker Project  (0) 2022.07.22
89_Project: On-Premise 환경 구축 프로젝트  (0) 2022.06.21
47_Project: Cloud Project  (0) 2022.05.03