やったこと

  • 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
      • %cat /etc/debian_version
    • PHP: 7.4.25→8.2.13→8.2.27
      • %php -v
    • MySQL: 10.3.32-MariaDB→11.1.3-MariaDB→11.4.5-MariaDB
      • %mysql --version
  • 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の復元
    • FTPでログインして直接アップロードする
      • 先に後述のSFTPの設定をする必要
  • 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
        • EXTRA_OPTS='-L 15'
    • ## Debian 12には rsyslogがデフォルトでは入っていない
  • サービスの再起動
    • %sudo /opt/bitnami/ctrlscript.sh restart

その他設定

  • SSH/SFTPの設定
    • SSH KEY (.pem)をダウンロードして設定する必要がある
    • SFTP (WinSCP)は、.pemから.pkkを生成する必要
      • ToolからPuTTYgenを起動して変換
  • 死活監視
    • 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

By admin

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です