첫째. 브랜치 작업별로 바로 서버가 올라갔으면 한다.
둘째. 코드만 푸시하여도 서버에 바로 반영이 되었으면 좋겠다.
셋째. 이 과정이 모두 자동화되었으면 좋겠다.
넷째. 쿠버네티스를 활용하여 서버 구성을 빠르게하고 싶다.
처음 구성을 생각하였을 때는 아래와 같은 구성이었다.

우선 2번과 3번부터 만들어 보기로 하였고 젠킨스를 어디에 만들지 생각해보기로 했다.
현재 사내 환경에서는 EC2에 젠킨스가 올라가 있었다. 그리고 도커 이미지를 사용하여 젠킨스가 동작하고 있었는데 특이하게도 Docker in Docker 형식으로 동작하고 있었고 젠킨스뿐만 아니라 다른 서버들도 도커에 올려져 있는 상황이었다.
서버의 도커 이미지는 기존 젠킨스에서 생성하고 있어서 젠킨스 파일은 기존 파일을 참고해보기로 하였다. 그리고 여러 실험을 진행해야 하기 때문에 다른 파트나 팀에 영향이 없도록 EC2에 젠킨스를 설치하기로 하였다.
첫째. 브랜치 작업별로 바로 서버가 올라갔으면 한다.
첫번째 요구사항을 충족시키기 위해 젠킨스에 멀티 파이프라인을 설정하였다.
다음으로 도커 이미지 레지스트리는 어디를 사용할지 결정해야 했다.
기존에 사내에서 사용하는 넥서스 도커 레지스트리를 사용하려고 하였으나 이미지를 푸시나 풀을 하지 못하는 문제가 보여서 AWS 에서 제공하는 ECR 을 사용하고 차후에 변경하기로 하였다.
그래서 현재까지 구성된 전체 구조는 이렇다.
