💨

WordPressサイトをAWSへ移行する(3)-wordpress to EC2

2022/11/03に公開

はじめに

今回はWordPressサイトをAWSへ移行するの第三弾です。
AWS MGNでの移行-wordpress to EC2-
について公式の資料を元に、解説します。

目次

  1. 構成概要
  2. 全体の流れ
  3. 移行元の環境構築-cloudformation-
  4. AWS DMSでの移行-mysql to RDS-
  5. AWS MGNでの移行-wordpress to EC2- ★←本記事ではここまで
  6. 後片づけ

構成おさらい

【移行手順】

  1. Application Migration Service(MGN)のセットアップ
  2. ソースWebサーバにMGNエージェントをインストール
  3. テストインスタンスの設置、テスト実行
  4. カットオーバーインスタンスの設置、
  5. カットオーバーの実行

AWS MGNでの移行-wordpress to EC2-

レプリケーションサーバテンプレートの作成

MGNのコンソールを開き、settingをクリックします。
【入力情報】

Item Value
Staging area subnet TargetVPC-public-a

MGNエージェントのインストール

ソースWebサーバへアクセスします。
EC2コンソールからsource-WebServerを選択し、接続からSSMでアクセスします。

以下を実行します。

wget -O ./aws-replication-installer-init.py https://aws-application-migration-service-us-west-2.s3.amazonaws.com/latest/linux/aws-replication-installer-init.py
sudo python3 aws-replication-installer-init.py

入力情報を求められるので、以下の情報を入力します。
【入力情報】

Item Value
AWS Region Name us-west-2
AWS Access Key ID ※1
AWS Secret Access Key ※2

無事インストール完了したら終了で閉じます。

MGNコンソールのSource Serversに対象サーバが表示されているはずです。

起動テンプレートを編集

MGNコンソールで対象サーバをクリックし、Launch settingsの
EC2 Launch Templateを修正します。

【入力情報】

Item Value
インスタンスタイプ t3.micro
キーペア linux_servers_ssh_key
サブネット TargetVPC-public-a
パブリックIPの自動割り当て 有効化

起動テンプレートをクリックし、起動テンプレートのバージョンの詳細からアクションを選択します。

3を選択する。

test instanceの実行

MGNコンソールに戻り、Test and cutoverのTesting -> Launch test instancesを選択します。

10 ~ 20分ほどテスト完了まで待ちます。
以下にステータスと次の手順についてまとめます。
【カットオーバー手順】

ステータス 次の手順
Ready for testing Launch test instances
test in progress*[1] Mark as "Ready for cutover"
Ready for cutover Launch cutover instances
cutover in progress finalize cutover

[1]: Launch statusが見えるまで待機します。
※全体的に即次ステップの実行ができないようなので、数分待ちます。

カットオーバーインスタンスの編集

カットオーバーインスタンスが新しいRDSとコネクションさせるために、wordpress側の設定を変更します。

カットオーバーインスタンスのセキュリティグループを編集します。
【入力情報】

Item Value
inbound ssh all
inbound http all

ssh接続をします。

ssh -i linux_servers_ssh_key.pem ubuntu@34.210.87.254
phpファイルの編集
sudo vim /var/www/html/wp-config.php

【入力情報】

Item Value
DB_HOST database-1.xxxxxxx.us-west-2.rds.amazonaws.com
DB_USER admin
DB_PASSWORD ++++(RDS作成時の値)

/* Add any custom values between this line and the "stop editing" line. */の下に、
ターゲットウェブサーバのpublic DNSを入力します。

define('WP_SITEURL', 'http://TARGET_WEBSERVER_PUBLIC_DNS');
define('WP_HOME',    'http://TARGET_WEBSERVER_PUBLIC_DNS');

最後にカットオーバーインスタンスと新RDSサーバが通信させるために新RDSサーバにカットのセキュリティグループを適応します。

カットオーバーインスタンスのPublic DNSをhttpでアクセスすると、
e-commerceが見れます。

Discussion