AWS Glue Studio Job Notebookで思わぬ課金を防ぐTips
データアナリティクス事業本部インテグレーション部コンサルティングチーム・新納(にいの)です。
2022年4月より、AWS Glue StudioでJupyter Notebook環境が利用できるようになりました。
クラスタのプロビジョニングや管理が必要ないので、アイドル状態のクラスタにもコストがかかる…なんてことは無くなるのですが、その代わり利用したDPUの数とセッションがアクティブ状態にある時間で課金が発生します。
そこで、思わぬ課金が発生しないようにするTipsを小ネタとしてご紹介します。
料金体系のおさらい
前述した通り、AWS Glue Studio Job Notebookは利用したDPUの数とセッションがアクティブ状態にある時間で課金されます。
公式ドキュメントの例を引用します。
インタラクティブセッションは、デフォルトで 5 DPU です。セッションを 24 分 (5 分の 2 時間) 実行すると、DPU 時間あたり 0.44 USD で 5 DPU × 2/5 時間、つまり 0.88 USD が請求されます。
Job Notebookのデフォルトタイムアウト時間は48時間です。デフォルト設定のまま48時間セッションが起動しっぱなしだと、東京リージョンでは105.6ドルの課金が発生することになります。
思わぬ課金を防ぐために
それでは実際に思わぬ課金を防ぐために気をつけるべきポイントを確認していきましょう。
アクティブなインタラクティブセッションを確認する
Job Notebookが起動されてアクティブな状態になっている場合、マネジメントコンソールのAWS Glue→Interactive Sessionから一覧を確認可能です。
セッションのStatusがReadyになっているとセッションが起動されており、課金の対象となっている状態です。
ジョブの画面、Interactive Sessionの画面からセッションの停止が可能ですので、しっかりと停止を確認しておきましょう。
Job Notebookのセル内で%stop_session
と記載することでもセッションを停止可能です。
なお、このセッションはGlueジョブを削除したとしても明示的に停止しない限り起動し続けます。AWSマネジメントコンソールからGlueジョブを削除すると以下のような画面が表示されますので、しっかりセッションを停止しておきましょう。
デフォルトタイムアウト時間を変更する
前述しました通り、Job Notebookのデフォルトタイムアウト時間は48時間です。うっかりセッションを停止し忘れても課金される時間を短くすることで思わぬ課金のダメージを抑えておきましょう。
Job Notebookのセル内に%idle_timeout
で時間を指定することでタイムアウト時間を変更できます。1分単位で時間を指定可能です。今回は%idle_timeout 2
と記述し、タイムアウト時間を2分に設定しました。セルを実行すると以下のようにタイムアウト時間が表示されます。
タイムアウトすると、Interactive Session画面でStatusがTimeoutとなります。
DPU数を減らす
DPU数はデフォルトで5に設定されています。特に検証目的であれば必要最低限の数で事足りるケースが多いため、Job Notebookのセル内に%number_of_workers
でワーカー数を指定します。以下の例ではワーカー数を2に変更しています。
最後に
AWS Glue Job Notebookを使う際に知っておきたい、思わぬ課金を防ぐためのTipsをご紹介しました。Job Notebookはクラスタの管理が必要なく、NotebookをGlueジョブに変換できるなど、便利な機能が提供されています。特に検証目的では、請求の際にびっくりしないように工夫して費用を抑えて便利に使っていきたいところです。