web-dev-qa-db-ja.com

EC2 RDS MySQLインスタンスを外部マスターのスレーブとして使用することは可能ですか?

ローカルネットワークでマスターMySQLインスタンスを実行していますが、マスターを複製するEC2 RDSインスタンスを取得できるかどうか、またはこれがAmazonによってロックダウンされているかどうか疑問に思っていました。

7
user57758

どうやらこれは現在可能ですが、完全には「サポート」されていません。 Amazonでは、RDSを外部スレーブに複製し、外部マスターからRDSに複製できるようになりましたが、免責事項は、これがサーバーセットアップの永続的な部分になることを意図していないことを示唆しています。

私は個人的にこれをテストしていませんが、さまざまなデータベースやアプリケーションをホストしているいくつかの古い非AWSサーバーからの移行を支援するために使用する予定です。

ご質問があれば、以下のAWSドキュメントが最適です。

外部マスターからRDSへのレプリケーション:http://docs.aws.Amazon.com/AmazonRDS/latest/UserGuide/MySQL.Procedural .Importing.NonRDSRepl.html

SönkeRuemplerのブログ投稿(RDSから外部スレーブへ)の概念実証:http://www.ruempler.eu/2013/07/07/replyating-aws-rds-mysql-databases-to-external-slaves /

4
Jonathan C

これは2011年2月の時点ではまだサポートされていません。 レプリケーションスレーブとしてのRDSインスタンス を参照してください:

非RDSからRDSへのレプリケーションは現在サポートされていません[...]。ただし、今後のロードマップ計画のために関心を記録します。

3
drcursor

これは、MySQLネイティブレプリケーションのオープンソース代替品であるTungstenReplicatorを使用して行うことができます。 MySQLマスターからAmazonRDSスレーブへのレプリケーションをサポートするようになりました。詳細については、次のブログ記事を参照してください。

http://scale-out-blog.blogspot.com/2013/01/replicating-from-mysql-to-Amazon-rds.html

乾杯、ロバート・ホッジス(タングステンコミッター)

1
Robert Hodges

これは現在、正式にサポートされています。 John Cのリンク( http://docs.aws.Amazon.com/AmazonRDS/latest/UserGuide/MySQL.Procedural.Importing.NonRDSRepl.html )に加えて、AWSは(長い)ウェブキャストを作成しましたそれについても: http://youtu.be/TT1M_XRAlQo

AWSのドキュメントを完全に再現することはしませんが、簡略化された手順は次のとおりです。

  1. スレーブとして機能するRDSインスタンスを作成します(MySQL 5.5バージョン5.5.33以降、またはMySQL 5.6バージョン5.6.13以降)。
  2. RDSセキュリティグループを編集して、外部マスターのIPアドレスを承認します
  3. 外部マスターがEC2マシンの場合は、そのマシンのセキュリティグループを更新して、TCP 3306を介したRDSIPアドレスへのインバウンドおよびアウトバウンド接続を許可します。
  4. 外部マスターとRDSスレーブでサーバー変数を設定して、レプリケーションを許可します(たとえば、log-bin、server-idなど。この質問の範囲を超えています)。
  5. 外部マスターにレプリカントユーザーを作成する
  6. 外部マスターでmysqldumpを実行します
  7. Head dump.sql-n80を実行します| grep "MASTER_LOG_POS"を使用して、MASTER_LOG_FILE値とMASTER_LOG_POS値を取得します
  8. _mysql -u[RDS username] -h'[RDS IP address]' -p'[password]' < ~/dump.sql_を実行します
  9. ダンプファイルがRDSマシンにロードされると、レプリケーション変数を設定するために標準のMySQLで実行するのと同じタイプのコマンドを実行できないため、代わりにRDSインスタンスでmysqlにログインして実行します。

mysql> CALL mysql.rds_set_external_master ('[external master ip]', 3306, '[replicant username form step 5]', '[replicant password]' , '[MASTER_LOG_FILE value from step 7, e.g., mysql-bin.000042]', [MASTER_LOG_POS value from step 7 e.g., 107] , 1); _mysql> call mysql.rds_start_replication;_

1

残念ながら、現在Amazonではサポートされていません。私もその能力を待っているので、将来的にはうまくいけば。

0
Jim Ekleberry