AWS Database Migration Service のターゲットとしての Redis OSS の使用 - AWS Database Migration Service

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

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 つのいずれかの方法で開始します:

  1. AWS DMS コンソールを選択し、そこで各ステップを実行します。

  2. 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 ターゲットの場合、[エンドポイントの作成] または [エンドポイントの変更] コンソールページで [エンドポイント固有の設定] を指定します。

CreateEndpointModifyEndpointAPI オペレーションを使用する際、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— (オプション) 有効な値は plaintextssl-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 に接続するときに実行する認証のタイプを示します。有効な値は、noneauth-token、および auth-role です。

    auth-token オプションには「[AuthPassword] (認証パスワード)」の入力が必要ですが、一方、auth-role オプションには必要「[AuthUserName] (認証ユーザー名)」と「[AuthPassword] (認証パスワード)」を入力します。