フェデレーティッドデータベースインスタンスの配置
このページでは、フェデレーティッドデータベースインスタンスを配置して Amazon Web Services S3バケットのデータにアクセスする方法について説明します。
必要なアクセス権
フェデレーティッドデータベースインスタンスを配置するには、プロジェクトに対する Project Owner
アクセス権が必要です。 Organization Owner
アクセスを持つユーザーは、フェデレーティッドデータベースインスタンスを配置する前に、自分自身をProject Owner
としてプロジェクトに追加する必要があります。
前提条件
始める前に、次のことを行う必要があります。
MongoDB Atlasアカウントがまだない場合は、作成し 。
Amazon Web ServicesCLIAmazon Web Servicesの設定 アカウントにアクセスします。または、 IAM ロール を作成するには、権限を持つ ManagementAmazon Web Services Console にアクセスする必要があります。
手順
Atlas CLI を使用して新しい Data Federation データベースを作成するには、次のコマンドを実行します。
atlas dataFederation create <name> [options]
コマンド構文とパラメーターの詳細については、 Atlas CLIドキュメントのAtlas dataFederation create を参照してください。
Atlas Data Federation がフェデレーティッドデータベースインスタンスに対してクエリを処理するクラウドプロバイダーを選択します。
[ Amazon Web Services ] 、Amazon Web Services Azure[ Azure ] 、またはGoogle Cloud Platformを選択できます。Google Cloud Platformフェデレーティッドデータベースインスタンスが作成された後は、Atlas Data Federation がクエリを処理するクラウドプロバイダーを変更することはできません。
Amazon Web Services S3バケットのデータ用にフェデレーティッドデータベースインスタンスを構成している場合、データをホストしているクラウドプロバイダーと異なるクラウドプロバイダーを選択することはできません。 つまり、 Amazon Web Servicesを選択する必要があります。
Amazon Web ServicesAmazon Web Services S3 データストアを指定し、データ ストアにマッピングするフェデレーティッドデータベースと仮想コレクションを構成します。
Data Sourcesセクションからフェデレーティッドデータベースインスタンスのデータセットを選択します。
データストアを選択するには、 Add Data Sourcesをクリックします。
データストアを指定します。
Amazon Web Services S3バケットのデータ用にフェデレーティッドデータベースインスタンスを構成するには、Amazon S3 を選択します。
stores.[n].provider
JSON構成設定に対応します。の Amazon Web ServicesIAM ロールを選択します。Atlas
ロール選択ドロップダウン リストから、At に認可されている既存のAmazon Web Services IAM ロールを選択することも、AtlasAuthorize an AWS IAM Role を選択して新しいロールを認可することもできます。
Atlasが認可されている既存のロールを選択した場合は、次のステップに進み、 Amazon Web Services S3バケットを一覧表示します。
既存のロールを Atlas に認可するか、新しいロールを作成する場合は、次の手順に進む前に以下の手順を完了してください。
新しいロールを認可するには [ Authorize an AWS IAM Role ] を選択するか、ドロップダウンから既存のロールを選択して [ Next ] をクリックします。
セクションでAmazon Web Services ARN と一意の外部ID Add Atlas to the trust relationships of your AWS IAM roleAtlasを使用して、既存または新規の IAM ロールの信頼関係にAmazon Web Services を追加します。
Atlas UI で、次のいずれかの をクリックして展開します。
Create New Role with the AWS CLIは、 ARN と一意の外部ID Atlasを使用して、新しいAmazon Web Services IAM ロールの信頼関係に追加する方法を示します。Atlas UI の手順に従って新しいロールを作成します。 詳細については、「 Amazon Web Services CLIを使用した新しいロールの作成 」を参照してください。
新しいロールを認可する際に、
Configure a New Data Lake
ワークフローを終了すると次の操作が実行されます。Add Trust Relationships to an Existing Roleは、 ARN と一意の外部ID Atlasを使用して、既存のAmazon Web Services IAM ロールの信頼関係に追加する方法を示します。Atlas UI の手順に従って、Atlas を信頼関係に既存のロールに追加します。 詳細については、「既存のロールへの信頼関係の追加」を参照してください。
重要
将来的にカスタムAmazon Web ServicesロールARNを変更する場合は、ロールのアクセス ポリシーに、フェデレーティッドデータベースインスタンスのS3リソースへの適切なアクセスが含まれていることを確認してください。
[Next] をクリックします。
S 3バケット情報を入力します。
S 3バケットの名前を入力します。
stores.[n].bucket
JSON構成設定に対応します。バケットがRead-onlyであるか、両方のRead and writeであるかを指定します。
Atlas はRead-onlyバケットのみをクエリできます。クエリを実行してクエリ結果をS 3バケットに保存する場合は、 Read and writeを選択します。 クエリ結果をS3バケットに保存するには、 AtlasにAmazon Web Servicesリソースへのアクセスを許可するロールポリシーに、
s3:ListBucket
、s3:GetObject
、s3:GetObjectVersion
権限に加えて、s3:PutObject
権限とs3:DeleteObject
権限を含める必要があります。 } 権限とs3:GetBucketLocation
権限があり、読み取りアクセス権が付与されます。 Amazon Web Services IAMロールにアクセス ポリシーを割り当てる方法の詳細については、以下のステップ 4 を参照してください。S 3バケットのリージョンを選択します。
stores.[n].region
JSON構成設定に対応します。注意
Atlas Data Federation が指定されたS 3バケットのリージョンを取得できない場合、フェデレーティッドデータベースインスタンスを作成することはできません。
任意。 S 3バケット内のファイルを検索するときに Data Federation が使用するプレフィックスを指定します。 省略した場合、Data Federation はS 3バケットのルートからすべてのファイルを再帰的に検索します。
stores.[n].prefix
JSON構成設定に対応します。[Next] をクリックします。
Amazon Web Services IAM ロールにアクセス ポリシーを割り当てます。
Atlas userインターフェイスの手順に従って、 Amazon Web Services IAM ロールにアクセス ポリシーを割り当てます。
読み取り専用アクセスまたは読み取りおよび書込みアクセスのロール ポリシーは次のようになります。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:ListBucket", "s3:GetObject", "s3:GetObjectVersion", "s3:GetBucketLocation" ], "Resource": [ <role arn> ] } ] } { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:ListBucket", "s3:GetObject", "s3:GetObjectVersion", "s3:GetBucketLocation", "s3:PutObject", "s3:DeleteObject" ], "Resource": [ <role arn> ] } ] } [Next] をクリックします。
S 3バケット内のファイルのパス構造を定義し、 Nextをクリックします。
以下に例を挙げます。
s3://<bucket-name>/<path>/<to>/<files>/<filename>.<file-extension> S 3バケット上のデータへの追加パスを追加するには、 Add Data Sourceをクリックしてパスを入力します。 パスの詳細については、「 S 3データのパスの定義 」を参照してください。
databases.[n].collections.[n].dataSources.[n].path
JSON構成設定に対応します。仮想データベース、コレクション、ビューを作成し、データベース、コレクション、ビューをデータ ストアにマッピングします。
(任意)クリックのために
データベース名を編集するデータベース。 デフォルトは
VirtualDatabase[n]
です。databases.[n].name
JSON構成設定に対応します。コレクション名を編集するためのコレクション。 デフォルトは
VirtualCollection[n]
です。databases.[n].collections.[n].name
JSON構成設定に対応します。を使用してビュー名を編集します。
次のコマンドをクリックできます。
Add Database : データベースとコレクションを追加します。
データベースにコレクションを追加するために関連付けられています。
コレクションにビューを追加するコレクションに関連付けられている ビューを作成するには、以下を指定する必要があります。
ビューの名前。
ビューに適用するパイプライン。
ビュー定義パイプラインには、
$out
または$merge
ステージを含めることはできません。 ビュー定義に、$lookup
や$facet
などのネストされたパイプライン ステージが含まれている場合、この制限はそれらのネストされたパイプラインにも適用されます。
ビューの詳細については、以下を参照してください。
関連付けられているデータベース、コレクション、またはビューを削除します。
Data SourcesセクションのドロップダウンからAWS S3を選択します。
データ ストアをドラッグして削除し、コレクションとマッピングします。
databases.[n].collections.[n].dataSources
JSON構成設定に対応します。
Amazon Web Services S3データストアの構成は次のようになります。
{ "stores" : [ { "name" : "<string>", "provider": "<string>", "region" : "<string>", "bucket" : "<string>", "additionalStorageClasses" : ["<string>"], "prefix" : "<string>", "includeTags": <boolean>, "delimiter": "<string>", "public": <boolean> } ], "databases" : [ { "name" : "<string>", "collections" : [ { "name" : "<string>", "dataSources" : [ { "storeName" : "<string>", "path" : "<string>", "defaultFormat" : "<string>", "provenanceFieldName": "<string>", "omitAttributes": true | false } ] } ], "maxWildcardCollections" : <integer>, "views" : [ { "name" : "<string>", "source" : "<string>", "pipeline" : "<string>" } ] } ] }
構成設定の詳細については、「フェデレーティッドデータベースインスタンス用のデータストアの定義 」を参照してください。
Amazon Web Services S3 データ ストアを定義します。
stores
の UI に表示されるJSON構成設定を編集します。stores
の構成設定は次のようになります。"stores" : [ { "name" : "<string>", "provider" : "<string>", "region" : "<string>", "bucket" : "<string>", "additionalStorageClasses" : ["<string>"], "prefix" : "<string>", "delimiter" : "<string>", "includeTags": <boolean>, "public": <boolean> } ] これらの構成設定の詳細については、
stores
を参照してください。フェデレーティッドデータベースインスタンスの仮想データベース、コレクション、ビューを定義します。
databases
の UI に表示されるJSON構成設定を編集します。databases
の構成設定は次のようになります。"databases" : [ { "name" : "<string>", "collections" : [ { "name" : "<string>", "dataSources" : [ { "storeName" : "<string>", "defaultFormat" : "<string>", "path" : "<string>", "provenanceFieldName": "<string>", "omitAttributes": <boolean> } ] } ], "maxWildcardCollections" : <integer>, "views" : [ { "name" : "<string>", "source" : "<string>", "pipeline" : "<string>" } ] } ] これらの構成設定の詳細については、
databases
を参照してください。
任意: 上記の Visual エディターまたはJSONエディタータブで手順を繰り返し、追加のAzure Azureストレージ データ ストアを定義します。
フェデレーティッドクエリの他のデータ ストアを追加するには、次を参照してください。
注意
クラウドプロバイダー間でフェデレーティッドクエリを実行するために、Azure Blog Storage データストアを接続することはできません。