<Terraform>EC2の/tmpフォルダのサイズを変更する

aws

pip installでOSError(28, ‘No space left on device’)が発生

TerraformでEC2のAmazonLinuxにPython環境を構築している時にpip installがエラー終了したのでその原因と解決方法を調べました。

エラー内容

Downloading torch-2.6.0-cp39-cp39-manylinux1_x86_64.whl (766.7 MB)
 248.8/766.7 MB 63.2 MB/s eta 0:00:09

OSError: [Errno 28] No space left on device

pip._vendor.urllib3.exceptions.ProtocolError: ("Connection broken: OSError(28, 'No space left on device')", OSError(28, 'No space left on device'))

tmpフォルダの容量不足

EC2自体のディスク容量には余裕があったのですが、pip installの場合、tmpフォルダを使用するため、tmpフォルダの容量が不足していたためエラーになっていました。

df -h /tmp
Filesystem      Size  Used Avail Use% Mounted on
tmpfs           475M     0  475M   0% /tmp

tmpフォルダの容量変更

# Amazon Linux3のAMIベースにt2.microのEC2を作成
resource "aws_instance" "xxx-server" {
  ami           = "ami-0dfa284c9d7b2adad" # Amazon Linux3
  instance_type = "t2.micro"

  tags = { Name = "xxx-Instance" }

  # インスタンス起動時に実行するユーザーデータスクリプト
  user_data = <<-EOF
    #!/bin/bash -x

    # /tmpのサイズを2Gに設定(pip installでの容量不足エラー対策)
    echo "tmpfs   /tmp    tmpfs   defaults,size=2G   0   0" >> /etc/fstab
    # /tmpを再マウント
    mount -o remount /tmp
  EOF
}

札幌在住エンジニア。JavaやPHPやWordPressを中心とした記事が中心です。

【SE歴】四半世紀以上
【Backend】php / java(spring) / c# / AdobeFlex / c++ / VB / cobol
【Frontend】 vue.js / jquery他 / javascript / html / css
【DB】oracle / mysql / mariadb / sqlite
【infrastructure】aws / oracle / gcp
【license】aws(saa-c03) / oracle master / XML Master / Sun Certified Programmer for the Java 2 Platform 1.4

Nobelをフォローする
aws
Nobelをフォローする

コメント

タイトルとURLをコピーしました