INTEGRITY Dokumentace

Sippy

Sippy je služba pro migraci dat, která umožňuje kopírovat data z jiných cloudových poskytovatelů do R2 v okamžiku, kdy jsou vyžádána, bez zbytečných poplatků za odchozí přenos dat, které jsou obvykle spojené s přesunem velkých objemů dat.

Poplatky za odchozí přenos specifické pro migraci se snižují tím, že využijete požadavky, které ve své aplikaci provádíte tak jako tak a za které byste odchozí přenos platili i bez migrace, a objekty se přitom zároveň zkopírují do R2.

Jak to funguje

Pokud je Sippy povoleno pro bucket R2, implementuje následující migrační strategii napříč Workers, S3 API, a veřejné buckety:

Kdy je Sippy užitečné?

Použití Sippy jako součásti migrační strategie se vyplatí, pokud:

Pokud chcete migrovat veškerá data od stávajícího poskytovatele cloudu do R2 najednou, doporučujeme použít Super Slurper.

Začínáme se Sippy

Než začnete, budete potřebovat:

Povolení Sippy přes Dashboard

  1. V dashboardu Cloudflare přejděte na Objektové úložiště R2 stránce.

    Přejděte na Přehled ↗
  2. Vyberte bucket, do kterého chcete migrovat objekty.

  3. Přepněte na Nastavení kartě, poté přejděte dolů k Migrace na vyžádání kartě.

  4. Vyberte Povolit a zadejte údaje o bucketu, ze kterého chcete objekty migrovat. Zadané přihlašovací údaje musí mít oprávnění ke čtení z tohoto bucketu. Cloudflare také doporučuje omezit rozsah přihlašovacích údajů tak, aby umožňovaly pouze čtení z tohoto bucketu.

  5. Vyberte Povolit.

Povolení Sippy přes Wrangler

Nastavení Wrangler

Nejprve nainstalujte npm. Poté nainstalujte Wrangler, CLI vývojářské platformy.

Povolte Sippy pro váš bucket R2

Přihlaste se do Wrangleru pomocí wrangler login příkaz. Poté spusťte r2 bucket sippy enable příkaz:

npx wrangler r2 bucket sippy enable <BUCKET_NAME>

Vyzve vás k výběru mezi podporovanými poskytovateli úložiště objektů a provede vás nastavením.

Povolení Sippy přes API

Informace o povinných parametrech a příklady zapnutí Sippy naleznete v Dokumentace API. Informace o tom, jak začít pracovat s rozhraním Cloudflare API, najdete v Volání API.

Zobrazit metriky migrace

Po povolení Sippy zpřístupňuje metriky, které vám pomohou sledovat průběh probíhajících migrací.

Metrika Popis
Požadavky obsloužené službou Sippy Procento celkových požadavků obsloužených službou R2 za dané období. Vyšší procento znamená, že je třeba méně požadavků směřovat na zdrojový bucket.
Data migrovaná pomocí Sippy Množství dat zkopírovaných ze zdrojového bucketu do R2 za dané časové období. Uvádí se v bajtech.

Chcete-li zobrazit aktuální a historické metriky:

  1. V dashboardu Cloudflare přejděte na Objektové úložiště R2 stránce.

    Přejděte na Přehled ↗
  2. Vyberte svůj bucket.

  3. Vyberte Metriky kartě.

Volitelně můžete vybrat časové okno pro dotaz. Výchozí hodnota je posledních 24 hodin.

Vypnutí Sippy pro bucket R2

Dashboard

  1. V dashboardu Cloudflare přejděte na Objektové úložiště R2 stránce.

    Přejděte na Přehled ↗
  2. Vyberte bucket, pro který chcete vypnout Sippy.

  3. Přepněte na Nastavení kartě a přejděte dolů k Migrace na vyžádání kartě.

  4. Stiskněte Zakázat.

Wrangler

Chcete-li deaktivovat Sippy, spusťte r2 bucket sippy disable příkaz:

npx wrangler r2 bucket sippy disable <BUCKET_NAME>

API

Informace o povinných parametrech a příklady vypnutí Sippy naleznete v Dokumentace API.

Podporovaní poskytovatelé cloudového úložiště

Cloudflare v současné době podporuje kopírování dat do R2 z těchto poskytovatelů cloudového objektového úložiště:

Interakce s R2 API

Když je Sippy povoleno, mění chování určitých akcí ve vašem bucketu R2 napříč Workers, S3 API, a veřejné buckety.

Akce Nové chování
GetObject Volání GetObject se nejprve pokusí načíst objekt z vašeho R2 bucketu. Pokud objekt neexistuje, poskytne se ze zdrojového úložného bucketu a zároveň se nahraje do požadovaného R2 bucketu.

Další aspekty:
  • Úpravy objektů ve zdrojovém bucketu se po počáteční kopii v R2 neprojeví. Jakmile je objekt uložen v R2, znovu se nenačítá ani neaktualizuje.
  • Pouze metadata definovaná uživatelem, která mají předponu x-amz-meta- v odpovědi HTTP bude migrováno. Zbývající metadata budou vynechána.
  • U větších objektů (nad 199 MiB) může být k úplnému zkopírování objektu do R2 zapotřebí více požadavků GET.
  • Pokud na objekt, který ještě nebyl plně zkopírován do R2, přijde více současných požadavků GET, může Sippy k obsloužení těchto požadavků objekt ze zdrojového úložného bucketu načíst i vícekrát.
HeadObject Chová se podobně jako GetObject, ale načítá pouze metadata objektu. Objekty nekopíruje do požadovaného bucketu R2.
PutObject Chování se nemění. Volání PutObject přidá objekty do požadovaného bucketu R2.
DeleteObject Chování se nemění. Volání DeleteObject odstraní objekty v požadovaném bucketu R2.

