【学習メモ】AWS Cloud Front

Cloud FrontはAWSが提供する、CDNサービスである。

CDNとは


コンテンツ配信ネットワーク(Content Delivery Network)の略であり、
インターネットにおいて高速でコンテンツを提供するためのネットワークのことである。
コンテンツ配信ネットワークでは世界中にコンテンツを配信するためのサーバ(エッジサーバ)があり、オリジンサーバ(コンテンツの提供元)のコンテンツをキャッシュしておくことで、高速に利用者にコンテンツを配信することを可能にする。

利用者はオリジンサーバに直接アクセスするのではなくエッジサーバにコピーされたキャッシュにアクセスするので、低遅延でコンテンツを利用するだけでなく、オリジンサーバの負荷軽減にも繋がる。

Cloud Frontでは利用者と自動的に地理的に近いエッジロケーションが選択され、そのエッジロケーション内のエッジサーバがコンテンツを提供する。
オリジンサーバにはAWSリソース(いわゆるEC2やS3)だけでなく、オンプレミスのサーバも指定可能である。

Cloud Front構築

Cloud Frontを構築する際に、まずはディストリビューションを作成する。
ディストリビューションに、オリジンサーバやキャッシュの設定を行う。
ディストリビューションを作成すると、URLが発行される。URLは通信の暗号化の有無(http/https)を選択できる。
AWS Certificate Managerから発行したサーバ証明書を登録することで、URLに独自のドメイン名を使用することもできる。
オリジンサーバはAWSリソースを選択するか、ドメイン名を指定する。(S3バケットも可)
キャッシュの設定にはキャッシュの保持時間を設定するキャッシュTTLと削除を設定できる、キャッシュ削除がある。(キャッシュポリシーに設定)
キャッシュTTLは設定した時間を超過するとオリジンサーバに更新があるかを確かめる。更新があれば、キャッシュも更新する。
キャッシュ削除はエッジサーバに保存されるキャッシュが即座に削除される機能である。これは、ユーザからのリクエスト時に必ずエッジサーバがオリジンサーバにコンテンツを参照しに行くので、常に最新のコンテンツを提供できる。
またS3バケットを使用してWEBコンテンツを保存する際には、ブラウザキャッシュを制御する、Cache-Controlヘッダーを設定できる。
Cache-Controlヘッダーをno-cacheに設定すると、ブラウザキャッシュが無効となり、Cloud Frontのキャッシュに最小TTLが適用される。最小TTL はデフォルトで1秒のため、コンテンツが常に最新化される。

その他設定可能なこと


ユーザからのアクセスをCloud Front経由に限定することで、オリジンサーバである、S3バケットに直接アクセスできないようにするOAI(Origin Access Identy)を設定できる。
OAIを利用する際は、S3バケットのバケットポリシーに、Cloud Front経由のみアクセスを許可するポリシーを追加する必要がある。
OAIを設定することで、オリジンサーバのバケットのデータを保護するメリットがある。

またURLを知っている、特定の人のみが期限付きでアクセスできる、Cloud Front 署名付きURLという機能がある。この機能を使用するときはOAIを有効にする。また有効期限を設定でき、期限切れのURLはアクセスできなくなる。

さらに、法律やコンプライアンス上の理由から、配信できない地域を制限する、地理的制限という機能がある。Cloud Frontへのアクセス許可を、ホワイトリストに設定した国は許可し、ブラックリストに設定した国は拒否するということができる。

その他にも、フィールドレベル暗号化という機能があり、HTTPS通信に加えたさらなるセキュリティの強化をすることができる。これはCloud Frontがユーザからオリジンサーバへのリクエストを転送する、リバーシプロキシとして機能する際に、そのPOSTリクエストの一部を暗号化し、特定のアプリケーションでのみ復号可能とする機能である。
これにより個人情報などより気密性の高い情報を扱う際に、よりセキュリティを強固にすることができる。

この記事が気に入ったらサポートをしてみませんか?