Auroraでデータが確認できました。 次は、WordPressアプリケーションからみて、利用するDBインスタンスを変更します。
それを踏まえて、ここでは 簡易的な「メンテナンス中」であることを伝える手段として、 WordPress を実行する Webサーバーの前段の ALBで、メンテナンス中であることを伝えるようにしてみます。
EC2のコンソールから、「ロードバランサー」を選び、作成したALB(elb-user1
など)を選択します。
「ルールの表示/編集」をクリックします。
*
に設定under maintenance
など好きなメッセージを入力ルールを保存し、数秒すると、WordPressのサイトにWebブラウザからアクセスしても、設定した メッセージ文字列 が返ってくる状態になります。
では、RDS for MySQL から Aurora MySQL へのレプリケーションを切断し、Aurora クラスターを単独で利用するための準備を行います。
昇格は 数分(1-2分程度) を要します。
完了したかどうかを確認するには、左のメニューから「イベント」を選択し、次のイベントが出力されているかを確認します。 (定期的に リロードボタンをクリックして表示を更新し、確認して下さい)
aurora-user1-cluster
などの名前クラスター
Promoted Read Replica cluster to a stand-alone database cluster.
これで RDS for MySQL とのレプリケーションは切断され、独立した Auroraクラスター として動作するようになりました!
念の為、Auroraの書き込みエンドポイントに接続できるか確認してみましょう。
手順は先ほどと同様です。(省略しますが、ここで行って下さい)
この状態では、WordPressはまだ接続先とすべきDBが変わったことを知りません。
現在の設定では各インスタンスに接続情報を持っているため、これを1つづつ変更します。
本番環境では通常避けるべきことですが、DBの接続情報などをハードコードしていると変更耐性が極めて低く、障害発生時に特に対応が困難となります。 ワークロードによりますが、様々な場面を考慮し、より変更に強い構成を採用しましょう。
/var/www/html/wp-config.php
ファイルの DB_HOST
変数の値 をAuroraクラスターの 書き込みエンドポイント
に変更して保存します。sh-4.2$ vi /var/www/html/wp-config.php
<?php
/**
* WordPress の基本設定
*
* このファイルは、インストール時に wp-config.php 作成ウィザードが利用します。
* ウィザードを介さずにこのファイルを "wp-config.php" という名前でコピーして
* 直接編集して値を入力してもかまいません。
*
* このファイルは、以下の設定を含みます。
*
* * MySQL 設定
* * 秘密鍵
* * データベーステーブル接頭辞
* * ABSPATH
*
* @link https://ja.wordpress.org/support/article/editing-wp-config-php/
*
* @package WordPress
*/
// 注意:
// Windows の "メモ帳" でこのファイルを編集しないでください !
// 問題なく使えるテキストエディタ
// (http://wpdocs.osdn.jp/%E7%94%A8%E8%AA%9E%E9%9B%86#.E3.83.86.E3.82.AD.E3.82.B9.E3.83.88.E3.82.A8.E3.83.87.E3.82.A3.E3.82.BF 参照)
// を使用し、必ず UTF-8 の BOM なし (UTF-8N) で保存してください。
// ** MySQL 設定 - この情報はホスティング先から入手してください。 ** //
/** WordPress のためのデータベース名 */
define( 'DB_NAME', 'wordpress' );
/** MySQL データベースのユーザー名 */
define( 'DB_USER', 'admin' );
/** MySQL データベースのパスワード */
define( 'DB_PASSWORD', 'wordpress' );
/** MySQL のホスト名 */
define( 'DB_HOST', 'aurora-user1-cluster.cluster-cxswvm02cbrf.ap-northeast-1.rds.amazonaws.com' ); ← このホスト名をAurora書き込みエンドポイントに変更
/** データベースのテーブルを作成する際のデータベースの文字セット */
define( 'DB_CHARSET', 'utf8mb4' );
/** データベースの照合順序 (ほとんどの場合変更する必要はありません) */
define( 'DB_COLLATE', '' );
先ほど行った、メンテナンス用ルールを削除します。
本来はこの前に、社内のみ確認できるような経路を作り、問題がないことを検証すべきですが、今回は割愛します。
数秒後に今までと同じページが表示されていれば成功です!
もちろん、本番環境ではあれば、切り替えられているかどうかは 各種ログ や 各種メトリクスなども併せて複合的に確認を行うべきです。
停止するまでは2,3分ほどかかります。「停止済み」状態になったことを確認したら、EC2インスタンス から mysqlコマンド で接続を試行したり、WordPressのページにアクセスしたりして状況を確認してみましょう。
これで Aurora MySQLクラスター への DB移行 が完了したことになります。
次のセクションへ進んで下さい。