컨텐츠로 건너뛰기

클라우드 플레어 API 활용 도메인 레코드 변경과 DDNS 설정

클라우드 플레어의 API를 활용하여 도메인 레코드를 변경하는 방법은 동적 DNS(DDNS) 설정에 유용합니다.
이 글에서는 클라우드 플레어의 API를 사용하여 A 레코드를 업데이트하는 절차와 새로운 A 레코드를 추가하는 방법을 단계별로 안내합니다.

1. API 키 및 이메일 획득

  • 클라우드 플레어 계정에서 API 키와 이메일 주소를 확인합니다.
  • API 키는 글로벌 API 키를 사용합니다. 테스트 후 즉시 변경하고 엄격한 권한 설정으로 토큰을 발급해 사용하세요.

2. 존 ID 찾기

  • 존(Zone) ID는 클라우드 플레어 대시보드의 ‘Overview’ 섹션에서 확인하거나, API를 통해 조회할 수 있습니다.
  • 다음은 존 ID를 조회하는 API 명령 예시입니다.
Terminal window
curl -X GET "https://api.cloudflare.com/client/v4/zones?name=[업데이트할 도메인]" \
-H "X-Auth-Email: [나의 이메일]" \
-H "X-Auth-Key: [나의 api key]" \
-H "Content-Type: application/json"

3. 기존 A 레코드의 ID 찾기 또는 새 A 레코드 추가

  • 존 ID를 사용하여 기존 A 레코드의 ID를 조회하거나, 새로운 A 레코드를 추가합니다.

(1) 기존 A 레코드 ID 조회 (GET)

  • 다음은 A 레코드 ID를 조회하는 API 명령 예시입니다.
Terminal window
curl -X GET "https://api.cloudflare.com/client/v4/zones/[업데이트할 도메인의 Zone ID]/dns_records?type=A&name=[업데이트할 도메인]" \
-H "X-Auth-Email: [나의 이메일]" \
-H "X-Auth-Key: [나의 api key]" \
-H "Content-Type: application/json"
  • 조회 결과에서 “id” 값을 확인합니다.
{ "result": { "id": "xxxxxxxxxxxxxxxxxxxxxxxxxxx" } }

(2) 새 A 레코드 추가 (POST)

Terminal window
curl -X POST "https://api.cloudflare.com/client/v4/zones/[존 ID]/dns_records" \
-H "X-Auth-Email: [나의 이메일]" \
-H "X-Auth-Key: [나의 api key]" \
-H "Content-Type: application/json" \
--data '{"type":"A","name":"[도메인 이름]","content":"[IP 주소]","ttl":1,"proxied":false}'

4. DNS 레코드 업데이트

  • 레코드 ID를 찾았다면, 해당 ID를 이용해 A 레코드를 업데이트합니다.

  • 다음은 A 레코드를 업데이트하는 API 명령 예시입니다.

Terminal window
curl -X PUT "https://api.cloudflare.com/client/v4/zones/[업데이트할 도메인의 Zone ID]/dns_records/[업데이트할 도메인의 레코드 ID]" \
-H "X-Auth-Email: [나의 이메일]" \
-H "X-Auth-Key: [나의 api key]" \
-H "Content-Type: application/json" \
--data '{"type":"A","name":"[업데이트할 도메인]","content":"[업데이트할 A레코드의 새 IP 주소]","ttl":1,"proxied":false}'

수고 많으셨습니다. 감사합니다.


Askfront.com (에스크프론트)

기존의 댓글 대신, 초보자도 자유롭게 질문할 수 있는 포럼을 만들었습니다.
에스크프론트에서는 가이드뿐만 아니라 모든 종류의 질문을 하실 수 있습니다.
검색해도 오래된 정보나 도움이 되지 않는 정보만 나오는 것 같고, 주화입마에 빠진 것 같은 기분이 들 때가 있습니다.
그럴 때, 부담 없이 질문해 주세요 :) 같이 의논하며 생각해봅시다.
가능하다면, 제가 답변 드리겠습니다. 고맙습니다.