2 분 소요

1. 도메인 만들기

freenom

freenom은 무료 도메인을 제공하는데 일반적인 도메인(.com)이 아닌 .cf나 .ga 같은 잘 사용하지 않는 도메인을 제공한다.
연습용으로 사용하기에는 무료 도메인도 충분하지만, 주의사항은 여기서 알아두자!
(참고로, 고대디 혹은 가비아와 같은 사이트에서 유료로 .com 혹은 .net 등 잘 사용되는 도메인을 구매할 수도 있다.)
스크린샷 2022-05-25 오후 10 34 52
마지막 최상위 도메인(TLD)을 선택해야하는데, 나는 .tk를 선택했다.
(test.tk와 같이 TLD까지 검색해야지 Not available이 뜨지 않는다!)
스크린샷 2022-05-25 오후 10 35 05
해당 도메인을 사용할 기간을 정한다. 나는 12Months로 선택했다. 스크린샷 2022-05-26 오전 9 41 47
마지막으로 등록할 도메인과 금액을 확인한 후에 로그인을 한다.
이 사이트는 특이하게 도메인을 등록하지 않고 로그인을 시도하면 오류가 발생한다.
아이디가 없다면 이때 회원가입을 진행한다.
스크린샷 2022-05-26 오전 10 02 14
이메일 인증을 한 뒤에 회원가입을 진행한 뒤 위 페이지처럼 나오면 도메인을 성공적으로 구매한 것이다.
스크린샷 2022-05-26 오전 10 05 50
로그인 후 Services -> MyDomains에서 내 도메인을 확인할 수 있다.

2. 네임서버 생성

AWS Route53 접속

스크린샷 2022-05-26 오전 9 47 40
Route53에 접속하여 호스팅 영역을 생성을 클릭한다.

호스팅 영역 생성

스크린샷 2022-05-26 오전 10 09 02
구매한 도메인을 적고 생성한다.

호스팅 영역 설정

스크린샷 2022-05-26 오전 10 11 04
호스팅 영역을 처음 설정하면 레코드에 NS와 SOA 두 개가 들어있다.

3. 네임서버 등록

위 사진에서 주황색 부분이 네임서버이다. 도메인을 구입한 사이트에서 이를 등록한다.
스크린샷 2022-05-26 오전 10 19 53
freenom의 경우에는, Services -> My Domains -> Manage Domain -> Management Tools -> Nameservers -> Use custom nameservers 에서 네임서버를 등록했다.
참고로, 네임서버를 등록하고 반영되기까지 최대 2~3일의 시간이 걸린다고 한다.

4. 탄력적 IP 할당

탄력적 IP 주소 할당

스크린샷 2022-05-26 오전 10 27 03
AWS EC2에서 IP가 계속 변경되기 때문에 이 상태에서는 도메인을 연결할 수가 없다. 따라서 IP가 고정되도록 탄력적 IP를 할당한다.

탄력적 IP 주소 연결

원래는 탄력적 IP를 할당하려면 돈이 들지만, 인스턴스 하나당 연결을 해놓으면 무료로 사용할 수 있다.
할당받은 탄력적 IP를 선택한 뒤에 작업 -> 탄력적 IP 주소 연결을 클릭한다.
스크린샷 2022-05-26 오전 10 32 36
인스턴스 부분을 클릭하면 인스턴스를 선택할 수 있다. 설정을 완료하면 이제부터는 인스턴스의 IP가 고정된다.
🚨 주의해야할 점은 인스턴스와 연결이 되어야만 무료이기 때문에 나중에 인스턴스를 지울 때 탄력적 IP를 지우지 않으면 요금이 부과된다!!!
(인스턴스를 지울 때 ‘탄력적 IP 주소 릴리스’를 통해 탄력적 IP까지 깔끔하게 지워야한다.)

5. Route53 레코드 설정

A 레코드 생성 (필수)

탄력적 IP 복사 -> Route53로 이동 -> 호스팅 영역 -> 앞서 생성한 호스팅 영역의 도메인 이름 클릭 -> 레코드 생성
스크린샷 2022-05-26 오전 10 40 49
레코드 유형은 A로 하고 값에는 이전에 복사한 탄력적 IP를 넣어준 뒤에 레코드 생성을 클릭한다.
나는 백엔드 서버이기 때문에 레코드 이름에 subdomain으로 api도 붙여줬다.

CNAME 레코드 생성 (선택)

www로 접속하고 싶다면 CNAME 레코드를 생성한다.

  1. 레코드 이름에 subdomain으로 www를 입력
  2. 레코드 유형은 CNAME
  3. 값에는 도메인 입력 (예를 들어 test.com)

6. url 설정 및 쿠키 설정

프로젝트의 server.js(혹은 app.js)에서 아래 두 가지를 변경한다.

app.use(cors({
    origin: ['http://localhost:3000', 'http://test.tk'], // 1. cors 추가
    credentials: true, 
}));

. . .

app.use(session({
    saveUninitialized: false,
    resave: false,
    secret: env.COOKIE_SECRET,
    store: redisSessionStore,
    cookie: {
        httpOnly: true,
        secure: false,
        domain: process.env.NODE_ENV === 'production' && '.test.tk' // 2. 쿠키 공유 위해 설정
    }
}));

참고

공부하는 비오
테서르



💛 개인 공부 기록용 블로그입니다. 👻

맨 위로 이동하기