셀프호스팅의 완성, AWS CloudFront 신규 요금제로 속도와 디도스 방어 종결

1주 전

개인 서버를 운영하는 ‘셀프호스팅’ 족에게 가장 큰 고민은 네트워크 구성이다. 도메인을 연결하고 외부 접속을 허용하는 순간, 내 서버의 실제 IP가 전 세계에 노출되기 때문이다. 이는 보안상 큰 위험일 뿐만 아니라, 누군가 악의적으로 트래픽을 보내면 가정용 인터넷 망이나 저사양 서버가 마비될 수 있다. 오늘은 모든 셀프호스팅 환경에서 속도 저하 없이 안전하게 서버를 보호하는 가장 합리적인 방법을 소개한다.

왜 내 서버 앞에 ‘방패’가 필요한가?

내 서버를 DDNS를 통해 포트포워딩으로 직접 접속을 열어두는 것은 위험하다. 실제 IP(Origin IP)가 노출되면 해커들의 포트 스캔 대상이 되거나 디도스(DDoS) 공격의 표적이 될 수 있다.

디도스(DDoS) 공격은 기본적으로 엄청난 양의 트래픽을 퍼붓는 ‘물량 공세’다. 가정용 기가 인터넷이나 무료 VPS의 얇은 회선으로는 공격자가 보내는 트래픽을 절대 감당할 수 없다. 회선이 꽉 차는 순간, 서버는 켜져 있어도 접속이 불가능한 ‘먹통’ 상태가 된다.

이때 필요한 것이 바로 CDN(Content Delivery Network) 또는 리버스 프록시(Reverse Proxy) 서비스다.

  • 방어 원리(Tanking): 이 서비스들은 전 세계에 거대한 네트워크 대역폭을 가지고 있다. 내 서버 대신 이들이 먼저 매를 맞고(트래픽 흡수), 정상적인 방문자만 골라서 내 서버로 보내준다.
  • IP 은닉: 외부에는 프록시 서버의 IP만 노출되므로, 내 진짜 서버 위치를 숨길 수 있다.

대표적인 방어 서비스 3대장 비교

그렇다면 어떤 방패를 써야 할까? 셀프호스팅 유저들이 주로 고려하는 서비스들을 비교해 보자.

서비스명특징장점단점
Cloudflare압도적 점유율의 1위 업체설정이 쉽고 방어 성능이 강력함. 무제한 무료.한국 무료 유저는 느림. (미국/일본 우회)
AWS CloudFront아마존의 글로벌 CDN서울 리전(Edge) 보유로 속도가 가장 빠름.설정이 복잡하고, 잘못 쓰면 요금 폭탄 위험.
Gcore게이밍/미디어 특화Cloudflare보다 한국 접속 속도가 준수한 편.커뮤니티 정보가 적고 설정이 생소할 수 있음.

결국 “보안(Cloudflare)”이냐 “속도(AWS)”냐를 두고 끊임없이 고민해 왔다. 하지만 앞서 말했듯, AWS의 정책 변경으로 인해 이제는 고민할 필요가 없어졌다.

Cloudflare의 딜레마: 보안을 얻고 속도를 잃다

셀프호스팅 유저들이 가장 먼저 찾는 ‘국룰’ 무료 CDN은 단연 Cloudflare다. 하지만 여기에는 치명적인 딜레마가 숨어 있다. 바로 ‘주황 구름’을 켜는 순간 속도가 느려진다는 점이다.

설정 방법: 주황 구름 vs 회색 구름

Cloudflare 대시보드의 DNS 설정 탭에 가면, 각 레코드 옆에 구름 아이콘이 있다. 이 색깔이 핵심이다.

셀프호스팅의 완성, AWS CloudFront 신규 요금제로 속도와 디도스 방어 종결
  • 주황 구름 (Proxied): 트래픽이 Cloudflare를 거쳐서 간다.
    • 장점: 내 IP가 숨겨지고, 디도스 방어가 작동한다.
    • 단점: 무료 플랜은 한국 리전(ICN)을 안 써준다. 트래픽이 해외로 우회한다.
  • 회색 구름 (DNS Only): Cloudflare가 그냥 주소만 알려준다.
    • 장점: 접속 속도가 빠르다. (직결)
    • 단점: 내 IP가 그대로 노출된다. 방어 기능이 없다.

우리는 보안을 위해 ‘주황 구름’을 켜야 하는데, 이러면 바로 ‘강제 해외여행’이 시작된다.

팩트 체크: 내 데이터가 진짜 미국(LAX)까지 갔다 오나?

“요즘 세상에 인터넷이 느려봐야 얼마나 느리겠어?”라고 생각한다면, 직접 확인해 볼 수 있다. 내 블로그가 태평양을 건너갔다 오는지 확인하는 확실한 방법이다.

