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 を初めて使用する場合は、まずチュートリアルを調べ、その後他のトピックに進んで詳細を学び、独自のコンテナー化アプリケーションを作成することをお勧めします。詳細については、以下のトピックをご参照ください。