도메인 연결에 앞서 선행되어야 할 것들

  1. 도메인을 보유하고 있어야 한다.
  2. ELB 설정

AWS에서 도메인을 구매할 수 있지만, 연간 12~13 달러를 지불해야한다.
필자는 가비아에서 할인하는 도메인을 구매해 사용할 예정이다.

또한, 개인 도메인 접근은 로드밸런서를 통해 진행되도록 해볼 예정이다.

Route53 개인 도메인 연결


호스팅 생성

먼저 호스팅 영역을 생성한다.


생성시 도메인 이름은 가비아에서 구매한 도메인 이름으로 설정했다.

호스트가 생성되었고, 2개의 레코드가 생겨났다.
유형이 NS인 레코드의 트래픽 라우팅 대상 4개의 값이 필요하다. (ns로 시작하는 값들)

구매한 가비아 도메인에 라우팅 대상 설정

이제 가비아 네임서버 설정 페이지에서 트래픽 라우팅 대상 4개의 값을 입력한다.(맨 뒤에 .은 빼준다.)

서브 도메인 생성

DNS 정보 설정을 마쳤다면, 이제 사용자들이 접근할 서브 도메인을 생성할 차례이다.
서브도메인의 경우 보유한 퍼블릭 IP가 있다면 직접 연결하면 되지만,
앞선 포스팅에서 자동 배포를 구현한 next app을 로드밸런서를 통해 서비스 중이므로 해당 로드밸런서를 통해 생성한다.

레코드 생성을 눌러준다.

서브 도메인 레코드를 설정하고, 별칭 토글을 활성화 시키면 트래픽 라우팅 대상으로 로드밸런서를 설정할 수 있다.

필자는 Application Loadbalancer를 통해 next app의 트래픽을 관리하고 있으므로
[Application/Classic Load Balancer에 대한 별칭]을 설정하고, 리전과 로드밸런서를 선택해주었다.


이제 준비가 끝났다.
도메인 활성화 확인하기
위 사이트에 들어가면 방금 등록한 도메인이 정상적으로 열리는지 확인할 수 있다.
(등록하자마자 활성화 되지는 않는다. 시간이 좀 걸린다…!)


결과

Next 프로젝트에 도메인이 생겼다.
이제 누구든 도메인을 통해 내가 만든 프로젝트에 접근이 가능하다.

Next.js 샘플 프로젝트를 Git Workflow / Action을 통해 AWS ECS로 자동 배포하는 시스템을 구축해보려 한다.


자동 배포 sequence

아래와 같은 순서를 거쳐 최종적으로 AWS ECS에 프로젝트가 자동 배포되는 과정을 경험해보고자 한다.

  1. Next.js 프로젝트 생성 및 배포
  2. Git workflow 작성
  3. AWS ECS 서비스에 연동

uml diagram

선행되어야 할 학습 내용

  • Next.js 설치 및 프로젝트 생성
  • Git / Github - workflow 설정과 Git Action
  • AWS
    • Route53 - 도메인 호스팅
    • EC2 - 클라우드 인스턴스
    • Load Balancer - 인스턴스에 접근할 트래픽 분산 처리
    • ECR - Docker Image의 저장소
    • ECS - ECR에 저장된 Docker Image를 기반으로 인스턴스를 생성하는 서비스
  • Docker - 배포한 시스템이 모든 환경에서 동일할 수 있도록 컨테이너라는 청사진 역할을 하는 시스템 구축 환경 제공

Route53이란?

Route53은 가용성과 확장성이 뛰어난 DNS 웹 서비스이다.
세 가지 주요 기능이 있는데,

  1. 도메인 등록
  2. DNS 라우팅
  3. 리소스 상태 확인
    등의 기능을 지원한다.

도메인 등록

선행으로 도메인을 가지고 있어야 한다.
AWS Route53에서 도메인들 등록할 수 있는데, 연간 12~13달러를 지불해야 한다.
필자의 경우 가비아에서 할인하는 도메인을 하나 구매했다. (훨씬 저렴함 ㅎㅎ..)
이제 내가 만든 어플리케이션을 AWS Route53을 통해 보유한 도메인에 연동할 수 있다.

DNS 라우팅

사용자가 인터넷 주소창에 도메인을 입력하거나, 그 하위 도메인을 입력했을 때 이를 라우팅해주는 기능을 지원한다.

리소스의 상태 확인

인터넷을 통해 웹 서버 같은 리소스로 자동화된 요청을 보내어 접근 및 사용이 가능하고,
정상 작동 중인지 확인한다.
리소스를 사용할 수 없게 될 때 알림을 수신하고 비정상 리소스가 아닌 다른 곳으로 인터넷 트래픽을 라우팅할 수 있다.

+ Recent posts