Uncategorized

VSCodeのRemote-SSHでEC2に繋がらなくなった

かに

1. エラーの概要と原因

・PHPからファイルをアップロードすると404エラーが起こる

要点: これはサーバーのディスク容量が不足しており、セッション情報を書き込むファイルが生成できない状態でした。実際にSSHでサーバーにログインして df -h コマンドを実行すると、/(ルートパーティション)がほぼ100%使用されていることが確認できます。

2. 対処方法一覧

ディスク容量を圧迫している原因を特定し、不要ファイルを削除し、空き容量を増やす方法を順番にご紹介します。

  1. ディスクの使用状況を確認する
  2. 不要ファイルの削除(ログファイル、キャッシュ、セッションファイルなど)
  3. swapファイルの削除や古いカーネルの削除
  4. VS Code Serverなどの大容量ディレクトリを整理
  5. 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ファイルが不要であれば削除できます。

  1. 現在使用しているswapをオフにする:
    sudo swapoff /swapfile
  2. 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ボリュームの拡張を行う方法もあります。

  1. AWS マネジメントコンソールで対象のEC2インスタンスにアタッチされたEBSのサイズを拡張
  2. EC2へSSH接続し、以下のコマンドでパーティションを拡張
    sudo growpart /dev/nvme0n1 1 sudo resize2fs /dev/nvme0n1p1 ※デバイス名は環境によって異なります。

4. まとめ

  • du コマンドなどで大容量を占めているファイルを特定し、不要ファイルの削除を行う
  • 必要に応じて EBSボリュームを拡張 し、容量不足に陥らないよう設計を見直す

特にAWSなどの仮想環境では、初期ボリュームが8GBや10GBと少ないことが多いので、定期的なメンテナンス も心がけましょう。

ぜひ、同様のエラーでお困りの方は参考にしてください。

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

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

記事URLをコピーしました