Amazon Web Services ブログ

AWS Database Migration Serviceのターゲットとしての Amazon Elasticsearch Service の導入

AWS Database Migration Service (AWS DMS)の新しいターゲットをさらに—Amazon Elasticsearch Serviceへの新しいターゲットの追加を発表しました。これで、AWS DMSでサポートされているすべてのソースからAmazon Elasticsearch Service にデータを移行できます。この新しいターゲットのサポートで、データ統合パイプラインで DMSを使用し、ほぼリアルタイムで Amazon Elasticsearch Serviceにデータを複製できます。

Amazon Elasticsearch Serviceは、大規模かつ簡単にElasticsearchの展開、保護、操作が可能な完全に管理されたサービスです。本サービスは、オープンソースのElasticsearch API操作、管理されたKibana、およびLogstashと他のAWS serviceとの統合を提供します。これらの機能を使用すると、ログ分析、全文検索、アプリケーション監視、およびセキュリティ解析のユースケースをリアルタイムで検索、分析、視覚化することができます。

Amazon Elasticsearch Serviceを使用した検索は強力ですが、複数のデータストアからAmazon Elasticsearch Serviceへのデータの簡単な取得が可能にすることを考えていました。当社はある時点からのバルクデータのロードの可能性の確認を願っていました。また、必要に応じて転送中のデータの結合とマッピングを完全にサポートし、変更データがほぼリアルタイムで複製されるようにしたいと思っていました。AWS DMS は、現在 サポートされているソース からどのデータの移行にも役立ちます。DMSを使用すれば、必要なデータをより迅速かつ安全に移行できます。

データの分析と処理を実行したり、または電子商取引や検索サービスのビジネスに携わっている多くの大企業や技術ベンチャーは、すべてデータに関連しています。巨大なデータベースで直面する最も一般的な問題は、製品情報を検索する際の待ち時間に関連したものです。この遅延は、ユーザーエクスペリエンスの低下につながり、見込み客にそっぽを向かれることになります。データ量が増えるにつれて、大きなウェブページの応答時間の提供はさらに困難になっています。ユースケースはますます複雑になり、組織は数百万件、時には数十億件のデータベース記録を管理しているにもかかわらずつ、わずかなページの読み込み時間しか提供していません。この問題は、大きなデータセットの検索とフィルタリングによって悪化します。複雑で動的なフィルタを使用しても、数十億の記録をめくるために関連データベース(Oracle、SQL Serverなど)を拡張するには、多くの専門知識を必要とします。

今日のビジネスには、迅速に検索を促進するためにデータが格納される場所の代替案を探しています。これは、データの格納に関連データベースではなく、NoSQLを採用することで実現できます。Amazon Elasticsearchは、フルテキストの分散型NoSQLデータベースです。つまり、スキーマや表ではなく文書を使用するので、データのリアルタイム検索と分析が可能となります。人がこのシステムを高く評価しているのは、データに基づいた測定基準が即座に実行可能であるため、継続的に即座に理解できるためです。

以下は、Elasticsearchが性能に適している使用例です。

  • すべての行を索引付けし、これらのフィールドのブール値の組み合わせでフィールド検索を提供する
  • 関連するフリーテキスト検索を提供する自然言語テキストによるネイティブ処理
  • 関連した結果の提供
  • オートコンプリートと検索候補の提供
  • ファセット加工とファセットドリルダウンをサポート
  • 地元検索のためのサポート日とGEOの場所

Amazon Elasticsearch Serviceは、検索エンジンの最良の情報に基づいて記録とソートされた結果を提供し、一般には素晴らしいです。おおよその回答を見つけることは、より伝統的なデータベースからAmazon ESを差別化するプロパティです。

要約すると、AWSは皆様のユースケースと要件に合わせたアプリケーションとデータベースの再構築の支援を目的としています。AWS DMSを使用してAmazon ESにデータの移行と複製のためのサポートの追加により、柔軟性は向上します。また、RDBMSからAmazon ESへのデータの移行の際に提供するアプローチは、あまり複雑ではありません。

Amazon Elasticsearch Serviceをターゲットとしてサポートする機能の一部は、以下のとおりです。

  • Amazon Elasticsearch Serviceの全バージョンがサポートされています。この文書に詳細があります。
  • すべてのAWS DMSにサポートされているソースからのデータの移行
  • SSL接続サポート付きのデータの移行
  • 継続的な変更の複製

AWS DMSを使用したデータの移行

AWS DMSはワンタイムのデータ移行の実行が可能で、サポートされているソースからAmazon ESターゲットへのデータの連続複製の実行が可能です。これらのソースには、関連データベース(OracleやAmazon Aurora等)、NoSQLデータベース(MongoDB)、またはAmazon S3バケットが含まれます。

Amazon ES クラスターをターゲットとして追加する方法

Amazon Elasticsearch Service Database ターゲットをAWS DMSに追加するには以下の手順に従います:

  • AWS マネジメント コンソールにサインインして、[データベース移行サービス] を選択します。
  • ナビゲーション ペインで [エンドポイント] を選択してから、[エンドポイントの作成] を選択します。
  • 次の項目を選択します。
    • エンドポイントの種類: ターゲット
    • ターゲットエンジン: elasticsearch
    • サービスアクセスロール ARN: Amazon ES クラスターにアクセスする適切な IAMロールを提供する必要があります。
      • 以下は、AWS DMSを使用した移行に必要な最低限の権限レベルを示しています。

