AWS | WordPress | EC2からLightsailへの移行方法

AWSとは,Amazon Web Servicesの略であり,アマゾンが提供するクラウドサービスである.私は以前こちらの記事で記したように,Amazon Elastic Compute Cloud (Amazon EC2)を利用したブログを作成した.
EC2の12ヵ月分の無料枠が終了し,コスト上昇した.コスト上昇についての詳細はこちらの記事に記載した.
本記事では,コスト削減のため,EC2からAmazon Lightsailへ移行したので,その方法を以下に記す.
実施環境
WordPress 6.1.1
移行方法
WordPressのバックアップデータの作成方法
WordPressにログインし,"プラグイン"にカーソルを合わせ,"新規追加"をクリックする.

以下画面に遷移する.検索バーに"wp migration"と入力すると,"All-in-One WP Migration"が表示されるので,"今すぐインストール"をクリックする.

インストール完了後,以下のようになるので,"有効化"をクリックする.

WordPressのログイン後の画面にも以下のように表示される.

“All-in-One WP Migration"にカーソルを合わせ,"エクスポート"をクリックする.

以下画面が表示されるので,"エクスポート先"をクリックすると一覧が表示される.私の場合,ローカルにファイルを保存するため,"ファイル"をクリックする.

以下画面が表示されるので,赤枠をクリックする.

ブラウザからローカルに以下ファイルがダウンロードされる.

Amazon Lightsailを利用したWordPressの構築方法
AWSにログインし,赤枠の検索バーに"lightsail"と入力すると,当該サービスが表示されるので,クリックする.

以下画面に遷移するので,"Create instance"をクリックする.

以下画面に遷移する.私の場合,以下のように選択し,スクロールダウンする.

以下画面が表示されるので,今回,一番安いプランを選択した.

最下部までスクロールダウンし,"Create instance"をクリックする.

以下画面に遷移する."WordPress-1″をクリックする.

以下画面に遷移するので,"Connect using SSH"をクリックする.なお,Public IPをコピーしておく.

新たなブラウザが以下のように立ち上がる.

以下コマンドを実行する.
$ cat /home/bitnami/bitnami_application_password
以下のように,パスワードが出力される.

ブラウザを開き,URL入力欄に上記でコピーしたPublic IPを貼り付け,移動すると,以下画面に遷移する.

“Public IP/wp-login.php"と入力すると,以下のようにログインページに遷移する.

以下のように,Usernameを"user"と入力し,上記で取得したパスワードを入力し,"Log In"をクリックする.

以下のように,WordPressにログインすることができる.

静的IPをインスタンスにアタッチする
静的IPをアタッチするにあたり,以下サイトを参考にした.
Amazon Lightsail | 静的 IP を作成し、Amazon Lightsail のインスタンスにアタッチする
Amazon Lightsailにアクセスすると,以下画面に遷移するので,赤枠をクリックする.

以下画面に遷移するので,"Networking"をクリックする.

以下画面に遷移するので,"Attach static IP"をクリックする.

以下画面が表示されるので,"Create and attach"をクリックする.

以下画面に遷移するので,"Continue"をクリックする.

以下画面に遷移する.赤枠のような表示になっていれば静的IPがインスタンスにアタッチされている.

ドメイン設定とSSL化
以下画面に移動すると,赤枠に以下メッセージが記載されている.ドメインがすでに登録されているのであれば,DNSゾーンを作ることによって,Lightsailに加えることができる.
私の場合,EC2でRoute 53を利用してドメイン設定をしているので,Route 53を利用して設定変更した.

AWSにログインし,赤枠の検索バーなどを利用して"Route 53″にアクセスする.

以下画面に遷移するので,"Hosted zone"をクリックする.

以下画面に遷移するので,赤枠のURLをクリックする.

以下画面に遷移する.

“type A"にチェックを入れると右側にレコードの詳細が表示される."Edit record"をクリックする.

以下画面になるので,"Alias"のチェックを消す.

以下画面になるので,Valueに上記のstatic ipを入力し,"Save"をクリックする.

私の場合,"www.xxx.com"を"xxx.com"にリダイレクトさせるため,"Create record"をクリックし,"www.xxx.com"を作成した.Valueには,上記と同じstatic ipを入力した.入力後の画面が以下になる.

以下画面に戻り,赤枠をクリックする.

以下画面に遷移するので,"Connect using SSH"をクリックする.

以下のようにターミナルが開く.

以下コマンドを実行する.
$ sudo /opt/bitnami/bncert-tool
以下画面になるので,進めていく.

以下のようにドメイン名を入力する.以下画面で進めているとき,"www.xxx.com"が含まれていなかったため,Warningが出現している.ただ,上記で,"www.xxx.com"を"xxx.com"にリダイレクトできるようにしているため,当該Warningは出現しないと思われる.

以下画面に進む."Enable HTTP to HTTPS redirection"には"Y"を入力する.

“Enable non-www to www redirection"には"N"を入力し,"Enable www to non-www redirection"には"Y"を入力した.その後,実行の変更に関して承諾するかどうか聞かれるので,問題なければ,"Y"を入力する.

以下画面に進み,"Let’s encrypt Subscriber agreement"に同意するかどうか聞かれるので,問題なければ,"Y"を入力する.

以下画面に進むので,"ENTER"ボタンをクリックすれば完了となる.

ブラウザでドメインを入力すると,以下のように安全な接続がされているサイトが出来上がる.なお,"www.xxx.com"は"xxx.com"にリダイレクトすることもできた.

