VSCodeのRemote-SSHでEC2に繋がらなくなった
1. エラーの概要と原因
・PHPからファイルをアップロードすると404エラーが起こる

要点: これはサーバーのディスク容量が不足しており、セッション情報を書き込むファイルが生成できない状態でした。実際にSSHでサーバーにログインして df -h
コマンドを実行すると、/
(ルートパーティション)がほぼ100%使用されていることが確認できます。
2. 対処方法一覧
ディスク容量を圧迫している原因を特定し、不要ファイルを削除し、空き容量を増やす方法を順番にご紹介します。
- ディスクの使用状況を確認する
- 不要ファイルの削除(ログファイル、キャッシュ、セッションファイルなど)
- swapファイルの削除や古いカーネルの削除
- VS Code Serverなどの大容量ディレクトリを整理
- EBSボリュームの拡張
2-1. ディスクの使用状況を確認
まずは、どこが一番容量を消費しているのか特定します。SSHでログインし、以下のコマンドを実行します。
sudo du -ahx / | sort -rh | head -20
- du -ahx /: すべてのファイルとディレクトリのサイズを表示
- sort -rh: サイズが大きい順にソート
- head -20: 上位20件だけ表示
これにより、最も容量を使っているファイル・ディレクトリを特定できます。
2-2. 不要ファイルを削除する
2-2-1. ログファイルの削除
/var/log/
ディレクトリにあるログファイルが大容量になっている場合、下記のように削除・サイズの初期化が可能です。
sudo rm -rf /var/log/*.log
sudo rm -rf /var/log/*.gz
sudo rm -rf /var/log/journal/*
sudo journalctl --vacuum-size=100M
補足:
journalctl --vacuum-size=100M
でシステムログの容量を100MBに制限できます。
2-2-2. キャッシュの削除
sudo yum clean all # (Amazon Linux / CentOS系)
sudo rm -rf /var/cache/*
2-2-3. PHPセッションファイルの削除
sudo rm -rf /var/lib/php/session/*
これにより、溜まっているセッションファイルを一括削除します。
2-3. swapファイルの削除
以下の手順でswapファイルが不要であれば削除できます。
- 現在使用しているswapをオフにする:
sudo swapoff /swapfile
- swapfileを削除する:
sudo rm -f /swapfile
注意: swapを必要としているシステム環境やアプリケーションがある場合は、削除によりメモリ不足となるリスクがあるため、慎重に検討してください。
2-4. 不要なVS Code Serverを削除
VS CodeのRemote SSH機能でEC2に接続し、開発している場合、~/.vscode-server/
フォルダに大容量のファイルが蓄積されることがあります。
- リモートSSH機能を使っていない or 一度インストールし直しても良い 場合は、下記コマンドで削除可能です。
rm -rf /home/ec2-user/.vscode-server
- 削除しても、後日再度VS CodeのRemote SSH機能で接続すると、自動的に再インストールされます。
2-5. EBSボリュームの拡張(最終手段)
ディスク容量がどうしても不足する場合、AWSのEBSボリュームの拡張を行う方法もあります。
- AWS マネジメントコンソールで対象のEC2インスタンスにアタッチされたEBSのサイズを拡張
- EC2へSSH接続し、以下のコマンドでパーティションを拡張
sudo growpart /dev/nvme0n1 1 sudo resize2fs /dev/nvme0n1p1
※デバイス名は環境によって異なります。
4. まとめ
du
コマンドなどで大容量を占めているファイルを特定し、不要ファイルの削除を行う- 必要に応じて EBSボリュームを拡張 し、容量不足に陥らないよう設計を見直す
特にAWSなどの仮想環境では、初期ボリュームが8GBや10GBと少ないことが多いので、定期的なメンテナンス も心がけましょう。
ぜひ、同様のエラーでお困りの方は参考にしてください。