Redis
 Computer >> コンピューター >  >> プログラミング >> Redis

AmazonElastiCacheからRedisEnterpriseCloudへのオンラインデータベース移行がシンプルに

現在利用可能なデータベース移行ツールのほとんどは、本質的にオフラインです。それらは複雑であり、手動による介入が必要です。

たとえば、AmazonElastiCacheからRedisEnterprise Cloudにデータを移行する場合、通常のプロセスは、ElastiCacheデータをAmazon S3バケットにバックアップしてから、Redis EnterpriseCloudUIを使用してデータをインポートすることです。このプロセスには、苦痛を伴うダウンタイムが必要になる可能性があり、データが失われる可能性があります。その他の利用可能な手法には、ソースRedisサーバーのポイントインタイムスナップショットを作成し、変更を宛先サーバーに適用して、両方のサーバーの同期を維持することが含まれます。これは良いアプローチのように聞こえるかもしれませんが、移行戦略を実装するために数十のスクリプトを維持する必要がある場合は、困難な場合があります。

そこで、別のアプローチを考え出しました:

RIOTの紹介

RIOTは、RedisのソリューションアーキテクトであるJulienRuauxによって構築されたオープンソースのオンライン移行ツールです。 RIOTは、プロデューサー/コンシューマーアプローチを使用してクライアント側のレプリケーションを実装します。プロデューサーは、ElastiCacheに接続しているキーリーダーと値リーダーの組み合わせです。キーリーダーコンポーネントは、スキャン通知とキースペース通知を使用して複製されるキーを識別します。キーごとに、値リーダーコンポーネントはDUMPを実行し、結果のキー+バイトをコンシューマー(ライター)に処理します。コンシューマー(ライター)は、RedisEnterprise接続でRESTOREを実行します。

AmazonElastiCacheからRedisEnterpriseCloudへのオンラインデータベース移行がシンプルに

このブログ投稿では、ElastiCacheからRedisEnterpriseCloudへのデータベースのシームレスなオンライン移行を実行する方法を紹介します。

お見逃しなく:DBaaSプロバイダーを選択する際に考慮すべき6つの主要機能 およびRedisEnterpriseCloudがAWSで成熟するエンタープライズ顧客のニーズにどのように対応するか

前提条件:

移行ツールを使用するには、いくつかのリソースが必要です。

  1. RedisEnterpriseCloudサブスクリプション
  2. Amazon ElastiCache(シングルマスターECの場合はプライマリエンドポイント、クラスター化ECの場合は構成エンドポイント:詳細については、ElastiCacheのドキュメントで接続エンドポイントを検索するを参照してください)
  3. LinuxベースのAmazonEC2インスタンス

AmazonEC2インスタンスのセットアップ

新しいEC2インスタンスを作成するか、既存のインスタンスを活用できます。この例では、最初にアマゾンウェブサービス(AWS)でインスタンスを作成します。最も一般的なシナリオは、同じAmazon Virtual Private Cloud(Amazon VPC)内のAmazonEC2インスタンスからElastiCacheクラスターにアクセスすることです。このセットアップにはUbuntu16.04LTSを使用しましたが、UbuntuまたはDebianディストリビューションを選択できます。

次に示すように、SSHを使用して、コンピューターからこの新しいEC2インスタンスに接続します。

ssh -i “public key” <AWS EC2 Instance>

次のコマンドを実行して、この新しいインスタンスにredis-cliツールをインストールします。

$ sudo apt update
# sudo apt install -y redis-tools

redis-cliを使用してElastiCacheデータベースとの接続を確認する

構文:

$ redis-cli -h <Elasticache Primary Endpoint > -p 6379

コマンド:

$ sudo redis-cli -h <elasticache primary endpoint> -p 6379

上記のコマンドでリモートRedisデータベースに正常に接続できることを確認してください。

RIOT移行ツールの使用

AmazonElastiCacheからRedisEnterpriseCloudへのオンラインデータベース移行がシンプルに

以下のコマンドを実行して、移行ツールをセットアップします。

前提条件:

Javaのインストール:OpenJDK 11以降の使用をお勧めします:

sudo add-apt-repository ppa:openjdk-r/ppa && sudo apt-get update -q && sudo apt install -y openjdk-11-jdk

