Q: Jenkins란 무엇입니까?

Jenkins는 Java로 작성된 오픈 소스 지속적 통합 도구로서, 소프트웨어 개발을 위한 사용자 지정 통합 서비스를 제공합니다. 많은 개발 팀에서 사용하는 서버 기반 시스템입니다.

Q: 왜 Jenkins를 사용해야 합니까?

소프트웨어 개발 수명 주기(SDLC)를 가속화하고자 한다면 Jenkins를 사용해야 합니다. Jenkins를 사용하면 다양한 환경으로 빌드, 배포 및 테스트를 통합하고 개발 팀이 대기하는 시간을 줄일 수 있습니다. 그뿐만 아니라 지속적으로 통합할 수 있으므로 Jenkins는 빠른 반복 주기를 사용하는 민첩한 방법론과 데브옵스에 매우 적합합니다.

Q: Jenkins를 AWS에서 실행해야 하는 이유는 무엇입니까?

AWS는 Jenkins와 같은 애플리케이션을 실행하는 데 적합한 안정적이고 확장 가능하며 안전한 인프라 리소스를 제공합니다. AWS 컴퓨팅에서 Jenkins를 실행함으로써 사용한 만큼만 비용을 지불하고 특정 요구 사항에 맞춰 용량을 확장하거나 축소할 수 있습니다.

Q: 내 Jenkins 환경을 내가 소유합니까?

예. 이 시작하기 안내서를 실행할 때 생성되는 모든 리소스는 고객의 소유이며 고객 계정 내에 상주합니다. 고객이 Amazon EC2 인스턴스를 종료할 때까지 계속 존재합니다.

Q: Jenkins를 사용하는 비용은 얼마입니까?

Jenkins는 오픈 소스로 무료 소프트웨어입니다. Jenkins를 실행하는 기본 인프라에 대한 비용만 지불하면 됩니다. 비용에 대한 자세한 내용은 사용 서비스 및 비용을 참조하세요.

Q: AWS에서 Jenkins를 실행하려면 어떻게 해야 합니까?

보안 그룹을 활용하고 강력한 암호를 사용해야 합니다. 또한 최신 보안 패치를 적용하여 EC2 인스턴스와 Jenkins 설치를 최신 상태로 유지해야 합니다. 보안 그룹은 하나 이상의 인스턴스에 대한 트래픽을 제어하는 가상의 상태 저장 방화벽 역할을 합니다. 가능한 경우, IP 범위를 관련 소스 IP 주소로만 한정하세요. 불필요한 TCP 또는 UDP 포트를 개방하지 마세요(TCP 80 및 8080이면 충분합니다). Jenkins용 암호를 설정할 때 일반적인 암호 모범 사례를 따라 기호(예: /, ., !, *…)와 더불어 소문자와 대문자의 영문/숫자 문자를 사용하세요. yum 업데이트를 실행하면 Amazon Linux 인스턴스에 설치된 패키지가 최신 버전인지 확인할 수 있습니다. 또한, 본 안내서의 지침을 따라 yum을 사용하여 Jenkins를 설치한 경우에는 Jenkins도 업데이트됩니다.

Q: Jenkins를 프라이빗 서브넷에서 실행할 수 있습니까?

퍼블릭 또는 프라이빗 서브넷의 일부인 EC2 인스턴스에 Jenkins를 설치할 수 있습니다. 인스턴스를 프라이빗 서브넷에 배치하려는 경우 Jenkins의 프런트 엔드에 액세스할 수 있도록 해야 합니다. 인터넷을 통해 연결하는 경우, Jenkins 대상 그룹을 생성하고 Application Load Balancer를 사용하여 비공개로 호스팅된 인스턴스에 대한 퍼블릭 엔드포인트를 생성하도록 선택할 수 있습니다. 자체 데이터 센터에서 연결하는 경우, VPN을 설정하거나 Direct Connect를 통해 Jenkins에 연결합니다.

Q: Jenkins를 확장할 수 있습니까?

Jenkins가 CI/CD 요구 사항을 계속 처리할 수 있게 하는 몇 가지 방법이 있습니다. 직접적인 방법 하나는 인스턴스 크기를 변경하여 EC2 인스턴스를 수직 확장하는 것입니다. 다른 방법은 빌드 작업을 ECS 클러스터의 Jenkins 슬레이브 작업에서 처리하도록 Jenkins Amazon EC2 Container Service 플러그인을 구성하는 것입니다.