서브도메인
서브도메인은 보유한 도메인 앞에 이름을 덧붙여 만드는 하위 주소입니다. 추가 등록이나 비용 없이 DNS 레코드만으로 만들 수 있습니다.
작성
서브도메인(subdomain)은 보유한 도메인 앞에 이름을 덧붙여 만드는 하위 주소입니다. example.com을 가지고 있으면 blog.example.com, api.example.com, mail.example.com을 모두 만들 수 있고, 이들은 에이펙스 도메인 아래에 위치합니다. 레지스트리에 등록하는 단위는 도메인 자체이므로, 서브도메인은 추가 등록이나 별도 비용 없이 보유자가 직접 만듭니다.
레코드로 만드는 방법
가장 일반적인 방법은 DNS에 레코드를 하나 추가하는 것입니다. 서브도메인을 "만드는" 별도 절차는 없고, 레코드가 생기는 순간 그 이름이 존재하게 됩니다.
| 용도 | 이름 | 타입 | 값 |
|---|---|---|---|
| 자체 서버 | api | A | 서버의 IPv4 주소 |
| 외부 서비스 | blog | CNAME | 서비스가 안내한 호스트 이름 |
| 메일 웹접속 | mail | CNAME | 메일 서비스가 안내한 이름 |
| 지정하지 않은 모든 이름 | * | A 또는 CNAME | 기본 대상 |
와일드카드(*)는 명시하지 않은 모든 하위 이름을 한 대상으로 보냅니다. 편하지만 오타 주소까지 응답하게 되므로 필요한 경우에만 씁니다. 설정 예는 서브도메인 만들기와 DNS 레코드 종류를 참고하세요.
NS로 하위 존을 위임하는 방법
서브도메인의 DNS 관리를 다른 팀이나 다른 DNS 서비스에 넘기고 싶을 때는 레코드를 직접 넣는 대신 NS 레코드로 위임합니다. dev.example.com에 NS 레코드를 두고 다른 네임서버 이름을 적으면, 그 이름 아래의 모든 질의는 위임받은 네임서버가 답합니다.
| 구분 | 레코드 직접 관리 | NS 위임 |
|---|---|---|
| 레코드를 넣는 곳 | 상위 도메인의 DNS 콘솔 | 위임받은 네임서버 |
| 권한 분리 | 불가(같은 콘솔을 공유) | 가능 |
| 적합한 상황 | 대부분의 일반적인 경우 | 개발 환경 분리, 부서별 위임 |
| 주의점 | 없음 | 위임 대상이 응답하지 않으면 해당 가지 전체가 끊김 |
위임은 편리하지만 책임도 넘어갑니다. 위임받은 쪽이 레코드를 지우거나 네임서버를 내리면 상위 도메인에서는 원인을 찾기 어렵습니다. 위임한 가지 목록과 담당자를 문서로 남겨 두세요.
서브도메인 테이크오버
서브도메인 테이크오버는 남아 있는 레코드를 제3자가 가져가는 공격입니다. 흐름은 단순합니다.
- 예전에 외부 서비스를 쓰면서
event.example.com을 그 서비스 주소로 CNAME 연결했습니다. - 서비스 계약을 끝냈지만 DNS의 CNAME 레코드는 지우지 않았습니다.
- 제3자가 그 서비스에서 같은 이름을 새로 등록합니다.
- 이제
event.example.com에 접속하면 제3자가 올린 페이지가 회사 주소로 보입니다.
피싱이나 사칭에 쓰이면 회사 신뢰도에 직접 영향을 줍니다. 예방은 간단합니다. 외부 서비스를 해지할 때 DNS 레코드를 같은 작업으로 함께 지우고, 주기적으로 존의 레코드 목록을 훑어 대상이 살아 있는지 확인합니다. 점검 방법은 도메인 탈취 예방에 정리되어 있습니다.
실무에서 알아둘 것
- 인증서는 이름 단위로 발급됩니다. 서브도메인이 많으면 와일드카드 인증서를 쓰는 편이 관리가 쉽습니다. SSL 인증서 연결을 참고하세요.
- apex에 설정한 쿠키는 모든 서브도메인에 전달됩니다. 신뢰 수준이 다른 서비스를 같은 도메인 아래 두면 쿠키 노출 범위를 먼저 점검해야 합니다.
- 단계를 깊게 만들면(
a.b.c.example.com) 주소가 길어지고 인증서와 와일드카드 설정이 복잡해집니다. 한 단계로 끝내는 구성을 권합니다.
자주 묻는 질문
아닙니다. 보유한 도메인의 DNS에 레코드를 추가하면 바로 생깁니다. 레지스트리에 등록하는 대상은 도메인 자체이고, 그 아래 이름은 도메인 보유자가 자유롭게 만들 수 있습니다.
실무에서는 제한을 느낄 일이 거의 없습니다. 전체 도메인 이름은 255바이트, 한 라벨은 63자까지이고 점으로 구분되는 단계도 여러 단계 쓸 수 있지만, 관리 편의상 단계는 얕게 유지하는 편이 좋습니다.
지우는 편이 안전합니다. 외부 서비스를 가리키던 레코드를 남겨 두면 다른 사람이 그 서비스에서 같은 이름을 선점해 우리 주소로 페이지를 띄우는 서브도메인 테이크오버가 가능해집니다.
관련 가이드
- 서브도메인 만들기blog.example.com 처럼 앞에 이름을 붙인 서브도메인을 A 또는 CNAME 레코드로 만드는 방법입니다. 자주 쓰는 구성, 외부 서비스 연결, NS 위임, SSL 인증서와의 관계까지 정리했습니다.
- DNS 레코드 설정 (A, AAAA, CNAME, MX, TXT, SRV)A, AAAA, CNAME, MX, TXT, SRV 레코드가 각각 무엇을 하고 어떤 값을 넣어야 하는지 예시로 정리했습니다. 루트 도메인에 CNAME을 걸 수 없는 이유와 TTL 기준도 함께 다룹니다.
- SSL 인증서 적용하기사이트에 HTTPS를 켜기 위한 SSL/TLS 인증서 적용 방법입니다. 도메인 소유 검증 방식, 무료 자동 발급 인증서, 와일드카드 인증서, 갱신과 만료 모니터링, CAA 레코드까지 순서대로 정리했습니다.