【AWS】データベースをEC2からRDSに移行

2020年12月9日

間違えてEC2を終了してしまい、データが全てなくしてしまった経験を活かし、データベースをRDSに移行しました。

 EC2Linux t2.microで構築
 RDSEC2と同じVPC上にMySQLにて構築

DB用のセキュリティグループの作成

DBへのアクセスは既存のEC2のみアクセスするように設定していきます

 

DB用のサブネットグループの作成

次にRDSのページに飛んでサブネットグループを作成します。
RDSサブネットグループ⇒DB サブネットグループの作成をクリックします。
名前、説明、VPCやサブネットはEC2のあるところを選択し作成します。

 

RDSでデータベースの作成

データベース作成は”標準作成”
エンジンのタイプは"MySQL"
テンプレートは”無料利用枠”で設定していきます。

EC2からRDSに接続

まずはインスタンスに接続し、RDSに接続出来る事を確認します。

mysql -u admin -p -h ”RDS エンドポイントのホスト名部分”

無事に接続できたら一旦exit で終了します。

 

MySQLのデータを移行する

MySQLのデータをエクスポートする

まずはEC2インスタンスにあるMySQLのデータをエクスポートします。

mysqldump -u root -p ”wordpressのデータベース名” > export.sql

Enter passwordと出るのでEC2 MySQLの管理者パスワードを入力します。
これでEC2上にあるMySQLデータをexport.sqlとして保存します。

MySQLのデータをRDSにインポートする

まずはRDSに空のDBを作成します。

mysql -u admin -p -h ”RDS エンドポイントのホスト名部分”
Enter password:
mysql> create database wordpress;
mysql> exit;

エクスポートしたデータ(export.sql)をRDSにインポートします。

mysql -u admin -p -h ”RDS Endpointのホスト名部分” wordpress < export.sql
Enter password: "RDSの管理者パスワードを入力”

 

正常にインポートされているか下記コマンドで確認します。

mysql -u admin -p -h ”RDS Endpointのホスト名部分” wordpress
Enter password: "RDSの管理者パスワードを入力”
mysql> show tables;
exit

WordPressのDB接続設定

wp-config.phpの修正します。

sudo vi /var/www/html/wp-config.php

" i “を押してINSERTモードに変更

/** MySQL データベースのユーザー名 */
define('DB_USER', '移行元ユーザ名');

/** MySQL データベースのパスワード */
define('DB_PASSWORD', '移行元パスワード');

/** MySQL のホスト名 */
define('DB_HOST', '移行元ホスト');

/** MySQL データベースのユーザー名 */
define('DB_USER', 'マスターユーザ名');

/** MySQL データベースのパスワード */
define('DB_PASSWORD', 'マスターパスワード');

/** MySQL のホスト名 */
define('DB_HOST', 'エンドポイント');

に変更します。

これでAmazon RDSへの移行は完了です。

データベース接続エラーの場合はwp-config.phpの設定が間違っているか、Amazon RDSにデータベースがコピーできていないことが原因だと思います。

AWS,WordPress

Posted by Next-k