CDN ガイドライン
Imgix は、高度な画像処理、独自のキャッシュインフラストラクチャ、そして業界をリードする CDN(コンテンツ配信ネットワーク)のパフォーマンス向上を組み合わせた、強力なエンドツーエンドのサービスを提供します。この統合ソリューションにより、画像パイプライン全体を完全に把握し、柔軟に制御できるため、堅牢で統合しやすいサービスを実現しています。
グローバル配信ネットワーク により、どこにいてもユーザーに画像を素早く届けることができます。画像をキャッシュし、最終ユーザーに優れた体験を提供するために、追加の CDN は不要です。
当社の CDN POP(配信拠点)ロケーションは、以下の表に記載されています:
| Oceania | Europe | North America | Asia | South America | Africa |
|---|---|---|---|---|---|
| Adelaide, AU | Amsterdam, NL | Ashburn, US | Bangkok, TH | Bogota, CO | Cape Town, ZA |
| Auckland, NZ | Brussels, BE | Ashburn (Metro), US | Chennai, IN | Buenos Aires, AR | Ghana, GH |
| Brisbane, AU | Copenhagen, DK | Atlanta, US | Delhi, IN | Curitiba, BR | Johannesburg, ZA |
| Christchurch, NZ | Dublin, IE | Atlanta (Metro), US | Dubai, AE | Fortaleza, BR | |
| Honolulu, US | Frankfurt (Metro), DE | Boston, US | Fujairah Al Mahta, AE | Lima, PE | |
| Melbourne, AU | Frankfurt - Interxion, DE | Calgary, CA | Hong Kong, CN | Rio de Janeiro, BR | |
| Perth, AU | Helsinki, FI | Chicago (Metro), US | Hyderabad, IN | Santiago, CL | |
| Sydney, AU | Lisbon, PT | Columbus, US | Kolkata, IN | Sao Paulo (Metro), BR | |
| Wellington, NZ | London, GB | Dallas (Metro), US | Kuala Lumpur, MY | ||
| Madrid, ES | Denver, US | Manila, PH | |||
| Manchester, GB | Detroit, US | Mumbai, IN | |||
| Marseille, FR | Gainesville, US | Osaka, JP | |||
| Milan, IT | Houston, US | Seoul, KR | |||
| Munich, DE | Kansas City, US | Singapore, SG | |||
| Oslo, NO | Los Angeles (Metro), US | Tokyo, JP | |||
| Palermo, IT | Miami, US | Tokyo (Metro), JP | |||
| Paris (Metro), FR | Minneapolis, US | ||||
| Rome, IT | Montreal, CA | ||||
| Sofia, BG | New York City, US | ||||
| Stockholm, SE | New York City (Metro), US | ||||
| Vienna, AT | Newark, US | ||||
| Palo Alto (Metro), US | |||||
| Phoenix, US | |||||
| Portland, US | |||||
| San Jose, US | |||||
| Seattle (Metro), US | |||||
| St.Louis, US | |||||
| Toronto, CA | |||||
| Vancouver, CA |
Imgix のキャッシュアーキテクチャ
Imgix は、パフォーマンス、コスト、信頼性のバランスを取るために、マルチレイヤーのキャッシング戦略を採用しています。各キャッシュレイヤーは、レイテンシの最小化、外部帯域幅の削減、レンダリング効率の管理という特定の役割を担っています。
キャッシュレイヤー
- オリジンキャッシュ – 元の未加工アセットを保存します。これにより、オリジンからの外部帯域幅を削減し、AI 生成レンダリングを保持することで、プレミアムレンダークレジットの使用を最小限に抑えます。
- シールドキャッシュ – オリジンとエッジの間に存在する中間的な「地域」キャッシュです。地理的に
us-east-1とeu-central-1に配置されており、エッジ POP でキャッシュミスが発生した際のホップの長さと距離を短縮します。 - エッジキャッシュ – Imgix CDN の最外層です。グローバルに分散されており、コンテンツをエンドユーザーに直接配信します。エッジキャッシュは、低レイテンシでの配信と高いキャッシュヒット率に最適化されています。
キャッシュヒットとミス
キャッシュヒット は、画像リクエストがキャッシュレイヤーから応答されたときに発生し、ほぼ瞬時に配信されます。
キャッシュミス は、リクエストされた画像が現在のキャッシュレイヤーに存在せず、上位レイヤーから取得またはレンダリングする必要がある場合に発生します。
- シールドとエッジの両方でミス になると、画像がレンダリングされます。
- レンダークレジット は、レンダリクエストの発生数に基づいて消費されます。通常、キャッシュミス/ミスの連鎖が発生するたびに使用されます。
- 初回レンダリング時は、アセットの取得と生成により、レイテンシが高くなる傾向があります。
キャッシュヒット率の改善
Imgix は自動的にキャッシュ動作を最適化しますが、TTL(time-to-live)設定とトラフィック管理を工夫することで、さらに効率を高めることができます。
- キャッシュ TTL は、オブジェクトがキャッシュに残る最大時間を制御します。ただし、設定した時間いっぱいキャッシュされることを保証するものではありません。
- Imgix の CDN キャッシュは、LRU(最も最近使用されていない) 方式のバリエーションによってアセットを削除するため、TTL が長く設定されていても、トラフィック量やキャッシュ圧力によって早期に削除されることがあります。一般的な目安としては、アクセス頻度が高いアセットほど、該当のキャッシュロケーション(シールドとエッジ)に長く残ります。
- オリジンキャッシュ は設定された TTL を厳密に守るため、コンテンツの「アクティブ期間」— 定期的にトラフィックがある期間 — を反映した値を選ぶことが重要です。
- 短い TTL は頻繁なレンダリングと高いレイテンシを招きますが、長い TTL はレンダリング頻度を減らす代わりに、オリジンキャッシュストレージのクレジット使用量が増加する可能性があります。
- 多くのユースケースにおいては、90 日 TTL と 「Enforce Minimum」 の組み合わせが、パフォーマンスとコストの最適なバランスを提供します。
健全なキャッシュヒット率は、通常 80% から 95% の間で、アプリケーションとコンテンツにより異なります。たとえば、毎日画像が更新されるオークションサイトでは、静的な画像を使用するブログと比べて、キャッシュ率が 80% 未満になることがあります。
レンダリクエストの割合としては、キャッシュ TTL やトラフィックパターンに応じて、全リクエストの 1% から 15% 程度になるのが一般的です。
可能であれば、Imgix が提供する CDN に加えて、サードパーティの CDN を使用しないことを推奨します。 Imgix サービスの全コンポーネントが密接に統合されているため、サードパーティ CDN を使用するとパフォーマンスが低下し、一部の機能が利用できなくなる可能性があります。
1 件の画像リクエストに 2 つの CDN が関与することで、初回レンダリングに時間がかかり、キャッシュヒット率に悪影響を及ぼします。 キャッシュヒット率は、CDN キャッシュから配信されたリクエストの割合を示します。サードパーティ CDN を追加すると、初回ミスの確率が増加し、Imgix のバックエンドシステムに最適化されていないため、キャッシュミスが発生しやすくなります。
Imgix 特有の機能とサードパーティ CDN の影響
サードパーティ CDN を使用すると、速度低下とキャッシュミスのリスク増加に加え、以下の高度な Imgix 機能も使用できなくなります。これらの機能は、エッジキャッシュでの最適化ロジックに依存しているためです。
自動コンテンツネゴシエーション
Imgix の 自動コンテンツネゴシエーション は、デバイスやブラウザに応じて最適な画像形式(WebP, JPEG XR など)を自動的に選択して配信する機能で、追加の実装は不要です。当社の CDN 上でクライアントが高度な画像形式をサポートしているかどうかを判定し、必要に応じて最適化された形式にリアルタイム変換します。
クライアントヒントのサポート
ご注意: Chrome バージョン 67 以降、クライアントヒントは第三者のオリジンには送信されなくなりました。これは、クライアントヒントに含まれる情報を制限するための措置です。将来的に再導入される可能性はあります。
同様に、Imgix の クライアントヒント サポートは、HTTP リクエストヘッダーに含まれる追加情報に基づいて、最適な画像サイズをサーバーが選択するために必要なキャッシュロジックを利用しています。他の CDN ではこのロジックが存在しないため、Imgix CDN を使用するお客様にのみ提供可能です。
パージ機能
Imgix では、ワンクリック や API 呼び出し により、オリジン画像とその派生画像をすべてパージできます。通常、数分以内に完了します。サードパーティ CDN を追加すると、パージに時間がかかるうえ、すべての派生画像を個別にパージする必要が生じる場合があります。
カスタムドメインとの SSL
Imgix は、すべての標準ホスト名(*.imgix.net)に対して、デフォルトで SSL/TLS を提供しています。サードパーティ CDN を Imgix に加えて使用する場合は、希望するカスタムドメイン用の証明書をその CDN プロバイダと連携して取得し、その CDN オリジンを imgix.net のホスト名に向ける必要があります。
非画像アセットの配信
画像用とその他の静的アセット用に別々の CDN を管理するのは、複雑で時間がかかり、コストも高くつきます。しかし、Imgix では、画像と同じアカウントやソースから、すべての非画像アセットも配信可能です。入力ファイル形式としてサポートされていない アセットは、自動的に変換されることなく配信されます。この方法で配信されるアセットも、Imgix CDN のエッジノードでキャッシュされ、エンドユーザーへの高速配信が可能です。画像アセットと同様にパージ することもできます。
非画像アセットは、デフォルトで gzip 圧縮されて配信されます。さらにファイルサイズの削減を求める場合は、Brotli 圧縮の有効化をリクエストすることもできます。
また、非画像アセットのパススルーを無効にし、それらを CDN 経由で配信せず、エラーを返すオプションも提供しています。この機能を有効にするには、サポートに連絡してください。