EC2にログインしたのち、
OS Error Not enough free space to write XXXXXX bytes
とエラーがデータ出た場合の解決方法です。
結論
以下の2STEPで解決できます。
根本的な原因は、EC2にアタッチされているEBS(Elastic Block Store)のストレージサイズの容量不足が原因です。
そこで、
STEP1 : EC2にアタッチされているEBSのサイズを大きくする
です。根本的な問題の解決策としては、こちらで十分です。
これでも解決しない場合、
STEP2 : EC2側でEBSの拡張が認識されていないので、拡張を実施する
で解決することが可能です。
解説と注意点
STEP1と2について、具体的な解説をしていきます。
STEP1
マネジメントコンソールより、ボリュームの変更を実施してみましょう。
尚、ボリュームの変更は、6時間に一度しかできません。
なので、多少ゆとりをもって設定するようにしましょう。
(ちなみに、大体のユースケースにて、gp2よりもgp3のほうが、単位GBあたりの単価が安いので、そちらに変更しましょう)
STEP2
STEP1にて、ストレージサイズの拡張は完了しています。
ただし、EC2側がその変更を検知していない可能性があります。
そこで、
- パーテションの拡張
- ファイルシステムの拡張
を行います。
実行例
まずは、現状確認をしてみましょう。
[ec2-user@ip-100-82-244-154]# df -h Filesystem Size Used Avail Use% Mounted on /dev/xvda1 100G 88G 13G 94% /
ストレージxvda1
が100GBになっています。
パーテションの拡張を、以下のコマンドを用いて行います。
[ec2-user@ip-100-82-244-154]# growpart /dev/xvda 1
続いて、ファイルシステムを拡張していきます。
[ec2-user@ip-100-82-244-154]# xfs_growfs /dev/xvda1
これで拡張完了です。