ChatGPT와 함께하는 AWS EC2에 Jenkins 구성하기

Gongmeda·2023년 2월 4일
1
post-thumbnail

현재 진행중인 프로젝트의 백엔드 서버를 AWS에 배포하기 위해 준비중인데, 배치 스케줄링과 CI/CD를 위해 Jenkins를 활용하기로 했습니다.

설치 방법을 조사하던 와중에 최근에 여기저기서 화제인 'ChatGPT의 도움을 받아보는게 어떨까?' 하는 생각이 들었습니다.

Jenkins란?

우선 Jenkins가 뭔지 물어봤습니다.

  • Jenkins란 자동화 처리를 위한 서버 오픈소스 프로젝트이다.
  • 이를 사용하기 위해서는 서버 또는 클라우드 서비스를 활용해야 한다.
  • Job을 만들어서 빌드, 테스트, 배포 등을 수행할 수 있다.
  • 다양한 옵션들과 서드파트 앱들과 통합할 수 있고 CI/CD를 구성할 수 있다.

Jenkins의 요구 사항

다음으로 Linux에 설치되는 Jenkins의 하드웨어 요구 사항에 대해 물어봤습니다.

  • CPU - 듀얼 코어 CPU
  • RAM - 최소 2GB
  • 디스크 용량 - 최소 300MB

위와 같은 답변을 받았습니다.

위 사진은 Jenkins 공식 문서에 적혀있는 리눅스 설치 시 요구 사항입니다. ChatGPT의 답변과 기준 수치가 상당히 다르다는 것을 알 수 있습니다.

그래서 좀 더 구체적인 질문을 해봤습니다.

AWS EC2에 배포할껀데 어떤 인스턴스를 사용해야 하는지 물어봤더니 여러가지 옵션을 제시해줬습니다.

저는 소규모 프로젝트 규모에 큰 workload가 예상되지는 않기 때문에 우선 t2.micro 인스턴스를 사용하기로 했습니다.

사용할 OS에 대한 질문에 대해서는 각 옵션의 장단점을 알려줬습니다. 커뮤니티가 크고 troubleshooting에 가용할 수 있는 리소스가 많다는 점 때문에 우분투를 선택했습니다.

우분투 버전은 최신 LTS 버전을 사용하라고 했는데, 2021년 기준 최신 버전은 20.04 LTS 라고 합니다. 2023년 1월 현재 최신 LTS 버전은 22.04 LTS 이므로 해당 버전을 선택했습니다.

설치 과정

이슈1 - Jenkins repository 추가 안됨

EC2 인스턴스를 생성한 후, ChatGPT에게 설치 방법을 물어봤습니다. 필요한 명령어들을 잘 알려주는 것 같지만 3번째 명령어부터 동작하지 않는 문제를 겪었습니다.

그래서 이에 대한 해결 방법을 다시 물어봤습니다.

4번에서 18.04 LTS 보다 높은 버전일 경우에는 공식 Jenkins repository를 사용하는 명령어를 알려줍니다.

이는 공식 문서에서 알려주는 방법과 deb 명령어에 signed-by 옵션이 붙어있는 것을 제외하고는 동일합니다. 해당 명령어를 실행한 후에 sudo apt-get updatesudo apt-get install jenkins 명령어를 사용하여 설치와 실행에 성공하였습니다.

아래는 공식 문서에서 안내하는 설치 방법입니다.

이슈2 - 설치 후 실행하며 오류 발생

설치하고 Jenkins가 실행되면서 또 문제가 발생합니다.

해당 에러 코드를 그대로 붙여넣고 ChatGPT에게 물어봤습니다.

답변대로 1번 명령어부터 실행하여 원인을 파악해봤습니다. 이 과정에서 아래와 같은 에러 메시지를 발견했습니다.

중간에 failed to find a valid Java Installation 라는 문구가 보입니다. 설마했는데 Java가 설치가 안되어있던 문제였습니다.

바로 11버전 JDK를 설치해줬습니다.

참고로 공식 문서에는 아래와 같이 해당 내용을 안내하고 있었습니다.

설치 완료

Jenkins는 기본적으로 8080 포트를 사용합니다.

설치한 EC2 인스턴스의 보안 그룹 설정에서 8080 포트를 열고 접속하면 위와 같이 초기 설정 화면이 나옵니다.

이후 기본적인 플러그인들을 설치하고 마무리하였습니다.

후기

처음으로 ChatGPT를 작업하면서 함께 사용해봤습니다.

생각보다 뛰어난 부분들도 많았지만 아직 완벽하지는 않다는 생각이 들었습니다. 몇몇 정보가 최신화가 안된 부분이 특히 아쉬웠습니다. 결국 가장 정확한 최신 정보는 모두 공식 문서에 있었습니다.

정확한 정보를 얻기 위한 용도 보다는 여러가지 옵션들을 제시해주는 보조 역할로써 생각하면 앞으로도 상당히 도움이 많이 될 것 같습니다.

공식문서를 잘 보자

profile
백엔드 깎는 장인

0개의 댓글