Cloudflare Container は、Cloudflare のネットワーク上で、Worker と並んでコンテナイメージを完全な Linux 環境で実行します。Worker は受信 HTTP リクエストを処理します。Container はアプリケーションが必要とするランタイム、バイナリ、言語を提供します。両者を組み合わせることで、基盤インフラを管理せずに Linux ワークロードを実行できます。
Worker と並んで Linux ワークロードを実行します。
Worker は隔離された JavaScript 環境でコードを実行します。Container はイメージを完全な Linux 環境で実行するため、アプリケーションが必要とするカスタムランタイムやバイナリを持ち込めます。各 Container インスタンスは独自の仮想マシン内で動き、他のワークロードから隔離されます。Worker が受信 HTTP リクエストを受け取り、Container へルーティングするため、Container はエンドユーザーに直接公開されません。
リクエストは Worker に到達し、Worker はそれを独自の仮想マシン内で動く Container へルーティングします。Container がリクエストを処理している間も、Worker は Container の手前に残ります。
詳細は Container のライフサイクル を参照してください。
すべてのリクエストを Worker 経由でルーティングします。
リクエストは Worker から始まります。Worker は Durable Object レイヤーを使って Container を特定し、到達します。このレイヤーはルーティングとライフサイクル動作を調整し、Container が実行中にリクエストを処理し続けられるようにします。Container は最初のリクエスト受信時に起動できるため、最初のリクエストは完了まで時間がかかることがあります。
リクエストはクライアントから Worker へ、さらに Container へ流れます。Worker と Durable Object レイヤーは、Container がリクエストを処理する前にルーティングとライフサイクル動作を調整します。Container がまだ動いていない場合、その過程で起動します。
詳細は Container のライフサイクル を参照してください。
必要時に起動し、アイドル時に停止します。
Container はアプリケーションが必要としたときに起動します。そのため、環境の起動中は最初のリクエストに時間がかかることがあります。起動後はリクエストを処理し、非アクティブになると一定時間後に停止し、実行中のリソースを解放できます。別のリクエストが到着すると、Container は再び起動できます。
ライフサイクルは停止中の Container と、それを起動するリクエストから始まります。その後 Container はリクエストを処理し、非アクティブになり、次のリクエストが来るまで再び停止します。
詳細は Container のライフサイクル と 料金 を参照してください。
ワークロードに合わせてリソースを選びます。
Container インスタンスサイズで、ワークロードにリソースを合わせられます。事前定義サイズを選ぶか、カスタムサイズを設定できます。大きいサイズほど CPU、メモリ、ディスクが増えます。サイズを選ぶときは、アプリケーションが必要とするリソースを考慮し、利用できるオプションと制約は 制限とインスタンスタイプ を参照してください。
詳細は 料金 を参照してください。
ユーザーの近く、または制約内にインスタンスを配置します。
Cloudflare はネットワーク全体に Container インスタンスを配置し、適切な拠点からユーザーへサービスを提供しやすくします。ワークロードに場所やデータ所在地の要件がある場合は、リージョンまたは法域で配置を制約できます。アプリケーションがより多くの容量を必要とする場合は、複数インスタンスも実行できます。
リクエストを送信します
インスタンスは異なる Cloudflare 拠点で実行でき、リクエストは利用可能なインスタンスへルーティングできます。場所が重要な場合、配置制約でインスタンスをリージョンまたは法域内に留められます。
詳細は 配置 を参照してください。
永続データはローカルディスクの外に置きます。
Container のローカルディスクは一時的な作業領域として扱ってください。Container が停止または再起動すると、その上のデータは失われることがあります。永続が必要なデータには、Durable Object ストレージ、または KV、R2、D1 などの Cloudflare ストレージバインディングを使います。設定済みのアウトバウンドハンドラーにより、Container 内に SDK がなくても、これらのバインディングと外部サービスにアクセスできます。
Container は設定済みの接続を通じて、Cloudflare ストレージと外部サービスに到達できます。ローカルディスクは一時的ですが、永続ストレージ内のデータは Container のライフサイクルを超えて残ります。
詳細は Workers とバインディングへの接続 と アウトバウンドトラフィック を参照してください。
構築の準備ができたら、デプロイ済みの Container から始めるか、利用可能なガイドを参照してください。
- Container のライフサイクル: デプロイ、ルーティング、シャットダウンの詳細。
- 配置: インスタンスの実行場所と制約方法。
- Workers とバインディングへの接続: コンテナから Cloudflare リソースへ到達する。
- 制限とインスタンスタイプ と 料金: サイズ、アカウント制限、課金。
- ロールアウト: 新バージョンがインスタンス全体へ展開されるしくみ。