翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Amazon OpenSearch Service とのゼロ ETL 統合
送信先としての Amazon OpenSearch Service。
OpenSearch Service と Amazon DocumentDB の統合により、フルロードやデータ変更イベントを OpenSearch ドメインにストリーミングすることができます。取り込みインフラストラクチャは OpenSearch 取り込みパイプラインとしてホストされ、Amazon DocumentDB コレクションから継続的にデータをストリーミングするための、高スケールで低レイテンシーなメカニズムを提供します。
フルロード中、ゼロ ETL 統合はまず、取り込みパイプラインを使用してフルロードデータ履歴を OpenSearch に抽出します。フルロードデータが取り込まれると、OpenSearch 取り込みパイプラインは Amazon DocumentDB 変更ストリームからのデータの読み取りを開始し、最終的にすべての変更を反映させて、Amazon DocumentDB と OpenSearch 間のほぼリアルタイムのデータ整合性を維持します。OpenSearch は、ドキュメントをインデックスに保存します。Amazon DocumentDB コレクションからの受信データは、1 つのインデックスに送信することも、異なるインデックスに分割することもできます。取り込みパイプラインは、Amazon DocumentDB コレクション内のすべての作成、更新、削除イベントを OpenSearch ドキュメントの対応する作成、更新、削除イベントと同期させ、2 つのデータシステムの同期を維持します。取り込みパイプラインは、1 つのコレクションからデータを読み取って 1 つのインデックスに書き込むように設定することも、あるいは 1 つのコレクションからデータを読み取って条件に応じて複数のインデックス間でルーティングするように設定することもできます。
取り込みパイプラインは、以下のモードで Amazon DocumentDB から Amazon OpenSearch Service にデータをストリーミングするように設定できます。
-
フルロードのみ
-
フルロードなしで Amazon DocumentDB から変更ストリームイベントのみをストリーミングする
-
Amazon DocumentDB からまずフルロードを実施し、次に変更ストリームをストリーミングする
取り込みパイプラインを設定するには、次の手順を実行します。
ステップ 1: Amazon OpenSearch Service ドメインまたは OpenSearch サーバーレスコレクションを作成する
データを読み取るための適切なアクセス許可を持つ Amazon OpenSearch Service コレクションが必要です。「Amazon OpenSearch Service 開発者ガイド」の「Amazon OpenSearch Service の使用開始」または「Amazon OpenSearch Serverless の使用開始」でコレクションの作成方法を確認してください。また、「Amazon OpenSearch Service 開発者ガイド」の「Amazon OpenSearch によるデータ取り込み」を参照して、コレクションまたはドメインへの正しい書き込みアクセス許可を取得するための AIM ロールの作成方法を確認してください。
ステップ 2: Amazon DocumentDB クラスターで変更ストリームを有効にする
Amazon DocumentDB クラスター内の必要なコレクションで変更ストリームが有効になっていることを確認します。詳細については、「Amazon DocumentDB を用いた変更ストリームの使用」を参照してください。
ステップ 3: Amazon S3 バケットと送信先のドメインまたはコレクションへの書き込みアクセス許可を持つパイプラインロールを設定する
Amazon DocumentDB コレクションを作成して変更ストリームを有効にしたら、パイプライン設定に使用するパイプラインロールを設定し、次のアクセス許可をロールに付与します。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "allowReadAndWriteToS3ForExport", "Effect": "Allow", "Action": [ "s3:GetObject", "s3:AbortMultipartUpload", "s3:PutObject", "s3:PutObjectAcl" ], "Resource": [ "arn:aws:s3:::my-bucket/export/*" ] } ] }
OpenSearch パイプラインが OpenSearch ドメインにデータを書き込めるようにするためには、当該ドメインが、sts_role_arn パイプラインロールにドメインへのアクセスを許可するドメインレベルのアクセスポリシーを持っている必要があります。次のドメインアクセスポリシーの例では、前のステップで作成した pipeline-role
と言う名前のパイプラインロールに、ingestion-domain
と言う名前のドメインへの、データの書き込みが許可されています。
{ "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::{your-account-id}:role/{pipeline-role}" }, "Action": ["es:DescribeDomain", "es:ESHttp*"], "Resource": "arn:aws:es:{region}:{your-account-id}:domain/{domain-name}/*" } ] }
ステップ 4: X-ENI を作成するために必要なアクセス許可をパイプラインロールに追加する
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ec2:AttachNetworkInterface", "ec2:CreateNetworkInterface", "ec2:CreateNetworkInterfacePermission", "ec2:DeleteNetworkInterface", "ec2:DeleteNetworkInterfacePermission", "ec2:DetachNetworkInterface", "ec2:DescribeNetworkInterfaces" ], "Resource": [ "arn:aws:ec2:*:420497401461:network-interface/*", "arn:aws:ec2:*:420497401461:subnet/*", "arn:aws:ec2:*:420497401461:security-group/*" ] }, { "Effect": "Allow", "Action": [ "ec2:DescribeDhcpOptions", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:Describe*" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "ec2:CreateTags" ], "Resource": "arn:aws:ec2:*:*:network-interface/*", "Condition": { "StringEquals": { "aws:RequestTag/OSISManaged": "true" } } } ] }
ステップ 5: パイプラインを作成する
Amazon DocumentDB をソースとして指定する OpenSearch 取り込みパイプラインを設定します。このサンプルパイプライン設定は、変更ストリームフェッチメカニズムの使用を前提としています。詳細については、「Amazon OpenSearch Service 開発者ガイド」の「Amazon DocumentDB での OpenSearch 取り込みパイプラインの使用」を参照してください。
制限
Amazon DocumentDB と OpenSearch の統合には、次の制限事項が適用されます。
-
パイプラインごとにソースとしてサポートする Amazon DocumentDB コレクションは 1 つのみとなります。
-
リージョン間のデータインジェストは、サポートされていません。Amazon DocumentDB クラスターと OpenSearch ドメインは同じ AWS リージョンに存在する必要があります。
-
複数アカウント間のデータインジェストはサポートされていません。Amazon DocumentDB クラスターと OpenSearch 取り込みパイプラインは、同じ AWS アカウントにある必要があります。
-
Amazon DocumentDB Elastic クラスターはサポートされていません。Amazon DocumentDB インスタンスベースのクラスターのみがサポートされています。
-
Amazon DocumentDB クラスターで AWS secrets. AWS secrets を使用した認証が有効になっていることを確認します。サポートされている認証メカニズムは のみです。
-
既存のパイプライン設定を更新して、別のデータベースや別のコレクションからデータを取り込むことはできません。パイプラインのデータベース名やコレクション名を更新するには、新しいパイプラインを作成する必要があります。