셀프호스팅의 완성, AWS CloudFront 신규 요금제로 속도와 디도스 방어 종결

크롬 개발자 도구 (가장 정확함) 내 사이트에 접속한 뒤 F12를 눌러 개발자 도구를 켠다.

  • [Network] 탭 → 내 도메인 클릭 → [Headers] 탭 확인
  • cf-ray 항목을 찾아보자. 맨 뒤에 붙은 영문 3글자가 데이터센터 위치다.
  • ICN(인천)이 아니라 LAX(로스앤젤레스), SJC(산호세), NRT(도쿄)가 찍혀 있다면? 축하한다. 방금 당신의 데이터는 미국 투어를 마치고 돌아 온 것이다.
셀프호스팅의 완성, AWS CloudFront 신규 요금제로 속도와 디도스 방어 종결
  • 초기 연결(Initial Connection): 638ms
    • 서울에서 서울로 접속했다면 20ms면 충분했을 시간이, 미국을 찍고 오느라 30배나 지연됐다.
  • cfOrigin (하단): 438ms
    • 이게 결정적인 문제이다. 미국에 있는 Cloudflare 서버가 한국에 있는 내 서버(Origin)에게 데이터를 요청하고 받아오는 데만 0.43초가 걸렸다는 뜻이다.

결과적으로 사용자는 빈 화면을 보며 1.64초를 멍하니 기다려야 한다. 요즘 웹 환경에서 1.6초 딜레이는 한국인은 참지 못할 뿐더러 검색엔진도 좋아하지 않는 스펙이다.

결국 Cloudflare 무료 버전을 쓴다는 건, 집 옆에 있는 서버에 접속하기 위해 비행기 타고 미국을 찍고 오는 것과 같다. 쾌적한 블로그 경험을 망치는 주범이다.

AWS CloudFront의 장벽: 과금 공포

속도 문제를 해결할 최적 대안은 AWS CloudFront다. 세계 1위 클라우드인 아마존(Amazon)의 CDN 서비스로, 서울에 엣지 로케이션(Edge Location)을 다수 보유하고 있다. 즉, 내 서버가 어디에 있든 한국 사용자는 서울 엣지에서 데이터를 받아 가므로 ‘로컬급 속도’가 나온다.

설정 방법: Cloudflare보다는 조금 복잡하다

셀프호스팅의 완성, AWS CloudFront 신규 요금제로 속도와 디도스 방어 종결

AWS는 Cloudflare처럼 ‘주황 구름’ 버튼 하나 켠다고 끝나는 게 아니다. 구조가 좀 다르다. SSL 인증서 발급(ACM)부터 도메인 연결(CNAME), 원본(Origin)동작(Behavior) 설정까지… 용어만 들어도 조금 머리가 아프다.

하지만 막상 해보면 생각보다 어렵지 않다. 다른 포스팅을 통해 설정방법을 다뤄 보도록 하겠다.

셀프호스팅의 완성, AWS CloudFront 신규 요금제로 속도와 디도스 방어 종결

Cloudflare를 쓸 때는 강제로 미국(LAX)을 찍고 와야 했지만, AWS CloudFront는 다르다. 설정 직후 헤더를 확인해보면 서울 리전(ICN)에서 즉시 데이터를 전송하는 것을 확인할 수 있다.

  • x-amz-cf-pop: AWS CloudFront의 접속 포인트(Point of Presence) 위치를 나타낸다.
  • ICN: 인천공항 코드, 즉 서울 리전을 의미한다.

치명적 단점: ‘빌링 쇼크’의 공포

이렇게 설정하면 속도는 빨라지는데, 왜 그동안 개인 블로거들은 이걸 안 썼을까? 바로 ‘종량제(Pay-as-you-go)’라는 과금 폭탄 가능성 때문이었다.

  • Cloudflare: 공격 트래픽이 100TB가 들어와도 “응 무료야~” 하고 막아준다.
  • AWS (기존): “공격 막아드렸습니다. 근데 막느라 100TB 대역폭 쓰셨네요? 요금 청구합니다.

악의적인 공격자가 작정하고 트래픽을 쏘면, AWS가 방어는 해주지만 그 과정에서 발생한 데이터 전송 비용이 고스란히 내 카드값으로 청구된다. 서버 지키려다 과도한 청구 금액을 받을 수 있다. 그렇다고 이를 방지하는 방법이 있는 것도 아니다. 그래서 다들 “무서워서 못 쓰겠다”며 다시 느린 Cloudflare로 돌아가곤 했다.

AWS Cloudfront 종량제 데이터 전송 요금

AWS Cloudfront의 종량제 요금은 권역마다 다르며 서울 리전은 비교적 더 비싼 편이다.

