2차 때 정신 없어서 도메인 연결 관련해서 정리 못했던 것도 있고,, 마침 과제 하면서 개인 프로젝트? 배포용 도메인 하나 산 기념으로 다시 연결해보면서 정리해보는 글,,
⭐ Route 53 : 클라우드 기반의 DNS 웹 서비스 ➡️ EC2, ELB, S3 등의 다양한 인프라와 연결 가능
➕ DNS (Domain Name System) : 도메인 이름 ➡️ IP 주소 변환
도메인 구매하기 : 가비아
호스팅 영역 시 NS, SOA 레코드가 자동 생성되는데, 이 중 NS 레코드가 제공하는 4개의 트래픽 값을 가비아의 네임서버로 등록해줘야 함. xxx.xxx.xxx.
형태로 제공하는데, 여기서 마지막 .
을 지우고 입력해야 함.
가비아에서 사용할 도메인의 네임서버에 4개의 트래픽 값을 1~4차에 순서대로 입력!
ACM(Amazon Certificate Manager)에서 인증서 요청 : 도메인 주소 입력 ➡️ 검증까지 10분정도 걸린듯?
검증 기다리는 동안 생성된 인증서를 통해 Route 53에서 레코드 생성
해주기. 다시 Route 53으로 돌아가서 해당 도메인 호스팅 영역을 확인해보면 CNAME 레코드가 생성된 것을 확인할 수 있음! (늦게 캡쳐해서 A 레코드까지 있는데 얘는 밑에서 생성할 예정..)
이것저것 하다보면 어느샌가 인증서가 발급되어 있다,, 다음 단계 ㄱㄱ
EC2 → 로드 밸런싱 → 대상 그룹
프로토콜 : 포트
: nestjs 프로젝트를 3000번 포트로 배포했으므로 HTTP:3000
으로 설정 아래에 보류 중인 것으로 포함
꼭 클릭하기,, 안했다가 로드밸런서까지 다 연결했는데 계속 503 떠서 한참 삽질함 ^-^,, EC2 → 로드 밸런싱 → 로드밸런서
가용 영역 : 최소 2개 이상 선택해야 함. 각 영역을 체크하면 서브넷 ID가 나오는데, 해당 영역의 서브넷 ID가 연결할 인스턴스의 서브넷 ID와 일치하는 걸 포함해줘야 함! 나는 2a가 같길래 그냥 위에서 2개 설정해줌..
리스너 : HTTP와 HTTPS에 연결해줌. HTTP의 경우 프로젝트를 3000번으로 배포했으므로 해당 포트와 연결하고, HTTPS는 기본 포트인 443 + 위에서 만든 인증서까지 연결. 해준 후에 둘 다 위에서 생성한 대상 그룹과 연결해주기!
로드밸런서를 생성했으면 Route 53으로 돌아가서 해당 호스팅 영역에 레코드 생성
후에 만든 로드밸런서 연결해주기! (별칭 선택) 그러면 A 레코드까지 생성 완료.
로드밸런서 생성 시 만들어준 HTTP/HTTPS 리스너에 새로운 규칙 생성
HTTPS : https://도메인
접속 시 대상 그룹으로 바로 연결
HTTP : http://도메인
접속 시 https://도메인
으로 리다이렉션하도록 설정!
로드밸런서까지 설정한 후에 도메인 접속 시 배포된 프로젝트가 정상적으로 보이는 것을 확인할 수 있음!
현재는 과제로 제출한 nestjs 프로젝트를 연결해놨는데, 앞으로 개인 프로젝트나 개인적으로 뭐 배포할 일 있으면 해당 도메인을 애용할 예정,,