WordPressをAWSのLightsailに移行する

AWS

EC2で稼働していたWordPressをLightsailに移行してみました。

EC2では使用料金が上がってきたので、Lightsailを使用することにしました。
Lightsailは月額$3.5から使用できて、サーバーを立ち上げるのが、とても楽ですね。
個人でWordPressを運用するくらいでしたら、Lightsailが楽だなと感じました。

ただ、簡単に立ち上げられるからといっても、躓いたポイントがありました。
立ち上げたらすぐに使えるが売りなんでしょうけど、動作が安定せず落ちてしまったり、意外とカスタマイズしないといけないところが多かったので、移行の手順と共に、まとめたいと思います。

Lightsailのインスタンスを作成

AWSのLightsailのページを開きます。
最初はLightsailのインスタンスが1つもない状態なので、「インスタンスの作成」ボタンをクリックします。

Lightsail

作成するインスタンスの情報を入力します。
デフォルトのままでも良いのですが、プランとインスタンスの名前を変更します。
プランは月額$3.5のプランだと、メモリが512MBになり、さすがにちょっと少ないので、月額$5(メモリ1GB)くらいが良いのかもしれません。
今回は$5のプランを選択しました。

Lightsailのインスタンスを作成

インスタンスの作成が完了すると、保留中の状態で表示されます。

保留中でしばらく待つと、実行中に変わり、使用できる状態になります。

Lightsailインスタンスの作成が完了

固定IPアドレスの設定

パブリックIPはインスタンスの再起動をすると変わってしまうので、静的IPを作成して、IPアドレスを固定にします。

ネットワーキングタブを開き、「静的IPの作成」リンクをクリックします。

ネットワーキング

静的IPアドレスの作成ページが開きます。
デフォルトのままでも良いですが、必要に応じてリソース名を変更してください。

静的IPアドレスの作成

これで静的IPの作成が完了です。
ここに表示されているIPアドレスは固定IPアドレスとなり、再起動しても変わりません。

静的IPの作成完了

WordPressにログイン

WordPressにログインするためのパスワードを確認します。
以下赤枠のアイコンをクリックして、サーバーにSSHで接続します。

SSHで接続

ブラウザ上でSSH接続が行えます。

ブラウザ上でSSH接続

以下のコマンドを実行すると、パスワードが確認できます。

cat bitnami_application_password

上記で設定した静的IPを使用して、WordPressを開きます。
以下のように、/wp-adminにアクセスするとログイン画面が表示されるので、ユーザ名は「user」、パスワードは上記で確認したパスワードを入力してログインします。
http://[静的IPアドレス]/wp-admin

正常にログインできれば、以下のようにダッシュボードが表示されます。

PHP-FPMの設定を変更

設定ファイルを開きます。

sudo vi /opt/bitnami/php/etc/php-fpm.d/www.conf

まず、起動プロセス数の制御についてです。
デフォルトでは、pm=dynamic と、起動数を動的に変更するようになっています。
しかし、ホストしているサーバは、 1コアCPUで動的に変える必要もないので、pm=static に変更し、設定した数を常に起動しておくようにします。

;pm=dynamic
pm=static

続いて、プロセスの最大起動数です。
別の設定ファイルになるので、memory.conf を開きます。

sudo vi /opt/bitnami/php/etc/memory.conf

サーバのCPUコア数が1で、同時に実行できるプロセス数は1となるので、pm.max_children は1にしました。

;pm.max_children=15
pm.max_children=1

プロセスは1日1回再起動するようにしたいので、pm.max_requests は1日のPV数にしました。

;pm.max_requests=5000
pm.max_requests=300

設定を反映させるために再起動します。

sudo /opt/bitnami/ctlscript.sh restart

Swap領域を640MBから4GBに増やす

メモリを確認すると、Swap領域が少ないので増やします。

$ free
              total        used        free      shared  buff/cache   available
Mem:        1010952       58260      101584        2852      851108      803436
Swap:        649996         256      649740
$ sudo -i
$ swapon -s
Filename				Type		Size	Used	Priority
/mnt/.bitnami.swap                     	file    	649996	256	-2
$ swapoff /mnt/.bitnami.swap
$ rm /mnt/.bitnami.swap
$ dd if=/dev/zero of=/mnt/.bitnami.swap bs=1M count=4096
4096+0 records in
4096+0 records out
4294967296 bytes (4.3 GB, 4.0 GiB) copied, 120.577 s, 35.6 MB/s
$ chmod 600 /mnt/.bitnami.swap
$ mkswap /mnt/.bitnami.swap
Setting up swapspace version 1, size = 4 GiB (4294963200 bytes)
no label, UUID=22139da9-355b-4ceb-b9d2-858f340ffd2d
$ swapon /mnt/.bitnami.swap

変更後、メモリを確認すると、4GBに増えたことが確認できました。

$ free
              total        used        free      shared  buff/cache   available
Mem:        1010952       60712       61812        2884      888428      795696
Swap:       4194300           0     4194300

また、インスタンスを再起動した場合も変更を維持するようにしておきます。

$ echo "/mnt/.bitnami.swap swap swap defaults 0 0" >> /etc/fstab

WordPressのデータを移行

データ移行には、WordPressのプラグイン「All-in-One WP Migration」を使用します。

All-in-One WP Migration