ロール信頼ポリシー:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "1",
      "Effect": "Allow",
      "Principal": {
        "Service": "dms.amazonaws.com"
      },
      "Action": "sts:AssumeRole"
    }
  ]
}

ロールの許可:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                       "es:ESHttpDelete",
                       "es:ESHttpGet", 
                       "es:ESHttpHead",
                       "es:ESHttpPost",
                       "es:ESHttpPut"
                     ],
            "Resource": "arn:aws:es:region:account-id:DOMAIN/DOMAIN_NAME/*"
        }
    ]
}
  • エンドポイント URI: この値は Amazon ES クラスターエンドポイントです。

以下のAWS CLIコマンドを使用して、AWS DMSでAmazon Elasticsearch Serviceのエンドポイントを作成することもできます。

aws dms create-endpoint - エンドポイント識別子elasticsearch-test - エンドポイントタイプターゲット --エンジン名elasticsearch --elasticsearch-settings '{"ServiceAccessRoleArn": "arn:aws:iam :: 12345678910:role / AmazonESRole" 、 "EndpointUri": "search-estest.us-west-2.es.amazonaws.com"} '

表マッピング

移行タスク作成の際は、データを移行する方法をAWS DMSに正確に伝えます。タスク内では、移行する表、移行先、移行方法を定義します。

表マッピングは、タスクがソースからターゲットに移行する必要がある表をAWS DMSに通知します。表マッピングはJSONで表されますが、AWS Management Consoleを使用していくつかの設定を行うことができます。表マッピングには、表名を大文字から小文字に変更するなどの変換も含めることもできます。

AWS DMSは、ソースデータベース内の各(非システム)スキーマのデフォルトの表マッピングを生成します。ほとんどの場合、表マッピングはカスタマイズします。Amazon Elasticsearch Service は、NoSQL 文書データベースです。したがって、効率的な検索とデータ検索のためには、関連データベースからAmazon ESに移行する際のスキーマ設計は非常に重要です。

次に、AWS DMSがAmazon ESクラスタにデータを移動する方法の例を示します。

デフォルトのマッピングでは、表マッピングがある場合、JSONは以下のようにAWS DMSにマッピングを設定します。

{
  "rules": [
        {
            "rule-type": "selection",
            "rule-id": "1",
            "rule-name": "1",
            "object-locator": {
                "schema-name": "dms_sample",
                "table-name": "person"
            },
            "rule-action": "include"
        }
   ]
}

DMSでカスタムマッピングの移行を実現する方法は、オブジェクトマッピングを使用することです。Amazon ESで前述の表のデザインを実現する例では、以下のマッピングを使用します。

{
	"rules": [{
			"rule-type": "selection",
			"rule-id": "1",
			"rule-name": "1",
			"object-locator": {
				"schema-name": "dms_sample",
				"table-name": "person"
			},
			"rule-action": "include",
			"filters": [{
				"filter-type": "source",
				"column-name": "Col1",
				"filter-conditions": [{
					"filter-operator": "eq",
					"value": "10"
				}]
			}]
		},
		{
			"rule-type": "object-mapping",
			"rule-id": "2",
			"rule-name": "2",
			"rule-action": "map-record-to-record",
			"object-locator": {
				"schema-name": "dms_sample",
				"table-name": "person"
			},
			"target-table-name": "persones",
			"mapping-parameters": {
				"partition-key-name": "Col1",
				"exclude-columns": [
					"Col1",
					"Col2",
					"Col3",
					"Col4"
				],
				"attribute-mappings": [{
						"target-attribute-name": "ES_NUM
,
						"attribute-type": "scalar",
						"attribute-sub-type": "string",
						"value": "${Col1}"
					},
					{
						"target-attribute-name": "ES_STR",
						"attribute-type": "scalar",
						"attribute-sub-type": "string",
						"value": "$(Col2)"
					},
					{
						"target-attribute-name": "ES_CUSTOM",
						"attribute-type": "scalar",
						"attribute-sub-type": "string",
						"value": "${Col1} - ${Col2}"
					},
					{						"target-attribute-name": "Col4",
						"attribute-type": "scalar",						"attribute-sub-type": "string",						"value": "${Col4}"					}
				]
			}
		}
	]
}

結論

全体として、AWS DMSを使用することで、サポートされているOLTPおよびOLAPデータベースからのAmazon Elasticsearch Serviceへのデータの移行と複製は簡単になりました。AWS DMSレプリケーションは、移行中のダウンタイムを削減するのに役立ちます。これは必要不可欠なアプリケーションをサポートしているデータベースには重要です。この新しい目標サポートをご自由にお試しになり、以下のコメント欄にご意見を記載してください。

詳細はこちら

最近、98,000件の移行の同じ事柄について、当社の最新リリースを要約したブログ記事を寄稿し祝いました。

AWS Database Migration Service および AWS Schema Conversion Toolの詳細につきましては、 AWS ウェブサイトをご覧ください。

 


著者について

Abhinav Singh はアマゾン ウェブ サービスの Database Migration Service のデータベースエンジニアです。 AWS の顧客と協力してデータベースプロジェクトに関する助言や技術支援を行い、AWS を使用する場面でソリューションの価値を向上させる手助けをしています。