본문으로 건너뛰기
AICosmus

Where tech meets the everyday — AI, fintech, swimming, and cars.

AICosmus

Where tech meets the everyday — AI, fintech, swimming, and cars.

  • 홈
  • IT기술
    • RAG
    • GRPC
    • Kotlin
    • LLM
    • 금융 IT
    • 에이전트
    • 제로Trust
    • 자동화
  • 일상
    • 자동차
    • 경제/재테크
    • 생활정보
  • About
    • Contact
    • Terms of Service
    • Disclaimer
    • Privacy – Policy
  • 홈
  • IT기술
    • RAG
    • GRPC
    • Kotlin
    • LLM
    • 금융 IT
    • 에이전트
    • 제로Trust
    • 자동화
  • 일상
    • 자동차
    • 경제/재테크
    • 생활정보
  • About
    • Contact
    • Terms of Service
    • Disclaimer
    • Privacy – Policy
Cloudflare R2 오브젝트 스토리지 개념도
IT기술

[Cloudflare 완전 정복: 입문부터 2026 AI 에이전트까지] 8/16화: Cloudflare R2 스토리지 완전 가이드: S3 대체 0원 송신

By AICosmus
2026년 06월 06일 4 Min Read
2

이 글은 「Cloudflare 완전 정복」 시리즈 8회입니다. 지난 7화까지 WARP VPN과 DNS 필터링으로 개인 보안 스택을 완성했다면, 이번에는 홈랩 데이터를 클라우드에 안전하게 백업하고 미디어를 전 세계에 배포할 수 있는 S3 호환 오브젝트 저장소, Cloudflare R2를 다룹니다.

AWS S3 송신료의 함정, R2가 해결합니다

오브젝트 스토리지를 써본 분이라면 한 번쯤 청구서에 놀란 적이 있을 겁니다. AWS S3에 사진 100GB를 올려두고 블로그 트래픽이 몰리면, 저장 비용보다 송신(egress) 요금이 몇 배로 나오는 구조입니다. 1TB 다운로드 시 S3는 약 $90, Google Cloud Storage도 비슷합니다.

Cloudflare R2는 이 공식을 깹니다. 송신료(egress fee)가 영구적으로 0원입니다. 데이터를 얼마나 내려받든, 어느 리전에서 접근하든 추가 요금이 없습니다. S3 호환 API를 그대로 쓰기 때문에 기존 도구(rclone, boto3, AWS CLI)를 코드 한 줄 안 고치고 붙일 수 있습니다.

클라우드 스토리지 송신료 비교표 - Cloudflare R2

R2 무료 한도 — 개인 홈랩이라면 충분

R2의 무료 티어는 개인 사용자에게 상당히 넉넉합니다.

  • 스토리지: 10GB (매월 갱신 아님, 상시 유지)
  • Class A 작업(PUT·POST·LIST 등): 월 100만 회
  • Class B 작업(GET·HEAD 등): 월 1,000만 회
  • 송신(egress): 무제한 무료

Synology NAS의 사진 백업, 블로그 이미지 호스팅, 소규모 데이터셋 공유 정도라면 무료 한도 안에서 운영할 수 있습니다. 10GB를 초과해도 1GB당 월 $0.015로, 100GB를 써도 월 $1.35에 불과합니다.

실습: R2 버킷 생성부터 파일 업로드까지

1단계 — 대시보드에서 버킷 만들기

Cloudflare 대시보드 → R2 Object Storage → Create bucket을 클릭합니다. 버킷 이름은 DNS 호환 형식(소문자, 하이픈 허용)으로 짓습니다. 위치는 Automatic을 선택하면 접속자 위치에 따라 Cloudflare가 최적 리전을 배정합니다. 아시아 고정이 필요하면 Asia-Pacific (APAC)을 선택하세요.

2단계 — API 토큰 발급

