翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
AWS Database Migration Service のターゲットとしての Redis OSS の使用
Redis OSS は、オープンソースのインメモリ データ構造ストアで、データベース、キャッシュ、メッセージブローカーとして使用されます。データ インメモリを管理すると、読み取りまたは書き込みオペレーションにかかる時間が 1 msec 未満になり、毎秒数億のオペレーションが実行される可能性があります。インメモリデータストアとして、Redis OSS は、ミリ秒未満の応答時間を必要とする最も要求の厳しいアプリケーションの電源となります。
AWS DMS を使用して、ダウンタイムを最小限に抑えデータを対応しているソース データベースから Redis OSS データストアに移行できます。Redis OSS の詳細については、「Redis OSS ドキュメント
オンプレミス Redis OSS に加えて、AWS Database Migration Service では、以下をサポートしています。
-
ターゲットデータストアとしての Amazon ElastiCache (Redis OSS)
。ElastiCache (Redis OSS) は Redis OSS クライアントと連携し、オープンな Redis OSS データ形式を使用してデータを格納します。 -
ターゲットデータストアとしての Amazon MemoryDB
。MemoryDB は Redis OSS と互換であり、今日使用されているすべての Redis OSS データ構造および API、コマンドを使用してアプリケーションを構築できます。
AWS DMS のターゲットとしての Redis OSS の使用の詳細については、以下のセクションをご参照ください。
トピック
AWS DMS のターゲットとして Redis OSS クラスターを使用する場合の前提条件
DMS は、スタンドアロン構成で、またはデータが複数のノードにわたって自動的にシャードされる Redis OSS クラスターとしてオンプレミス Redis OSS ターゲットに対応します。シャーディングとは、複数のサーバーまたはノードに分散されるシャードと呼ばれる小さなチャンクにデータを分離するプロセスです。実際、シャードは総データ セットのサブセットを含むデータ パーティションであり、全体的なワークロードのスライスを提供します。
Redis OSS はキー値 NoSQL データ ストアであるため、ソースがリレーショナルデータベースである場合に使用する Redis OSS キーの命名規則は、schema-name.table-name.primary-key です。Redis OSS では、キーと値に特殊文字 % を含めることはできません。それ以外の場合、DMS はレコードをスキップします。
注記
ElastiCache (Redis OSS) をターゲットとして使用している場合、DMS はクラスターモードの有効化構成のみに対応します。ElastiCache (Redis OSS) バージョン 6.x 以降を使用してクラスターモードが有効になっているターゲットデータストアを作成する方法の詳細については、「Amazon ElastiCache (Redis OSS) ユーザーガイド」の「Getting started」を参照してください。
データベースの移行を開始する前に、次の条件を使用して Redis OSS クラスターを起動します。
-
クラスターに 1 つ以上のシャードがあります。
-
ElastiCache (Redis OSS) ターゲットを使用している場合は、クラスターが IAM ロールベースのアクセス制御を使用していないことを確認してください。代わりに、Redis OSS Auth を使用してユーザーを認証します。
-
マルチ AZ (アベイラビリティーゾーン) を有効にします。
-
データベースから移行されるデータに適合するのに十分なメモリがクラスターにあることを確認します。
-
最初の移行タスクをスタートする前に、ターゲット Redis OSS クラスターがすべてのデータからクリアされていることを確認してください。
クラスター構成を作成する前に、データ移行のセキュリティ要件を決定する必要があります。DMS は、暗号化構成に関係なく、ターゲット レプリケーション グループへの移行をサポートします。ただし、暗号化を有効または無効にできるのは、クラスター構成を作成するときに限られます。
AWS Database Migration Service のターゲットとして Redisを使用する場合の制限
ターゲットとして Redis OSS を使用する場合、以下の制限が適用されます。
-
Redis OSS はキー値 no-sql データストアであるため、ソースがリレーショナルデータベースである場合に使用する Redis OSS キー命名規則は
schema-name.table-name.primary-key
になります。 -
Redis OSS では、キー値に特殊文字
%
を含めることはできません。それ以外の場合、DMS はレコードをスキップします。 -
DMS では、
%
文字を含む行は移行されません。 -
DMS では、フィールド名に
%
文字が含まれているフィールドは移行されません。 -
完全 LOB モードはサポートされていません。
-
ElastiCache (Redis OSS) をターゲットとして使用する場合、Private Certificate Authority (CA) はサポートされません。
リレーショナルデータベースまたは非リレーショナルデータベースから Redis OSS ターゲットへのデータ移行
任意のソース SQL または NoSQL データストアから Redis OSS ターゲットに直接データを移行できます。Redis OSS ターゲットへの移行の設定とスタートは、DMS コンソールまたは API を使用した全ロードと変更データ キャプチャの移行と同様です。Redis OSS ターゲットへのデータベース移行を実行するには、次の操作を行います。
-
移行のすべてのプロセスを実行するレプリケーション インスタンスを作成します。詳細については、「レプリケーション インスタンスの作成」をご参照ください。
-
ソースエンドポイントを指定します。詳細については、「ソースおよびターゲットエンドポイントの作成」をご参照ください。
-
クラスターの 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 をターゲットとして使用する場合は、以下の AWS CLI コマンドを使用して Redis OSS クラスターにエンドポイントアドレスを提供します。
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 OSS ターゲット用です。
-
コンソールで、ナビゲーションペインから [Endpoints] (エンドポイント) を選択し、次に [Create Endpoint] (エンドポイントの作成) を選択します。次の表で設定について説明します。
使用するオプション この操作を行います [Endpoint type] (エンドポイントタイプ)
[Target] (ターゲット) エンドポイントタイプを選択します。
[Endpoint identifier] (エンドポイント識別子)
エンドポイントの名前を入力します。例えば、名前に
my-redis-target
などのエンドポイントタイプを含めます。Target Engine (ターゲット エンジン) このエンドポイントが接続すべきデータベースエンジンのタイプとして [Redis OSS] を選択します。
クラスター名
Redis OSS クラスターの DNS 名を入力します。
[ポート]
Redis OSS クラスターのポート番号を入力します。
SSL セキュリティプロトコル
[Plain text] (プレーンテキスト) または[SSL encryption] (SSL 暗号化) どちらかを選択します。
[Plain text] (プレーンテキスト) —このオプションは、エンドポイントとデータベース間のトラフィックにトTransport Layer Security (TLS) 暗号化を提供しません。
[SSL encryption] (SSL 暗号化) —このオプションを選択する場合は、SSL 認定権限 (CA) 証明書 ARN を入力して、サーバーの証明書を検証し、暗号化された接続を作成します。
オンプレミス Redis OSS で DMS は公開および Private Certificate Authority (CA) の両方をサポートします。ElastiCache (Redis OSS) の場合、DMS は公開 CA のみをサポートします。
[Authentication type] (認証タイプ) Redis OSS への接続中に実行する認証のタイプを選択します。オプションには[None] (なし) および [Authentication role] (認証ロール)、[Authentication token] (認証トークン) が含まれます。
認証ロールを選択した場合は、[Authentication username] (認証ユーザー名) と[Authentication password] (認証パスワード) を入力します。
認証トークンを選択した場合は、[Authentication password] (認証パスワード) のみ入力します。
レプリケーションインスタンス [Optional] (オプション) 接続をテストする場合のみ、[Create replication instance] (レプリケーション インスタンスの作成) ページで以前に入力したレプリケーション インスタンスの名前を選択します。
エンドポイントのすべての情報を入力したら、AWS DMS は、データベース移行中に使用する Redis OSS ターゲットエンドポイントを作成します。
移行タスクの作成とデータベース移行のスタートについては、「[Creating a task] (タスクの作成)」をご参照ください。
ターゲットとしての Redis OSS エンドポイント設定の指定
ターゲットエンドポイントを作成または変更するには、コンソール、CreateEndpoint
または ModifyEndpoint
API オペレーションを使用します。
AWS DMS コンソールの Redis OSS ターゲットの場合、[エンドポイントの作成] または [エンドポイントの変更] コンソールページで [エンドポイント固有の設定] を指定します。
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
で、データの移行先となる Redis OSS クラスターを指定し、同じ VPC に存在します。 -
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 OSS ターゲットを使用する場合、
SslCaCertificateArn
を使用して公開またはPrivate Certificate Authority (CA) を DMS にインポートし、サーバー認証用にその ARN を指定します。ElastiCache (Redis OSS) をターゲットとして使用する場合、プライベート CA はサポートされません。 -
AuthType
— (必須) Redis OSS に接続するときに実行する認証のタイプを示します。有効な値は、none
、auth-token
、およびauth-role
です。auth-token
オプションには「[AuthPassword]
(認証パスワード)」の入力が必要ですが、一方、auth-role
オプションには必要「[AuthUserName]
(認証ユーザー名)」と「[AuthPassword]
(認証パスワード)」を入力します。