NodeJS https 배포하기

Route53 호스팅 영역 생성

먼저 Route53에 들어가 호스팅 영역을 생성해주어야 한다.
혹쉬,, 당신 서브도메인을 사용하고 계신지 그렇다면 사용하고자 하는 서브 도메인 이름을 넣어주세요. ex) api.example.com
사용하려는 도메인 이름을 입력하고 퍼블릭 호스팅 영역으로 설정 뒤, 호스팅 영역을 생성한다.
생성 후 위 사진과 같이 NS와 SOA 유형의 레코드가 생성된 것을 확인할 수 있다.
NS 유형 옆에 4개의 네임서버가 등록되어있는 것을 확인할 수 있는데 이를 도메인 구입처에 네임 서버 등록 부분에 작성해주면 된다.

AWS 인증서 생성

Certificate Manager로 이동해 인증서 생성을 진행한다.
발급받고자 하는 인증서의 도메인을 입력한다. 아까 Route53에서 등록한 도메인 이름 입력하기
route53과 동일한 도메인을 입력했을 경우 레코드 추가 버튼이 뜨게된다. 레코드 추가 클릭 후 계속 진행
발급 완료가 뜬다면 성공적으로 인증서를 발급받은 것!

Load Balancer 추가하기

다시 EC2로 돌아가 왼쪽 메뉴에서 로드밸런서 > 로드밸런서 생성을 누른다.
로드밸런서 이름을 입력
일단 2개 이상의 서브넷을 열어줘야 한다고 한다.
인스턴스 연결 후 가용범위 체크 후 다시 설정해줘야하니 일단 세개를 열어주기
인스턴스 보안그룹과 동일한 그룹 설정
먼저 타겟 그룹을 생성해야한다.
위와 같이 설정해준다.
next 클릭
다음 인스턴스 연결에서 연결하려는 인스턴스를 체크 후 include as pending below를 선택하면 주황색 영역에 인스턴스가 들어가는 것을 확인할 수 있다. 확인 후 create target group 클릭
내 프로젝트는 http 서버이므로 80번 포트로 설정 후 추가
다시 돌아와 리스너에 http 80과 https 443을 추가하고 target 그룹에 아까 생성한 타겟 그룹을 넣는다.
아래 부분에 아까 만든 인증서를 선택한다.
그리고 생성
생성한 로드밸런서 > 리스너 > http 80 규칙 보기/편집
위 탭에서 수정을 누르고 THEN 부분에 이전에 있던 규칙을 삭제하고
작업 추가 > 리다이렉션 대상 > https 443 입력 후 저장
다시 route53으로 이동한 뒤
레코드를 위와 같이 설정해 정의하고 추가해준다.

가용범위 확인 후 서브넷 설정

503에러의 범인..!
이제 주소에 접속한다면... 503 에러가 발생할 수 있다
Target is in an Availability Zone that is not enabled for the load balancer
먼저 대상 그룹에 들어가 아까 생성한 타겟 그룹을 누른다.
아래 Zone의 가용범위를 확인하고 해당하는 서브넷을 로드밸런서에서 열어주면 된다.
503 에러
가용영역 확인 후 서브넷 편집에서 추가
502
서버 프로토콜 확인 후 인스턴스 등록 시 http→ 80으로 등록해주어야함.

Reference