R2 대시보드 → Manage R2 API Tokens → Create API token에서 해당 버킷에 대해 Object Read & Write 권한을 부여합니다. 생성 후 표시되는 Access Key ID와 Secret Access Key를 안전한 곳에 복사해 둡니다.

3단계 — rclone으로 NAS 백업 연결

Synology NAS에 SSH로 접속한 뒤 rclone을 설정합니다.

# Synology NAS SSH 세션에서 실행
# rclone이 없다면: curl https://rclone.org/install.sh | sudo bash

# R2 리모트 설정
rclone config create r2-backup s3 \
  provider=Cloudflare \
  access_key_id=YOUR_R2_ACCESS_KEY_ID \
  secret_access_key=YOUR_R2_SECRET_ACCESS_KEY \
  endpoint=https://YOUR_ACCOUNT_ID.r2.cloudflarestorage.com \
  acl=private

# 테스트: 버킷 목록 확인
rclone lsd r2-backup:

# NAS 사진 폴더를 R2 버킷으로 동기화
rclone sync /volume1/photo r2-backup:my-nas-backup/photo \
  --transfers=8 \
  --checkers=16 \
  --progress

YOUR_ACCOUNT_ID는 Cloudflare 대시보드 우측 사이드바의 Account ID 값입니다. rclone sync는 변경분만 전송하므로 매일 크론잡으로 돌리면 증분 백업이 완성됩니다.

4단계 — 크론잡으로 자동 백업 설정

# Synology NAS: DSM 제어판 → 작업 스케줄러 또는 직접 crontab
# 매일 새벽 3시 실행 예시
echo "0 3 * * * rclone sync /volume1/photo r2-backup:my-nas-backup/photo --transfers=8 --log-file=/var/log/r2-backup.log --log-level=NOTICE" | crontab -
NAS에서 R2로 자동 백업 구성도

커스텀 도메인으로 미디어 서빙하기

R2 버킷의 파일을 공개 URL로 서빙하려면 Public Access를 활성화합니다. R2 버킷 설정 → Settings → Public access에서 커스텀 도메인(예: cdn.example.com)을 연결하면, Cloudflare CDN 캐시를 자동으로 타게 됩니다.

  • 블로그 이미지: https://cdn.example.com/blog/2026/06/cover.webp
  • 다운로드 파일: https://cdn.example.com/releases/app-v2.zip
  • 데이터셋 공유: https://cdn.example.com/datasets/korean-nlp-v3.parquet

5화에서 설정한 Cloudflare Tunnel과 조합하면, NAS에서 R2로 백업한 뒤 커스텀 도메인으로 전 세계에 서빙하는 구조가 완성됩니다. 송신료 걱정 없이요.

Cloudflare R2의 S3 호환성 — 기존 코드 그대로 마이그레이션

R2는 S3 API와 호환되므로, Python boto3나 AWS CLI도 엔드포인트만 바꾸면 동작합니다.

# AWS CLI로 R2 사용 (프로필 설정)
aws configure --profile r2
# Access Key / Secret Key 입력 후:

# 파일 업로드
aws s3 cp ./backup.tar.gz s3://my-nas-backup/backup.tar.gz \
  --endpoint-url https://YOUR_ACCOUNT_ID.r2.cloudflarestorage.com \
  --profile r2

# 버킷 내 파일 목록
aws s3 ls s3://my-nas-backup/ \
  --endpoint-url https://YOUR_ACCOUNT_ID.r2.cloudflarestorage.com \
  --profile r2

Terraform, Pulumi 등 IaC 도구의 S3 프로바이더도 엔드포인트 오버라이드로 R2에 연결됩니다. 기존 S3 워크플로를 그대로 가져올 수 있다는 점이 R2의 가장 큰 실용적 장점입니다.

S3에서 R2로 마이그레이션 흐름

실전 활용 시나리오 3가지

시나리오 1: NAS 3-2-1 백업의 오프사이트 사본

