・Amazon CloudFront
AWS上で動作する安全で高速なコンテンツ配信ネットワーク。CloudFrontを利用すると、世界各地に配置されているエッジロケーションから、自動的にクライアントと地理的な距離が近いエッジロケーションが選択。そしてエッジロケーション内のエッジサーバーがコンテンツを配信します。
CloudFrontのオリジンサーバーには、インスタンスやS3などのAWSサービスや、オンプレミスのサーバーを設定できます。
コンテンツ配信ネットワーク(Content Delivery Network:CDN)
インターネット上のコンテンツを高速化して配信するためのネットワークのこと。世界各地の配信サーバー(エッジサーバー)がオリジナルデータがあるサーバー(オリジンサーバー)のコンテンツをコピーして保管(キャッシュ)。クライアントはオリジンサーバーへアクセスする代わりに、エッジサーバーのキャッシュからコンテンツを受け取ります。
コンテンツ配信ネットワークを利用することにより、クライアントがコンテンツに低遅延でアクセス可能になる他、オリジンサーバーへの負荷軽減にもなります。
CloudFrontでは、静的なコンテンツのほか、ライブストリーミングやオンデマンドストリーミングなどの動的なコンテンツも高いパフォーマンスで配信できます。AWSメディアサービス(動画伝送サービスや、動画変換サービスなど)と連携して、世界中にいるクライアントからのリクエストに対して低遅延で動的コンテンツを配信。
・エッジロケーション
AZとは異なるAWSデータセンターで、AZよりも数多く世界中に配置されています。Amazon CloudFrontやAmazon Route 53など一部のグローバルサービスを提供するとともに、AWS Global Acceleratorを利用してユーザーからリージョンサービスへアクセスする際の通信経路でもあります。
・ディストリビューション
CloudFrontを使用するには、はじめに「ディストリビューション」を作成します。ディストリビューションではオリジンサーバーやキャッシュなど、コンテンツを配信するために必要な各種設定をします。
ディストリビューションを作成するとCloudFrontを通してコンテンツにアクセスするためのURL「http(s)://xxxxxx.cloudfront.net」が発行されます。URLは通信の暗号化の有無(HTTP/HTTPS)を選択できます。AWS Certificate Manager(サーバー証明書を管理するサービス)から発行したサーバー証明書をインポートすることで、URLに独自ドメイン名を使用することもできます。
■オリジンサーバーの設定
オリジンサーバーは、S3バケットやELBなどのAWSサービスから選択するか、ドメイン名を入力します。
すでにS3の静的Webホスティング(バケットに保存している静的コンテンツをWebサイトとして公開できる機能)を設定しているS3バケットもオリジンサーバーとして指定できます。
■キャッシュの設定や機能
○キャッシュTTL(Time To Live:TTL)
キャッシュを保持する時間のことです。URLパスごとに指定できます。CloudFrontはキャッシュTTLが超過した後にクライアントからのリクエストを受けると、オリジンサーバーにコンテンツの更新有無を確認し、更新されていればキャッシュに反映しつつ応答を返します。
キャッシュTTLを含むキャッシュの設定のことを「キャッシュBehavior(ビヘイビア)」といいます。
○キャッシュ削除(Invalidation)
エッジサーバーに保存されているキャッシュを即座に削除できる機能です。キャッシュを削除した後にクライアントからデータのリクエストを受け取ると、エッジサーバーは必ずオリジンサーバーへコンテンツを取得しにいくので、クライアントへ配信するコンテンツが最新化されます。削除対象のデータはフォルダ名やファイル名で指定できます。
・OAI(Origin Access Identity)
OAIは、S3バケット内のコンテンツへのアクセスをCloudFront経由でのアクセスに限定し、クライアントからS3バケットへ直接アクセスされないようにする機能です。クライアントからオリジナルコンテンツへの直接アクセスを制限することにより、オリジンサーバーのデータを保護できます。
オリジンサーバーにS3バケットを選択すると、OAIの設定が表示。
・CloudFront署名付きURL
CloudFront署名付きURLは、URLを知っている特定のクライアントが期限付きでコンテンツへアクセスできる機能です。S3の署名付きURLと同じく、CloudFront署名付きURLは非常に長いランダムな文字列で作成されているため、URLを知らない人が推測することはほぼ不可能です。
CloudFront署名付きURLを利用する時は、OAIを有効にしてS3バケットへ直接アクセスされないように設定します。また、URL発行時に有効期限を設定すると、有効期限の過ぎたURLは無効になります。
・地理的制限
クライアントからのアクセスを国別に制限できる機能です。クライアントの接続情報から接続元の国を判別して、ホワイトリストに設定した国からのアクセスは許可、ブラックリストに設定した国からのアクセスは拒否します。例えば、特定の国に対して法律上の理由でコンテンツの配信ができない場合などに利用します。