このハンズオンでは RDBMS として Amazon RDS for MySQL を利用してきました。
アプリケーションの規模が大きくなったり、高度な機能を利用したい場合、Amazon Aurora (Aurora)を利用することでコストパフォーマンス向上の可能性があります。
Aurora は AWSが提供する独自のDBエンジンですが、MySQL と PostgreSQL と互換性を持ちます。 そのため、既存のツールやアプリケーションへの書き換えの必要性などの影響を可能な限り抑えつつ、移行が可能です。
Aurora は高いスループットと可用性を実現するために、独自のアーキテクチャを採用しています。 もしご興味がある場合は、関連する記事を検索したり、論文 もありますのでご覧下さい。
それでは最初に、WordPressアプリケーションが利用する DBMS (MySQL) を Aurora MySQL に変更してみましょう。 よく利用される 移行方法 として、次の2種類があります。
1つ目の方法は分かりやすく設定も簡単ですが、dumpの生成後に元DBへ書き込みが行われるとデータに差分が発生してしまいます。 また、データ量が大きいと、dumpを出力する処理自体 と その復元 の両方で長時間を要します。 そのため、長いメンテナンス時間を確保可能な場合に適した移行方法であるといえます。
可能な限りダウンタイムを短縮したい場合、2つ目の移行方法を検討します。 これは新旧のDBでエンジンの互換性がある場合に採用が可能であり、切り替えに要する時間のみのダウンタイムを確保すれば移行が可能です。
このセクションでは、2番目の移行方法 (レプリケーション) を採用してみましょう。
AWS Database Migration Service (DMS)を利用すると、様々なDB間での移行が容易になります。詳細はドキュメントをご覧ください。
RDS コンソールを表示します。
左メニューの データベース を選択します
一覧内の DB識別子列にある WordPress用 に作成した DB (wp-user1
) の名前をクリックします(ラジオボタンでの選択ではありません)
表示されるデータベース詳細画面の「アクション」から「Aurora リードレプリカの作成」をクリックします。
以下のように設定を行います。指定がない項目はデフォルト値を受け入れて下さい。
DB エンジンのバージョン
: Aurora (MySQL 5.7) 2.07.2
を選択 (初期選択を利用)DB インスタンスのクラス
: db.t2.small
を選択
DB インスタンス識別子
: aurora-user1
Virtual Private Cloud (VPC)
: handson-user1
を選択アベイラビリティゾーン
: ap-northeast-1a
を選択VPC セキュリティグループ
: 既存の db-user1
のみを選択するように変更します (default
は削除)ログのエクスポート
: 4つの項目の全てで チェックをオン
にします
初期化が完了するまで 約15〜20分 を要するので、ここで休憩をお取りください。
DB スナップショットを使用した MySQL DB インスタンスから Amazon Aurora MySQL DB クラスターへのデータ移行