CDN edge とは? ユーザーの近くでコンテンツを配信する
CDN edge は、コンテンツをユーザーの近くにキャッシュする、地理的に分散した多数のサーバーの 1 つで、リクエストは遠いオリジンではなく近くの場所から配信されます。
content delivery network は、edge node または points of presence と呼ばれるサーバーを世界中に配置します。ユーザーが asset を要求すると、最も近い edge がそれをキャッシュから配信し、レイテンシを削減してオリジンの負荷を軽減します。フロントエンドのデプロイは、新鮮なコンテンツをこれらの edge に届け、古いコピーをクリアすることにかかっています。
ユーザーの近くでのキャッシュ
edge node はネットワーク上でユーザーの近くに位置します。cache hit では asset を即座に返し、miss ではオリジンから取得し、結果をキャッシュして、以降のリクエストをそこから配信します。
hit、miss、TTL
各キャッシュオブジェクトには、edge が再検証する前にそれをどれだけの間配信するかを制御する time-to-live があります。TTL の調整は、新鮮さとオリジンの負荷および速度とのトレードオフになります。
フロントエンドのデプロイにおける edge
- build がハッシュ付きの不変な asset ファイル名を生成します。
- デプロイがそれらをオリジンまたは edge ストレージにアップロードします。
- キャッシュ無効化が、古い HTML やエントリファイルをクリアします。
キャッシュ無効化
デプロイ後も、edge はまだ古いファイルを保持していることがあります。purge または無効化の step は、ユーザーが新しいバージョンを受け取れるよう、古いコピーを破棄するよう CDN に伝えます。これを忘れると、「デプロイは成功したがユーザーには古いサイトが見える」という典型的なバグになります。
コンテンツハッシュ付きファイル名が役立つ理由
コンテンツハッシュ付きの不変なファイル名により、edge は asset を永久にキャッシュでき、それらを参照する小さな HTML だけを無効化すればよくなります。これによりデプロイが高速になり、キャッシュの挙動が予測可能になります。
一時的な edge エラー
混雑したオリジンに対して再検証している間に edge がエラーを返すのは、通常は一時的です。Latchkey の runner は、CDN エンドポイントに対してデプロイを検証する際に一時的なエラーをリトライするため、edge の短いしゃっくりがデプロイ後のチェックを失敗させることはありません。
重要なポイント
- CDN edge は、レイテンシを削減するためにユーザーの近くでコンテンツをキャッシュして配信します。
- ユーザーが古いファイルを見なくなるよう、デプロイ後のキャッシュ無効化が必要です。
- コンテンツハッシュ付きのファイル名により、edge は asset を無期限にキャッシュでき、purge が簡単になります。