やりたいこと

 WordPressが載っているインスタンス(Amazon Linux AMI)を新しいインスタンス(Amazon Linux 2)にリプレースしたい。「WordPressに載せてる個人Webサイトをリニューアルしたい」が大目的ですが、細かい理由はざっくり以下です。

  • いつの間にかAmazon Linux AMIさんがサポート終了してしまった
    • バージョンアップのためにはリプレース(インスタンス変更)が必要
  • WordPressさんから「PHPアップデートしてね」と怒られたが、AMIより2のほうが容易そうだった
  • 構築後しばらく放置してしまったのでいっそクリーンインストールしなおしたい

(今回関係ある)実施前の環境

  • Amazon Lightsail [ Amazon Linux ]
    • ドメインをDDNS運用するための静的IPアタッチ
  • WordPress
  • PHP [v5.6]
  • Nginx [v1.12]

 Lightsailインスタンスにはそれぞれバンドルされてるやつもありますが、されてないやつです。
 ちなみに以下は一緒にLightsailのリソースを拡張したときの話:

やったこと

1)現行インスタンスのバックアップと停止
2)新インスタンスの立ち上げ/接続環境整備
3)アプリケーションの導入(リストア)
4)静的IPアドレスのアタッチ/旧インスタンスの削除

1)現行インスタンスのバックアップと停止

 主に以下の情報をバックアップしました。バックアップ事項が足りないと後で困っちゃうので気をつけようね(2回位困った)。

  • NginxのConfig情報
  • WordPressディレクトリ
  • MySQLデータベース
  • その他ホームディレクトリ、shareディレクトリ、cron等使ってるデータ
  • 互換性の関係でアプリケーションのバージョン情報とかも。。。

 バックアップが終わったらインスタンスを停止。

2)新インスタンスの立ち上げ/接続環境整備

 AWSダッシュボードから新インスタンスを立ち上げます。
 ※旧インスタンスが削除されないうちはダブルで課金されちゃうことは注意。
 一番最初にSSH/SCP環境の整備と、ファイアウォール系の設定を実施します(このあたりは詳細割愛)。

3)アプリケーションの導入(リストア)

 以下はamazon-linux-extrasでインストールします。ふつうのyumのリポジトリにあるPHPは5系までしかないので。。。

  • Nginx 1.12/PHP 7.4/MySQL 14.14
$ amazon-linux-extras
  0  ansible2                 available    \
        [ =2.4.2  =2.4.6  =2.8  =stable ]
  3  memcached1.5             available    \
        [ =1.5.1  =1.5.16  =1.5.17 ]
  4 *nginx1.12=latest         enabled      [ =1.12.2 ]
  5  postgresql9.6            available    \
        [ =9.6.6  =9.6.8  =stable ]
  6  postgresql10             available    [ =10  =stable ]
  8  redis4.0                 available    \
・・・・

amazon-linux-extras、なんかいろいろスパッと導入できそうなので活用したい

NginxとPHP:

 socket等含め、(1)でバックアップした設定ファイルを新インスタンス内に設置します。

MySQL:

 サーバサービス起動後、以下設定します。

  • 旧インスタンスからエクスポートしたデータベースのインポート
  • WordPress用ユーザの作成と権限付与

WordPress:

 旧インスタンスでバックアップしたファイル群を配置します。
 ※配置したユーザの権限によってはchownでnginxが触れるようにします。
 また、wp-config.phpにて↑で設定したMySQL DB情報を反映します。

動作確認:

 ここまでで新インスタンスにて元通り動作しているはず!!!!!

4)静的IPアドレスのアタッチ/旧インスタンスの削除

 (3)までで新インスタンスが正常に立ち上がったはずなので、旧インスタンスに紐付いていた静的IPアドレスを旧からデタッチし、新へアタッチし直します。
 新にて正常にアクセスできることが確認できれば、さよなら旧インスタンス!!!!!!

無事完了

 壊しちゃったらどうしようとかって思ってましたが、無事リプレース完了できました。かわいい個人サイトつくろうね。(このサイトよろしくね。)