개발일지

AWS 서버 구축 및 HTTPS 적용기_1. 도메인 연결 및 프로젝트 배포 (Route53, EC2) 본문

Infra, AWS, Linux

AWS 서버 구축 및 HTTPS 적용기_1. 도메인 연결 및 프로젝트 배포 (Route53, EC2)

lyjin 2023. 12. 27.

개요

이전까지 나는 EC2 인스턴스 생성해서 프로젝트 띄우는게 전부였다. 그러다 이번 회사 업무로 간단한 서버를 구축해볼 기회가 생겼다. 그렇게해서 처음으로 도메인 연결부터 HTTPS까지 적용한, 전반적인 서버 구축(+공부) 과정을 기록해보고자 한다.


처음 사용해보다보니 낯선 개념이 많았다. 실습에 필요한 주요 개념들만 간단하게 알고 넘어갔다. 더 궁금한 내용은 후에 공부할 생각이다.


단계는 다음과 같다.

  1. Route53 도메인 연결
  2. EC2 생성 및 프로젝트 배포
  3. ACM, ELB로 HTTPS 적용
  4. Nginx 프록시 서버 적용

 


1.  Route53으로 도메인 연결하기

 

1) 개념 정리

Route53이란?

Route 53은 AWS에서 제공하는 DNS(Domain Name Service)이다. 도메인 등록, DNS 라우팅 및 트래픽 관리, 모니터링 기능을 제공한다. 그 외에도 S3 버킷이나 CloudFront, ELB 등 다양한 AWS 서비스와의 통합을 지원한다.

 

 

DNS 레코드 유형

Route 53에서는 다양한 레코드 유형을 제공한다. 실습에 사용한 레코드 유형은 다음과 같다. 더 많은 레코드 유형을 알고싶다면 [AWS문서] 지원되는 DNS 레코드 유형 참고!

  • NS 레코드 (Name Server): 도메인의 네임 서버
  • A 레코드: IPv4 주소에 매핑
  • CNAME 레코드: 도메인을 다른 도메인 또는 호스트의 별칭으로 매핑

 

네임 서버

도메인 이름과 IP주소 간의 매핑 정보를 저장하고 관리하는 서버를 말한다. 도메인을 실제 네트워크 리소스로 연결하는 역할을 한다. 인터넷 주소창에 도메인을 입력할 때 지정된 네임서버를 통해 해당 도메인과 연결된 IP 주소를 확인하여 연결하게 된다.

 


2) 실습

도메인은 기존에 가비아에 등록되어있던 도메인을 사용했다.

Route 53 > 호스팅 영역 > 호스팅 영역 생성 버튼을 누르면 다음과 같은 창이 뜬다. 도메인 이름에 사용할 도메인을 입력한 후 생성한다.



 

생성된 호스팅 영역을 보면 NS, SOA 유형의 레코드가 존재할 것이다. 그 중 NS 레코드를 보면 4개의 값이 존재한다.



 

이 값들을 가비아 네임서버에 등록해줘야한다.



 

Route 53으로 다시 돌아가 실제 사용할 레코드를 만들어준다.



 

메인 도메인이 "domain.com" 이라고 했을 때 sub 도메인을 설정해주면 "sub.domain.com" 이런 식으로도 사용 가능하다.

 

A 유형으로 설정하고 사용할 EC2 인스턴스 주소를 값으로 입력해주면 끝!




2.  EC2 생성 및 프로젝트 배포하기

EC2 생성은 많이 해봤으니까 생략하겠다. 주의할 점은 보안 그룹 인바운드 규칙으로 http, https를 등록해줘야한다. 별개로 나는 ssh 접속을 위해 22 포트도 함께 등록해줬다.



 

EC2 인스턴스에 프로젝트 clone 받고 pm2로 실행하면 배포 완료다. 아직은 해당 도메인 주소로 들어가도 접속되지 않을 것이다. NestJS 웹서버 포트로 8080을 사용하고 있기 때문이다. 웹서버에 접근할 포트를 인바운드 규칙으로 지정해주면 "domain.com:8080" 이런 식으로도 접근 가능하다. 후에 Nginx 프록시 서버를 사용해 EC2와 웹서버를 연결 시켜줄 것이다.