【AWS】データベースをEC2からRDSに移行
間違えてEC2を終了してしまい、データが全てなくしてしまった経験を活かし、データベースをRDSに移行しました。
● EC2はLinux t2.microで構築
● RDSはEC2と同じ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にデータベースがコピーできていないことが原因だと思います。
ディスカッション
コメント一覧
まだ、コメントがありません