반응형

이전 글에서 INFRA 아키텍쳐, CI/CD 초반 설계를 완성했었습니다.

 

해당 설계대로 인프라, CI/CD 환경을 구성하던 중에 조금 의문이 생겼고 그 의문을 풀다보니

인프라 아키텍쳐를 수정하게 되었습니다.

그 과정을 한번 포스팅 해보겠습니다!


1. 인프라 아키텍쳐 수정 계기

이전에 인프라 환경을 다음과 같이 구성했었습니다.

개인 프로젝트 인프라 환경

 

해당 인프라 환경을 바탕으로, CI/CD를 다음과 같은 설계 기반으로 진행하려고 했습니다.

초반 CI/CD 설계

 

처음에 이렇게 단순하게 설계를 하고, 젠킨스에서 Docker Hub에 이미지를 push하는 과정까지 작업을 마무리했었습니다.

그 다음 작업을 진행할 때 한가지 의문이 들었습니다.

'EC2가 Scale-out으로 여러 대 있는데 여러 WAS EC2에 어떻게 최신화된 도커 이미지를 배포하지?'

 

 

떠오른 방법으로는 젠킨스 파이프라인에서 도커 허브에 푸쉬를 한 이후에

WAS EC2에 각각 도커 이미지를 pull 받아서 실행하는 작업을 진행하는 방법이 있었습니다.

 

이 방법도 현재 규모가 엄청나게 작은 제 개인 프로젝트에서는 괜찮은 방법일수도 있겠지만,

트래픽이 많아서 Scale-out한 EC2가 많아질때는 엄청 비효율적일 것 같다고 생각했습니다.

EC2가 늘어날 때마다 수동으로 파이프라인에 EC2 정보를 추가해야하고, 성능적인 문제도 클 것 같다고 예상이 되었습니다.

그래서 인프라 구조를 변경해야겠다고 생각하게 되었습니다.


2. 수정한 인프라, CI/CD 아키텍쳐

 

따라서, ChatGPT 및 AWS Service에서 검색을 해본 결과

제가 원하는 방향으로 구성하기 위해서는 AWS ECR, ECS 서비스를 사용하면 된다는 것을 알게 되었습니다!

 

ECR, ECS를 사용하여 수정한 INFRA, CI/CD 구조는 다음과 같습니다.

수정한 INFRA 구조

 

수정한 CI/CD 구조

 

 

더 자세한 Flow 설명은 다음 포스팅에서 설계한 구조들을 구성해가면서 포스팅해보도록 하겠습니다.

반응형
BE_성하