1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

個人的備忘録:CloudShell で Terraform を実行した際の "no space left on device" エラーの対処法

Last updated at Posted at 2025-03-01

はじめに

AWS CloudShell 上で Terraform を実行した際に、terraform init の段階で以下のようなエラーが発生しました。

Initializing provider plugins...
- Finding latest version of hashicorp/aws...
- Installing hashicorp/aws v5.89.0...

Error: Failed to install provider

Error while installing hashicorp/aws v5.89.0: write
.terraform/providers/registry.terraform.io/hashicorp/aws/5.89.0/linux_amd64/terraform-provider-aws_v5.89.0_x5:
no space left on device

このエラーは、CloudShell のディスク容量が不足していることが原因です。CloudShell の /home/cloudshell-user/dev/loop0 にマウントされており、ディスクの使用率が100% になっていると、Terraform のプラグインをインストールできなくなります。

本記事では、この問題を解決する方法を紹介します。

1. ディスクの空き容量を確認

まず、現在のディスク使用状況を確認します。

df -h

また、ホームディレクトリの使用量を確認するには、以下のコマンドを実行します。

du -sh /home/cloudshell-user/*

今回の環境では、/home/cloudshell-user にマウントされている /dev/loop0 の使用率が 100% になっていました。

Filesystem      Size  Used Avail Use% Mounted on
/dev/loop0      974M  907M     0 100% /home/cloudshell-user

この状態では、新しいファイルを作成できないため、Terraform のプラグインがインストールできません。

2. 不要なファイルを削除

(1) Terraform のキャッシュを削除

Terraform のキャッシュフォルダを削除すると、ディスクの空きを確保できる場合があります。

rm -rf .terraform
rm -rf ~/.terraform.d

その後、terraform init を再試行してください。

(2) 不要なファイルを削除

以下のコマンドで不要なファイルを削除します。

rm -rf ~/Downloads/*
rm -rf ~/.cache/*
rm -rf ~/.npm/*
rm -rf ~/.local/share/Trash/*

Terraform の zip ファイルなど、古いファイルも削除して空き容量を増やします。

rm -f ~/terraform_0.14.2_linux_amd64.zip

3. Terraform の作業ディレクトリを /tmp に移動

CloudShell の /tmp ディレクトリは /home/cloudshell-user とは異なる領域であり、空き容量がある場合があります。そのため、Terraform の作業ディレクトリを /tmp に移動して実行できます。

mv ~/terraform_project /tmp/
cd /tmp/terraform_project
terraform init

4. CloudShell をリセットする

もし /home/cloudshell-user の容量を確保できない場合、CloudShell をリセットすると環境が初期化され、空き容量が回復することがあります。

exit

その後、CloudShell を開き直して Terraform を試してください。

5. Terraform のプラグインキャッシュを /tmp に変更する

デフォルトでは .terraform フォルダが /home/cloudshell-user に作成されますが、プラグインキャッシュの保存先を /tmp に変更することで容量不足を回避できます。

export TF_PLUGIN_CACHE_DIR="/tmp/.terraform.d/plugin-cache"
mkdir -p $TF_PLUGIN_CACHE_DIR
terraform init

6. 別の環境(ローカルマシン・EC2)で実行する

CloudShell のディスク容量には制限があるため、ローカルマシンや EC2 で Terraform を実行するのも選択肢の一つです。

  • EC2 インスタンスを作成
  • Terraform をインストール
  • Terraform のコードを移動して実行

まとめ

No 解決策
1 不要ファイルを削除 (rm -rf .terraform .terraform.d ~/.cache/*)
2 Terraform プロジェクトを /tmp に移動 (mv ~/terraform_project /tmp/)
3 CloudShell をリセット (exit して再接続)
4 Terraform のプラグインキャッシュを /tmp に変更
5 別の環境(ローカル or EC2)で Terraform を実行

CloudShell は便利な環境ですが、ディスク容量の制限があるため、容量不足にならないよう注意しながら作業する必要があります。

今回紹介した対策を試して、Terraform の環境をスムーズに構築してみてください!

1
2
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
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?