NAS 로컬(1) + 외장 HDD(2) + R2 클라우드(3)로 3-2-1 백업 룰을 완성합니다. rclone의 --backup-dir 옵션을 쓰면 삭제·덮어쓰기된 파일도 별도 폴더에 보존됩니다.

시나리오 2: 블로그·포트폴리오 이미지 CDN

4화에서 배포한 Cloudflare Pages 사이트의 이미지를 R2에 호스팅하면, 빌드 크기를 줄이면서 CDN 캐시 히트율을 극대화할 수 있습니다.

시나리오 3: AI 학습 데이터셋 배포

수 GB짜리 데이터셋을 R2에 올리고 공개 URL로 공유하면 다운로드하는 사람이 아무리 많아도 송신료가 0원입니다. Hugging Face datasets 라이브러리도 HTTP URL을 직접 지원하므로 궁합이 좋습니다.

월 비용 명세표

항목 무료 한도 초과 시 단가 개인 홈랩 예상(50GB 기준)
스토리지 10GB $0.015/GB·월 $0.60/월
Class A 작업 (PUT 등) 100만 회/월 $4.50/100만 회 $0 (한도 이내)
Class B 작업 (GET 등) 1,000만 회/월 $0.36/100만 회 $0 (한도 이내)
송신(egress) 무제한 무료 $0 $0
월 합계 (50GB) 약 $0.60 (~₩830)

비교: AWS S3 같은 조건에서 송신 100GB 발생 시 약 $10 이상. R2는 송신이 아무리 커도 스토리지 비용만 내면 됩니다.

주의할 점 몇 가지

  • 버전 관리: R2도 객체 버저닝을 지원하지만, 버전마다 스토리지를 소비하므로 수명 주기 규칙(Lifecycle Rules)으로 오래된 버전을 자동 삭제하세요.
  • 멀티파트 업로드: 100MB 이상 파일은 멀티파트 업로드를 권장합니다. rclone은 기본으로 처리하지만, 직접 API를 쓸 때는 파트 크기를 지정해야 합니다.
  • 공개 버킷 보안: Public Access를 켜면 URL을 아는 누구나 파일에 접근합니다. 민감 파일은 반드시 프라이빗으로 유지하고, 필요시 Workers로 인증 레이어를 추가하세요(9화에서 다룹니다).
  • 리전 선택: Automatic이 대부분 최적이지만, 데이터 주권(data residency) 요건이 있다면 특정 리전을 고정하세요.

정리 — 홈랩 스토리지의 마지막 퍼즐

5화 Tunnel로 NAS를 외부에 공개하고, 6화 Zero Trust로 접근을 통제하고, 7화 WARP로 이동 중에도 안전하게 연결했습니다. 이번 8화 R2로 데이터의 오프사이트 백업과 글로벌 서빙까지 갖추면서, Phase 2 「홈랩·자가호스팅」 편이 마무리됩니다.

R2의 진짜 힘은 다른 Cloudflare 서비스와 결합할 때 나옵니다. Workers에서 R2를 바인딩하면 서버리스 함수가 스토리지를 직접 읽고 쓸 수 있고, D1 데이터베이스와 조합하면 풀스택 앱이 완성됩니다.

다음 9화에서는 Phase 3의 포문을 열며, Cloudflare Workers — 서버 없이 코드를 전 세계 엣지에 배포하는 서버리스 컴퓨팅을 다룹니다. R2에 올린 파일을 Workers로 가공하는 실전 예제도 함께 준비하겠습니다.


📚 시리즈: Cloudflare 완전 정복: 입문부터 2026 AI 에이전트까지 (총 16화 중 8화)
◀ 이전 7화  (다음 차수는 아직 게시되지 않았습니다)

참고 자료

  • Cloudflare R2 공식 문서 — R2 버킷 생성, API 사용법, 요금 정책 등을 다루는 공식 개발자 문서
  • Wikipedia: Amazon S3 — R2가 호환하는 S3 API의 역사와 오브젝트 스토리지 개념 설명

