← Cloudflare R2 / r2
Jak R2 funguje
Cloudflare R2 je S3 kompatibilní služba objektového úložiště bez poplatků za odchozí přenos dat, postavená na globální síti Cloudflare. Je silně konzistentní a navržený pro vysokou trvanlivost dat.
R2 je ideální pro ukládání a poskytování nestrukturovaných dat, k nimž je nutné často přistupovat přes internet, aniž by vznikaly poplatky za odchozí přenos dat. Skvěle se hodí pro úlohy jako poskytování webových zdrojů, trénování AI modelů nebo správa obsahu vytvářeného uživateli.
Architektura
Architektura R2 se skládá z několika komponent:
-
R2 Gateway: Vstupní bod pro všechny požadavky API, který zajišťuje ověřování a směrovací logiku. Tato služba je nasazena po celé globální síti Cloudflare prostřednictvím Cloudflare Workers.
-
Metadata Service: Distribuovaná vrstva postavená na Durable Objects sloužící k ukládání a správě metadat objektu (např. klíč objektu, kontrolní součet) za účelem zajištění silné konzistence objektu v celém úložném systému. Obsahuje vestavěnou vrstvu mezipaměti pro urychlení přístupu k metadatům.
-
Tiered Read Cache: Vrstva mezipaměti umístěná před Distributed Storage Infrastructure, která urychluje čtení objektů pomocí Cloudflare Tiered Cache k poskytování dat blíže klientovi.
-
Distributed Storage Infrastructure: Podkladová infrastruktura, která trvale ukládá zašifrovaná data objektů.
R2 podporuje několik klientských rozhraní, včetně Cloudflare Workers Binding, S3 kompatibilní API, a REST API která pohání Cloudflare Dashboard a Wrangler CLI. Všechny požadavky jsou směrovány přes R2 Gateway, která spolupracuje s Metadata Service a Distributed Storage Infrastructure při načítání dat objektů.
Zápis dat do R2
Když R2 obdrží požadavek na zápis (např. nahrání objektu), proběhne následující sekvence:
-
Zpracování požadavků: Požadavek přijímá R2 Gateway na okraji sítě, blízko uživatele, kde je ověřen.
-
Šifrování a směrování: Gateway osloví Metadata Service a získá šifrovací klíč a určuje, do kterého úložného clusteru se mají zašifrovaná data zapsat v rámci umístění nastavené pro bucket.
-
Zápis do úložiště: Zašifrovaná data se zapíšou a uloží do distribuované infrastruktury úložiště a replikují se v rámci regionu (např. ENAM) pro trvanlivost.
-
Potvrzení metadat: Nakonec Metadata Service potvrdí metadata objektu, čímž se stanou viditelnými při dalších čteních. Teprve po tomto potvrzení je
HTTP 200úspěšná odpověď odeslaná klientovi, což zabraňuje nepotvrzeným zápisům.
Čtení dat z R2
Když R2 obdrží požadavek na čtení (např. načtení objektu), proběhne následující sekvence:
-
Zpracování požadavků: Požadavek přijímá R2 Gateway na okraji sítě, blízko uživatele, kde je ověřen.
-
Vyhledání metadat: Gateway požádá Metadata Service o metadata objektu.
-
Čtení objektu: Gateway se pokusí načíst šifrovaný objekt z vrstvené vyrovnávací paměti pro čtení. Pokud není k dispozici, načte objekt z jednoho z distribuovaných datových center úložiště v rámci regionu, kde jsou data objektu uložena.
-
Odesílání klientovi: Objekt se dešifruje a odešle uživateli.
Výkon
Výkon vašich operací mohou ovlivnit faktory jako geografická poloha bucketu, původ požadavku a vzorce přístupu.
Chcete-li optimalizovat výkon nahrávání pro meziregionální požadavky, povolte Local Uploads na vašem bucketu.
Chcete-li optimalizovat výkon čtení, povolte Cloudflare Cache při použití vlastní doména. Když je cachování povoleno, čtecí požadavky mohou obejít R2 Gateway a být obslouženy přímo z edge cache Cloudflare, což snižuje latenci. Mějte na paměti, že cachovaná data nemusí ihned odrážet nejnovější verzi.