第5章もこのページで最後です。ここまで見てきたWorkersは、軽く速く動く代わりに、できることが絞られていました。JavaScriptを中心とした実行環境で、メモリは128MB、ファイルシステムは自由に使えません。この枠に収まらない処理は、これまでCloudflareの外側にサーバーを用意するしかありませんでした。
Cloudflare Containersは、その最後の壁を取り払う仕組みです。任意の言語で書いたプログラムや、既存のソフトウェアをそのままコンテナとしてCloudflareのネットワーク上で動かし、Workersから呼び出せます。
このページで分かること
- コンテナとは何か、Workersと何が違うのか
- Cloudflare Containersの仕組みと、Workersとの役割分担
- どんな処理に向いているのか(具体例)
- インスタンスの種類と料金の考え方
- 導入前に知っておくべき制約
コンテナとは
コンテナ(Container)は、アプリケーションと、それが動くのに必要な一式(ライブラリ、設定、OSの一部)をひとつの箱にまとめたものです。この箱ごと別の場所へ持っていけば、どこでも同じように動きます。
「手元では動いたのに本番では動かない」という問題を、環境ごと持ち運ぶことで解決する技術で、Dockerという道具が広く使われています。作り方の指示書がDockerfile、その指示書から作られた箱がコンテナイメージです。
Workersが「Cloudflareが用意した実行環境に、自分のコードだけを預ける」方式なのに対し、コンテナは「実行環境そのものを自分で用意して持ち込む」方式だと考えてください。自由度は高い一方、箱が大きいぶん起動には時間が掛かります。
Cloudflare Containersの仕組み
Cloudflare Containersでは、コンテナが単独で公開されるわけではありません。必ずWorkerが前に立ち、Workerのコードからコンテナを呼び出します。

