이전 글에서 INFRA 아키텍쳐, CI/CD 초반 설계를 완성했었습니다.
해당 설계대로 인프라, CI/CD 환경을 구성하던 중에 조금 의문이 생겼고 그 의문을 풀다보니
인프라 아키텍쳐를 수정하게 되었습니다.
그 과정을 한번 포스팅 해보겠습니다!
1. 인프라 아키텍쳐 수정 계기
이전에 인프라 환경을 다음과 같이 구성했었습니다.
해당 인프라 환경을 바탕으로, 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 구조는 다음과 같습니다.
더 자세한 Flow 설명은 다음 포스팅에서 설계한 구조들을 구성해가면서 포스팅해보도록 하겠습니다.
'Infra' 카테고리의 다른 글
[INFRA] 개인 프로젝트 INFRA, CI/CD 구축기 - (3) AWS ECS 구성하기 (5) | 2024.01.30 |
---|---|
[INFRA] 개인 프로젝트 INFRA, CI/CD 구축기 - (1) 초기 설계 (0) | 2024.01.17 |