01. 준비하기
- 환경 설정하기
- AWS EC2를 이용해 배포하기 (EC2를 이용해 배포를 끝낸 상태라 가정하고 설명을 시작한다.)
- 가비아를 이용해 도메인 준비하기
02. 시작하기
- Route 53에서 도메인 인증
1. AWS 계정에 로그인 하여 Route 53을 검색하고 대시보드로 이동한다.
2. 대시보드에서 호스팅 영역에 들어간다.
3. 호스팅 영역 생성
4. 도메인 이름은 구매한 도메인으로 작성하고 나머지는 놔두고 그대로 호스팅 영역 생성을 누른다.
5. 생성된 호스팅 영역에 들어가면 NS(네임서버), SOA 유형의 레코드가 생성된 것을 확인할 수 있다.
6. 생성된 NS를 가비아로 구입한 도메인 네임서버에 넣어준다. (호스팅 영역에 4개의 NS 마지막에 '.'이 있으므로 지우고 입력해줘야 한다.) / 소유자 인증까지 해야 적용이 가능하다.
- ACM(AWS Certificate Manager) 인증서 발급 받기
1. ACM에 들어가 인증서 요청을 누른다.
2. 퍼블릭 인증서 요청을 통해 인증서 요청을 시도한다.
3. 도메인 이름에 가비아에서 구입한 도메인을 입력한다. 나머지는 기본 세팅(DNS 검증 - 권장, RSA 2048)을 유지하고 요청을 클릭한다.
4. ACM 메뉴에서 인증서 나열을 클릭하면 요청한 인증서를 확인할 수 있다. (이때 검증 대기중/ 아니요/ 부적격)이 나오는게 정상이다.
5. 생성한 인증서에 들어가면 Route 53에서 레코드 생성이 보인다. 클릭해서 들어간다.
6. 레코드를 생성해준다. 다시 Route 53을 접속하면 CNAME이 생성된 것을 확인할 수 있다.
7. CNAME을 가비아에서 구입한 도메인에 등록한다. (DNS 관리에 들어가면 등록할 수 있다.)
8. 인증서 발급은 대게 20~30분 정도 걸리는 데 길면 2시간까지 걸린다.
- 보안 그룹 설정
1. 배포할 때 보안 그룹을 설정했던 것처럼 같은 방법으로 설정해야 한다. (인스턴스 ㅡ> 보안 그룹 ㅡ> 인바운드 규칙 편집)
2. 포트 번호는 개인이 사용하고 있는 포트 번호를 입력하면 된다. 443번 포트는 HTTPS에 이용되는 포트 번호이다.
- 타겟 그룹 (Target Group) 생성
1. EC2 메뉴 하단에 대상 그룹이 있다. 클릭! Create target group을 클릭!
2. 타겟 유형 - Instances, 적당한 이름 설정, 포트 번호를 사용하고 있는 포트번호로 설정하고 VPC는 EC2와 동일하게 설정, Health checks도 놔두고 넘어간다.
3. 사용할 인스턴스를 체크하고 포트번호를 확인한 뒤 아래에 포함시킨다. 마지막으로 타켓 그룹 생성 클릭
- 로드 밸런(Load Balancer) 생성
1. EC2 메뉴에 로드밸런서 클릭, Create load balancer 클릭
2. 첫번째 ALB 클릭
3. 적당한 이름을 설정, 네트워크 매핑에서 최소 2개의 AZ(Available Zone)을 설정, EC2가 사용하는 VPC, 서브넷과 매핑되어야 한다.(EC2 인스턴스에서 확인 가능) / 참고로 Scheme 설저을 Internet-facing으로 정했기에 Public subnet으로 매핑해야 한다.
4. 보안 그룹은 EC2 인스턴스와 동일하게 설정해준다.
5. HTTP 8080, HTTPS 443에 대한 리스너를 생성한다. (HTTP는 본인이 설정한 포트번호로 설정한다.)
6. 생성한 인증서를 적용, 마지막으로 Create load balancer 클릭!
- 도메인 레코드 생성
1. Route 53에 하나의 레코드를 더 생성해줘야 하는데 A 레코드다.
2. 동일한 방법으로 레코드 생성 클릭!, 로케드 이름은 사용해도 되고, 안해도 괜찮다. 트래픽 라우팅 설정을 동일하게 해준다. 레코드 생성 클릭!
3. 레코드가 총 4개 (A, NS, SOA, CNAME) 있는 것을 확인할 수 있다.
- 로드 밸런서 리스너 규칙 추가
1. 로드 밸런서 정보로 들어간다.
2. 443을 수정해준다. (아마도 수정할게 없을 수도 있다. 당황하지 말고 그냥 넘어가면 된다.)
3. 8080포트는 규칙을 추가해준다. (수정과 추가를 헷갈리면 안된다.)
4. 8080에는 두개가 443은 1개가 있어야 정상이다.
- Health Check
1. EC2 ㅡ> 로드 밸런싱 ㅡ> 대상 그룹 ㅡ> 생성한 대상 그룹 선택
2. Health checks ㅡ> Edit
3. Health check path가 /로 되어 있는데 이것은 root 디렉토리로 요청을 보낸다는 것이다. http://spa-mall.shop:8080/으로 로 HTTP요청을 을 보낸다는 것. 이 요청에 대한 응답 상태 코드가 200번이면 해당 타겟을 healthy하다고 판단.
4. 지금 설정을 코드에도 똑같이 적용시켜주면 된다. 루트 디렉토리에 GET요청을 보낼 때 200으로 보내는 API로 작성하고 구동시키면 healthy 상태가 된다.
03. 결과 확인하기
- 도메인 주소를 입력하고 확인하기
- http://spa-mall.shop:8080/으로 접속해보기
- 도메인 주소만 입력해서 접속시 https로 접속이 되는지 확인하기
- 위에 작업을 했을 때 접속이 되면서 원하는 동작이 구현된다면 잘 연결된 것
'JavaScript Dev. > Node.js' 카테고리의 다른 글
node-cron란?? (feat. cron) (0) | 2023.06.21 |
---|---|
카카오 소셜 로그인(feat. passport-kakao, jwt) (0) | 2023.06.12 |
Layered Architecture Pattern (0) | 2023.05.19 |
Access, Refresh Token?? (0) | 2023.05.08 |
Socket.io 란? (0) | 2023.05.08 |