RIOTのインストール

次に示すように、パッケージを解凍し、RIOTバイナリが配置されていることを確認します。

wget https://github.com/Redislabs-Solution-Architects/riot/releases/download/v2.0.8/riot-redis-2.0.8.zip



unzip riot-redis-2.0.8.zip
cd riot-redis-2.0.8/bin/

以下のコマンドを実行して、RIOTのバージョンを確認できます。

./riot-redis --version
RIOT version "2.0.8"


 bin/riot-redis --help
Usage: riot-redis [OPTIONS] [COMMAND]
  -q, --quiet         Log errors only
  -d, --debug         Log in debug mode (includes normal stacktrace)
  -i, --info          Set log level to info
  -h, --help          Show this help message and exit.
  -V, --version       Print version information and exit.
Redis connection options
  -r, --redis=<uri>   Redis connection string (default: redis://localhost:6379)
  -c, --cluster       Connect to a Redis Cluster
  -m, --metrics       Show metrics
  -p, --pool=<int>    Max pool connections (default: 8)
Commands:
  replicate, r  Replicate a source Redis database in a target Redis database
  info, i       Display INFO command output
  latency, l    Calculate latency stats
  ping, p       Execute PING command

JavaとRIOTがインストールされると、以下のコマンドで移行プロセスを開始する準備が整います。このコマンドは、ソース(ElastiCache)からターゲット(Redis Enterprise Cloud)にデータを直接複製します。

最後に、次のコマンドを実行して、ElastiCacheからRedisEnterpriseCloudにデータを複製します。

sudo ./riot-redis -r redis://<source Elasticache endpoint>:6379 replicate -r redis://password@<Redis Enterprise Cloud endpoint>:port --live

ElastiCacheを使用すると、クラスター化と非クラスター化の2つの方法で構成できます。次のグラフの最初の行は、非クラスター化シナリオに対して実行する必要のあるコマンドを示し、2番目の行は、特定のデータベース名前空間を持つクラスター化シナリオのコマンドを示しています。

AmazonElastiCacheからRedisEnterpriseCloudへのオンラインデータベース移行がシンプルに

ご覧のとおり、クラスター化されたElastiCacheがある場合は常に、ソースElastiCacheエンドポイントを指定する前に–clusterオプションを渡す必要があります。

重要な注意事項

  • 本番環境で使用する前に、移行のユーザー受け入れテストを実行します。
  • 移行が完了したら、アプリケーショントラフィックがRedisEnterpriseエンドポイントに正常にリダイレクトされることを確認します。
  • トラフィックが少ない時間帯に移行プロセスを実行して、データ損失の可能性を最小限に抑えます。

結論

ダウンタイムなしでAmazonElastiCacheからRedisEnterpriseCloudにデータを移動するのに役立つ、シンプルで使いやすいライブ移行ツールを探している場合、RIOTは有望なオプションです。

参照:

  • RIOT –入力/出力ツールのRedis

  1. Amazon SimpleStorageServiceを使用してOracleをバックアップする

    このブログ投稿では、Oracle®データベースバックアップのストレージとしてAmazon Simple Storage Service(S3)を使用する方法について説明します。アマゾンウェブサービス(AWS)は、オラクルがクラウドでのデータベースバックアップを可能にするために提携した最初のクラウドベンダーでした。 S3はAWSのメインストレージ製品です。 はじめに S3のシンプルなWebサービスインターフェイスにより、アプリケーションはインターネット上のどこからでも任意の量のデータを保存および取得できます。 S3は、拡張性が高く、信頼性が高く、高速で安価なデータストレージインフラストラクチャ

  2. Redis MOVE –Redisでキーをあるデータベースから別のデータベースに移動する方法

    このチュートリアルでは、Redisデータストア内のあるデータベースから別のデータベースにキーを移動する方法について学習します。このために、コマンドを使用します– MOVE redis-cliで。 このコマンドは、現在選択されているデータベースから指定されたキーを削除し、同じキーを宛先に挿入するために使用されます データベース。キーがソースデータベースに存在しない場合、またはキーが宛先データベースにすでに存在する場合、操作は実行されず、0が返されます。 redis MOVEコマンドの構文は次のとおりです:- 構文:- redis host:post> MOVE <key&g