49일차 AWS

정상희·2025년 6월 14일

코딩공부

목록 보기
58/60
post-thumbnail

현재 오즈코딩스쿨 강의를 통해 프론트엔드를 학습하고 있습니다.
본 포스트는 해당 강의에 대한 내용 정리를 목적으로 합니다.

1. 도메인(Domain)

1) DNS(Domain Name System)란?

도메인(Domain)이 없던 시절에는 특정 컴퓨터와 통신하기 위해서 IP 주소(ex. 12.134.122.11)를 사용했다. 이 IP특정 컴퓨터를 가리키는 주소의 역할을 한다.

하지만 IP 주소는 많은 숫자들로 이루어져 있어서 일일이 외우기가 너무 불편했다. 이 때문에 사람들이 기억하기 쉬운 문자로 컴퓨터의 주소를 나타낼 수는 없을까에 대해 고민하게 됐다. 숫자로 이루어져 있는 IP 주소를 문자로 구성하기에는 한계가 있었다. 왜냐하면 컴퓨터가 처리하기 쉬운 값의 형태는 문자가 아니라 숫자이기 때문이다.

이를 해결하기 위해 문자를 IP 주소로 변환해주는 하나의 시스템(서버)을 만들게 됐다. 이게 바로 DNS(Domain Name System)이다. DNS가 생기고나서부터 사람들은 특정 컴퓨터와 통신하기 위해 복잡한 IP 주소를 일일이 외울 필요가 없게 됐다.


출처 : https://gcore.com/learning/dns-servers-what-they-are-and-how-they-work/


2) IP와 Port 개념

a. IP란?

IP는 인터넷에 연결된 각 장치의 고유한 주소를 의미한다.
우편을 보낼 때 받는 사람의 집 주소가 필요하듯, 데이터를 보낼 때도 IP 주소가 필요하다.
IPv4는 보통 92.168.0.1처럼 네 개의 숫자로 구성되며, IPv6는 더 복잡한 형태이다.
결론적으로 IP는 데이터가 도달해야 할 목적지를 나타내는 주소이다.

b. Port란?

Port는 하나의 장치에서 여러 프로그램을 구분하기 위한 번호이다.
예를 들어, 같은 컴퓨터에서 웹 브라우저, 메신저, 게임 등 여러 프로그램이 동시에 데이터를 주고받을 수 있는데, 이들을 구분하기 위해 포트를 사용한다.
Port 번호는 0번부터 65535번까지 있으며, 그중 일부는 특정 용도로 정해져 있다.
예:

  • 80번 포트는 HTTP 웹 서버
  • 443번 포트는 HTTPS 보안 웹 서버
  • 22번 포트는 SSH 접속

즉, Port는 하나의 IP 주소 내에서 어떤 서비스(프로그램)와 통신할지를 구분하는 수단이다.

c. IP와 Port의 관계

IP가 "어디로" 데이터를 보낼지를 나타낸다면, Port는 "무엇에게" 데이터를 보낼지를 나타낸다.
예를 들어 192.168.0.10:80은 해당 컴퓨터(IP)의 웹 서버(Port 80)에 접속하겠다는 의미이다.
따라서 IP와 Port는 함께 사용되어 정확한 통신 대상을 지정하는 역할을 한다.

IP는 장치의 주소이고, Port는 프로그램의 번호이다.


3) 전체 아키텍처 정리하기


4) 무료 도메인 서버의 한계점

무료 도메인 서버(또는 무료 도메인 서비스)는 도메인 이름을 공짜로 제공하거나, 도메인을 무료로 연결할 수 있게 해주는 플랫폼이다. 대표적으로는:

  • Freenom (.tk, .ml, .ga, .cf, .gq 등 무료 제공)
  • InfinityFree, 000Webhost (서버 + 서브도메인 제공)
  • GitHub Pages + github.io 서브도메인
  • Netlify / Vercel (서브도메인 무료 제공)

하지만 이런 무료 도메인(또는 무료 도메인 연결 서비스)에는 여러 제약과 단점이 존재한다.

a. 도메인 소유권이 불안정하다

  • Freenom 등은 도메인을 임시로 빌려주는 형태이기 때문에 예고 없이 회수될 수 있다.
  • 사이트 트래픽이 많아지면 도메인을 빼앗기고, 누군가에게 판매될 수 있다.

b. 신뢰도와 브랜드 가치가 낮다

  • .tk, .ml 같은 무료 도메인은 스팸/피싱 도메인으로 많이 사용되어, 검색엔진이나 이메일 필터링 시스템에서 신뢰도가 낮다.
  • 사용자가 도메인을 봤을 때 전문성이 떨어져 보일 수 있다.