Další aspekty:
  • Pokud se mazání objektů v R2 neprovede zároveň i ve zdrojovém úložném bucketu, následné požadavky GetObject způsobí, že objekty budou načteny ze zdrojového bucketu a zkopírovány do R2.

Akce, které nejsou uvedeny výše, nemění chování. Další informace najdete v Referenční dokumentace Workers API nebo Kompatibilita s S3 API.

Vytváření přihlašovacích údajů pro poskytovatele úložiště

Amazon S3

Aby mohl Sippy kopírovat objekty z Amazon S3, potřebuje přístupová oprávnění k vašemu bucketu. Můžete použít libovolné přihlašovací údaje uživatele AWS Identity and Access Management (IAM) se správnými oprávněními, Cloudflare ale doporučuje vytvořit uživatele s úzkou sadou oprávnění.

Chcete-li vytvořit přihlašovací údaje se správnými oprávněními:

  1. Přihlaste se ke svému účtu AWS IAM.
  2. Vytvořte zásadu v následujícím formátu a nahraďte <BUCKET_NAME> s bucketem, ke kterému chcete udělit přístup:
    {
    	"Version": "2012-10-17",
    	"Statement": [
    		{
    			"Effect": "Allow",
    			"Action": ["s3:ListBucket*", "s3:GetObject*"],
    			"Resource": [
    				"arn:aws:s3:::<BUCKET_NAME>",
    				"arn:aws:s3:::<BUCKET_NAME>/*"
    			]
    		}
    	]
    }
  3. Vytvořte nového uživatele a připojte k němu vytvořenou zásadu.

Nyní můžete při aktivaci Sippy použít Access Key ID i Secret Access Key.

Google Cloud Storage

Aby mohl Sippy kopírovat objekty z Google Cloud Storage (GCS), potřebuje přístupová oprávnění k vašemu bucketu. Cloudflare doporučuje použít předdefinovanou Storage Object Viewer role.

Chcete-li vytvořit přihlašovací údaje se správnými oprávněními:

  1. Přihlaste se do konzole Google Cloud.
  2. Přejděte na IAM & Admin > Servisní účty.
  3. Vytvořte účet služby s předdefinovanou Storage Object Viewer role.
  4. Přejděte na Klíče kartě účtu služby, který jste vytvořili.
  5. Vyberte Add Key > Vytvoření nového klíče a stáhněte soubor JSON klíče.

Nyní můžete tento soubor s JSON klíčem použít při aktivaci Sippy přes Wrangler nebo API.

Azure Blob Storage

Aby mohl Sippy kopírovat objekty z Azure Blob Storage, potřebuje název vašeho účtu Azure Storage, kontejner, ze kterého se má kopírovat, a buď account key, nebo token sdíleného přístupového podpisu (SAS). Zadejte přesně jeden z těchto dvou typů přihlašovacích údajů. Sippy potřebuje oprávnění ke čtení a výpisu obsahu kontejneru.

Chcete-li použít account key:

  1. Přihlaste se do Azure portálu a přejděte na svůj storage account.
  2. V části Zabezpečení a síť, vyberte Přístupové klíče.
  3. Zkopírujte název účtu úložiště a jeden z uvedených klíčů.

Chcete-li místo toho použít token SAS, Cloudflare doporučuje omezit jeho rozsah pouze na kontejner, který migrujete:

  1. Přihlaste se do Azure portálu a přejděte na svůj storage account.
  2. V části Ukládání dat, vyberte Containers, poté otevřete kontejner, ze kterého chcete migrovat.
  3. Vyberte Sdílené přístupové tokeny, udělte Čtení a Výpis oprávnění a poté vyberte Generování tokenu SAS a URL adresy.
  4. Zkopírujte vygenerovaný SAS token.

Nyní můžete při aktivaci Sippy použít název účtu, název kontejneru a buď klíč účtu, nebo SAS token.

Úložiště kompatibilní s S3

Aby mohl Sippy kopírovat objekty od poskytovatele úložiště kompatibilního s S3, potřebuje URL adresu koncového bodu S3 API pro váš bucket spolu s Access Key ID a Secret Access Key, které z něj mohou číst. Cloudflare doporučuje omezit tyto přihlašovací údaje pouze na čtení z bucketu, který migrujete.

V dokumentaci vašeho poskytovatele úložiště najdete koncový bod S3 API pro váš bucket a informace o vytvoření přístupových údajů pouze pro čtení.

Nyní můžete při aktivaci Sippy použít URL bucketu, Access Key ID a Secret Access Key.

Omezení

ETags

Generování ETagů v R2 je při běžném provozu kompatibilní s S3, avšak při migraci objektu pomocí Sippy není zaručeno, že si budou ETagy odpovídat. Sippy samostatně rozhoduje o operacích, které při migraci objektů použije, aby optimalizoval výkon a využití sítě. Objekt může migrovat po částech, což ovlivňuje Výpočet ETag.

Pokud byl například objekt o velikosti 320 MiB do S3 původně nahrán pomocí jediného PutObject operace může být migrována do R2 prostřednictvím vícedílných operací. V takovém případě se ETag objektu v R2 nebude shodovat s ETag v S3. Stejně tak objekt, který byl původně nahrán do S3 pomocí vícedílných operací, může mít odlišný ETag v R2, pokud se velikosti částí, které Sippy zvolí pro migraci, liší od velikostí částí, se kterými byl tento objekt původně nahrán.

Spoléhat se na shodu ETags před migrací a po ní se proto nedoporučuje.