Closed6

AWS DMSを試す

TocyukiTocyuki

EC2をUbuntuで作成しMySQLインストールのため、以下コマンド実施

sudo su
apt-get update -y
apt-get install mysql-server -y

MySQL設定

パスワード設定

ログイン

mysql -u root -p

以下コマンドでパスワード設定

SET PASSWORD FOR 'root'@'localhost' = PASSWORD('PASSWORD'); 

設定反映

/etc/init.d/mysql restart

設定したパスワードを使ってログインできることを確認

mysql -u root -pPASSWORD

設定変更

vim /etc/mysql/mysql.conf.d/mysqld.cnf

以下設定を追加する

bind-address = 0.0.0.0
server-id = 1
log_bin=mysql-bin
binlog_format=row

設定反映

/etc/init.d/mysql restart
TocyukiTocyuki

RDSインスタンスとDMSレプリケーションインスタンスを作成

DMSレプリケーションインスタンスのPublic&Private IPを控えてEC2 on MySQLサーバーのユーザーを作成する

mysql> GRANT ALL ON *.* TO root@'PRIVATE_IP' IDENTIFIED BY 'PASSWORD';
Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> GRANT ALL ON *.* TO root@'PUBLIC_IP' IDENTIFIED BY 'PASSWORD';
Query OK, 0 rows affected, 1 warning (0.00 sec)

設定を反映

mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.01 sec)

設定を反映

/etc/init.d/mysql restart
TocyukiTocyuki

DMSでエンドポイントの作成
ソースエンドポイントとターゲットエンドポイントを作成する
今回はEC2 on MySQLがソースでRDSがターゲット

EC2 on MySQLでテストDBを作成する

mysql> CREATE DATABASE SchoolDB;
Query OK, 1 row affected (0.00 sec)
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| SchoolDB           |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
5 rows in set (0.00 sec)

テーブルを作成

mysql> use SchoolDB;
Database changed
mysql> create table students (
    -> subject_id INT AUTO_INCREMENT,
    -> subject_NAME VARCHAR(255) NOT NULL,
    -> teacher VARCHAR(255),
    -> start_date DATE,
    -> lesson TEXT,
    -> PRIMARY KEY (subject_id));
Query OK, 0 rows affected (0.06 sec)

データの挿入

mysql> INSERT INTO students(subject_name, teacher) VALUES ('English', 'John Taylor');
Query OK, 1 row affected (0.00 sec)
mysql>
mysql> INSERT INTO students(subject_name, teacher) VALUES ('Science', 'Mary Smith');
Query OK, 1 row affected (0.01 sec)
mysql>
mysql> INSERT INTO students(subject_name, teacher) VALUES ('Maths', 'Ted Miller');
Query OK, 1 row affected (0.01 sec)
mysql>
mysql> INSERT INTO students(subject_name, teacher) VALUES ('Arts', 'Suzan Carpenter');
Query OK, 1 row affected (0.01 sec)

データの確認

mysql> select * from students;
+------------+--------------+-----------------+------------+--------+
| subject_id | subject_NAME | teacher         | start_date | lesson |
+------------+--------------+-----------------+------------+--------+
|          1 | English      | John Taylor     | NULL       | NULL   |
|          2 | Science      | Mary Smith      | NULL       | NULL   |
|          3 | Maths        | Ted Miller      | NULL       | NULL   |
|          4 | Arts         | Suzan Carpenter | NULL       | NULL   |
+------------+--------------+-----------------+------------+--------+
4 rows in set (0.00 sec)
TocyukiTocyuki

RDSの現在の状況を確認し、SchoolDBがないことを確認

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| myrdsdatabase      |
| mysql              |
| performance_schema |
+--------------------+
4 rows in set (0.00 sec)
TocyukiTocyuki

DMSでタスクの作成を実施し、RDSにSchoolDBが追加され、studentsテーブルのデータが移行されていることを確認!

追加でデータを挿入した際にもリアルタイムで反映されている!

これは良いなぁ!

TocyukiTocyuki

DMSまとめ

  • レプリケーションインスタンスを作成
  • ソースエンドポイントとターゲットエンドポイントを作成
  • タスクを作成して移行開始
このスクラップは2024/04/22にクローズされました