翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
AWS Database Migration Service のターゲットとしての Redis の使用
Redis は、データベース、キャッシュ、メッセージブローカーとして使用されるオープンソースのメモリ内データ構造ストアです。メモリ内でデータを管理することにより、読み取りや書き込みオペレーションにかかる時間が 1 ミリ秒未満となり、毎秒数億回もの操作の実行を実現します。Redis はインメモリデータストアとして、ミリ秒未満の応答時間を必要とする最も要求の厳しいアプリケーションをサポートしています。
AWS DMS を使用すると、サポートされているソースデータベースからターゲットの Redis データストアに最小限のダウンタイムでデータを移行できます。Redis の詳細については、「Redis ドキュメント
オンプレミスの Redis に加えて、AWS Database Migration Service は次をサポートします。
-
ターゲットデータストアとしての Amazon ElastiCache for Redis
。ElastiCache for Redis は Redis クライアントと連携して、オープンな Redis データ形式を使用してデータを保存します。 -
ターゲットデータストアとしての Amazon MemoryDB for Redis
。MemoryDB は Redis と互換性があり、現在使用されているすべての Redis データ構造、API、コマンドを使用してアプリケーションを構築できます。
AWS DMS のターゲットとして Redis を使用する方法の詳細については、次のセクションを参照してください。
トピック
Redis クラスターを AWS DMS のターゲットとして使用するための前提条件
DMS は、スタンドアロン構成のオンプレミスの Redis ターゲットをサポートします。また、データが複数のノード間で自動的にシャード化される Redis クラスターとしてもサポートします。シャード化とは、データを複数のサーバーまたはノードにまたがるシャードと呼ばれる小さなチャンクに分割するプロセスです。実際、シャードはデータセット全体のサブセットを含むデータパーティションであり、ワークロード全体のスライスとして機能します。
Redis はキーバリュー型の NoSQL データストアです。ソースがリレーショナルデータベースの場合に使用する Redis キーの命名規則は、schema-name.table-name.primary-key となります。Redis では、キーと値に特殊文字の % は使用できません。使用すると、DMS は該当するレコードをスキップします。
注記
ElastiCache for Redis をターゲットとして使用している場合、DMS がサポートするのは、クラスターモードが有効になっている設定のみです。ElastiCache for Redis バージョン 6.x 以降を使用してクラスターモードが有効になっているターゲットデータストアを作成する方法の詳細については、「Amazon ElastiCache for Redis ユーザーガイド」の「使用開始」を参照してください。
データベースの移行を開始する前に、次の基準を使用して Redis クラスターを起動します。
-
クラスターには単一または複数のシャードがあります。
-
ElastiCache for Redis ターゲットを使用している場合は、クラスターが IAM ロールベースのアクセスコントロールを使用していないことを確認してください。この代わりに、Redis Auth を使用してユーザーを認証します。
-
マルチ AZ (アベイラビリティーゾーン) を有効にします。
-
データベースから移行するデータを処理するのに十分なメモリがクラスターにあることを確認します。
-
初めて移行タスクをスタートする前に、ターゲットの Redis クラスターになにもデータがないことを確認します。
クラスターの設定を行う前に、データ移行のセキュリティ要件を決定する必要があります。DMS は、暗号化の設定を問わず、ターゲットのレプリケーショングループへの移行をサポートします。ただし、暗号化を有効または無効にできるのは、クラスターの設定時のみです。
Redis を AWS Database Migration Service のターゲットとして使用する場合の制限
Redis をターゲットとして使用する場合、次の制限が適用されます。
-
Redis はキーバリューの no-sql データストアです。ソースがリレーショナルデータベースの場合に使用する Redis キーの命名規則は、
schema-name.table-name.primary-key
となります。 -
Redis では、キーバリューに特殊文字の
%
は使用できません。使用すると、DMS は該当するレコードをスキップします。 -
DMS は特殊文字を含む行を移行しません。
-
DMS は、フィールド名に特殊文字が含まれるフィールドを移行しません。
-
完全 LOB モードはサポートされていません。
-
ElastiCache for Redis をターゲットとして使用する場合、Private Certificate Authority (CA) はサポートされません。
リレーショナルデータベースまたは非リレーショナルデータベースからターゲットの Redis へのデータ移行
任意のソース SQL または NoSQL データストアからターゲットの Redis には直接データを移行できます。Redis ターゲットへの移行の設定とスタートは、DMS コンソールまたは API を使用したフルロードと変更データキャプチャの移行と同様です。Redis ターゲットへのデータベースの移行を実行するには、次を実行します。
-
移行のすべてのプロセスを実行するレプリケーションインスタンスを作成します。詳細については、「レプリケーション インスタンスの作成」を参照してください。
-
ソースエンドポイントを指定します。詳細については、「ソースおよびターゲットエンドポイントの作成」を参照してください。
-
クラスターの DNS 名とポート番号を取得します。
-
SSL 接続の確認のために使用できる証明書バンドルをダウンロードします。
-
次の説明のとおり、ターゲットエンドポイントを指定します。
-
使用するテーブルとレプリケーションプロセスを定義するタスクまたはタスクセットを作成して、レプリケーションを開始します。詳細については、「[Creating a task] (タスクの作成)」を参照してください。
-
ソースデータベースからターゲットクラスターにデータを移行します。
データベースの移行は、次の 2 つの方法のいずれかで開始します。
-
AWS DMS コンソールをクリックして、コンソールで各ステップを実行します。
-
AWS Command Line Interface (AWS CLI) を使用することができます。CLI を AWS DMS と組み合わせて使用する方法については、「AWS CLI for AWS DMS」を参照してください。
クラスターの DNS 名とポート番号を取得するには
-
次の AWS CLI コマンドを使用して、
replication-group-id
にレプリケーショングループ名を提供します。aws elasticache describe-replication-groups --replication-group-id myreplgroup
こここでの出力は、クラスター内のプライマリノードの
Address
属性に DNS 名、Port
属性にポート番号が表示されます。... "ReadEndpoint": { "Port": 6379, "Address": "myreplgroup- 111.1abc1d.1111.uuu1.cache.example.com" } ...
MemoryDB for Redis をターゲットとして使用する場合は、次の AWS CLI コマンドを使用して Redis クラスターにエンドポイントアドレスを提供します。
aws memorydb describe-clusters --clusterid
clusterid
SSL 接続の検証に使用する証明書バンドルのダウンロード
-
コマンドラインで、次の
wget
コマンドを入力します。Wget は、インターネットからファイルをダウンロードする際に使用できる無料の GNU コマンドラインユーティリティツールです。wget https://s3.aws-api-domain/rds-downloads/rds-combined-ca-bundle.pem
ここで、
aws-api-domain
は、指定された S3 バケットと rds-combined-ca-bundle.pem ファイルにアクセスするために必要な AWS リージョンの Amazon S3 ドメインとなります。
AWS DMS コンソールを使用してターゲットエンドポイントを作成するには
このエンドポイントは、既に実行中の Redis ターゲットのためのものです。
-
コンソールで、ナビゲーションペインから [エンドポイント] を選択して、[エンドポイントの作成] をクリックします。次の表は、設定について説明しています。
使用するオプション 実行項目 エンドポイントタイプ
[ターゲット] エンドポイントタイプを選択する。
エンドポイント識別子
エンドポイントの名前を入力する。名前にはエンドポイントタイプを含める。例えば、
my-redis-target
と入力する。ターゲットエンジン このエンドポイントに接続するデータベースエンジンタイプとして [Redis] を選択する。
クラスター名
Redis クラスターの DNS 名を入力する。
ポート
Redis クラスターのポート番号を入力する。
SSL セキュリティプロトコル
[プレーンテキスト] または [SSL 暗号化] のどちらかを選択する。
プレーンテキスト—このオプションの場合、エンドポイントとデータベース間のトラフィックに Transport Layer Security (TLS) 暗号化は提供されない。
SSL 暗号化—このオプションを選択した場合、SSL 認証機関 (CA) 証明書 ARN を入力してサーバーの証明書を確認し、暗号化された接続を確立する。
オンプレミスの Redis で DMS パブリック認証機関と Private Certificate Authority (CA) の両方をサポートする。ElastiCache for Redis の場合、DMS はパブリック CA のみをサポートする。
認証タイプ Redis への接続中に実行する認証タイプを選択する。オプションには、[なし]、[認証ロール]、[認証トークン] がある。
認証ロールを選択した場合、[認証ユーザー名] と [認証パスワード] を入力する。
認証トークンを選択した場合に指定するのは、[認証パスワード] のみ。
レプリケーションインスタンス [オプション]接続をテストする場合のみ、[レプリケーションの作成] ページで以前に入力したレプリケーションインスタンス名前を選択する。
エンドポイントのすべての情報を入力した後、AWS DMS は、データベース移行中に使用する Redis ターゲットエンドポイントを作成します。
移行タスクの作成とデータベース移行の開始については、「[Creating a task] (タスクの作成)」を参照してください。
ターゲットとしての Redis エンドポイント設定の指定
ターゲットエンドポイントを作成または変更するには、コンソール、CreateEndpoint
、または ModifyEndpoint
API オペレーションを使用します。
AWS DMS コンソールの Redis ターゲットでは、[エンドポイントの作成] または [エンドポイントの変更] コンソールページの [エンドポイント固有の設定] を指定します。
CreateEndpoint
と ModifyEndpoint
の API オペレーションでは、RedisSettings
オプションのリクエストパラメータを指定します。次の例では、AWS CLI を使用して設定する方法を説明しています。
aws dms create-endpoint --endpoint-identifier
my-redis-target
--endpoint-type target --engine-name redis --redis-settings '{"ServerName":"sample-test-sample.zz012zz.cluster.eee1.cache.bbbxxx.com
","Port":6379,"AuthType":"auth-token", "SslSecurityProtocol":"ssl-encryption", "AuthPassword":"notanactualpassword
"}' { "Endpoint": { "EndpointIdentifier": "my-redis-target", "EndpointType": "TARGET", "EngineName": "redis", "EngineDisplayName": "Redis", "TransferFiles": false, "ReceiveTransferredFiles": false, "Status": "active", "KmsKeyId": "arn:aws:kms:us-east-1:999999999999:key/x-b188188x", "EndpointArn": "arn:aws:dms:us-east-1:555555555555:endpoint:ABCDEFGHIJKLMONOPQRSTUVWXYZ", "SslMode": "none", "RedisSettings": { "ServerName": "sample-test-sample.zz012zz.cluster.eee1.cache.bbbxxx.com", "Port": 6379, "SslSecurityProtocol": "ssl-encryption", "AuthType": "auth-token" } } }
--redis-settings
パラメータ以降は次のとおりです。
-
ServerName
— (必須)string
型。同じ VPC に配置されたデータの移行先の Redis クラスターを指定する。 -
Port
— (必須)number
型。エンドポイントへのアクセスに使用されるポート値。 -
SslSecurityProtocol
— (オプション) 有効な値はplaintext
とssl-encryption
。デフォルトはssl-encryption
。plaintext
オプションは、エンドポイントとデータベース間のトラフィックに Transport Layer Security (TLS) 暗号化を提供しない。ssl-encryption
を使用して、暗号化された接続を作成する。ssl-encryption
ではサーバーの証明書を検証するための SSL 認証機関 (CA) ARN は必要ないが、必要に応じてSslCaCertificateArn
設定を使用して識別できる。認証機関 ARN が指定されていない場合、DMS は Amazon ルート CA を使用する。オンプレミスの Redis ターゲットを使用する場合、
SslCaCertificateArn
を使用してパブリック認証機関と Private Certificate Authority (CA) を DMS にインポートし、サーバー認証にその ARN を指定する。ElastiCache for Redis をターゲットとして使用する場合、プライベート CA はサポートされない。 -
AuthType
–(必須) Redis に接続する際に実行する認証のタイプ。有効な値は、none
、auth-token
、auth-role
。auth-token
オプションには、「AuthPassword
」を指定する必要がある。auth-role
オプションには「AuthUserName
」と「AuthPassword
」を指定する必要がある。