Yuta NakataのBlog

Python / AWS / ITについて役立つ情報を発信します

EC2でOS Error Not enough free space to write XXXXXX bytesが出た場合

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

これで拡張完了です。

参考文献

engineers.weddingpark.co.jp