주요 개념
카카오클라우드의 DNS(Domain Name System) 는 사용자가 사이트에 접속하기 위해 입력한 도메인을 해당 사이트를 호스팅하는 컴퓨터의 실제 IP 주소로 응답하는 서비스입니다.
DNS 서비스에서 사용자는 별도의 DNS 서버 운영 관리 없이 DNS 영역과 DNS 레코드를 만들고, 인터넷에서 원하는 주소 정보를 응답받을 수 있습니다. 예를 들어 사용자가 https://kakaocloud.com/
URL 주소를 웹브라우저에 입력하면, DNS를 통해 https://kakaocloud.com/
를 호스팅하는 컴퓨터의 실제 IP 주소로 변환하여 응답하고 사용자는 응답받은 IP 주소로 접속합니다.
- 2023년 7월 기준, DNS 서비스는
kr-central-2
리전에서만 제공됩니다. - DNS 서비스는 도메인 이름 구입 및 갱신 서비스를 지원하지 않습니다. 도메인 구입 및 갱신은 별도의 도메인 등록처에 문의하시기 바랍니다.
DNS 영역
DNS 영역은 다수의 레코드로 구성된 객체로, 사용자에 의해 관리되는 DNS 정보 영역입니다. 사용자는 생성한 DNS 영역에 DNS 레코드를 생성하고 인터넷 영역에서 질의응답을 받을 수 있습니다. DNS 영역 생성 및 관리에 대한 자세한 설명은 DNS 영역 생성 및 관리 문서를 참고하시기 바랍니다.
DNS 레코드
DNS 레코드(Record)는 DNS 서버가 받은 접근 요청에 대한 처리 방식 정보로, 도메인 이름과 DNS 리소스 정의 간의 맵핑입니다. 카카오클라우드에서는 다음의 레코드 유형을 지원합니다. DNS 레코드 상태값은 다음과 같습니다.
파라미터 | 설명 |
---|---|
Active | 레코드셋이 정상인 상태 |
Pending | 레코드셋이 Create , Update , Delete 를 진행 중인 상태 - 경우에 따라 DNS Resolving을 보장하지 않음 |
Error | 레코드셋이 `Pending 중 Timeout이 된 상태 - 경우에 따라 DNS Resolving을 보장하지 않음 |
A 레코드
A(Address) 레코드는 IPv4 주소를 등록해 응답해주는 레코드입니다.
192.168.10.1
AAAA 레코드
AAAA(quad-A) 레코드는 IPv6 주소를 등록해 응답해주는 레코드입니다.
2001:0DB8:1000:0000:0000:0000:1111:2222
2001:DB8:1000::1111:2222
CAA 레코드
CAA(Certification Authority Authorization) 레코드는 특정 도메인에 대한 인증서를 발급할 수 있는 CA 인증 기관을 알려주는 DNS 레코드입니다. 등록된 인증 기관이 아닌 타 인증 기관에서 도메인에 대한 인증서를 발급하는 것을 방지할 수 있습니다.
[ flags tag value ]
파라미터 | 설명 |
---|---|
flags | flags 마다 특별한 의미를 가짐 - 범위: 0, 1 만 지원 |
tag | 다음의 값으로 설정 가능 - issue : 도메인의 인증서를 발행할 수 있는 CA 기관을 지정 - issuewild : wildcard 인증서를 생성할 수 있는 CA기관을 지정 - iodef : CAA 레코드에 대한 정책 위반 내역을 수신할 e-mail 주소를 지정 |
value | tag 값에 따라 value 값을 입력 - tag 값이 issue 인 경우: 0 issue "letsencrypt.org" - tag 값이 issuewild 인 경우: 0 issuewild "letsencrypt.org" - tag 값이 iodef 인 경우: 0 iodef "<mailto:admin@example.com>" |
[ 0 issue abc.example.com ]
CNAME 레코드
CNAME(Canonical NAME) 레코드는 하나의 도메인 네임을 다른 이름으로 매핑시키는 레코드입니다.
abc.example.com.
MX 레코드
MX(Mail Exchanger) 레코드는 도메인의 메일 서버를 지정합니다. 두 개 이상의 메일 서버가 있는 경우 우선순위를 지정합니다.
[ Preference DomainName ]
파라미터 | 설명 |
---|---|
Preference | 하나 이상의 메일 서버를 이용할 수 있을 경우의 메일 전달 우 선순위 값 - 범위: 0 ~ 65535 |
DomainName | 이메일 서버의 도메인 이름 - 예시: mail.example.com. |
10 mail.example.com.
NAPTR 레코드
NAPTR(Name Authority Pointer) 레코드는 NAPTR 인터넷 전화 통신의 응용프로그램에 가장 일반적으로 사용되는 레코드입니다. 일반적으로 전화번호를 SIP URI로 변환합니다.
자세한 설명은 RFC를 참고하시기 바랍니다.
[Order Preference Flags Service Regexp Replacement]
파라미터 | 필수 여부 | 설명 |
---|---|---|
Order | 필수 | NAPTR 레코드가 처리되어야 하는 순서를 지정하는 값 - 값이 낮을수록 높은 우선순위 - 범위: 0 ~ 65535 |
Preference | 필수 | 동일한 Order 값을 가진 NAPTR 레코드가 처리되어야 하는 순서 - 범위: 0 ~ 65535 |
Flags | 필수 | 레코드에 있는 필드 해석을 제어하기 위한 값 - 입력값(대문자) : "A", "P", "S", "U" |
Service | 필수 | 이 필드는 애플리케이션 사양에 의해 결정됨 - 하단의 애플리케이션에 따른 아래 RFC 문서를 참고 ㄴ URL 확인하기 위한 DDDS 애플리케이션: RFC ㄴ SRV - NAPTR DDDS 애플리케이션: RFC ㄴ URI - NAPTR DDDS 애플리케이션: RFC |
Regexp | 선택 | DDDS 알고리즘에서 대체 표현식을 구성 - ASCII 문자로 입력 - regexp 구문에 대한 자세한 설명은 RFC 3402 문서를 참고 |
Replacement | 선택 | DDDS 알고리즘에서 대체 표현식을 구성 - 도메인 이름 형식; a-z, 0-9 및 하이픈( - )으로 작성 - Regexp에 값을 지정하는 경우에는 도메인 이름 뒤 온점( . )을 Replacement에 입력 |
100 50 U E2U+sip !^+441632960083$!sip:1@example.com! test.com.
100 51 U E2U+h323 !^+441632960083$!h323:operator@example.com! test.com.
100 52 U E2U+emailmailto !^.*$!mailto:info@example.com! test.com.
NS 레코드
NS(Name Server) 레코드는 도메인에 네임서버를 지정하는 레코드입니다. 도메인에 대한 처리를 다른 도메인 네임서버에게 위임하는 역할을 수행합니다.
ns1.example.com.
SRV 레코드
SRV(Service) 레코드는 특정 서비스를 호스팅 하는 서버의 위치를 식별하는 데 사용되는 레코드로, 호스트 네임과 포트 정보를 저장합니다.
- SRV 레코드 이름은
_service._proto.name (_서비스명._프로토콜.이름)
형식입니다. (예시: _ldap._tcp.example)
[ Priortity Weight Port DomainName ]
파라미터 | 설명 |
---|---|
Priortity | 값이 낮을수록 높은 우선순위 - 범위: 0 ~ 65535 |
Weight | Weight 동일한 우선순위를 가질 때 비교할 가중치 - 범위: 0 ~ 65535 |
Port | 서비스 port 번호 - 범위: 0 ~ 65535 |
DomainName | 서비스 도메인 이름 |
10 30 443 abc.example.com.
SPF 레코드
SPF(Sender Policy Framework) 레코드는 수신 메일 서버가 발송 메일 서버 정보와 메일주소가 일치하는지 확인하는 유효성 검사에서 사용됩니다.
SPF 레코드는 지원 중단된 레코드 유형입니다. SPF 레코드 대신 SPF 레코드 값으로 만들어진 TXT 레코드를 생성하도록 권장합니다.
"v=spf1 mx:example.com -all"
TXT 레코드
TXT(Text) 레코드는 텍스트 정보를 저장합니다. 비정형 텍스트 정보를 자유롭게 저장하여 사용할 수 있는 레코드입니다. “ ”
묶음으로 안에 레코드 값을 작성합니다.
레코드당 255자 이 내로 입력할 수 있으며, 레코드 셋은 최대 2,048자 이내여야 합니다.
"v=spf1 mx:example.com -all"
SOA 레코드
SOA 레코드는 DNS 영역에 대한 권한 정보를 저장하고 있습니다. DNS 영역 생성 시 기본적으로 생성되며 수정 및 삭제가 불가능합니다.
[ primary-name-server email-of-responsible-person serial-number refresh-interval retry-interval expiration-time minimum-TTL ]
파라미터 | 설명 |
---|---|
primary-name-server | 주 쿼리 이름 서버(primary name server)의 호스트 이름입니다. |
email-of-responsible-person | 존 관리자의 이메일 주소입니다. 이메일 주소는 @ 기호와 . 기호를 포함한 ASCII 문자열로 표시됩니다. |
serial-number | SOA 레코드의 직전 변경 이후로 존 내에서 발생한 변경 사항을 식별하는 일련 번호(serial number)입니다. 보통 날짜와 버전 정보를 포함하며, 32비트 정수값으로 표현됩니다 |
refresh-interval | 주기적으로 존 정보를 갱신하는 데 사용되는 주기(interval)입니다. 이 값은 32비트 정수값으로 표현되며, 초 단위로 지정됩니다. |
retry-interval | 존의 정보 갱신에 실패했을 때, 재시도를 수행하기 전 기다리는 시간을 지정하는 값입니다. 이 값은 32비트 정수값으로 표현되며, 초 단위 로 지정됩니다. |
expiration-time | 존 정보가 만료되는 시간을 지정하는 값입니다. 이 값은 32비트 정수값으로 표현되며, 초 단위로 지정됩니다. |
minimum-TTL | 존 내의 모든 레코드에 대한 TTL(Time To Live) 중, 최소값을 지정하는 값입니다. 이 값은 32비트 정수값으로 표현되며, 초 단위로 지정됩니다. |
SOA 레코드 형식은 사용자가 등록할 수 없으므로, 별도의 예시는 제공하지 않습니다.
TTL 설정
TTL(Time To Live)은 DNS 레코드의 변경 사항이 적용될 때까지 걸리는 시간(초)을 결정하는 DNS 레코드값입니다. 레코드에 초 단위로 설정되며 DNS 리졸버의 캐시를 제어합니다.
TTL 값은 서비스의 환경에 적합하도록 0초 ~ 604800초 범위 내에서 변경할 수 있습니다. 예를 들어 아주 빠르게 서비스 변경 계획이 있다면 TTL 값을 짧게 하여, 리졸버에서 캐싱 시간을 줄이고 새 레코드 설정을 빠르게 적용할 수 있습니다. 변경이 끝난 경우, TTL 값을 이전으로 변경하면 DNS 리졸버의 부하를 줄일 수 있습니다.
IAM 역할 관리
DNS의 IAM 역할 관리는 역할 기반 액세스 제어(Role-Based Access Control, RBAC)를 따릅니다. 따라서 프로젝트 내 권한을 가진 사용자는 DNS 영역을 생성하고 레코드를 관리할 수 있습니다.
프로젝트 관리자(Admin) 와 프로젝트 멤버(Member) 는 DNS 영역과 레코드를 관리할 수 있습니다. 프로젝트 리더(Reader) 논 DNS 영역과 레코드의 조회만 가능합니다.
- 나의 역할별 IAM 권한은 카카오클라우드 콘솔 > 우측 상단 프로필 > 계정 정보에서 확인할 수 있습니다.
DNS 영역 권한
권한 | 프로젝트 관리자(Admin) | 프로젝트 멤버(Member) | 프로젝트 리더(Reader) |
---|---|---|---|
DNS 영역, 레코드 만들기 | ✓ | ✓ | |
DNS 영역, 레코드 조회 | ✓ | ✓ | ✓ |
DNS 영역, 레코드 설정 | ✓ | ✓ | |
DNS 영역, 레코드 삭제 | ✓ | ✓ |
DNS 레코드 권한
권한 | 프로젝트 관리자(Admin) | 프로젝트 멤버(Member) | 프로젝트 리더(Reader) |
---|---|---|---|
레코드 만들기 | ✓ | ✓ | |
레코드 조회 | ✓ | ✓ | ✓ |
레코드 설정 | ✓ | ✓ | |
레코드 삭제 | ✓ | ✓ |