EC2で稼働していたWordPressをLightsailに移行してみました。
EC2では使用料金が上がってきたので、Lightsailを使用することにしました。
Lightsailは月額$3.5から使用できて、サーバーを立ち上げるのが、とても楽ですね。
個人でWordPressを運用するくらいでしたら、Lightsailが楽だなと感じました。
ただ、簡単に立ち上げられるからといっても、躓いたポイントがありました。
立ち上げたらすぐに使えるが売りなんでしょうけど、動作が安定せず落ちてしまったり、意外とカスタマイズしないといけないところが多かったので、移行の手順と共に、まとめたいと思います。
Lightsailのインスタンスを作成
AWSのLightsailのページを開きます。
最初はLightsailのインスタンスが1つもない状態なので、「インスタンスの作成」ボタンをクリックします。
作成するインスタンスの情報を入力します。
デフォルトのままでも良いのですが、プランとインスタンスの名前を変更します。
プランは月額$3.5のプランだと、メモリが512MBになり、さすがにちょっと少ないので、月額$5(メモリ1GB)くらいが良いのかもしれません。
今回は$5のプランを選択しました。
インスタンスの作成が完了すると、保留中の状態で表示されます。
保留中でしばらく待つと、実行中に変わり、使用できる状態になります。
固定IPアドレスの設定
パブリックIPはインスタンスの再起動をすると変わってしまうので、静的IPを作成して、IPアドレスを固定にします。
ネットワーキングタブを開き、「静的IPの作成」リンクをクリックします。
静的IPアドレスの作成ページが開きます。
デフォルトのままでも良いですが、必要に応じてリソース名を変更してください。
これで静的IPの作成が完了です。
ここに表示されているIPアドレスは固定IPアドレスとなり、再起動しても変わりません。
WordPressにログイン
WordPressにログインするためのパスワードを確認します。
以下赤枠のアイコンをクリックして、サーバーに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」を使用します。
デフォルトだと、最大アップロードファイルサイズは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
再起動後に確認すると、最大アップロードファイルサイズが変更されたのを確認できました。
あとはインポートを行えば、データ移行ができます。
独自ドメインの紐付け
ドメイン管理は、人によってやり方が違うと思うので、詳細は割愛しますが、上記で作成したLightsailの静的IPアドレスをDNSに設定します。
Lightsailにはドメイン管理ができる機能も付いてるので、それを利用するのも良いかもしれません。
詳細は以下の公式ドキュメントを参考にしてください。
https://lightsail.aws.amazon.com/ls/docs/ja_jp/articles/lightsail-how-to-create-dns-entry
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 VMsBitnami VMs. Contribute to bitnami/vms development by creating an account on GitHub.
Press [Enter] to continue:
サイトを確認して、SSLで表示できれば完了です。
※上記でデータインポートを行いましたが、独自ドメインを紐付けた際に、一部の画像などでURLが置き換わらず、静的IPのままで参照する場合があります。
その場合はSSL化後にデータインポートを再度やり直すと良いと思います。