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