R2 に保存したデータの場所がどう決まるかと、バケット内オブジェクトの物理的な保存場所を制御できる入力について説明します。
新しいバケットを作成すると、データの保存場所はデフォルトで自動になります。現在このオプションは、呼び出し元の位置にもとづき、バケット作成リクエストにいちばん近い利用可能なリージョンを選びます。
Location Hints は、バケット作成時に任意で渡せるパラメーターです。データへ主にアクセスすると見込まれる地理的な場所を示します。
バケット作成リクエストの発信元とは別の場所から、バケット内データへのアクセスの大半が来ると見込まれる場合、Location Hints はよい選択になります。Location Hints はベストエフォートであり保証ではありません。定期的に更新するコンテンツをユーザーの近くへ置く、パフォーマンス最適化の手段としてだけ使ってください。
自分の位置にもとづき、いちばん近い利用可能なリージョンへ自動でバケットを作成するか、一覧から特定の場所を選べます。
-
Cloudflare ダッシュボードで R2 object storage ページを開きます。
Overview を開く ↗ -
Create bucket を選びます。
-
バケット名を入力します。
-
Location で、自動選択の場合は None のままにするか、一覧からリージョンを選びます。
-
Create bucket を選び、バケット作成を完了します。
S3 API の LocationConstraint パラメーターで Location Hint を設定できます。
await S3.send(
new CreateBucketCommand({
Bucket: "YOUR_BUCKET_NAME",
CreateBucketConfiguration: {
LocationConstraint: "WNAM",
},
}),
);ほかの S3 SDK の例は 例 を参照してください。
次のヒント場所をサポートしています。
| ヒント | ヒントの説明 |
|---|---|
| wnam | 北米西部 |
| enam | 北米東部 |
| weur | 西ヨーロッパ |
| eeur | 東ヨーロッパ |
| apac | アジア太平洋 |
| oc | オセアニア |
Location Hints が有効なのは、その名前のバケットを初めて作成したときだけです。同じ名前のバケットを削除して再作成しても、最初のバケットの場所が使われます。
管轄制限は、バケット内のオブジェクトが特定の管轄内に保存されることを保証します。
GDPR ↗ や FedRAMP ↗ などの地域規制を含め、データ所在地の要件を満たすためにデータを特定の管轄内で保存・処理する必要がある場合は、管轄制限を使います。
-
Cloudflare ダッシュボードで R2 object storage ページを開きます。
Overview を開く ↗ -
Create bucket を選びます。
-
バケット名を入力します。
-
Location で Specify jurisdiction を選び、一覧から管轄を選びます。
-
Create bucket を選び、バケット作成を完了します。
管轄に属する R2 バケットへ Workers からアクセスするには、Wrangler の設定ファイル の バインディング で、バケット名に加えて管轄も指定します。
{
"r2_buckets": [
{
"binding": "MY_BUCKET",
"bucket_name": "<YOUR_BUCKET_NAME>",
"jurisdiction": "<JURISDICTION>"
}
]
}[[r2_buckets]]
binding = "MY_BUCKET"
bucket_name = "<YOUR_BUCKET_NAME>"
jurisdiction = "<JURISDICTION>"はじめに関する詳細は Workers から R2 を使う を参照してください。
管轄が定義された R2 リソースを S3 API や既存の S3 互換 SDK で操作する場合は、S3 エンドポイントに 管轄 を指定する必要があります。
https://<ACCOUNT_ID>.<JURISDICTION>.r2.cloudflarestorage.com
サポート対象の S3 API 操作 では、管轄専用エンドポイントを使えます。管轄エンドポイントを使うと、その管轄外の R2 リソースにはアクセスできません。
次の例は、JavaScript 向けの @aws-sdk/client-s3 ↗ パッケージで、eu 管轄に R2 バケットを作成する方法です。
import { S3Client, CreateBucketCommand } from "@aws-sdk/client-s3";
const S3 = new S3Client({
endpoint: "https://<account_id>.eu.r2.cloudflarestorage.com",
credentials: {
accessKeyId: "<access_key_id>",
secretAccessKey: "<access_key_secret>",
},
region: "auto",
});
await S3.send(
new CreateBucketCommand({
Bucket: "YOUR_BUCKET_NAME",
}),
);ほかの S3 SDK の例は 例 を参照してください。
次の管轄をサポートしています。
| 管轄 | 管轄の説明 |
|---|---|
| eu | 欧州連合 |
| fedramp | FedRAMP |
| us | アメリカ合衆国 |
次のサービスは、管轄が割り当てられた R2 リソースと連携しません。
- Logpush。この制限の回避策として、S3 互換エンドポイントで Logpush ジョブを設定する と、任意の管轄の R2 バケットへログを保存できます。
R2 バケットを作成したあと、管轄は変更できません。