10 Oracle Shardingによるデータ主権の実現
クラウド・コンピューティングの普及に伴い、特にデータとそのプライバシの保護に関する業界標準に関する関心が高まっています。今日、ほとんどの組織は、データがどこに保存され、誰がデータにアクセスできるかを把握することを必要としています。これにより、データ・レジデンシの管理が重大な関心事項になり、データを特定の地理的な場所に格納することが要求されるようになりました。
オンプレミスであれクラウドであれ、市民のデータをより厳格に保護および管理するために、すでに120か国以上がデータ保護に関するなんらかの国際プライバシ法に関与しています。
データ主権の概要
データ主権とは、一般的に、データが作成された地域に固有の規制によってデータが管理されることを指します。これらのタイプの規制では、データの保存場所、データへのアクセス方法、データの処理方法およびデータのライフサイクルが指定されることがあります。
国境やパブリック・クラウド・リージョンをまたぐデータの急増に伴い、100か国以上でデータの保存場所と転送方法に関する規制が可決されました。特に、個人を特定できる情報(PII)は、それが収集される国の法律およびガバナンス構造の対象となることが増えています。多くの場合、他の国へのデータ転送は、その国が同様のレベルのデータ保護を提供しているかどうか、およびその国が科学捜査で協力するかどうかに基づいて制限または許可されます。
データ主権の要件は地域の規制に基づくため、アプリケーション・アーキテクチャは様々なものになる可能性のあるます。そのいくつかは次のとおりです。
-
データを特定の地理的な場所で物理的に保存する必要があります。たとえば、特定の国または複数の国で構成される地域の境界内です。データが遠隔地に保存されていないかぎり、データにリモートでアクセスして処理することは問題ありません。技術的な観点からは、これは、永続データを物理的に格納するデータベース、オブジェクト・ストア、メッセージング・ストアなどのデータ・ストアが特定の地理的な場所にある必要があることを意味します。ただし、データを処理するためのビジネス・ロジックを持つアプリケーション・ランタイムは、地理的な場所の外に配置できます。このようなアプリケーション・パーツの例には、アプリケーション・サーバー、モバイル・アプリケーション、APIゲートウェイ、ワークフローなどがあります。
-
データを特定の地理的な場所で物理的に保存および処理する必要があります。この場合、データの保存と処理は、定義された地理的な場所内で行う必要があります。
Oracle Shardingを使用してデータ主権を実装するメリット
Oracle Shardingはデータ主権の要件を満たし、低レイテンシと高可用性を必要とするアプリケーションをサポートします。
-
シャーディングにより、データの様々な部分を様々な国や地域に配置できるため、データを特定の管轄区域に配置する必要がある規制要件を満たします。
-
また、特定のデータを利用者の近くに保存することもサポートしています。Oracle Shardingは、優れたランタイム・パフォーマンス、柔軟なスケーリング、ライフサイクル管理により、シャード・データベースのライフサイクル全体(デプロイメント、スキーマ作成、データ依存ルーティング)を自動化します。
-
リレーショナル・スキーマ、SQL、およびその他のプログラム・インタフェース、複雑なデータ型のサポート、オンライン・スキーマの変更、マルチコア・スケーラビリティ、高度なセキュリティ、圧縮、高可用性、ACIDプロパティ、読取り一貫性、JSONを使用した開発者の俊敏性などを含むエンタープライズRDBMSの利点も提供します。
Oracle Shardingによるデータ主権の実装
Oracle Shardingは、様々なコンピュータ、オンプレミスまたはクラウドの多数のデータベース(シャード)にデータ・セットのセグメントを分散します。これらのシャードは、世界中の複数のリージョンにデプロイできます。これにより、Oracle Shardingは、データ・レジデンシを考慮してグローバルに分散したデータベースを作成できます。
特定のデータベース内のすべてのシャードは、単一の論理データベースとしてアプリケーションに提供されます。アプリケーションは、実行する問合せに基づいて適切なシャードにシームレスに接続されます。たとえば、米国にデプロイされたアプリケーション・インスタンスがヨーロッパに存在するデータを必要とする場合は、特別な処理の必要なくアプリケーション・リクエストがEUデータ・センターにシームレスにルーティングされます。
また、Real Application Security (RAS)やOracle Database VaultなどのOracle Databaseのセキュリティ機能を使用して、リージョン内でもデータ・アクセスをさらに制限できます。たとえば、すべてのEU諸国ではなく、一部の国からのデータのみがEUリージョンの管理者に表示されるようにさらに制限できます。データ主権リージョン内では、レプリケーションにOracle Data GuardおよびOracle GoldenGateを使用することで、データを複数のデータ・センターにレプリケートできます。
Oracle Sharding管理インタフェースにより、グローバル・メタデータを制御し、物理データベース(レプリカ)、それに含まれるデータ、レプリケーション・トポロジなどを表示できます。Oracle Shardingは、ノードが追加または削除されたときにデータの再分散を処理します。
様々なリージョンからデータを実際にコピーすることなく、世界中のレポートにアクセスできます。シャーディングでは、どのリージョンからもデータをコピーせずにマルチシャード・レポートを実行できます。Oracle Shardingは、データが存在するノードに問合せをプッシュします。
Oracle Shardingは、次の側面に焦点を当てた包括的なデータ主権ソリューションを提供します。
-
データ・レジデンシ: データを複数のシャードに分散でき、地理的に異なる場所にデプロイできます。
-
データ処理: アプリケーション・リクエストは、アプリケーションの実行場所に関係なく、正しいシャードに自動的にルーティングされます。
-
データ・アクセス: Oracle Databaseの仮想プライベート・データベース機能を使用して、リージョン内のデータ・アクセスをさらに制限できます。
-
派生データ: データをOracle Databaseに格納し、Oracle Databaseの機能を使用して派生データの増加を抑制します。
-
データ・レプリケーション: Oracle ShardingをOracle Data GuardまたはOracle GoldenGateとともに使用して、同じデータ主権リージョン内でデータをレプリケートできます。
Oracle Shardingを使用してデータ主権を実現するユースケース
架空の大手金融機関であるShard Bankは、複数の国でユーザーにクレジット・サービスを提供しようとしています。クレジット・サービスが提供される各国には独自のデータ・プライバシ規制があり、個人を特定できる情報(PII)データを当該国に保存する必要があります。
データへのアクセスを制限する必要があり、ある国のデータ管理者は他の国のデータを表示できません。このユースケースのソリューションは、様々な国でシャードが構成されたユーザー定義のシャーディングと、データ・アクセス制御のためのReal Application Security (RAS)です。
Oracle Shardingソリューションの概要
Oracle Shardingソリューションは、国内のデータ・ストレージを提供し、すべてのデータのグローバル・ビューもサポートしています。
グローバル・シャード・データベースは、存在する必要がある国を示すキーでシャードされます。国内のアプリケーションは通常どおりローカル・データベースに接続し、すべてのデータはローカルに保存および処理されます。
マルチシャード問合せは、シャード・コーディネータに転送されます。コーディネータは問合せをリライトし、必要なデータがある各シャード(国)に送信します。コーディネータは、すべての国からの結果を処理して集計し、結果を返します。
Oracle Shardingでは、次の機能でこのユースケースが可能になります。
- 国内の問合せのシャードへの直接ルーティング。
- ユーザー定義のシャーディング方法により、国の範囲またはリストを使用して、シャード間でデータをパーティション化できます。
- Oracle Active Data Guardを使用してレプリケーションを自動構成し、レプリカを国内に制限します。
この方法のメリットは次のとおりです。
- 各シャードは、国内のクラウドまたはオンプレミスに配置できます。
- シャードは様々なクラウド・プロバイダを使用でき(マルチクラウド戦略)、シャードのレプリカを異なるクラウドまたはオンプレミスに配置できます。
- オンライン再シャーディングにより、クラウド間、またはクラウドとオンプレミスとの間でデータを移動できます。
- データ主権の厳格な施行により、不注意によるリージョンをまたいだデータ漏えいを防止します。
- データの重複を低減した単一のマルチモデル・ビッグ・データ・ストア。
- 1つのリージョン/LOB内の計画/計画外停止時間が他のリージョン/LOBに影響しないため、より優れた障害分離が実現します。
- ビジー状態のパーティションとシャードを必要に応じて分割できます。
- 完全なACIDプロパティのサポートは、トランザクション・アプリケーションにとって重要です。
Oracle Shardingを使用したデータ主権のデプロイメント・トポロジ
このユースケースの例では、フランクフルト(リージョン1 FRA)、アムステルダム(リージョン2 AMS)、およびロンドン(リージョン3 LON)の3つのリージョンにまたがるOracle Cloud Infrastructureにシャード・データベースを作成します。
Oracle Shardingを使用したデータ主権の構成
次のトピックで説明するステップを実行して、Oracle Shardingを使用してデータ主権を構成します。
3つのOCIリージョンすべてにおけるVCNネットワークの構成
Oracle Cloud Infrastructure (OCI)では、仮想クラウド・ネットワークは、インスタンスが実行される従来のネットワークの仮想バージョンです。各リージョン(FRA、AMSおよびLON)に仮想クラウド・ネットワーク(VCN)をデプロイして構成します。
- プライベート・サブネットの新しいルート表を作成し、プライベート・サブネットに関連付けます。デフォルトのルート表はパブリック・サブネットにのみ使用し、プライベート・サブネットには専用のプライベート・ルート表を設定することが適切です。
- インターネット・ゲートウェイを作成し、デフォルトのルート表に関連付けます。
- ネットワーク・アドレス変換(NAT)ゲートウェイであるサービス・ゲートウェイを作成し、プライベート・サブネットのルート表に関連付けます。
- VCN名/CIDER: Oracle Sharding VCN FRA 10.0.0.0/16
- パブリック・サブネット名/CIDER: public_fra 10.0.5.0/24
- プライベート・サブネット名/CIDER: private_fra 10.0.6.0/24
ノート:
シャーディング・デプロイメントで使用されるすべてのリージョンでステップを繰り返します。サブネットCIDERは各リージョンで異なる必要があり、VCN/サブネット名にリージョン接頭辞を指定する必要があります。3つのリージョン間のリモートVCNピアリングの構成
リモートVCNピアリングは、異なるリージョンにある2つのVCNを接続することで、トラフィックをインターネット経由でルーティングすることなく、プライベートIPアドレスを使用してVCNのリソースが通信できるようにするプロセスです。
リージョン間のネーミング解決のためのプライベートDNSの構成
各リージョンのドメインごとにパブリック・サブネットとプライベート・サブネットのプライベート・ビューを作成し、1つのゾーン内に合計6つのプライベート・ゾーンを作成します。その後、すべてのエントリが各プライベート・ゾーン構成に追加されます。
- プライベートDNSゾーンを作成および管理するには、プライベートDNSに関する項を参照してください。
- 次のタスクに進む前に、すべての名前が正しく解決されていることを確認します。
ノート:
これらの手順は、名前を正しく解決できるように、すべてのVCN/VMの各リージョンで実行する必要があります。各リージョンへのグローバル・サービス・マネージャのインストール
Oracle Global Data Servicesグローバル・サービス・マネージャ(GSM)は、Oracle Shardingで、アプリケーションからシャード・データベース内の正しいシャードに問合せをルーティングするために使用されます。
- グローバル・サービス・マネージャ(Oracle Database 19c)ソフトウェアを要塞VMにダウンロードします。
- 最新バージョンのOPatchを適用します。
- 新しくインストールされたグローバル・サービス・マネージャ(Oracle Database 19c)に、利用可能な最新のOracle Databaseバンドル・パッチを適用します。
シャード・カタログおよびシャード・データベースのTNSエントリの収集
シャード・カタログおよびシャード・データベースの構成用にGSMサーバーを準備するには、TNSエントリのコレクションが必要です。シャード・カタログは、シャード・カタログ・オブジェクトを格納するPDBにのみアクセスする必要があります。ただし、シャード・データベースには、アプリケーション・スキーマを格納する各共有CDBおよびPDBのエントリを準備します。
Oracle Shardingグローバル・データベースの作成
グローバル・サービス・マネージャ・リスナーを構成し、シャード・カタログ・データベースを作成して、すべてのシャードを構成に追加します。デプロイメント・ステップでは、すべてのシャードを単一のグローバル・データベースとして構成します。