Skip to content
やったこと
- AWS Lightsail は instance を新規作成した方が、環境アップデートが楽
- Snapshot から instanceの新規作成をやると、旧環境をそのまま引き継ぐのでNG
- もちろん手動でのアップグレードも可能
- Debian 11 (bullseye) → 12 (bookworm) へupgradeの事例
- %cat /etc/debian_version #version確認
- %sudo vi /etc/apt/sources.list
:%s/bullseye/bookworm #対象versionにOSコードネームを置換
- %sudo apt update
- %sudo apt upgrade
- %sudo apt full-upgrade
- 設定ファイルの上書き/置換がそこそこの数必要になる
- %sudo systemctl reboot
- %sudo apt-get autoremove
- %sudo apt-get autoclean
- 新規に instance を作成して、WordPress環境は export/importし、それ以外のpublic_htmlや、Apache2設定、SSL設定などは手動でやる必要がある
- 2022/1/3→2023/12/24→2025/3/20時点の環境にアップデート
- Linux: Debian 8.3.0-6→10.2.1-6→12.10
- PHP: 7.4.25→8.2.13→8.2.27
- MySQL: 10.3.32-MariaDB→11.1.3-MariaDB→11.4.5-MariaDB
- Lightsailのスケールアップ
- REMAINING CPU BURST CAPACITY (PERCENTAGE) の枯渇がひどかったので、
- $3.5USD (512 MB RAM, 1 vCPUs, 20 GB SSD, 1TB transfer) から
- $5.0USD (1 GB RAM, 2 vCPUs, 40 GB SSD, 2TB transfer) へスケールアップ
作業メモ
- AWS LightsailにSSHログインする
- “Connect using our browser-based SSH client”でもできるが、やはりTeraTermがオススメ
- rootになる (suは使えない)
%sudo su -
- ただしrootで作業するとファイル所有者がrootになってしまうので、基本的にはユーザーbitnamiにてsudoで作業推奨
- timezoneをTokyoに修正
%sudo dpkg-reconfigure tzdata
- PHP-FPMが暴走してLightsailのCPU burstを食い尽くす対策する
- www.confの設定変更
%sudo vi /opt/bitnami/php/etc/php-fpm.d/www.conf
pm=static
- memory.confの設定変更
%sudo vi /opt/bitnami/php/etc/memory.conf
pm.max_children=2 # CPU数に合わせる
pm.max.request=500 # PV数に応じて設定
- daily request (PV) ÷ pm.max_children を設定すると1日に1回プロセスが再起動することでメモリ消費肥大化を防ぐ(参考)
- pm=staticの場合には下記の設定は無視される(dynamicのみ有効)
pm.min_spare_servers=1
pm.max_spare_servers=3
- PHPアップロード上限の変更(80MB→3GBMへ)
%sudo vi /opt/bitnami/php/etc/php.ini
upload_max_filesize = 3072M
post_max_size = 3072M
- 上限を上げて置かないと後のWordPressリストアできなくなる
- /home/bitnami/public_htmlの復元
- Apache2の設定
- /opt/bitnami/apache/conf/httpd.conf
- /opt/bitnami/apache/conf/extra/
- httpd-info.conf
- httpd-default.conf
- httpd-vhosts.conf
- /opt/bitnami/apache/conf/vhosts/
- vhostsはFTPでログインして直接アップロードした方が早い
- /opt/bitnami/apache/bin/apachectl configtest で設定確認する
- DNS設定
- CloudflareでまずIPv4のDNS (Aレコード)のみ切り替える
- IPv6 (AAAAレコード)はいったんリネームして無効化しておく
- 注意!
- この作業を行う前に、旧サイトのreCAPTCHAを無効にしないと以後ログイン不能になる
- WP Cerber > アンチスパム > ReCAPTCHA > ログインフォームを保護する
- SSL化 (Let’s Encrypt)
%sudo /opt/bitnami/bncert-tool | tee bncert.log
- この時、DNS recordsでAAAA (IPv6)を有効にしているとコケるので一時的に”Name”を書き換えるなどしてオフにすること
- 設定時に、v4よりもv6を優先して参照しにいき「参照先IPが当サーバと異なる」とエラーで止まる。改修希望
- ドメインはサブドメインも含めて、複数を半角スペース区切りで併記して作成する
- 例: blog.domainA.net domainA.net domainB.com
- コマンド実行時に標準出力を表示しながらファイル保存するため、teeコマンドを使用
- WordPressをリストアする
- 色々試した結果、”WPvivid Backup Plugin”が無料で容量制限なくリストアできた
- なお「復元」は、DNSを切り替えて、ドメイン名で管理画面にログインしてから行うこと。IPアドレスで管理画面にログインした状態で「復元」すると画像リンクがIPアドレスに置換され、リンク切れが発生する原因に
- WordPressの追加的なセキュリティ設定を行う
- WP Cerber SecurityをZip uploadでインストールする(プラグイン追加からインストールできなかったので)
- Apache2のlog rotateの設定
- %sudo vi /etc/logrotate.d/apache
/opt/bitnami/apache/logs/*log {
monthly
rotate 13
dateext
delaycompress
copytruncate
missingok
notifempty
}
- %sudo tail -f /opt/bitnami/apache2/logs/access_log
cronログ有効化 (bncert-toolのcron実行ログ確認のため)
cronログの有効化
- %sudo vi /etc/default/cron
- ## Debian 12には rsyslogがデフォルトでは入っていない
- サービスの再起動
- %sudo /opt/bitnami/ctrlscript.sh restart
その他設定
- SSH/SFTPの設定
- SSH KEY (.pem)をダウンロードして設定する必要がある
- SFTP (WinSCP)は、.pemから.pkkを生成する必要
- 死活監視
- Metric graphsのAlert設定
Notify when CPU utilization is greater than or equal to 50% for 2 times within the last 20 minutes.
Send me a notification when the alarm state changes to OK
Notify when CPU burst capacity (percentage) is less than or equal to 10% for 2 times within the last 10 minutes.
Send me a notification when the alarm state changes to OK