Snowpark Container Services¶
Snowpark Container Servicesについて¶
Snowpark Container Servicesは、Snowflakeエコシステム内におけるコンテナー化されたアプリケーションの展開、管理、スケーリングを容易にするように設計されたフルマネージドコンテナーサービスです。このサービスにより、ユーザーはコンテナー化されたワークロードをSnowflake内で直接実行できるようになり、処理のためにデータをSnowflake環境から移動する必要がなくなります。DockerやKubernetesのような従来のコンテナーオーケストレーションプラットフォームとは異なり、Snowpark Container Servicesは、Snowflake専用に最適化された OCI ランタイム実行環境を提供します。この統合により、Snowflakeの堅牢なデータプラットフォームを活用した OCI イメージのシームレスな実行が可能になります。
フルマネージドサービスとして、Snowpark Container Servicesは運用業務を効率化します。セキュリティや構成などのコンテナー管理の複雑な関係を、ベストプラクティスに沿って処理します。このため、ユーザーは基盤となるインフラストラクチャ管理のオーバーヘッドに悩まされることなく、アプリケーションの開発と展開に専念できます。
Snowpark Container Servicesは、Snowflakeと完全に統合されています。たとえば、アプリケーションでは次のようなタスクを簡単に実行
Snowflakeに接続し、Snowflake仮想ウェアハウスで SQL を実行する。
Snowflakeステージのデータファイルにアクセスする。
SQL クエリから送信されたデータを処理する。
Snowpark Container Servicesは、サードパーティのツールとも統合されています。サードパーティのクライアント(Dockerなど)を使用して、アプリケーションイメージを簡単にSnowflakeにアップロードすることができるようになります。シームレスな統合により、チームはデータアプリケーションの構築に専念しやすくなります。
コントロールプレーンやワーカーノードの管理に煩わされることなく、Snowflakeリージョンやクラウドプラットフォーム間でアプリケーションコンテナーワークロードを実行およびスケールでき、Snowflakeデータに迅速かつ簡単にアクセスできます。
Snowpark Container Servicesは、以下の機能を含む幅広い新機能を提供します。
長時間稼働するサービスを作成する。
GPUs を使用してシステムのスピードと処理能力を向上させる。
アプリケーションコードを任意の言語(例: C++)で記述する。
アプリケーションで任意のライブラリを使用する。
これらのすべてに、Snowflakeプラットフォームの利点、特に使いやすさ、セキュリティ、ガバナンス機能が付随します。そして、データをプラットフォームから移動することなく、パワフルなSnowflakeデータレイヤーと合わせてスケーラブルで柔軟なコンピューティングレイヤーを実現できるようになります。
機能の仕組み¶
データベースやウェアハウスなどの基本的なSnowflakeオブジェクトを操作することに加えて、Snowpark Container Servicesでコンテナ化アプリケーションを実行するには、 イメージリポジトリ、 コンピューティングプール、 サービス などのオブジェクトを操作します。
Snowflakeは、イメージを保存するための OCIv2 準拠のサービスである イメージレジストリ を提供しています。これにより、 OCI クライアント(Docker CLI や SnowSQL など)がSnowflakeアカウント内のイメージレジストリにアクセスできるようになります。これらのクライアントを使用して、Snowflakeアカウントの リポジトリ (ストレージユニット)にアプリケーションイメージをアップロードできます。詳細については、 イメージレジストリおよびリポジトリの操作 をご参照ください。
アプリケーションイメージをリポジトリにアップロードしたら、長時間実行する サービス を作成するか、 ジョブサービス を実行することでアプリケーションを実行できます。
サービスは長時間実行されるため、ウェブサービスと同様、不要になったときには明示的に停止します。サービスコンテナーが(何らかの理由で)終了すると、Snowflakeはそのコンテナーを再起動します。フルスタックのウェブアプリケーションのようなサービスを作成するには、 CREATE SERVICE コマンドを使用します。
ジョブサービスには、ストアドプロシージャと同様に有効期限があります。すべてのコンテナが終了すると、ジョブサービスは完了します。Snowflakeはジョブサービスコンテナを再起動しません。機械学習モデルを GPUs でトレーニングするようなジョブサービスを作成するには、 EXECUTE JOB SERVICE コマンドを使用します。
詳細については、 サービスの操作 をご参照ください。
サービス(ジョブサービスを含む)は、1つまたは複数の仮想マシン(VM)ノードの集まりである コンピューティングプール で実行されます。まず、 CREATE COMPUTE POOL コマンドを使用してコンピューティングプールを作成し、サービスやジョブサービスの作成時ににコンピューティングプールを指定します。コンピューティングプールを作成するために必要な情報には、マシンタイプ、コンピューティングプールを起動する最小ノード数、およびコンピューティングプールがスケールできる最大ノード数が含まれます。サポートされるマシンタイプの中には、 GPU を提供するものもあります。詳細については、 コンピューティングプールの操作 をご参照ください。
サービス関数 を使用して、 SQL クエリからサービスと通信することができます。パブリックエンドポイントを構成して、Snowflakeが管理するアクセス制御で、Snowflakeの外部からのサービスによるアクセスを許可することができます。Snowpark Container Servicesは、サービス間通信もサポートしています。詳細については、 サービスの使用 をご参照ください。
注釈
Snowpark Container Services のドキュメントでは、概念の説明や例で主に SQL コマンドと関数を使用しています。Snowflakeは、 Python APIs、 REST APIs、 Snowflake CLI コマンドラインツールなど、ほとんどの操作に対応するインターフェイスも提供しています。
利用可能なリージョンと考慮事項¶
Snowpark コンテナーサービスは、以下を除く リージョン にあります。
Snowpark Container Servicesは、Google Cloudのプレビューで利用可能です。
Snowpark Container Servicesは、 AWS US 東部(商用Gov - バージニア北部)リージョンの 公共部門(政府)ワークロード をサポートしており、その他の AWS またはAzure政府リージョンではご利用いただけません。
Snowpark Container Servicesは、ノートブックを実行する場合を除き、トライアルアカウントではご利用いただけません。
次の内容¶
Snowpark Container Services を初めて使用する場合は、まずチュートリアルを調べ、その後他のトピックに進んで詳細を学び、独自のコンテナー化アプリケーションを作成することをお勧めします。詳細については、以下のトピックをご参照ください。
チュートリアル: これらの 入門チュートリアル は、Snowpark Container Servicesを探索するためのステップバイステップの手順を提供します。最初の探索の後、 上級チュートリアル に進むことができます。
サービス/ジョブ仕様のリファレンス: このリファレンスでは、サービス仕様を作成する YAML 構文 について説明します。
サービスおよびジョブサービスの操作: これらのトピックでは、サービスとジョブサービスの開発で使用するSnowpark Container Servicesのコンポーネントについて詳しく説明します。
リファレンス: Snowpark Container Servicesは、以下の SQL コマンドとシステム関数を提供します。
SQL コマンドについては、 Snowpark Container Services コマンド と CREATE FUNCTION (Snowpark Container Services) をご参照ください。
SQL 関数用: SYSTEM$GET_SERVICE_LOGS。
請求: このトピックでは、Snowpark Container Servicesの使用に関連するコストについて説明します。