인프런 커뮤니티 질문&답변

HaniBrown님의 프로필 이미지
HaniBrown

작성한 질문수

처음 시작하는 Infrastructure as Code: AWS & 테라폼

19강 - Github로 협업하기

질문있습니다!!!

해결된 질문

작성

·

264

0

강의 주제랑 벗어나는 얘기지만 CI/CD에 대해 궁금한점이 있어 질문 드립니다. 

프로젝트를 진행하다가 젠킨스 구축을 하려고 하는데 젠킨스 안에 awscli, git, terrform, docker 등 개발자 뿐만아니라 저 또한 젠킨스 자동화 파이프라인 이용해보려고 IoC 툴들을 인스톨하였는데 안그래도 기본플로그인에 여러가지 툴들이 들어있다보니 용량이 너무 비대해졌습니다.  물론 개발자랑 공통되는 툴들도 있지만 가이드라인의 기준이 없어서 왠만한건 인스톨하게 되네요;; 

이 부분에 대해서 견해를 듣고자 질문드립니다. 

그리고 필드에서는 팀마다 각각 따로 환경에 맞게 만들어주는지 이 부분대해서도 궁금합니다..  

답변 3

1

HaniBrown님의 프로필 이미지
HaniBrown
질문자

감사합니다. 선생님 덕분에 많은 도움이 되었습니다. 

0

송주영님의 프로필 이미지
송주영
지식공유자

다음에도 어떤 질문이든 주시면 답변드리겠습니다~

0

송주영님의 프로필 이미지
송주영
지식공유자

안녕하세요.

제가 답변을 열심히 작성했는대, 중간에 잘 입력이 안됐나보네요ㅠㅠ

너무 늦게 답변드려 죄송합니다.

많은 분들이 비대해지는 젠킨스에 많은 고민을 가집니다.

처음에는 몇가지 툴을 설치하다가 나중에는 정말로 많은 Tool들을 설치하게 됩니다.

젠킨스의 Job 이 많아 지고, Job 마다 설정이 달라지며, 하물며 써야하는 Tool들의 버전까지 달라지는 상황이 옵니다.

막상 이부분이 문제가되고 고칠려고 맘먹고 보면 너무나 커져버리고 중요한 역할을 하고 있습니다.

이런 상황이 발생하면 절대 안됩니다. Legacy 를 이관하는 작업은 너무나 고통스러운 작업입니다.

이 부분때문에 젠킨스의 worker(slave) 를 사용해야 합니다.

각 Job 은 독립적이고, Job 이 실행될때마다 항상 똑같은 환경이어야 합니다.

worker(slave)를 머신으로 설치하는 경우도 있지만, 요즘은 대부분 Docker 를 이용하게 됩니다.

가장 대중적인 방법은 Jenkins 의 Worker(slave)를 ECS, Fargate, Codebuild 등을 통해서 구현을 하는겁니다.

AWS 환경이 아닐 경우는 다른 k8s 같은 것도 가능합니다.

매 Job 이 실행될때마다 내가 지정한 Docker image 로 (node,pod 등 아무거나) 새로운 환경으로 작업을 실행하는 것입니다.

Jenkins slave configuration 같은걸로 검색을 하게되면 정말로 많은 자료를 찾아볼 수 있습니다.

제가 생각하는 가장 쉽고, 강력한 방법인 AWS Codebuild 를 구축하는 법도 소개드립니다.

https://devops-art-factory.gitbook.io/devops-workshop/terraform/jenkins-workshop

언제든 질문드리면 제가 아는 한도내에서 답변 드리도록 하겠습니다.

감사합니다.

HaniBrown님의 프로필 이미지
HaniBrown

작성한 질문수

질문하기