# Jenkins란

## Jenkins란?&#x20;

Jenkins는 Application 빌드(CI) 및 배포(CD)를 도와주는 오픈소스 툴입니다. Jenkins를 사용하면 Github와 손쉽게 연동하여 코드를 배포할 수 있습니다. 본 실습에서는 Jenkins를 EC2 인스턴스에 배포하고, AWS Codebuild를 연동하여 배포를 하는 구조를 만들어보고자 합니다.

<https://aws.amazon.com/blogs/devops/simplify-your-jenkins-builds-with-aws-codebuild/>

![](https://245442085-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MP4i1OWLT5Rh5l7_TGf%2F-MSsAG8aI8MMEVrr_XYh%2F-MSsAnEkvSpXI6zR3jdH%2Fimage.png?alt=media\&token=100f6260-50e9-4aec-8067-52e95d6384f0)

Jenkins를 배포하기 위한 기본 구조는 아래와 같습니다.

* Application Load Balancer + Autoscaling Group을 통해서 인스턴스를 생성합니다.
* Userdata는 `terraform template`파일을 통해 추가합니다.
* Jenkins에서 생성되는 data파일은 유실되면 안되는 중요한 정보가 많기 때문에, Amazon EFS를 생성해서 `/var/lib/jenkins` Directory에 마운트합니다.
