Streamlit in Snowflake のコスト管理

このトピックでは、 Streamlit in Snowflake の請求に関する考慮事項について説明します。

Streamlit in Snowflake の請求に関する考慮事項

Streamlit in Snowflake の請求は、アプリのランタイム環境とクエリウェアハウスに基づいています。ランタイム環境はStreamlitアプリでPythonコードを実行します。これは、コンテナかウェアハウスのいずれかです。クエリウェアハウスは、アプリのコード内で任意の SQL クエリを実行します。

クエリウェアハウス

アプリのコードが SQL クエリを実行するとき、これらのクエリはアプリのクエリウェアハウスを使用します。Snowflakeは、その AUTO_RESUME および AUTO_SUSPEND 値に従って、クエリウェアハウスを自動的に再開および中断します。

コンテナランタイム

Streamlitアプリがコンテナランタイムを使用している場合、基礎となる Snowpark Container Services コンピューティングプールの使用に対して請求があります。この場合、Streamlitアプリは長時間実行されるサービスです。Streamlitサーバーはコンピューティングプールのノード上で継続的に実行されるので、ビューアーはアプリにすばやくアクセスできます。同時ビューアーは、単一のStreamlitサーバーに接続します。アプリが3日間使用されないと、Streamlitサーバープロセスは終了し、Snowflakeはその AUTO_SUSPEND 値に従ってコンピューティングプールを一時停止します。コンピューティングプールの請求の詳細については、 コンピューティングコストについて をご参照ください。

ウェアハウスランタイム

アプリがウェアハウスランタイムを使用している場合、Snowflakeは誰かがアプリにアクセスするとアプリのコードウェアハウスを再開します。ビューアーがアプリに接続するたびに、コードウェアハウス内で新しいStreamlitサーバープロセスが開始され、WebSocket 接続が確立されます。同時ビューアーは、それぞれ同じコードウェアハウスで実行されている独自のStreamlitサーバーに接続します。

WebSocket 接続はコードウェアハウスをアクティブに保ち、関連するビューアーの最後のアクティビティから約15分後に失効します。ただし、これはビューアーのブラウザー設定とアクティビティに影響されます。アプリ上でのマウスの移動はアクティビティとしてカウントされ、WebSocket 接続は維持されます。Snowflakeサポートに連絡して、アカウントの WebSocket タイムアウト値を変更できます。

コードウェアハウスは、アクティブになっている時間に対して請求されます。クレジットを節約するには、次のいずれかを実行します。

  • Snowsight からアプリを手動で一時停止します。

  • アプリを実行しているすべてのブラウザーのタブを閉じるか、アプリから移動します。これにより、WebSocket 接続が閉じられ、ウェアハウスの自動一時停止が可能になります。

  • アプリのカスタムスリープタイマーを設定します。これにより、指定された非アクティブの期間の後、ウェアハウスが自動的に一時停止されます。詳細については、 Streamlitアプリのカスタムスリープタイマー をご参照ください。

ウェアハウス選びのガイドラインについては、 Streamlit in Snowflake でリソースを選択するためのガイドライン をご参照ください。