정리 목적

이번에 AWS에 배포 테스트를 하며 UI가 변경된 부분도 좀 있었고 이전에는 도메인 구매 후 접근 테스트만 해본 반면 이번에는 여러 환경을 설정하고 처리했기 때문에 이전 정리 내용을 지우고 새로 다시 정리.

 

처리 환경 정리

Project

  • BackEnd - Spring Boot 3
  • FrontEnd - React
  • 빌드 방식 - 통합빌드

AWS

  • EC2 t2.micro
    • ubuntu 22.0.4
  • Application Load Balancer
  • AWS Certificate Manager(ACM)
  • Route53
  • S3
  • RDS(MySQL)
  • ElastiCache(Redis)

CI / CD

  • Jenkins
  • Git Webhook

WebServer

  • Nginx

Domain Register

  • Gabia

 

정리 순서

  1. S3 Bucket 생성 후 Local에서 테스트
  2. RDS MySQL Database Instance 생성 후 Local Workbench와 연결 테스트 및 프로젝트 연결 테스트
  3. EC2 Instance 생성 후 설정
    1. swap 메모리 설정
    2. JDK 17 설치
    3. nvm 설치 및 node 21.7.1 설치
    4. Nginx 설치 및 설정
    5. Jenkins 설치 및 빌드 Job 설정을 제외한 나머지 처리
    6. ElasiCache Redis OSS Cache 생성 및 Redis 설치
  4. Gabia 도메인 구매 후 Route53, ACM 처리
  5. Load Balancer 대상 그룹 생성 및 ALB 생성 후 대상 그룹 설정
  6. A레코드 생성 및 도메인 접근 테스트
  7. git clone을 통해 사전 테스트 이후 Jenkins Job 설정과 Build 테스트
  8. Git Webhook 연동 및 테스트

Git webhook 연동

이제 배포 테스트 과정 중 마지막이다.

webhook을 연동해두면 로컬에서 git에 push 했을 때 이 push 이벤트를 Jenkins에 전달하고 이벤트를 전달받은 Jenkins가 자동으로 해당 Job 설정대로 빌드와 배포를 처리해준다.

 

이 연동을 위해 github에서 personal access token을 발급 받아야 한다.

github 페이지에서 오른쪽 상단에 있는 자신의 프로필을 눌러 Settings로 이동한다.

 

그리고 최하단의 Developer settings로 이동

 

Personal access tokens 하위의 Tokens(classic)을 클릭

 

Generate new token을 눌러 새 토큰을 생성한다.

 

Note에는 토큰명을 입력해주면 되고 아래 이미지와 같이 체크해준다.

webhook에 필요한 포인트는 가장 위의 repo 하위 선택지와 admin:repo_hook의 하위 선택지이다.

다 체크했다면 토큰 생성!

토큰을 생성하게 되면 토큰 값이 바로 나오는데 이건 이때 아니면 확인할 수 없기 때문에 바로 복사해서 어딘가에 저장해둬야 한다.

 

webhook을 연동하기 위해 연동할 프로젝트 repository 페이지로 이동해서 상단의 Settings로 이동한다.

 

그리고 왼쪽 탭에서 webhooks로 이동

 

Add webhook 버튼을 클릭해준다.

 

Payload URL에는 자신의 jenkins접속 IP와 포트 번호 /github-webhook/을 입력해준다.

이때 꼭 끝에 / 가 붙어있어야 한다.

Content type은 application/json으로 변경하고 Add webhook 버튼을 클릭한다.

 

그럼 이제 jenkins 페이지로 이동한다.

jenkins 관리 탭에서 Security 하위의 Credentials로 이동한다.

 

Stores scoped to Jenkins에서 system의 Domains인 global을 클릭한다.

Add Credentials를 클릭

Kind에는 Username with password를 선택.

Username은 git username을 적어주고 password에는 생성한 personal access token을 입력해준다.

그리고 create!

 

다시 Jenkins로 돌아와 system으로 이동한다.

 

GitHub 탭에서 Add GitHub Server를 눌러 추가해준다.

Name은 임의로 입력해도 되고, Credentials는 방금 생성한 Credential을 선택해주면 된다.

Manage hook를 체크해주고 Apply 이후 저장하면 된다.

저장 이전 Test connection으로 연결 상태를 체크할 수 있다.

 

Jenkins Job에서 설정해야 하는 것은 이전 포스팅에서 끝났기 때문에 모든 설정이 끝났다.

이제 프로젝트에서 README 같은것을 조금 수정하고 push 했을 때 Jenkins 페이지에서 Build History에 빌드가 추가된다면 연동은 성공이다!

빌드 시작까지 확인했다면 처리 이후 브라우저에서 도메인 접근까지 체크한다면 모든 배포 테스트 끝!!

+ Recent posts