wordpressの DBを AWS RDS から AWS EC2のdockerコンテナ内の mysqlに移行
ある日こんなメールが届いた。
AWS RDS を常時起動していると、一番安いt2.micro プランでも 1か月で約$35くらいいくみたい。。高っか。。。
ということで、mysql を AWS RDS から、EC2内に移行しようと思い、やってみました!
やったこと
ざっくり以下の内容。
- AWS RDS からwordpressのDBをダンプ
- wordpress 起動用yamlファイルにmysqlの設定を追記
- mysqlにAWS RDSからダンプしたデータを読み込ませる
- AWS RDS を削除←重要!!!!!!
AWS RDS からwordpressのDBをダンプ
以下のコマンド1つで終わる。以下のコマンドは、 wordpress というDBをwordpress.sqlというファイル名でダンプする際のコマンド。
mysqldump -u admin -p -h 【AWS RDSのドメイン名】 -r wordpress.sql wordpress
wordpress 起動用yamlファイルにmysqlの設定を追記
と、その前に、先ほどダンプしたDBデータを以下のように配置する。
mkdir db
cp wordpress.sql ./db
上記のmysql ダンプファイルの場所を踏まえ記載したyamlファイルを以下に示す。
mysql として、dbというサービスを追記している。64行目で、先ほどダンプしたDBデータを読み込んでいる。ちなみに、.sqlというデータを、「
docker-entrypoint-initdb.d」というディレクトリに配置すれば、mysqlコンテナ起動時に自動的にインポートしてくれる!お手軽!インポートは1回すればよいので、mysql のdocker コンテナを 1回起動すれば、62行目の記載は不要。これは、62行で mysql のDBデータを永続化しているからである。
これで、docker-compose すれば、EC2内の docker コンテナ内の mysql で wordpress が動く!!
おしまい!!