Cloudinary は、画像と動画のアップロード・変換・最適化・CDN 配信をまとめて引き受けるメディア基盤だ。最大の特徴は、変換処理を URL のパラメータで指定できる点にある。

URL ベース変換という発想

たとえば元画像が 1 枚あれば、URL に w_400f_auto といったパラメータを足すだけで、幅 400px 版や最適フォーマット版がオンデマンドで生成される。サムネイル・カード用・OGP 用と複数サイズを事前に作って保管する必要がなく、必要なバリエーションは URL を変えるだけで手に入る。レスポンシブ画像の出し分けやデバイス別最適化が、サーバー側のバッチ処理なしで実現できる。

効く場面

  • ユーザーがアップロードした画像を、表示箇所ごとに自動でリサイズ・クロップしたいとき
  • 古い JPEG/PNG を WebP / AVIF へ自動変換し、転送量と表示速度を改善したいとき
  • AI ベースの自動クロップで、被写体を外さないサムネイルを量産したいとき

動画のトランスコーディングにも対応し、グローバル CDN から配信される。

料金構造の読み方

課金は「変換クレジット」という単位で、変換回数・ストレージ・転送量を合算した使用量に対して計算される。無料枠を超えると月額制で、クレジット消費量に応じて上がる。注意点は、同じ画像でも変換バリエーションを増やすほどクレジットを消費すること。無秩序に変換パラメータを生やすと消費が読みにくくなるため、使うサイズパターンはある程度固定したほうが管理しやすい。

単にファイルを置くストレージが欲しいだけなら、変換機能を持つ Cloudinary はオーバースペックで、S3 のようなオブジェクトストレージのほうが安く済む。変換と最適化を自動化したいかどうかが採用の分かれ目だ。

変換パラメータの管理が保守性を決める

URL に変換指示を書ける手軽さは強力だが、そのまま使うとテンプレートのあちこちに長い変換パラメータが散らばる。仕様変更のたびに全箇所を直す羽目になるため、用途ごとの変換プリセット(名前付きの変換)を定義し、コード側ではその名前を参照する構成にしておきたい。「サムネイル用」「OGP 用」「詳細表示用」といった単位で定義しておけば、画質やサイズの調整を一箇所で行える。

🔴
変換 URL を自由に組み立てられる状態にしないでください

URL のパラメータを外部から自由に指定できると、第三者が無数の変換バリエーションを生成でき、変換回数の課金が積み上がります。署名付き URL を使うか、許可する変換をプリセットに限定して、任意の変換を実行できない構成にしてください。

移行しにくさをどう見るか

画像の URL がサービスのドメインに紐づくため、乗り換えるときは配信 URL の変更が広範囲に及ぶ。すでに公開済みのコンテンツに埋め込まれた URL は、リダイレクトを用意しない限り切れる。独自ドメインで配信する設定にしておけば、この依存を薄められる。長く運用するメディアなら、最初から独自ドメイン配信にしておく判断は有効だ。