Post

Pi-Server 구축기 4편: 도메인 구매와 DNS 설정

Pi-Server 구축기 4편: 도메인 구매와 DNS 설정

🌍 Pi-Server 구축기 4편: 도메인 구매와 DNS 설정

1. 도메인을 구입한 이유

이전 편에 이어서 또다시 Cloudflare 설정이다.
저번 편에서 Cloudflare TunnelURL 고정 및 Zero Trust 설정을 하려면 도메인 구매가 필수라는 걸 알게 됐다.
그래서 결국, 도메인을 직접 사기로 했다.

솔직히 진짜 고민 많이 했다.
돈도 많지 않았고, 사실 서버 구축은 ‘취미 프로젝트’에 가까웠기 때문에 “굳이 돈을 써야 하나?” 하는 생각도 들었다.
하지만 결론은 하나였다.

도메인을 산다는 건, 인터넷 상에서 진짜 ‘내 주소’를 얻는 일이다.

그 생각을 하니까, 한편으론 좀 벅찼다.
처음으로 내가 만든 서비스가 “주소를 가진다”는 건,
마치 현실에서 집을 마련하는 기분이었다.


2. 도메인 구매

무료 도메인도 여러 개 알아봤다.
하지만 공부를 하다 보니 HTTP와 HTTPS의 차이를 알게 됐다.

HTTP는 암호화되지 않은 통신이라,
만약 누군가 내 ttyd 로그인 화면을 가로채면 아이디와 비밀번호가 그대로 노출될 수도 있다.
반면 HTTPS는 TLS 암호화를 통해 로그인 정보를 보호한다.

그래서 결론은 HTTPS 강제 도메인으로 가기로 했다.
그걸 제공해주는 서비스가 마침 있었고, 급하게 Squarespace에서 바로 구매했다.

지금 생각해보면 Cloudflare 자체에서도 도메인을 구매하면
Zero Trust 연동이 자동으로 된다는 걸 나중에 알았다.
그땐 진짜 급했나 보다…

내가 구매한 도메인은 m0squito.dev였다. 다행히 첫 도메인이라 할인 이벤트로 12,500원에 구매했다.
(정가가 42,000원이었으니까 꽤 이득이었다.)


3. Cloudflare에서 DNS 위임 및 커스텀 도메인 설정

이제 Cloudflare와 Squarespace를 연결해야 했다.
Cloudflare가 내 DNS를 관리하도록 설정하는 과정이다.

먼저 Cloudflare에서 네임서버 2개를 제공받아 Squarespace 쪽으로 옮겼다.
즉, DNS 관리 주체를 Cloudflare로 위임한 것이다.

이 과정이 생각보다 헷갈렸다.
처음엔 DNS라는 개념 자체가 생소했기 때문에, GPT의 도움이 꽤 컸다.

그다음엔 Cloudflare가 자동으로 생성한 기본 DNS 레코드를 전부 삭제했다.
내가 필요한 건 오직 내 터널 하나뿐이었으니까.
이렇게 정리해둬야 나중에 헷갈리지 않는다.


이제 Raspberry Pi 쪽에서 터널 인증 및 도메인 연결 설정을 진행했다.
Cloudflare 대시보드에서 터널을 생성하면 <REDACTED-TUNNEL-ID>.json 파일을 받을 수 있다.
그 파일을 Pi의 설정 디렉토리(/home/<REDACTED_USER>/.cloudflared/)에 옮겨두고,
다음처럼 config.yml 파일을 작성했다.

1
2
3
4
5
6
7
tunnel: <REDACTED-TUNNEL-ID>
credentials-file: /home/<REDACTED_USER>/.cloudflared/<REDACTED-TUNNEL-ID>.json

ingress:
  - hostname: <ENDPOINT>.m0squito.dev
    service: http://localhost:3000
  - service: http_status:404

이 설정은 다음 세 가지를 의미한다.

  1. 내 터널이 Cloudflare 계정에 정식 인증됨
  2. m0squito.dev 도메인을 통해 접속 가능
  3. localhost:3000 (ttyd) 으로 트래픽을 전달

이후 커맨드 한 줄로 내 도메인을 DNS에 연결했다.

1
cloudflared tunnel route dns <REDACTED-TUNNEL-NAME> <ENDPOINT>.m0squito.dev

이 순간, 드디어 내 서버는 “진짜” 인터넷에 주소를 가진 존재가 되었다.

이제 https://<ENDPOINT>.m0squito.dev 로 접속하면 내 라즈베리파이에 있는 ttyd 터미널을 안전하게 사용할 수 있다.


4. 마무리

이제 내 Pi 서버는 단순한 로컬 장난감이 아니라,
고정된 HTTPS 주소를 가진 외부 접속 가능한 서버가 되었다.

다음 편에서는 본격적으로 Zero Trust 인증을 걸어서
GitHub 계정으로 로그인해야만 접속할 수 있는 완전한 보안 구조를 만든다.


← 이전 글: Pi-Server 구축기 3편: Cloudflare Tunnel 연결
→ 다음 글: Pi-Server 구축기 5편: systemctl로 서비스 등록하기

This post is licensed under CC BY 4.0 by the author.