c. SEO(검색 최적화)에 불리하다

  • 검색 엔진은 .com, .net, 국가 도메인처럼 신뢰도가 높은 도메인을 선호한다.
  • 무료 도메인은 검색 순위에서 밀릴 수 있다.

d. HTTPS 인증서 발급에 제한이 있을 수 있다

  • 자체 SSL 인증서 적용이 어렵거나 불가능한 경우가 있다.
  • 일부 무료 도메인은 Let's Encrypt 인증서 발급이 제한된다.

e. 커스터마이징이나 설정 제한

  • A 레코드, CNAME, TXT 같은 DNS 레코드 설정이 불완전하거나 제한적일 수 있다.
  • 메일 서버 연결이나 서브도메인 생성 등이 어려울 수 있다.

f. 지속적인 유지보장 불가

  • 무료 서비스는 서비스 중단 위험이 항상 존재한다.
  • 예: Freenom은 2024년에 .tk 등 무료 도메인 발급을 중단함.

g. 커뮤니티 또는 플랫폼 제약

  • GitHub Pages, Netlify, Vercel 등은 자체 서브도메인을 제공하지만, 완전한 도메인 소유는 아니며 플랫폼 종속성이 생긴다.
항목한계점
소유권도메인을 잃을 수 있음
신뢰도스팸 취급, 브랜드 약화
SEO검색 순위 불리
설정DNS, SSL 등 제한
지속성서비스 종료 위험
기능메일/서브도메인 등 제한

5) 무료로 도메인 구매하는 방법

https://내도메인.한국/
https://cloud-information.tistory.com/11

주의! 실제 운영할 서버에는 무료 도메인을 사용하지 말자. 무료 도메인은 생각보다 불안정하다. 중간에 도메인을 통한 접속이 끊기기도 한다. 즉, 서비스가 중단되는 경우가 발생할 수 있다는 뜻이다.


6) 도메인 연결하기, HTTPS 적용하기

a. ACM에서 SSL/TLS 인증서 발급받기


Cloudfront는 HTTPS를 적용하려면 인증서를 미국 동부(버지니아 북부)에서 발급받아야 한다.

b. HTTPS 적용을 위해 인증서 발급받기

HTTPS를 적용하기 위해서는 인증서를 발급받아야 한다.

  • AWS Certificate Manager 서비스로 들어가서 인증서 요청 버튼 누르기

  • 인증서 요청하기

  • 인증서 검증하기
    내가 소유한 도메인이 맞는 지 검증하는 과정이다.


    3분 정도 기다렸다가 AWS Certificate Manager 창을 새로고침하면 아래와 같이 검증이 완료된다. (길게는 10분 정도 소요될 때도 있다.)

c. CloudFront 설정에서 SSL 인증서 추가하기


d. Route53에서 CloudFront에 도메인 연결하기


e. 잘 접속되는 지 체크하기

업로드중..



2 Route 53이란?

도메인을 발급하고 관리해주는 서비스이다.
Route 53을 조금 더 전문적인 용어로 표현하자면 DNS(Domain Name System) 서비스이다.

1) 현업에서의 Route53 활용 여부

프론트 웹 페이지든 백엔드 서버든 일반적으로 IP를 기반으로 통신하지 않고 도메인을 기반으로 통신한다. 이유는 여러가지지만 그 이유 중 하나는 HTTPS 적용 때문이다. IP 주소에는 HTTPS 적용을 할 수가 없다. 도메인 주소가 있어야만 HTTPS 적용을 할 수 있다. 이 때문에 특정 서비스를 운영할 때 도메인은 필수적으로 사용하게된다.

하지만 DNS의 역할을 하는 서비스는 AWS Route 53 뿐만 아니라 다양하게 존재한다. 가비아(gabia), 후이즈(whois) 등에서도 도메인을 구매하고 관리할 수 있다. 즉, DNS의 역할을 서비스를 하고 있다는 뜻이다.

현업에서는 무조건적으로 AWS Route 53을 고집하진 않는다. 왜냐면 각 서비스마다 구매할 수 있는 도메인의 종류가 다르기 때문이다. 쉽게 예를 들어, 가비아(gabia)에는 내가 원하는 형태의 도메인이 있는데 AWS Route 53에는 없을 수도 있다. 따라서 내가 원하는 도메인이 존재하는 곳의 DNS 서비스를 활용하자.

profile
UI/UX디자이너의 코딩 공부

0개의 댓글