流れは次のとおりです。
- 利用者のリクエストは、まずWorkerが受け取る
- Workerが判断し、重い処理はコンテナへ渡す
- コンテナが起動していなければ、その場で起動される
- 処理の結果をWorkerが受け取り、利用者へ返す
コンテナのインスタンスは、前ページで扱ったDurable Objectsの仕組みを土台に管理されます。名前を指定して特定のインスタンスを呼び出せる点も同じで、「利用者ごとに専用のコンテナを立てる」といった構成が自然に書けます。
使われなくなったインスタンスは自動的に停止します。停止までの時間は sleepAfter で指定でき、既定は10分です。次のリクエストが来れば再び起動しますが、起動には1〜3秒程度かかります(イメージの大きさによります)。常時起動しているサーバーとは、この点が大きく異なります。
開発の流れはWorkersと同じで、設定ファイルにDockerfileの場所とインスタンスの種類を書き、wrangler deploy を実行します。イメージのビルドとアップロード、各拠点への配置はCloudflare側が引き受けます。
何に向いているのか
Workersでは無理があり、コンテナが適している処理の例です。
- 動画・音声の変換:ffmpegのような既存のツールをそのまま動かす
- 画像の高度な処理:大きなメモリを使う変換や解析
- 他の言語で書かれたプログラム:Go、Java、Ruby、PHP、Pythonの重いライブラリなど
- 既存のソフトウェアの流用:すでにDockerイメージとして配布されているツールを組み込む
- ファイルを扱う処理:一時的にディスクへ書き出しながら進める作業
- 時間の掛かる計算:CPUを長く使う処理や、複数コアを並行して使う処理
一方、次のような処理はWorkersのままで十分です。無理にコンテナを使う必要はありません。
判断の目安は、「Workersの制限(メモリ128MB、Web標準API中心、ファイルシステムなし)に当たるかどうか」です。当たらないなら、起動が速く安価なWorkersのほうが有利です。
| Workers | Containers | |
|---|---|---|
| 起動 | ほぼ瞬時 | 1〜3秒程度 |
| 言語 | JavaScript / TypeScript / Python / Rust ほか | 任意(イメージに含めたもの) |
| メモリ | 128MB | 256MiB〜12GiB |
| ファイルシステム | 実質なし | あり(一時的) |
| 料金 | 無料プランあり | Workers有料プランが必要 |
| 向く処理 | 軽く速い処理を大量に | 重い処理を必要なときだけ |
料金
Containersの利用にはWorkers有料プラン(月5ドル)が必要で、無料プランには利用枠がありません(2026年8月時点)。
インスタンスは、割り当てられる資源によって次の種類から選びます。
| 種類 | vCPU | メモリ | ディスク |
|---|---|---|---|
| lite | 1/16 | 256 MiB | 2 GB |
| basic | 1/4 | 1 GiB | 4 GB |
| standard-1 | 1/2 | 4 GiB | 8 GB |
| standard-2 | 1 | 6 GiB | 12 GB |
| standard-3 | 2 | 8 GiB | 16 GB |
| standard-4 | 4 | 12 GiB | 20 GB |
課金は、コンテナが起動していた時間に対する従量制です。メモリ・CPU・ディスクをそれぞれ秒単位で計算します。有料プランには毎月一定量が含まれており、その範囲であれば追加費用は掛かりません。
- メモリ:25 GiB時間/月まで込み、超過分は1 GiB秒あたり0.0000025ドル
- CPU:375 vCPU分/月まで込み、超過分は1 vCPU秒あたり0.000020ドル
- ディスク:200 GB時間/月まで込み、超過分は1 GB秒あたり0.00000007ドル
Workersと違い、外部への転送量(エグレス)には課金があります(地域により1GBあたり0.025〜0.05ドル、月500GB〜1TBの無料枠付き)。
重要なのは、起動している時間そのものが費用になるという点です。sleepAfter を短くして使わないインスタンスを早く止めることが、そのまま費用の節約につながります。
初心者が注意するポイント
- 無料プランでは使えません:Containersだけは、Workers有料プランへの加入が前提です
- 起動の遅さを前提に設計する:1〜3秒のコールドスタートが許されない画面では、Workersだけで応答を返し、コンテナの処理は非同期(前ページのQueuesやWorkflows)に回す構成が向きます
- ディスクは永続的な保存先ではありません:コンテナ内のディスクはインスタンスが止まれば失われます。残したいデータはR2やD1へ書き出してください(第6章)
- まずWorkersで足りないか確認する:コンテナは自由度と引き換えに、起動時間・費用・運用の手間が増えます。Workersの制限に当たっていない段階で選ぶ理由はありません
- イメージは小さく保つ:イメージが大きいほど起動が遅くなります。不要なライブラリを含めない、軽量なベースイメージを使う、といった工夫が効きます
関連サービス
- Workers:コンテナを呼び出す側。必ず前段に立つ(第5章)
- Durable Objects:コンテナインスタンスの管理を支える仕組み(前々ページ)
- Queues / Workflows:起動に時間の掛かる処理を非同期で回す(前ページ)
- R2:コンテナが処理した結果の保存先(第6章)
- Workers AI:AIモデルの実行を目的とする場合は、まずこちらを検討する(第7章)
まとめ
- コンテナは、アプリケーションと実行環境をひとまとめにして持ち運べるようにした箱
- Cloudflare Containersは、そのコンテナをCloudflareのネットワーク上で動かし、Workersから呼び出せるようにする仕組み
- 必ずWorkerが前に立ち、重い処理だけをコンテナへ渡す構成になる
- 任意の言語・既存のソフトウェアを動かせるが、起動には1〜3秒かかり、使わなければ自動停止する
- 利用にはWorkers有料プランが必要で、起動していた時間に対する従量課金
- Workersの制限に当たっていないなら、Workersのままが有利
これで第5章「開発プラットフォーム」は完結です。Workersを中心に、静的サイトの公開、メールの受信、状態の管理、非同期処理、そして重い処理の実行までが揃いました。次の第6章では、これらのプログラムが扱うデータの置き場所――ストレージとデータベースを見ていきます。最初に扱うのは、エグレス(データ転送)が無料という特徴を持つオブジェクトストレージ、R2です。
次に読む
※本記事の情報は 2026年8月時点のものです。