停止していた GPU インスタンス(Deep Learning AMI GPU CUDA)の料金が高かったので調べてみた

2022.06.25

GPU インスタンス(g5.xlarge)を使った検証のためバージニア北部で動かしていました。GPU インスタンスは高価なのでちゃんと「停止」してから一週間後検証を再開しました。GPU インスタンスの起動代は気にしていたので料金を確認してみると思いのほか EBS 代が高かったです。停止していても想定より高い金額だった原因と、事前に確認すべきだったポイントを紹介します。

確認結果

  • Deep Learning AMI GPU CUDA を選択すると EBS(gp3)のデフォルト設定値が最高パフォーマンス設定
  • EC2 作成ウィザードからポチポチ押して作成すると見落としやすい
  • GPU インスタンスを停止しても高パフォーマンスな EBS の課金は止まらない

作成したインスタンスを振り返ってみる

OS は Amzon Linux2 を選択し AMI は Deep Learning AMI シリーズから CUDA 入りのイメージを選択しました。

Deep Learning AMI は数種類用意されています。

問題の EBS

デフォルトの設定値は 35GB の gp3 が選択されています。CUDA インストール済みのためある程度容量が必要なのはわかるのでデフォルト値のままインスタンスを作成しました。

原因はもうおわかりかと思いますが、次はよく EBS を確認してみます。

EBS をよくみてみる

EBS の設定を確認するにはアドバンスをクリックし、ボリュームを展開してやっとみれます。(2クリック必要)

アドバンスをクリック。

ボリュームを展開します。

「なんということでしょう、IOPSもスループットも上限値まで指定されているではありませんか」

追加課金の必要ない範囲(IOPS: 3000, スループット: 125)を大きく超え gp3 を限界まで高めた値でした。CUDA を使うなら並列でゴリゴリ計算することを想定して高い IO 性能がデフォルトで設定されているのですね。

EC2 を停止していても EBS 代はもともと課金されますので、35GB の容量代以外に IOPS、スループット追加代が別途課金されている状態で放置していたことが原因でした。

ということを把握していれば、GPU インスタンスを停止ではなく削除または、短期間で検証終えるなど他の方法もとれました。

昔のウィザードならどうだったの?

一世代前の EC2 作成ウィザードを確認してみました。わざわざ EBS のパラメータを展開しなくても表示されるため「なんかいつもより値大きくないか?」と気付ける人もいたかもしれませんね。

他の Deep Learning AMI はどうなのか

CUDA だけが高性能デイスク設定になっていました。そうか CUDA だけなのか。ディスクサイズはまちまちですね。

AMI Name AMI ID Volume Type GiB IOPS Throughput
Deep Learning Base AMI (Amazon Linux 2) Version 53.2 ami-012760cbfaabdbf93 gp3 100 3000 125
Deep Learning AMI (Amazon Linux 2) Version 62.0 ami-031118784a2fe4935 gp3 140 3000 125
Deep Learning AMI GPU TensorFlow 2.7.0 (Amazon Linux 2) 20220607 ami-03ba3bf24ef7ec268 gp3 35 3000 125
Deep Learning AMI GPU PyTorch 1.11.0 (Amazon Linux 2) 20220621 ami-07bc5b8f0515131e0 gp3 45 3000 125
Deep Learning AMI GPU CUDA 11.4.3 (Amazon Linux 2) 20220316 ami-0e9d3c53b79c2cc6f gp3 35 16000 1000

まとめ

Deep Learning AMI GPU CUDA を選択すると EBS(gp3)の最高パフォーマンスが設定されているため、インスタンスの起動・停止関係なく EBS 代がそこそこかかる。

おわりに

GPU の検証自体はスポットインスタンスを使っていたので格安で済んだのに、アタッチされていた gp3 フル性能の EBS が高くついてしまいました。みなさんもお気をつけください。

普段使わない AMI を選択するときは EBS の設定値を含め他の設定もよく確認しましょう!