LightSailでの問題内容
LightSailでWebアプリケーションをデプロイしているのですが、サイトに接続できない事象が発生します。
再起動すれば解消されるのですが、、
LightSailのWebコンソールからssh接続をしようとすると下記のメッセージです
インスタンスでエラーが発生し、接続が閉じられました。もう一度お試しになるか、カスタマーサポートまでお問い合わせください。
コンソールからCPU使用率を見てみましたが、問題なさそうです

つぎにメモリの問題かと思い、コンソールからは確認できなさそうでしたので、ssh接続してログファイルを見てみました
/var/log$ ls
README btmp dmesg.3.gz lastlog syslog
alternatives.log btmp.1 dmesg.4.gz letsencrypt syslog.1
alternatives.log.1 chrony dpkg.log mysql syslog.2.gz
amazon cloud-init-output.log dpkg.log.1 nginx syslog.3.gz
apport.log cloud-init.log journal php8.3-fpm.log syslog.4.gz
apt cloud-init.log.1 kern.log php8.3-fpm.log.1 sysstat
auth.log dist-upgrade kern.log.1 php8.3-fpm.log.2.gz ubuntu-advantage-apt-hook.log
auth.log.1 dmesg kern.log.2.gz php8.3-fpm.log.3.gz unattended-upgrades
auth.log.2.gz dmesg.0 kern.log.3.gz php8.3-fpm.log.4.gz wtmp
auth.log.3.gz dmesg.1.gz kern.log.4.gz private
auth.log.4.gz dmesg.2.gz landscape supervisor
/var/log$ grep -i "out of memory" /var/log/syslog
2025-12-14T14:40:03.080607+00:00 ip-172-26-2-247 kernel: Out of memory: Killed process 2831 (mysqld) total-vm:1788552kB, anon-rss:425976kB, file-rss:2868kB, shmem-rss:0kB, UID:111 pgtables:1248kB oom_score_adj:0
2025-12-16T04:44:08.720025+00:00 ip-172-26-2-247 kernel: Out of memory: Killed process 840 (mysqld) total-vm:1789492kB, anon-rss:431520kB, file-rss:2920kB, shmem-rss:0kB, UID:111 pgtables:1248kB oom_score_adj:0
2025-12-16T17:05:57.784343+00:00 ip-172-26-2-247 kernel: Out of memory: Killed process 846 (mysqld) total-vm:1788456kB, anon-rss:400412kB, file-rss:2820kB, shmem-rss:0kB, UID:111 pgtables:1184kB oom_score_adj:0ログに記録されている Out of memory: Killed process (mysqld) は、OSがシステム全体のクラッシュを防ぐために、最もメモリを消費していたMySQLを強制的に停止させた(OOM Killer)ことを示しています。
つまり物理メモリが足りなくなり、MySQLが動作を維持できなくなった。
メモリ不足対策
1. スワップファイル(仮想メモリ)を作成する(推奨)
Lightsailの低価格プラン(512MBや1GBメモリ)では、スワップ設定がないとすぐにこのエラーが起きます。HDD/SSDの一部をメモリとして代用する設定です。
Bash
# 2GBのスワップファイルを作成する例
sudo fallocate -l 2G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
# 再起動後も有効にする設定
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
2. MySQLのメモリ使用量を制限する
MySQL(InnoDB)の設定で、メモリを使いすぎないように制限をかけます。 /etc/mysql/mysql.conf.d/mysqld.cnf などの設定ファイルで、以下の値を調整(または追記)することを検討してください。
innodb_buffer_pool_size: 小さめの値(例: 128M や 256M)に設定する。
3. プランのアップグレード
もしアクセス数が多い、あるいは複数のサービス(Nginx + PHP + MySQL)を動かしている場合、現在のメモリ容量では限界の可能性があります。Lightsailのコンソールから一つ上のプランへ「スナップショットから作成」で移行するのが最も根本的な解決策です。