Dataflow リージョン エンドポイントでは、Dataflow ジョブに関するメタデータが保存 / 処理され、Dataflow ワーカーがデプロイ / 制御されます。
リージョン エンドポイントの名前は、Compute Engine リージョン名に基づく標準の規則に従います。たとえば、米国中部リージョンの名前は us-central1
です。
この機能は、Dataflow がサポートされているすべてのリージョンで使用できます。使用可能なロケーションを確認するには、Dataflow のロケーションをご覧ください。
リージョン エンドポイントの選択
Dataflow ジョブでのリージョン エンドポイントの指定は必須です。
セキュリティとコンプライアンス
プロジェクトのセキュリティとコンプライアンスのニーズに対応するために、Dataflow ジョブの処理を特定の地理的リージョンに制限する必要が生じることがあります。
データの局所性
ソース、シンク、ステージング / 一時ファイルがある場所と同じリージョンから Dataflow ジョブを実行すると、ネットワークのレイテンシおよびネットワーク転送のコストを最小限に抑えることができます。ジョブのリージョン外にあるソース、シンク、ステージング / 一時ファイルの場所を使用すると、データがリージョンを越えて送信される可能性があるのでご注意ください。
一般的な Dataflow ジョブソースに関する注意事項:
- Cloud Storage バケットをリージョン リソースまたはマルチリージョン リソースとして使用できます。Cloud Storage リージョン バケットまたは Cloud Storage マルチリージョン バケットをソースとして使用する場合、同じリージョンで読み取りオペレーションを行うことをおすすめします。
- Pub/Sub トピックはグローバル リソースであり、リージョンに関する考慮事項はありません。
復元力と地理的分離
通常の Dataflow オペレーションを、他の地理的リージョンで生じる可能性がある停止から分離するのが適切な場合があります。または、リージョン全体に及ぶ災害が発生した場合の事業継続のために、代替サイトを計画する必要が生じることもあります。
自動ゾーン プレースメント
デフォルトでは、リージョン エンドポイントはジョブの作成リクエストがあった時点の使用可能なゾーン容量に基づき、リージョン内で最適なゾーンを自動的に選択します。この自動ゾーン選択機能により、ジョブワーカーはジョブに最適なゾーンで実行できるようになります。
リージョン エンドポイントの指定
注: リージョン エンドポイントの構成には、Apache Beam SDK バージョン 2.0.0 以降が必要です。
ジョブのリージョン エンドポイントを指定するには、サポートされているいずれかのリージョン エンドポイントに --region
オプションを設定します。
また、Cloud Dataflow コマンドライン インターフェースでは、--region
オプションでリージョン エンドポイントを指定できます。
ワーカー リージョンまたはワーカーゾーンのオーバーライド
デフォルトでは、--region
パラメータを指定してジョブを送信すると、リージョン エンドポイントがそのリージョン内の最適なゾーンにワーカーを自動的に割り当てます。ただし、ワーカー インスタンスにリージョンまたは特定のゾーン(それぞれ --worker_region
または --worker_zone
を使用)を指定することもできます。
ワーカー ロケーションのオーバーライドが必要になるのは、次のような状況です。
ワーカーが、リージョン エンドポイントのないリージョンまたはゾーンにあり、そのリージョンまたはゾーンに近いリージョン エンドポイントを使用する場合。
Dataflow ジョブのデータ処理が厳密に特定のリージョンまたはゾーンで行われるようにする場合。
それ以外の場合は、ワーカーのロケーションをオーバーライドすることをおすすめしません。一般的なシナリオの表に、これらの状況に関する使用上の推奨事項を示します。
gcloud compute regions list
コマンドを実行して、ワーカーのデプロイに使用できるリージョンとゾーンのリストを表示できます。
一般的な使用方法
次の表に、一般的なシナリオの使用上の推奨事項を示します。
事例 | 推奨 |
---|---|
サポートされているリージョン エンドポイントを使用し、そのリージョン内にゾーンを設定しない。この場合、リージョン エンドポイントでは、使用可能な容量に基づき、最適なゾーンが自動的に選択されます。 | --region を使用してリージョン エンドポイントを指定します。これにより、Dataflow でジョブが管理されて、指定されたリージョン内のデータが処理されます。 |
リージョン エンドポイントを持つリージョンの特定のゾーンでワーカー処理を行う必要がある。 | --region と --worker_zone の両方を指定します。
|
リージョン エンドポイントを持たない特定のリージョンでワーカー処理を行う必要がある。 | --region と --worker_region の両方を指定します。
|
Dataflow Shuffle を使用する必要がある。 | --region を使用して、Dataflow Shuffle をサポートするリージョン エンドポイントを指定します。リージョン エンドポイントによっては、この機能をサポートしていないものもあります。サポートされているリージョンの一覧については、機能のドキュメントをご覧ください。 |