Tags:

Cloudflare R2Cloudflare 완전 정복: 입문부터 2026 AI 에이전트까지-8화NAS 백업S3 대체연재:Cloudflare 완전 정복: 입문부터 2026 AI 에이전트까지오브젝트 스토리지클라우드 스토리지
작성자

AICosmus

Follow Me
다른 기사
베란다에서 노트북으로 영상 시청하는 여름 저녁 풍경
Previous

베란다·마당 와이파이 끊김? 야외 네트워크 확장 완벽 가이드

아랍의 봄 시위 광장의 군중
Next

[중동의 역사] 51/52화: 아랍의 봄: 중동을 뒤흔든 혁명의 도미노와 그 이후

2 댓글
  1. [Cloudflare 완전 정복: 입문부터 2026 AI 에이전트까지] 9/16화: Cloudflare Workers 서버리스 엣지 컴퓨팅 입문 가이드 - 일상의 소소함 댓글:
    2026년 06월 08일, 9:06 오전

    […] Cloudflare 완전 정복: 입문부터 2026 AI 에이전트까지 (총 16화 중 9화)◀ 이전 8화  (다음 차수는 아직 게시되지 않았습니다) 카테고리: IT기술 […]

    답글
  2. [Cloudflare 완전 정복: 입문부터 2026 AI 에이전트까지] 9/16화: Cloudflare Workers 서버리스 엣지 컴퓨팅 입문 가이드 - AICosmus 댓글:
    2026년 07월 24일, 10:36 오전

    […] Cloudflare 완전 정복: 입문부터 2026 AI 에이전트까지 (총 16화 중 9화)◀ 이전 8화  (다음 차수는 아직 게시되지 […]

    답글

답글 남기기 응답 취소

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

최신 글

  • [opencode 시즌 2 심화 — 나만의 도메인 특화 에이전트 만들기] 1/12화: opencode 에이전트 아키텍처 완전 해부 — 2026 Primary·Subagent 5계층 구조
  • Kotlin 코루틴 핵심 5가지 개념과 실전 활용법
  • [opencode 12일 집중 — 터미널 네이티브 AI 코딩 에이전트 완전 정복] 12/12화: opencode 로컬 모델 완전 가이드 2026 — Ollama·에어갭·규제 환경 도입 체크리스트
  • LLM 파인튜닝 실전 5단계 — 2026 LoRA 완벽 가이드
  • 금융 앱 생체인증 작동 원리, 지문·얼굴 보안 5단계 완전 해부

최신 댓글

  1. [온프레미스 AI Assistant 아키텍처 — Qwen3·Qwen3-VL 14일 설계] 9/14화: 온프레미스 RAG 파이프라인 — bge-m3·Qdrant 자체 호스팅 실전의 Dockerfile 최적화 실전 가이드 — 빌드·크기·보안 총정리 - AICosmus
  2. RAG 평가 프레임워크, 답변 품질을 수치로 측정하는 법의 RAG 리랭킹 가이드, 검색 결과 정확도 높이는 법 - AICosmus
  3. RAG 평가 프레임워크, 답변 품질을 수치로 측정하는 법의 RAG 리랭킹 가이드, 검색 결과 정확도 높이는 법 - AICosmus
  4. gRPC Interceptor 완벽 가이드: 인증부터 로깅까지의 gRPC 데드라인과 재시도 정책으로 장애 전파 차단하기 - AICosmus
  5. gRPC Interceptor 완벽 가이드: 인증부터 로깅까지의 gRPC 데드라인과 재시도 정책으로 장애 전파 차단하기 - AICosmus
  • About
  • Contact
  • Disclaimer
  • Privacy - Policy
  • Terms of Service
Copyright 2026 — AICosmus. All rights reserved. Blogsy WordPress Theme