D1 に保存したデータの所在地がどう決まるか、データベースがどこで稼働するか、必要に応じてその場所をどう最適化するかを説明します。
デフォルトでは、D1 はデータベース作成リクエストを発行した場所の近くに、プライマリデータベースインスタンスを自動で作成します。多くの場合、これで D1 が最適な所在地を代わりに選びます。
管轄(jurisdiction)は、データ所在地の規制(GDPR ↗ や FedRAMP ↗ など)への対応を助けるために、特定の地域内でのみ稼働し、データを保存する D1 データベースを作成するために使います。
Workers は、管轄に制約されたデータベースへ、世界中のどこからでもアクセスできます。管轄の制約が制御するのは、データベース自体の稼働場所とデータの永続化場所だけです。Cloudflare がリクエストに応答するリージョンを制御するには、Regional Services の利用を検討してください。
| パラメーター | 所在地 |
|---|---|
| eu | 欧州連合 |
| fedramp | FedRAMP 準拠のデータセンター |
-
Cloudflare ダッシュボードで D1 SQL Database ページを開きます。
D1 SQL database を開く ↗ -
Create Database を選択します。
-
Data location で Specify jurisdiction を選択し、リストから管轄を選びます。
-
Create を選択してデータベースを作成します。
npx wrangler@latest d1 create db-with-jurisdiction --jurisdiction=eucurl -X POST "https://api.cloudflare.com/client/v4/accounts/<account_id>/d1/database" \
-H "Authorization: Bearer $TOKENn" \
-H "Content-Type: application/json" \
--data '{"name": "db-with-jurisdiction", "jurisdiction": "eu" }'ロケーションヒントは、プライマリデータベースインスタンスの希望する地理的な場所を示す、任意のパラメーターです。
特定のデータベースへの書き込みの大半が、データベースを作成している場所と異なる場合は、ロケーションヒントを明示するとよいことがあります。ロケーションヒントが役立つ例は次のとおりです。
- 分散したチームで作業している。
- 特定の地域のユーザー向けにデータベースを作成している。
- 継続的デプロイ(CD)や Infrastructure as Code(IaC)で、データベースをプログラムから作成している。
次の場合に、D1 データベース作成時にロケーションヒントを指定します。
wrangler d1でデータベースを作成する。- Cloudflare ダッシュボード ↗ でデータベースを作成する。
新しいデータベース作成時にロケーションヒントを指定するには、有効なロケーションヒント付きで --location フラグを渡します。
wrangler d1 create new-database --location=weurダッシュボードでデータベース作成時にロケーションヒントを指定する手順は次のとおりです。
-
Cloudflare ダッシュボードで D1 SQL Database ページを開きます。
D1 SQL database を開く ↗ -
Create database を選択します。
-
データベース名と、任意の Location を指定します。
-
Create を選択してデータベースを作成します。
D1 は次のロケーションヒントに対応しています。
| ヒント | 説明 |
|---|---|
| wnam | 北米西部 |
| enam | 北米東部 |
| weur | 西ヨーロッパ |
| eeur | 東ヨーロッパ |
| apac | アジア太平洋 |
| oc | オセアニア |
読み取りレプリケーションを有効にすると、D1 はプライマリデータベースインスタンスの読み取り専用コピーを世界中に作成して配布します。プライマリから遠いユーザーのクエリレイテンシを下げられます。
D1 の読み取りレプリケーションを使うと、プライマリデータベースインスタンスがあるリージョンを含め、利用できるすべてのリージョン に読み取りレプリカが自動で作成されます。
管轄を設定している場合、読み取りレプリカはデータベース作成時に設定した管轄内にのみ作成されます。
詳細は D1 の読み取りレプリケーション を参照してください。