CATHODE COASTaccess to tools
6 min read

g6.xlarge (L4)で FLUX.1 schnell を回したら7〜8秒/枚——Ubuntu 最小AMIの6つの罠

EC2 g6.xlarge(NVIDIA L4)に ComfyUI + FLUX.1 schnell FP8 を載せ、1024×1024 を7〜8秒/枚で生成するまでの作業ログ。Ubuntu 最小AMIのドライバ・triton・CUDA版ズレなど、起動までに踏んだ6つの罠と正解手順をまとめる。

shareB!

はじめに

運用中の Web サービスに画像生成機能を組み込むにあたり、API 課金型のマネージドサービスと自前 GPU の EC2 とを比較したくなりました。そこで「EC2 の GPU インスタンスで FLUX.1 schnell が実用速度で回るか」を実機で確かめた記録です。結論から言うと性能は文句なしでしたが、起動までに想定外のつまずきが6つありました。同じ構成を組む人(と未来の自分)のために、間違った手順と正解の両方を残します。

検証環境(2026年8月時点):

  • EC2 g6.xlarge(NVIDIA L4 24GB / RAM 16GB / vCPU 4、東京リージョン、約$1.2/時)
  • AMI: Canonical Ubuntu Server 24.04(SSM パラメータ /aws/service/canonical/ubuntu/server/24.04/stable/current/amd64/hvm/ebs-gp3/ami-id で取れる最新版)
  • ディスク: ルート 30GB gp3 + モデル用 50GB gp3(/mnt/models にマウント)+ インスタンスストア 232.8GB を swap に
  • NVIDIA ドライバ 595.71.05(CUDA 13.2)/ uv + Python 3.12 / PyTorch cu130 / ComfyUI 最新 / FLUX.1 schnell FP8(約17GB)

先にまとめ

  • L4 で 1024×1024・4 steps が 7〜8秒/枚(2回目以降の実測: 7.15 / 8.08 / 7.21 秒)。初回のみモデルロード込みで116秒
  • いちばんの罠は2つ。Ubuntu Server 24.04 の AMI には開発系ツールがほぼ入っていないこと(ubuntu-drivers すら無い)と、ubuntu-drivers install --gpgpu は headless ドライバのみで nvidia-smi を含まないこと
  • RAM 16GB でも swap はほぼ使われず、OOM なし。保険で用意した 232GB swap は出番なし

これが最終的に動いた最短手順です(SSH 接続後):

# --- NVIDIA ドライバ ---
sudo apt update
# 最小構成 AMI に無い開発ツール一式を先に入れる(罠1・3・4の予防)
sudo apt install -y ubuntu-drivers-common build-essential python3.12-dev
sudo ubuntu-drivers install --gpgpu
# --gpgpu は headless のみで nvidia-smi を含まない(罠2)ので utils を追加
VER=$(dpkg -l | grep -oP 'nvidia-headless-no-dkms-\K[0-9]+(-server)?' | head -1)
sudo apt install -y nvidia-utils-$VER
sudo reboot
# --- ComfyUI + FLUX.1 schnell FP8 ---
curl -LsSf https://astral.sh/uv/install.sh | sh
source ~/.local/bin/env
git clone https://github.com/comfyanonymous/ComfyUI.git ~/ComfyUI
cd ~/ComfyUI
uv venv --python 3.12
source .venv/bin/activate
# torch は3点セットを同じ index から入れて CUDA 版を揃える(罠5)
uv pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu130
uv pip install -r requirements.txt
 
wget -O /mnt/models/flux1-schnell-fp8.safetensors \
  "https://huggingface.co/Comfy-Org/flux1-schnell/resolve/main/flux1-schnell-fp8.safetensors"
ln -s /mnt/models/flux1-schnell-fp8.safetensors ~/ComfyUI/models/checkpoints/
 
python main.py --listen 127.0.0.1
# ローカルからは ssh -N -L 8188:localhost:8188 で 8188 をトンネルして使う

実際にやったこと

罠1: ubuntu-drivers コマンドが存在しない

まずは定番の GPU ドライバ導入から。ところが1行目で止まりました。

$ sudo ubuntu-drivers install --gpgpu
sudo: ubuntu-drivers: command not found

ubuntu-driversubuntu-drivers-common パッケージのコマンドで、Ubuntu Server 24.04 の AMI にはプリインストールされていません。sudo apt install -y ubuntu-drivers-common で解決。ここが「このAMI、思った以上に何も入っていないぞ」に気づく最初のサインでした。

罠2: ドライバを入れて再起動しても nvidia-smi が無い

ubuntu-drivers install --gpgpu は成功し、再起動。ところが動作確認の nvidia-smi が「Command not found」で、apt が候補パッケージをずらずら提案してきます。

壊れたのかと思いきや、dpkg -l | grep nvidia を見ると nvidia-headless-no-dkms-595-server-open などドライバ本体はきちんと入っていました。--gpgpu オプションはサーバー向けの headless ドライバ(カーネルモジュールのみ)を入れる仕様で、nvidia-smi を含む nvidia-utils-XXX-server は別枠なのです。入った版番号に合わせて追加します。

VER=$(dpkg -l | grep -oP 'nvidia-headless-no-dkms-\K[0-9]+(-server)?' | head -1)
sudo apt install -y nvidia-utils-$VER   # 今回は nvidia-utils-595-server

これで nvidia-smi に NVIDIA L4(23034MiB)が表示されました。再起動は不要です。

罠3・4: ComfyUI 起動で「gcc が無い」「Python.h が無い」

