二流エンジニアの逆襲

二流エンジニアが一流エンジニアになるまでの記録である

wordpressの DBを AWS RDS から AWS EC2のdockerコンテナ内の mysqlに移行

ある日こんなメールが届いた。

AWS RDS を常時起動していると、一番安いt2.micro プランでも 1か月で約$35くらいいくみたい。。高っか。。。

気づいたらこんな事なっていたの図

ということで、mysqlAWS RDS から、EC2内に移行しようと思い、やってみました!

やったこと

ざっくり以下の内容。

  • AWS RDS からwordpressのDBをダンプ
  • wordpress 起動用yamlファイルにmysqlの設定を追記
  • mysqlAWS 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 コンテナ内の mysqlwordpress が動く!!

おしまい!!