Closed6
AWS DMSを試す
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
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
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)
RDSの現在の状況を確認し、SchoolDB
がないことを確認
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| myrdsdatabase |
| mysql |
| performance_schema |
+--------------------+
4 rows in set (0.00 sec)
DMSでタスクの作成を実施し、RDSにSchoolDB
が追加され、students
テーブルのデータが移行されていることを確認!
追加でデータを挿入した際にもリアルタイムで反映されている!
これは良いなぁ!
DMSまとめ
- レプリケーションインスタンスを作成
- ソースエンドポイントとターゲットエンドポイントを作成
- タスクを作成して移行開始
このスクラップは2024/04/22にクローズされました