LoginSignup
2
0

More than 1 year has passed since last update.

Fargateでno space left on device

Last updated at Posted at 2022-06-08

事象

Fargateでデプロイしたら、以下のエラーが発生しました。

CannotCreateVolumeError: unable to mirror
/var/lib/two/volumes/8b081e14781e4f2885380becbbefab29/volumes/vf-4028715966 to
/var/lib/two/volumes/8b081e14781e4f2885380becbbefab29/volumes/public-files: failed to copy
existing contents to task volume: unable to copy contents from the image
/var/lib/two/volumes/8b081e14781e4f2885380becbbefab29/volumes/public-files
/var/lib/two/volumes/8b081e14781e4f2885380becbbefab29/volumes/vf-4028715966: failed to copy files: copy file range failed: no space left on device

調査

  • 何回かやると成功したので、コンテナの中にログインして調べる。

コンテナにECS Execでログイン

aws ecs execute-command \
--cluster {クラスタ名}  \
--task {タスク名} \
--container {コンテナ名} \
--interactive \
--command "/bin/sh"

dfコマンドで調べる

  • Diskがいっぱい・・・。Railsアプリケーションの中身が多いようだ・・。
root@ip-192-168-5-22:/# df -h
Filesystem      Size  Used Avail Use% Mounted on
overlay          30G   30G     0 100% /
tmpfs            64M     0   64M   0% /dev
shm             1.9G     0  1.9G   0% /dev/shm
tmpfs           1.9G     0  1.9G   0% /sys/fs/cgroup
/dev/nvme0n1p1  4.9G  1.9G  3.0G  38% /dev/init
/dev/nvme1n1     30G   30G     0 100% /usr/src/rails/public
tmpfs           1.9G     0  1.9G   0% /proc/acpi
tmpfs           1.9G     0  1.9G   0% /sys/firmware

duコマンドでディレクトリ別に調べる

  • うーん。5.5GBしか使っていない(dfだと30G)
root@ip-192-168-6-103:~# du -h /usr/src/rails/public | grep 'G'
1.2G	/usr/src/rails/public/packs/js
1.2G	/usr/src/rails/public/packs
1.6G	/usr/src/rails/public/packs-test/js
1.6G	/usr/src/rails/public/packs-test
2.7G	/usr/src/rails/public/assets
5.5G	/usr/src/rails/public

AWSサポートに問い合わせたところ、dfコマンドだと、エフェメラルストレージの使用量なので、実際の使用量と差異が発生するとのこと。
つまり、5.5GBも使っていることが問題だった!!!

原因

  • 5.5GB使っていたのは、Railsのassets:precompileの結果をキャッシュしていて、ゴミデータまで一緒にキャッシュされていた為でした。また、それをデプロイしていたのでno space left on deviceが発生しました。
2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0