uv で仮想環境を作り、依存を入れて python main.py を実行。すると今度は ComfyUI の依存ライブラリ triton が起動時にエラーを吐きます。

RuntimeError: Failed to find C compiler. Please specify via CC environment variable.

triton は実行時に C コードをコンパイルする設計で、gcc が必要です。sudo apt install -y build-essential を入れて再実行すると、次はこれ。

/tmp/tmpXXXX/main.c:5:10: fatal error: Python.h: No such file or directory

Python の開発ヘッダも要るので sudo apt install -y python3.12-dev を追加。罠1と根は同じで、最小構成 AMI に開発ツールが無いことが原因です。先に3つまとめて入れておけば踏まずに済みます。

罠5: libcudart.so.13 が無い — torch と torchaudio の CUDA 版ズレ

これがいちばん厄介でした。起動がさらに進んだところで torchaudio のロードに失敗します。

OSError: libcudart.so.13: cannot open shared object file: No such file or directory

原因は CUDA 版の不一致です。当初 torch と torchvision だけを cu124 の index から入れており、その後の pip install -r requirements.txt で torchaudio が PyPI から入りました。PyPI の最新 torchaudio は CUDA 13 ビルドなので、CUDA 12.4 の torch 環境には libcudart.so.13 が存在せず落ちる、という構図でした。ComfyUI 自体も起動ログで「cu130 以上を推奨」と警告していたので、3点セットを cu130 で揃え直すことにしました。

さらにここで小さな二段目の罠。uv pip install torch torchvision torchaudio --index-url .../cu130 を実行しても、バージョン指定なしだと「既にインストール済み」としてスキップされ、何も変わりません。起動ログの pytorch version: 2.6.0+cu124 が動かぬ証拠でした。強制的に入れ替えます。

uv pip install -U --force-reinstall torch torchvision torchaudio \
  --index-url https://download.pytorch.org/whl/cu130

これで起動ログが通り、「To see the GUI go to: http://127.0.0.1:8188」まで到達しました。

罠6: テンプレートの「Missing Models」で SD1.5 をダウンロードさせられそうになる

ComfyUI の GUI(SSH トンネル経由で localhost:8188)でテンプレート「画像生成」を開くと、「Missing Models — v1-5-pruned-emaonly-fp16.safetensors / Download all (1.99 GB)」というエラーが出ます。テンプレートの既定モデルが SD1.5 だからで、ここで Download を押す必要はありません。Load Checkpoint ノードのモデル名欄をクリックして、自分で置いた flux1-schnell-fp8.safetensors に差し替えるだけで解決です(候補に出ないときは R キーでノード定義を再読み込み)。

なお KSampler の既定値は steps 4 / cfg 1.0 / euler / simple と、schnell 向けの設定が最初から入っていました。

計測結果

1024×1024・4 steps・英語プロンプトで4回生成した結果です(ComfyUI のサーバーログ Prompt executed in XX seconds から)。

生成時間
1回目(モデルロード込み)116.35 秒
2回目7.15 秒
3回目8.08 秒
4回目7.21 秒

生成中も swap の累計使用量は 1.5MiB のままで、実質未使用。FP8 チェックポイント(17GB)は RAM 16GB + 動的 VRAM ローディングで問題なく回りました。

ハマりどころまとめ

症状原因対処
ubuntu-drivers: command not found最小AMIに未収録apt install ubuntu-drivers-common
ドライバ導入後も nvidia-smi 無し--gpgpu は headless のみapt install nvidia-utils-<版>-server
Failed to find C compilertriton が実行時に gcc 要求apt install build-essential
Python.h: No such file開発ヘッダ無しapt install python3.12-dev
libcudart.so.13 が無いtorch cu124 × torchaudio CUDA13 の混在3点セットを cu130 で統一
↑の入れ替えが効かないバージョン指定なしは既存でスキップuv pip install -U --force-reinstall
Missing Models(SD1.5)テンプレート既定が SD1.5Download せずチェックポイント差し替え

やってみての所感

7〜8秒/枚は想定よりだいぶ速く、体感としては「待たされない」水準です。g6.xlarge は約$1.2/時なので、まとめて生成するバッチ用途なら1枚あたりのコストはかなり安くなります。一方で時間課金なので、リクエストが散発的な用途では起動・停止の運用設計とセットで考える必要があります。

つまずきの大半は「Ubuntu Server の AMI は本当に最小構成」という一点に集約されます。ML 系のツールチェーンは gcc や Python ヘッダの存在を暗黙に仮定しがちなので、GPU 用途なら ubuntu-drivers-common build-essential python3.12-dev を最初に入れてしまうのが正解でした。もう一つの教訓は、pip/uv で CUDA 系パッケージを扱うときは同系列の index に統一すること。torch だけ index 指定して残りを PyPI に任せると、今回のような版ズレが起きます。

検証が終わったらインスタンスの停止を忘れずに。停止中も EBS 分の課金(今回の構成で月$7〜8程度)は残ります。

まとめ

  • g6.xlarge(NVIDIA L4)+ ComfyUI + FLUX.1 schnell FP8 は、1024×1024 が7〜8秒/枚で実用十分
  • ただし素の Ubuntu 24.04 AMI では、ドライバ周りと triton のために apt install が4つ必要
  • torch / torchvision / torchaudio は必ず同じ CUDA index で。入れ替え時は -U --force-reinstall
  • ComfyUI テンプレートの Missing Models は、モデル差し替えで解決するならダウンロード不要

参考リンク: