해당 블로그는 Vercel 통해 배포되고 있다. 그래서 도메인도 Vercel에서 기본으로 제공해주는 vercel.app 도메인을 사용하고 있었는데 문득 다른 도메인을 구매하고 싶다는 생각이 들었다. 해당 글은 도메인을 구매하여 적용하는 과정에서 생긴 일에 대해서 정리한 글이다.
먼저 도메인 분야에서 대표적인 세 업체를 선정하고 세부적으로 비교하였다. 가격은 3년 기준으로 결과는 다음과 같다.
Cloudflare | Squarespace | 가비아 | |
---|---|---|---|
가격 | $31.32 | $59.40 | ~ $51 |
서비스 | 👍🏻 | 🤔 | 👎🏻 |
Squarespace
는 google domains를 인수하여 구글과의 연동성이 매우 좋은 것이 장점인 것 같았다. 다만 가격이 저렴한 업체에 비해 2배 정도 비싼 것이 큰 단점이었다. 가비아
는 앞선 업체에 비해 저렴하지만 다소 기본적인 기능조차 돈을 지불해야 하는 점이 많이 아쉬웠다. 그에 비해 Cloudflare
는 가장 저렴한 가격에 도메인을 구매할 수 있고, 가비아
에서는 유료인 등록 정보 숨김 기능을 무료로 지원한다. 또 다양한 보안 솔루션을 제공하기 때문에 Cloudflare
를 선택하지 않을 이유가 없었다.
구매는 원활하게 진행되었고, 한화로 대략 45,000₩ 정도가 빠져 나갔다. 무료 도메인 업체인 duckdns
를 사용했을 때는 여러 설정을 수동으로 했었지만, Cloudflare
의 경우 Vercel에 구매한 도메인을 입력하면 자동으로 필요한 설정을 등록해주는 것이 편했다. 이렇게 글이 마무리 되었으면 좋겠지만, 문제가 발생했다.
무수히 많은 악수의 요청이... 🫱🏻🫲🏽
whois에 새로 도메인이 등록되면 크롤링을 시작하는 건지, 도메인을 등록하자마자 무수한 GET 요청이 날라오는 것 아니겠나... 일단 Vercel 설정 > 방화벽에 가서 Attack Challenge Mode
를 활성화 시키고 Bot Filter
를 통해 걸러내고자 하였으나, 전혀 효과가 없었다.
해결 방법을 찾던 도중 Cloudflare
의 보안 서비스를 이용하면 된다는 것을 깨달았다.
Vercel에 도메인을 등록하면 Cloudflare에 다음과 설정이 추가된다.
Vercel 주소는 여기로 가면 돼따라서 클라이언트는 내가 구매한 도메인의 IP 주소를 Cloudflare의 DNS 서버(DNS Only)를 통해 조회하게 된다. 이 경우 클라이언트는 Cloudflare DNS에 등록된 Vercel의 IP 또는 CNAME 정보를 받게 되며, 실제 요청은 Vercel로 직접 전송된다. 다만, 이 방식에서는 Cloudflare가 트래픽을 직접 다루지 않기 때문에, 보안 기능 (DDoS 방어, WAF, SSL 인증서 등)이 적용되지 않는다. 따라서 Proxy 설정을 켜주는 것이 필요하다.
DNS Records
먼저 Cloudflare Dashboard에서 DNS Records 탭을 클릭하면 현재 설정된 레코드를 볼 수 있다. 여기서 Edit 버튼을 눌러 Proxy 상태를 ON으로 바꾸면, 다음과 같은 일이 일어난다.
Vercel? 갖다줄게, 잠깐 여기서 기다려봐이제 Cloudflare가 클라이언트와 Vercel 사이에 중계자 역할을 하게 되며, 보안, 캐싱, 속도 최적화 기능들을 자유롭게 사용할 수 있다.
※ proxy를 켜면 domain configuration이 필요하다고 하는데 무시하면 된다.
나의 블로그는 수익을 목적으로 한 블로그도 아니고 특정 분야의 전문적인 지식을 제공하는 블로그도 아니다. 블로그를 운영하는 목적은 일기 같은 느낌으로 오로지 배운 것을 정리해두는 목적이 크다.
사이버 수문장
내가 정리한 지식이 공유되는 것은 좋은 일이라고 생각하지만, Vercel의 무료 플랜은 대역폭에 제한이 있고 자동화 크롤러 때문에 과금을 하고 싶지는 않았다. 따라서 나만의 사이버 수문장을 만들고 자동화 크롤링이든 LLM에 의한 크롤링이든 사람이 아닌 클라이언트의 모든 요청을 막고자 했다. 나의 설정은 다음과 같다.
Setting
봇 탐지 관련(자동화 혹은 AI)은 모두 활성화 해주었다. 내 블로그는 robots.txt
를 작성하지 않았기에 설정하지 않았고, 봇 탐지 정확도 향상 옵션과 링크 뺑뺑이 옵션도 활성화 시켰다.
Security Rules
Security Rules 탭에는 다양한 조건들을 설정할 수 있다. 내 블로그는 한국, 일본 IP만 자유롭게 접속을 허용하고 그 외 국가는 Challenge를 거치도록 설정하였다. 이 탭에서는 10초에 몇 번이상 GET 요청을 받으면 차단 시키는 등의 Rate Limitation 설정도 가능하다.
보안 설정을 끝내니 그 많던 벌레들이 사라지는 것을 볼 수 있다.
![]() | ![]() |
Cloudflare에서 접속을 잘 막아주는 듯 하다. 오른쪽 사진을 보면 알겠지만, 크롤러들이 사이트를 돌며 잘못 배포된 RSA Key, API Key를 찾으려고 혈안이 되어 있다. 다시 한 번 배포의 중요성을 깨닫게 된 순간이었다.
이런 일을 겪는다면 다들 사이버 수문장을 만들어보자