AWS EC2 서버를 구축하여 배포에 성공하였다. 하지만 여전히 온전한 사이트라기에는 부족한 점이 있다. 현재 상황은 EC2 로만 서버를 구축하였기 때문에 IP 로 접근해야 한다는 점이었다. 일반 다른 사이트와 동일하게 도메인으로 접근할 수 있도록, AWS 에서 기본적으로 제공하는 Route 53
을 이용하여 설정하려 한다. 또한 포트를 입력하지 않으면 포트는 기본적으로 80 으로 설정된다. domain.com:8080 처럼 뒤에 스프링 프레임워크 포트를 직접 입력하지 않고 domain.com 으로 접근할 수 있도록 Elastic Load Balancer
를 이용하여 포트 포워딩을 할 계획이다.
https://velog.io/@harvey/AWS-Route-53-도메인-생성-후-Load-Balancer-원하는-포트로-포워딩하기
전체 흐름은 위의 그림과 같다. 사용자가 도메인 주소인 domain.com 으로 접근한다. 포트를 따로 입력하지 않았기 때문에 기본 포트인 80 포트로 접근한 셈이다. 이를 Route 53 이 받아 Route 53 에 연결되어 있는 상대를 확인한다. 직접적인 IP 와 연결한다면 포트를 입력하는 형태로 접근해야 하므로 Load Balancer 를 통하도록 설정한다. 그럼 Load Balancer 는 Load Balancer 에 연결되어 있는 EC2 서버로 접속한다.
일단 IP 에 도메인을 할당하기 위해서는 원하는 도메인을 구매해야 한다. AWS 에서 구매할 수도 있고, 가비아 등을 통해서도 구매가 가능하다.
나는 가비아에서 구매했다.
포트포워딩을 하기 전에, 일단 IP 와 도메인 주소를 연결부터 해보았다. AWS 에서 제공하는 Route 53 을 이용해서 레코드를 등록하면 원하는 도메인과 IP 주소를 연결할 수 있다.
간단하게 도메인 이름만 입력하여 레코드를 생성해둔다.
Route 53 의 NS(네임 서버) 에 작성되어 있는 값/트래픽 라우팅 대상을 4개 모두 가비아에 등록한다. (온점은 제외하고 추가한다.)
그러면 가비아에서 구매한 도메인을 AWS 에서 사용할 수 있게 된다. 최종적으로 등록하고 싶었던 하위 도메인을 추가해준다. domain.com 에서 aaa.domain.com 등의 하위 도메인을 추가하고 싶으면 ‘레코드 생성’ 으로 추가하면 된다.
나는 하위 도메인으로 api 서버를 추가하고 싶으므로 다음과 같이 추가하였다. 값에는 연결하고 싶은 public ip 를 작성한다.
기본 포트는 80 이므로 8080 포트를 붙여 접속해보면 연결된 것을 확인할 수 있다.