요금종류설명요금 (GB당)비고
데이터 전송 요금AWS → 인터넷$0.120 (첫 1TB 무료)DDoS시 폭탄 요금 발생
데이터 전송 요금AWS → Origin 서버$0.060 (전부 유료)
요청 요금HTTPS 요청$0.012 (첫 1천만건 무료)

만약 방어 장치 없이 1TB(1,024GB) 트래픽 공격을 받았다면?

  • 계산: 1,024 GB × $0.120 = $122.88
  • 결과: 하룻밤 사이에 트래픽 비용만 약 18만 원이 청구된다.

게임 체인저: AWS ‘정액제 무료 플랜’의 도입

최근 AWS는 이러한 개인 및 소규모 운영자의 니즈를 반영하여 새로운 요금 정책을 발표했다. 핵심은 기존 종량제 외에 ‘정액제’ 무료 플랜을 신설한 것이다.

이 플랜의 약관에는 셀프호스팅 유저들이 기다려온 결정적인 내용이 포함되어 있다.

셀프호스팅의 완성, AWS CloudFront 신규 요금제로 속도와 디도스 방어 종결

종량제에서는 유료였던 많은 서비스, 특히 WAF 서비스가 무료 요금제인데도 포함되었고, 무료 구간없이 청구되던 “AWS → Origin 서버” 데이터 전송 요금이 100GB까지 무료로 되었다. 다만, 요청 요금은 월 1천만건에서 월 1백만건으로 줄었으나 이를 초과하여도 추가 과금을 하지 않는다고 한다. (다만, 계속적이고 과도한 초과는 무료 요금제를 AWS에서 임의조정할 수 있다고 한다)

Your plan includes a monthly usage allowance, subject to usage and transfer limits , and you will not incur overage charges. Blocked requests and DDoS attacks never count against your usage allowance.

귀하의 플랜에는 월별 사용 허용량이 포함되어 있으며 이는 사용 및 전송 제한의 적용을 받습니다. 귀하에게는 초과 요금이 발생하지 않습니다. 차단된 요청 및 DDoS 공격은 사용 허용량에 절대 포함되어 계산되지 않습니다.

특히, 디도스 공격으로 인해 트래픽이 폭증하더라도, 방어 과정에서 발생한 트래픽에 대해서는 과금하지 않는다라는 획기적이고 과감한 혜택을 제공한다. 무료 제공량이 정해져 있지만, 개인적인 용도의 NAS나 블로그 서버를 운영하기에는 충분한 수준이다.

AWS의 숨겨진 의도

아마존(AWS)이 왜 갑자기 이런 파격적인 혜택을 뿌리는 걸까? 여기엔 크게 3가지 계산이 깔려 있다고 생각한다.

  1. Cloudflare 독주 견제 (시장 탈환)
    그동안 개인 개발자나 소규모 스타트업은 “AWS는 무서워서 못 써”라며 전부 Cloudflare로 넘어갔다. 잠재적 고객들을 경쟁사에 다 뺏기니, AWS 입장에선 ‘디도스 면제’라는 Cloudflare의 가장 강력한 무기를 벤치마킹해서라도 집 나간 유저들을 다시 불러들이려는 것이다.
  2. 미끼 상품 (Lock-in 효과)
    일단 CloudFront(CDN)를 무료로 쓰게 해서 AWS 생태계에 발을 들이게 만드는 전략이다. 쓰다 보면 편해지고, 나중에는 자연스럽게 S3(스토리지)나 EC2(서버) 같은 유료 서비스까지 쓰게 될 테니까. 일종의 ‘미래를 위한 투자’다.
  3. 보안 데이터 확보
    무료 사용자들은 전 세계에 흩뿌려진 ‘보안 센서’와 같다. 우리 서버로 들어오는 잡다한 공격 데이터들이 모여 AWS의 보안 AI를 똑똑하게 만든다. 결국 우리의 트래픽 데이터가 그들의 기술력을 높이는 자양분이 되는 셈이다.

우리는 기업들의 이런 고래 싸움 속에서 ‘디도스 과금 면제’라는 혜택만 체리피킹하면 된다.

결론: 속도와 보안의 타협점

이제 더 이상 속도가 느린 Cloudflare를 쓰거나, 요금 폭탄이 두려워 AWS를 피할 필요가 없다. AWS CloudFront 콘솔에서 요금제를 ‘Free Plan’으로 설정하면 된다.

이 세팅은 시놀로지, OMV, 오라클 프리티어 등 모든 플랫폼에 유효하다.

  1. 속도: 서울 리전 엣지를 통한 쾌적한 접속
  2. 보안: 실제 IP 은닉 및 디도스 과금 면제
  3. 비용: 월 $0 (기본 제공량 내)

안전하고 빠른 나만의 서버를 구축하고 싶다면, 지금 바로 AWS CloudFront의 설정을 점검해 보길 바란다.

관련 글