デフォルトだと、最大アップロードファイルサイズは80MBになっています。
対象のデータサイズがそれより大きい場合は、最大アップロードファイルサイズを大きくします。

大きくするにはphp.ini を修正します。
php –ini と実行すると、php.ini の場所が分かります。

$ php --ini
Configuration File (php.ini) Path: /opt/bitnami/php/lib
Loaded Configuration File:         /opt/bitnami/php/lib/php.ini
Scan for additional .ini files in: /opt/bitnami/php/etc/conf.d
Additional .ini files parsed:      (none)
vi /opt/bitnami/php/lib/php.ini

変更するのは以下の3つです。
最大アップロードファイルサイズを1Gにしたい場合は、それぞれを1Gに変更します。

upload_max_filesize = 80M
post_max_size = 80M
memory_limit = 512M

設定を反映させるために再起動します。

sudo /opt/bitnami/ctlscript.sh restart

再起動後に確認すると、最大アップロードファイルサイズが変更されたのを確認できました。
あとはインポートを行えば、データ移行ができます。

All-in-One WP Migration

独自ドメインの紐付け

ドメイン管理は、人によってやり方が違うと思うので、詳細は割愛しますが、上記で作成したLightsailの静的IPアドレスをDNSに設定します。

Lightsailにはドメイン管理ができる機能も付いてるので、それを利用するのも良いかもしれません。
詳細は以下の公式ドキュメントを参考にしてください。

Amazon Lightsail でドメインの DNS レコードを管理する DNS ゾーンを作成する | Lightsail ドキュメント

SSL対応

ドメインの紐付けができたら、SSL化をします。
Bitnamiには「HTTPS Configuration Tool」というツールがあり、証明書の取得やHTTPSへのリダイレクト、自動更新などを行ってくれるので、これを利用します。

$ sudo /opt/bitnami/bncert-tool

アップデートがある場合はアップデートするか、を聞かれる場合があるので、y を入力してアップデートします。
アップデートした場合は、再度上記のコマンドを実行します。
下記の設定の記述に関しては一例なので、適宜変更してください。

対象のドメインを入力します。

Domain list []: xxxxx.specially198.com

www付きのドメインも対象にするか?と聞かれるので、y を入力します。

The following domains were not included: www.xxxxx.specially198.com. Do you want to add them? [Y/n]: y

HTTP→HTTPSのリダイレクトを有効にするか?と聞かれるので、y を入力します。

Enable HTTP to HTTPS redirection [Y/n]: y

wwwなし→wwwありのリダイレクトを有効にするか?と聞かれるので、n を入力します。

Enable non-www to www redirection [Y/n]: n

wwwあり→wwwなしのリダイレクトを有効にするか?と聞かれるので、y を入力します。

Enable www to non-www redirection [y/N]: y

設定内容の確認が表示されます。
内容に問題がなければ、y を入力します。

Changes to perform

The following changes will be performed to your Bitnami installation:

1. Stop web server
2. Configure web server to use a free Let's Encrypt certificate for the domains: 
xxxxx.specially198.com www.xxxxx.specially198.com
3. Configure a cron job to automatically renew the certificate each month
4. Configure web server name to: xxxxx.specially198.com
5. Enable HTTP to HTTPS redirection (example: redirect 
http://xxxxx.specially198.com
to https://xxxxx.specially198.com) 6. Enable www to non-www redirection (example: redirect www.xxxxx.specially198.com to xxxxx.specially198.com) 7. Start web server once all changes have been performed Do you agree to these changes? [Y/n]: y

証明書に関連付けるメールアドレスを入力します。

E-mail address []: 

契約同意の確認が表示されるので、問題なければ、y を入力します。

The Let's Encrypt Subscriber Agreement can be found at:

https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf

Do you agree to the Let's Encrypt Subscriber Agreement? [Y/n]: y

処理が始まり、「Success」と表示されれば完了です。

Performing changes to your installation

The Bitnami HTTPS Configuration Tool will perform any necessary actions to your 
Bitnami installation. This may take some time, please be patient.

----------------------------------------------------------------------------
Success

The Bitnami HTTPS Configuration Tool succeeded in modifying your installation.

The configuration report is shown below.

Backup files:
* /opt/bitnami/apache/conf/httpd.conf.back.202209061500
* /opt/bitnami/apache/conf/bitnami/bitnami.conf.back.202209061500
* /opt/bitnami/apache/conf/bitnami/bitnami-ssl.conf.back.202209061500
* /opt/bitnami/apache/conf/vhosts/wordpress-https-vhost.conf.back.202209061500
* /opt/bitnami/apache/conf/vhosts/wordpress-vhost.conf.back.202209061500

Find more details in the log file:

/tmp/bncert-202209061500.log

If you find any issues, please check Bitnami Support forums at:

GitHub - bitnami/vms: Bitnami Application Catalog VMs
Bitnami Application Catalog VMs. Contribute to bitnami/vms development by creating an account on GitHub.
Press [Enter] to continue:

サイトを確認して、SSLで表示できれば完了です。

※上記でデータインポートを行いましたが、独自ドメインを紐付けた際に、一部の画像などでURLが置き換わらず、静的IPのままで参照する場合があります。
その場合はSSL化後にデータインポートを再度やり直すと良いと思います。

コメント

タイトルとURLをコピーしました