Post

[Spring] AWS EC2, Github Actions, Docker, Nginx를 활용한 무중단 배포(6)

무중단 배포 구현하기 - (6)

  1. AWS 설정
  2. 무중단 배포 확인
  3. 트러블 슈팅

[15] AWS 설정

1. 인바운드 규칙

image

image

  • 이 요청을 날리는 대상이 GitHubActions ubuntu ! 즉, 외부 서버이다.
  • 외부 서버에서는 해당 8080, 8081 접속이 안된다
  • 왜냐하면 EC2에서 포트 설정을 안해줬기 때문이다

image
image

  • 현재 보안그룹 > 해당 인스턴스가 launcha-wizard-2로 잡혀있다( HTTP 80은 열려있다, HTTP 8081, HTTP 8080 열어줘야한다 )

2. Route 53

image

  • 리액트 (프론트단) 배포 시
  • vercel로 “eroom-challenge.com”랑 “www.eroom-challenge.com” 도메인명으로 두 개 배포
  • “www.eroom-challenge.com”로 요청 시 “eroom-challenge.com”로 리다이렉트
  • env에 백엔드 url 설정 “https://api.eroom-challenge.com”
  • vercel 배포시 key, value 값에 “REACT_APP_SERVER_URL”, “https://api.eroom-challenge.com” 각각 secrets로 저장하기

image

  • 스프링 (백엔드) 배포 시
  • api.eroom-challenge.com로 배포하기
  • 인증서 “*.eroom-challenge.com” 추가 발급 및 연결 필요

image

3. RDS 생성

image
USER, PASSWORD, 엔드포인트 잘 기억해두고 Intellij에서 연결 및 yml 설정 파일에 사용

4. 로드밸런서 설정

image

  • 8080,8081,443 포트로 연결된 리스너를 각각 생성한다

image

  • eroomTargetGroup은 8080포트로 연 리스너와 연결
  • 대상그룹은 8080,8081 포트를 열어준다

[16] 무중단 배포 확인

1. build

image

2. deploy

image

3. blue 서버가 실행되고 있는 경우

  • health 체크
    image

-env 체크
image

4. green 서버가 실행되고 있는 경우

  • health 체크
    image

-env 체크
image

This post is licensed under CC BY 4.0 by the author.