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 SERVICE コマンドを使用します。
重要
Snowpark Container Servicesのジョブ機能は現在プライベートプレビュー中であり、 https://snowflake.com/legal のプレビュー規約に従うものとします。詳細については、Snowflakeの担当者にお問い合わせください。
詳細については、 サービスの操作 と ジョブの操作 をご参照ください。
サービスとジョブは、1つまたは複数の仮想マシン(VM)ノードの集まりである コンピューティングプール で実行されます。まず、 CREATE COMPUTE POOL コマンドを使用してコンピューティングプールを作成し、サービスやジョブを作成するときにコンピューティングプールを指定します。コンピューティングプールを作成するために必要な情報には、マシンタイプ、コンピューティングプールを起動する最小ノード数、およびコンピューティングプールがスケールできる最大ノード数が含まれます。サポートされるマシンタイプの中には、 GPU を提供するものもあります。詳細については、 コンピューティングプールの操作 をご参照ください。
ジョブは完了まで独立して実行されます。しかし、サービスは継続的に実行され、サービスとは通信することができます。
サービス関数 を使用して、 SQL クエリからサービスと通信することができます。パブリックエンドポイントを構成して、Snowflakeが管理するアクセス制御で、Snowflakeの外部からのサービスによるアクセスを許可することができます。Snowpark Container Servicesは、サービス間通信もサポートしています。詳細については、 サービスの使用 をご参照ください。
利用可能なリージョン¶
Snowpark Container Servicesは現在、すべての AWS 商用 リージョン で利用できます。
AzureとGoogle Cloudのプライベートプレビューは後日お知らせします。
次の内容¶
Snowpark Container Services を初めて使用する場合は、まずチュートリアルを調べ、その後他のトピックに進んで詳細を学び、独自のコンテナー化アプリケーションを作成することをお勧めします。詳細については、以下のトピックをご参照ください。
チュートリアル: これらの 入門チュートリアル は、Snowpark Container Servicesを探索するためのステップバイステップのステップを提供します。最初の探索の後、 上級チュートリアル に進むことができます。
サービス/ジョブ仕様のリファレンス: このリファレンスは、サービス/ジョブ仕様を作成する YAML 構文 について説明します。
サービスおよびジョブの操作: これらのトピックでは、サービスとジョブの開発で使用するSnowpark Container Servicesのコンポーネントについて詳しく説明します。
リファレンス: Snowpark Container Servicesは、以下の SQL コマンドとシステム関数を提供します。
SQL コマンドについては、 Snowpark Container Services コマンド をご参照ください。
システム関数: SYSTEM$CANCEL_JOB、 SYSTEM$GET_SERVICE_LOGS、 SYSTEM$GET_SERVICE_STATUS、 SYSTEM$GET_JOB_LOGS、および SYSTEM$GET_JOB_STATUS。
請求: このトピックでは、Snowpark Container Servicesの使用に関連するコストについて説明します。