Cloudflare R2 스토리지를 출시하게 돼 기쁘게 생각합니다! Cloudflare는 개발자들이 비구조화된 대용량 데이터를 저장할 수 있도록 지원함으로써 Cloudflare로 처리할 수 있는 일의 범위를 확장하는 동시에 일반적인 클라우드 스토리지 서비스와 관련한 송신 대역폭 수수료를 완전히 없앴습니다.
Cloudflare의 R2 Storage는 S3 API 호환성을 완벽히 지원하기 때문에 기존의 도구 및 응용 프로그램이 구축된 상태로 호환해 작동할 수 있게 합니다.
R2의 세부 사항을 살펴보겠습니다.
R2은 "Really Requestable”을 뜻합니다.
블로브 스토리지로도 불리는 Object Storage는 비구조화된 임의의 대용량 파일을 저장합니다. 개체 스토리지는 미디어 파일, 로그 파일, 응용 프로그램별 메타데이타를 비롯해 어떤 것이든 저장하는 일에 적합하며 이 데이터들은 모두 대기 시간이 일정한 가운데 불러오기가 가능하고 내구성이 뛰어나며 용량도 무제한입니다.
Object Storage용으로 가장 널리 알려져 있고 R2로 구현되는 API는 Amazon의 S3(Simple Storage Service)입니다. 2006년 S3가 출시됐을 때 클라우드 스토리지 서비스는 개발자들에게 구세주 같은 선물이었습니다. 비록 하루아침에 일어난 일은 아니지만 개발자들은 지난 15년 동안 무제한의 저장 공간을 제공한다는 클라우드 스토리지를 적극적으로 도입해왔습니다.
클라우드 스토리지는 혁신을 불러왔지만 사실 데이터를 다시 추출하는 과정에서 나타난 문제도 있었습니다. 시간이 흐르면서 기업들은 막대한 양의 데이터를 클라우드 공급자 네트워크에 축적하게 됐습니다. 클라우드 스토리지에서 데이터를 추출하는 과정에서 고객에 전혀 보탬이 되지 않는 어마어마한 규모의 데이터 송신 수수료라는 벽에 부딪쳐야 했습니다. 개발자들은 이러한 비용에 익숙해질 수밖에 없었습니다.
R2의 등장
전통적인 개체 스토리지를 쓰는 경우에는 대역폭, 스토리지 용량, 스토리지 운영 등 세 가지 서비스에 대한 수수료를 개발자가 부담해야 했습니다.
R2는 Cloudflare가 속해 있는 Bandwidth Alliance의 정신에 기반을 둬 구축된 서비스로 고객의 신청 속도와 상관없이 저장된 개체에 부과하는 송신 수수료가 전혀 없습니다. 개체 스토리지를 이용하는 개발자 입장에서 송신 대역폭 비용은 가장 큰 부담인 경우가 많고 예측하기도 가장 어렵습니다. 이를 없앤 것이 클라우드에 저장된 데이터에 대한 개방형 접근 방식의 개가입니다.
그렇다고 대역폭 비용을 다른 데로 전가하는 것도 아닙니다. Cloudflare R2는 저장된 데이터 1GB당 월 $0.015라는 가격에 제공되는데 이는 기존의 주요 공급자들에 비해 현저하게 낮은 수준입니다.
개체에 빈번히 액세스하지 않는 경우에는 공급자들 입장에서 지원 부담이 적음에도 여전히 동일한 수준의 작업 건수당 비용을 부과하는 공급자들이 있습니다. Cloudflare는 초당 1건의 요청을 하는 개발자에게 초당 수천 건의 요청을 하는 기업과 동일한 수준의 비용을 부과하거나 대량 구매를 전제로 협의된 볼륨 할인을 감안할 때 더 비싼 비용을 부과하는 통상적인 관행은 불공정하다는 입장입니다.
반대로 생각해 보면 액세스가 빈번하지 않은 경우에 맞춰 설계된 공급자는 사용량이 급증하면 그에 맞춰 용량을 늘리지 못하는 것이 일반적입니다.
R2는 기준량 이하(현재는 초당 한 자릿수의 요청 건수로 예정)로 스토리지 작업 빈도가 높지 않은 경우에는 과금을 전혀 하지 않을 것입니다. 이 구간을 넘는 경우에도 R2는 주요 공급자에 비해 현저히 낮은 작업당 비용을 부과할 계획입니다. Cloudflare의 개체 스토리지 서비스는 액세스 빈도가 낮은 경우에도 매우 저렴한 가격에 충분한 지원을 할뿐 아니라 대용량을 지원하는 기존의 주요 업체보다도 저렴하게 제공될 예정입니다.
가격이 저렴하다고 확장성이 떨어지는 것은 아닙니다. R2는 보이지 않는 영역에서 데이터의 계층화를 자동으로 지능형으로 관리함으로써 피크 부하가 걸려도 제 성능을 유지하면서도 빈번한 요청이 없는 개체에 대해서는 낮은 비용만 부과합니다. Cloudflare는 복잡하기만 한 수작업 계층화 정책을 폐기하는 대신에 개발자들이 그동안 개체 스토리지 서비스에 대해 희망해왔던대로 최대한 적은 비용에 무제한 확장성을 제공합니다.
R2는 "Repositioning Records"를 뜻합니다.
송신 수수료가 없다는 것은 개체를 쉽게 추출할 수 있다는 뜻인데 데이터를 넣을 때는 어떨까요? 클라우드 공급자가 모두 S3 API를 완전히 지원한다 해도 그들 사이의 데이터 마이그레이션 과정에서는 오류가 발생하기 쉽고 비용도 많이 듭니다.
더 쉽게 이용할 수 있도록, Cloudflare는 도구 변경을 요구하지 않으면서 S3 호환 클라우드 스토리지 서비스로부터의 마이그레이션 서비스를 제공합니다. 마이그레이터는 요청에 따라 객체를 R2로 점진적으로 복사하므로, 수동으로 객체를 업로드하는 수고가 줄어듭니다. 이러한 멀티 클라우드 아키텍처를 통해, 객체가 마이그레이션되는 대로 R2에서 이용할 수 있으므로 멀티 클라우드의 이점을 누리면서도 비용을 절감합니다.
R2에 대한 Cloudflare의 비전에는 개체 요청이 빈번한 위치로 개체를 자동으로 복제해주는 다지역 스토리지 개념이 들어 있습니다. Durable Objects의 경우와 마찬가지로 저희는 개발자들이 데이터 주권과 관련한 복잡한 요건을 충족할 수 있도록 하기 위해 단순한 API를 통해 관할권 제한을 도입하는 방안을 계획하고 있습니다.
R2는 “Ridiculously Reliable”을 뜻합니다.
Object Storage의 핵심은 무엇보다 안정성입니다. Cloudflare는 데이터의 내구성과 복원성에 초점을 두고 R2를 설계했습니다. R2의 연간 내구성은 99.999999999%(9가 무려 11개) 수준으로 이는 데이터 손실 가능성이 그만큼 적다는 뜻입니다. 즉 R2 사용자가 백만 개의 개체를 R2에 저장하는 경우 10만 년마다 하나 정도를 손실하는 정도라는 의미이며 이는 다른 주요 공급자들이 제공하는 내구성과 동일한 수준입니다. R2는 가용성을 높이기 위해 개체를 여러 번 복제하므로 지역적인 장애가 발생해도 문제가 없습니다.
R2는 안정성을 확보하기 위해 여러 지역에 걸쳐 중복적으로 설계돼 있습니다. Cloudflare는 앞에서 설명한 대로 자동화된 글로벌 배포를 시작으로 데이터를 지역적으로 저장해야 하는 경우를 위해 지역별 제어를 할 수 있는 기능을 다시 추가할 계획입니다.
R2는 “Radically Reprogrammable”을 뜻합니다.
R2는 Cloudflare Workers 서버리스 런타임과 완전히 통합돼 운영됩니다. 그렇기 때문에 Workers를 특정 버킷에 한정시킴으로써 개체를 스토리지 버킷에 쓰거나 읽어들일 때 역동적으로 변형하는 것이 가능합니다. Workers와 R2가 긴밀히 통합돼 있기 때문에 데이터 파이프라인을 구축하고 개체를 조작하는 일이 놀라울 정도로 쉽게 가능해집니다.
Cloudflare R2는 Cloudflare의 다른 제품과 손쉽게 통합운영될 수 있도록 설계됐습니다. 몇 가지 예를 들면 Cloudflare R2를 이용하면 Durable Objects를 백업 대상으로 구성하는 것이 가능해지며 R2와 Cloudflare 캐시를 자동으로 통합시켜 자주 변경되지 않는 개체의 캐시 수명을 크게 늘리는 것도 가능해집니다.
Cloudflare R2로 구축할 수 있는 것
장기 스토리지를 통해 처리할 수 있는 일은 다양한데, 특히 Workers 컴퓨팅 플랫폼을 바로 옆에서 액세스할 수 있어 더욱 다양합니다.
예를 들어 다수의 IoT 기기로부터 데이터를 스트리밍하는 작업도 R2에서는 매우 간편해집니다. Workers에서 데이터를 변환하고 조작하고 나면 R2 대량의 센서 데이터를 받아들여 큰 비용을 들이지 않고 저장합니다. 송신 수수료가 없으므로 필요에 따라 대량의 데이터를 다수의 데이터베이스 또는 분석 솔루션에 마이그레이션하는 것이 수월해질뿐 아니라 스토리지 비용 역시 대폭 줄어들게 됩니다. 또한 R2는 외부로 나가는 데이터에 대해 Workers를 실행할 수 있으므로 데이터 파이프라인 자체도 더욱 탄력성을 띄게 됩니다.
R2는 CDN 자산과 대용량 미디어 파일을 관리하는데도 유용합니다. 대용량 파일의 경우 R2를 이용하면 캐시 수명이 현저하게 늘어나면서도 송신 비용을 크게 아낄 수 있습니다. 콘텐츠가 Cache API 및 Workers와 결합될 경우에는 동적으로 캐싱을 하는 것이 가능해져 전 세계적으로 짧은 대기 시간으로 액세스할 수 있습니다.
무엇보다 R2는 송신 대역폭 비용이 부과되지 않으므로 빈번히 액세스하는 콘텐츠를 저장하는 용도로 가장 알맞은 수단입니다. R2는 뛰어난 확장성으로 과중한 요청 부하를 처리하는 방식이기 때문에 개체를 동적으로 계층화해 가장 낮은 비용으로 최고의 성능을 발휘하게 합니다. Cloudflare는 이 같은 동적 계층화를 통해 사용자 구성 과정을 거치지 않고 가장 저렴한 비용으로 피크 성능을 지원합니다.
Cloudflare R2에 대한 액세스
R2는 현재 개발 단계 있으며 여기에서 가입 신청을 하고 대기 명단에 이름을 올릴 수 있습니다. Cloudflare는 초기 사용자가 될 많은 분들과 함께 이 제품을 개선하고 테스트할 수 있게 돼 기쁜 마음입니다. 앞으로 오픈 베타 버전이 발표되고 나면 모든 사용자가 서비스 신청을 할 수 있게 될 예정입니다.
Cloudflare는 이 제품의 개발을 지속적으로 진행하고 오픈 베타까지 발표하는 시점에 이르게 된 것을 기쁘게 생각하며 Cloudflare의 경쟁력에 기반한 데이터 스토리지의 세계를 선보이기 위한 커다란 비전을 품고 있습니다. 첨단의 미래를 여는 일에 함께 하고 싶은 분산 시스템 엔지니어라면 누구든 환영합니다!