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は現在、すべての AWS 商用 リージョン で利用できます。パブリック・プレビューは、すべてのAzure商用リージョンでも利用可能です。
AzureとGoogle Cloudのプライベートプレビューは後日お知らせします。
次の内容¶
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の使用に関連するコストについて説明します。