はじめに
CloudFrontのキャッシュは、エッジロケーションでコンテンツを保存し、ユーザーに近い場所から配信する仕組みです。
本記事では、CloudFrontのキャッシュによるメリットや保持期間、削除について解説します。
メリット
CloudFrontのキャッシュは、ユーザーに近いエッジロケーションでコンテンツを保存し、迅速な配信を可能にする仕組みです。これにより、次のようなメリットがあります。
①配信の高速化: ユーザーに近いエッジロケーションからコンテンツを提供することで、リクエストのラウンドトリップタイムが短縮され、ページのロード時間が減少します。これにより、高速な応答が可能になり、特にグローバルなユーザー基盤を持つサービスで顕著な効果があります。
②帯域幅の節約: 多くのリクエストがエッジロケーションで処理されるため、オリジンサーバーの負荷が減少し、必要な帯域幅が節約されます。また、オリジンサーバーへの転送量が減ることで、データ転送コストの削減にもつながります。
③高可用性の実現: オリジンサーバーがダウンした場合でも、エッジロケーションのキャッシュによりサービスの継続が可能です。さらに、特定のエッジロケーションが利用不可になった場合でも他のエッジロケーションがサービスを提供できます。
キャッシュ保持期間の設定
CloudFrontで設定できるキャッシュ保持期間(TTL: Time to Live)には以下の設定項目があります。
①Default TTL: オブジェクトのデフォルトのキャッシュ期間を設定します。オリジンが指定しない場合に適用されます。
②Minimum TTL: オリジンが指定する最短のキャッシュ期間を設定します。これにより、オブジェクトが少なくともこの期間はキャッシュされます。
③Maximum TTL: オリジンが指定する最長のキャッシュ期間を設定します。これにより、オブジェクトがこの期間を超えてキャッシュされないようにします。
例: 一般的なキャッシュ設定
Default TTL: 86400秒(24時間)
Minimum TTL: 3600秒(1時間)
Maximum TTL: 604800秒(1週間)
動作:
オリジンがTTLを指定しない場合、オブジェクトは24時間キャッシュされます。
オリジンがTTLを30分に設定しても、最低1時間キャッシュされます。
オリジンがTTLを2週間に設定しても、最長1週間までしかキャッシュされません。
キャッシュ削除
コンテンツが更新された際、キャッシュ保持期間の設定によってはユーザーに最新のコンテンツが配信されません。そのため、キャッシュの削除を行う必要があります。
CloudFrontでのキャッシュの削除はCloudFrontのコンソールまたはAPIを使用して、主に以下の方法で行います。
インバリッドレーション: 特定のオブジェクトまたはオブジェクトのパスを指定して、そのキャッシュを無効にすることができます。これにより、新しいオブジェクトがアップロードされたり更新されたりした際に、既存のキャッシュがすぐに無効になります。
キャッシュの全体的な削除: 特定のディストリビューションのすべてのキャッシュを一括で削除することができます。これは、大規模なコンテンツのアップデートやサイトの再構築などの際に便利です。
まとめ
CloudFrontのキャッシュ機能は、ユーザーエクスペリエンスの向上とコスト削減に大いに貢献しますが、コンテンツの更新の際には古いデータが配信されないようにする必要があります。
参考