EC2インスタンス,ELB,RDSの削除
EC2からAmazon Lightsailに移行したので,EC2インスタンスが不要になった.削除しないままだと費用がかかるので,EC2インスタンスの削除の流れを記載する.
AWSにログインし,検索バーもしくは"Services"をクリックし,EC2を選択する.

以下画面に遷移するので,左側の"Instances"をクリックするとインスタンスの一覧を確認することができる.確認したいインスタンスにチェックを入れると詳細を確認することができる.私の場合,"Instance state"をクリックし,"Stop instance"を選択する.

以下のように,"Instance state"が"Stopped"に変化する.上記のWordPressが止まるかを確認する.止まらなければこのまま進める.

以下のように,"Instance state"をクリックし,"Terminate instance"をクリックし,削除する.

以下画面が表示されるので,"Terminate"をクリックする.

削除が成功すれば,以下画面に遷移し,"Successfully terminated i-xxx"と表示される.

“EC2 Dashboard"をクリックし,"Load balancers"をクリックする.

以下画面に遷移する.

削除対象となるLoad balancerにチェックを入れ,"Actions"をクリックし,"Delete load balancer"を選択する.

以下画面が表示される.

削除するload balancerに間違いがないかを確認し,問題なければ,以下のように"confirm"と入力し,"Delete"をクリックする.

以下画面に遷移し,チェックを入れたLoad balancerが削除された.

なお,EC2 Dashuboardをクリックし,"Security groups"を削除するため,以下"Security groups"をクリックした.

以下赤枠にチェックを入れる.

以下画面のようにすべてにチェックが入る.その後,"Actions"をクリックし,"Delete security groups"をクリックしたが,エラーが出てしまい,削除することはできなかったが,その後,削除できた.

EC2に関連するすべてのサービスを削除したと思っていたが,RDSの請求額が変わっていなかった.そのため,RDSの状況を確認した.

AWSにログインし,赤枠の"Services"をクリックし,"RDS"をクリックする.

以下画面に遷移する.赤枠をクリックする.

私の場合,"Tokyo"を選択するとDBインスタンスが残っていた.赤枠の"Databases"をクリックする.

以下画面に遷移する.

対象となるデータベースにチェックを入れ,問題の影響を確認するため,"Actions"をクリックし,"Stop temporarily"をクリックする.

以下画面が表示されるので,チェックを入れ,"Stop temporarily"をクリックする.

以下画面に遷移する.

問題なさそうなので,再度対象となるデータベースにチェックを入れ,"Actions"をクリックし,"Delete"を選択する.

以下画面が表示されるので,以下文言にチェックを入れ,削除確認のため,以下のように"delete me"を入力し,"Delete"をクリックする.

以下画面に遷移する.

削除に成功すると,以下のような文言が表示される.

以下のように,無事に削除された.

バックアップしたデータをWordPressにアップロードする
WordPressにログインをする.

ログイン後,以下画面になるので,"Plugins"にカーソルを合わせ,"Installed Plugins"をクリックする.

以下のように,"All-in-One WP Migration"があるので,"Activate"をクリックする.

以下のように,"All-in-One WP Migration"がインストールされるので,"Import"をクリックする.

以下画面に遷移する.アップロードできる最大のファイルサイズが80MBになっている.私がバックアップしたファイルが900MBなので足りないことがわかる.
そのため,こちらの記事を利用して最大のファイルサイズを2GBにした.

以下のように,アップロードできる最大のファイルサイズを2GBに拡大したので,"IMPORT FROM"をクリックする.

以下のようになるので,"FILE"を選択する.

選択するファイルが以下ファイルとなる.こちらのファイルは上記でバックアップしたファイルとなる.

選択後,以下のように進む.

以下画面に移動するので,"PROCEED"をクリックする.

以下画面になる.

インポートが完了すると,以下画面に変わる."FINISH"をクリックする.

WordPressに移動すると以下のようにサイトを元通りにすることができた.

コスト削減の結果
EC2からLightsailに変えた結果は以下になる.なお,費用は1日当たりの費用になる.
- EC2(RDS, ELB, EC2)を利用(2/27-2/28): 費用は1日2.17ドル(月65.1ドル見込)となった
- EC2(RDS)を利用(3/7-3/11): 費用は1日0.95ドル(月28.5ドル見込)となった
- Lightsailを利用(3/13-3/14): 費用は1日0.24ドル(月7.2ドル見込)となった

参照
It words for me | EC2からAmazon Lightsailへのブログ引っ越し
TechAcademy | WordPressのサイトを別のサーバーに移行する方法【初心者向け】
Narumium Blog | 【AWS】EC2からLightsailに乗り換え
specially198のブログ | WordPressをAWSのLightsailに移行する
Amazon Lightsail | 既存の WordPress ブログを Amazon Lightsail に移行する
サムライ・コンピューター | Amazon Lightsail + WordPress に移行②(データ移行・SSL化まで)
アントレプレナー | Amazon LightsailでのパブリックIP固定化・SSL化方法【WordPress】
Amazon Lightsail | Using Amazon Route 53 to point a domain to an Amazon Lightsail instance
AWS | Simple Storage Service (Amazon S3) と Amazon Route 53 を使用して apex ドメインを別のドメインにリダイレクトする方法はありますか。
Amazon Lightsail | ドメインを Lightsail インスタンスにポイントする
以上