Ordinary
About

AWS 도메인 연결

profileordilov / 2022. 1. 29

도메인 구매하기

원하는 도메인을 먼저 구매합니다.
가비아 까페24 등에서 구매할 수 있습니다.
AWS 내에서도 도메인 구입이 가능합니다.

Route53

AWS 내의 인스턴스와 도메인을 연결하기 위해 Route53을 이용합니다.

도메인 등록하기

먼저 호스팅 영역 > 호스팅 영역 생성 에서 구입한 도메인 이름을 입력합니다.
입력을 마치면 NS, SOA 유형으로 두 개의 레코드가 생깁니다.

호스팅하기

앞에 blog, www 등 원하는 호스트명을 지정하려면 레코드 세트 생성으로 이름을 지정해줍니다.
여기서 원하는 주소에 해당하는 인스턴스를 지정할 수 있습니다.

도메인 연결하기

외부 도메인의 경우 도메인 제공자는 도메인과 연결되어 있는 정보를 알지 못합니다.
이 정보를 받아오기 위해서 외부 도메인 네임 설정에서 네임 서버에 등록해줘야 합니다.
Route53에서 처음 생성된 NS 값 4개를 복사해줍니다.

연결 확인하기

nslookup 도메인이름

간단하게 명령어로 연결을 확인할 수 있습니다.
결과로 위에서 입력한 네임 서버가 나오면 연결된 것입니다.

HTTPS 연결하기

EC2 인스턴스를 HTTPS와 연결하기 위해선 로드밸런서 설정과 ACM 설정이 필요합니다.

AWS Certificate Manager

AWS Certificate Manager > 인증서 요청 에서 요청합니다.
퍼블릭 인증서 요청으로 구매한 도메인 이름을 입력합니다.
인증 방법으로 DNS 검증을 선택합니다.
요청하면 상태가 검증 대기중 으로 됩니다.
생성한 인증서에 들어가서 Route 53에서 레코드 생성을 선택합니다.

로드밸런서 설정하기

먼저 만들기 이전에 로드밸런서가 지정할 대상 그룹을 설정해야 합니다.

대상 그룹

EC2 > 로드 밸런싱 > 대상 그룹 > Create target group 으로 생성합니다.
target group은 인스턴스, IP 주소, 람다, 다른 로드 밸런서들을 지정할 수 있습니다.
EC2 인스턴스나 IP 주소를 연결하면 됩니다.
여기서 포트는 연결할 서버의 포트를 지정하면 됩니다.
서버를 3000번으로 켰다면 3000번, 8080이라면 8080번으로 지정해줍니다.
서버가 정상적으로 동작하나 확인하기 위해서 health check를 할 지점이 필요합니다.
200번으로 응답하는 경로를 지정해줍니다.

로드 밸런서

EC2 > 로드밸런싱 > 로드밸런서 > 로드밸랜서 생성에서 로드밸런서를 생성합니다.
외부에서 HTTPS로 연결할 로드밸런서를 만들것이기 때문에 Application Load Balancer를 선택합니다.
이름을 지정해주고 Network mapping에서 최소 2개의 subnet을 지정해줘야 합니다.
사용중인 인스턴스 지역을 포함하는 subnet을 지정해주면 됩니다.
EC2 인스턴스의 가용 영역 부분에서 확인할 수 있습니다.
Listeners and routing 에서 포트를 HTTPS 로 설정하고 위에서 생성한 대상 그룹을 선택합니다.
SSL 인증서로 위에서 설정한 ACM을 지정합니다.

Route 53 설정

Route 53에서 레코드 생성으로 레코드 유형 A으로 설정합니다.
값은 별칭을 누르고 대상으로 Application/Classic Load Balancer로 설정합니다.
지역으로 인스턴스가 위치한 지역을 선택합니다.
위에서 생성한 로드 밸런서를 선택하고 레코드를 생성합니다.
레코드를 생성하면 https 주소와 로드밸런서가 연결됩니다.

HTTP를 HTTPS로 리다이렉트 하기

위의 설정까지 마치면 HTTPS로는 연결이 되지만 HTTP 주소로는 연결이 되지 않습니다.
HTTP를 연결하려면 로드밸런서에서 리스너를 추가해야합니다.
위에서 생성한 로드밸런서에 리스너를 추가하고 HTTP 80 포트로 지정합니다.
Default actions에서 redirect로 선택합니다.
그리고 프로토콜을 HTTPS 443으로 지정합니다.
이제 HTTP 주소로 입력하면 HTTPS로 리다이렉트 되는 것을 확인할 수 있습니다.