読者です 読者をやめる 読者になる 読者になる

うさがにっき

読書感想文とプログラムのこと書いてきます

CloudFrontとの連携

概要

CloudFrontはAWSのCDN(Contents Delivery Network)サービスのこと
CDNとはなんなのか、S3とCloudFrontとの連携についてまとめる

詳細

CDNとは?

コンテンツを配信するために最適化されたネットワークのこと
分散して配置したサーバをコンテンツの配布ポイントとして利用し、効率的にコンテンツを配信する仕組み
コンテンツの配布ポイントからコンテンツを配信することにより低レイテンシで効率的に配信することができる

ClouldFrontとは?

CloudFrontは、AWSが世界中に配置したエッジサーバを利用して効率的にコンテンツを配信する
エッジサーバはCloudFrontにおけるコンテンツの配布ポイント
ユーザのアクセスを、最も近いエッジサーバに誘導する

またCloudFrontは負荷分散としても大きな意味を持つ
コンテンツの配信元となるサーバをオリジンサーバと言い、CloudFrontを利用することでオリジンサーバに到達する前にエッジサーバがコンテンツを返す
そのため、オリジンサーバへの負荷を下げることができる
エッジサーバは大量にあるので、急激にアクセスが増加した場合でも対応することができる

CloudFrontは、前述の通り基本的にはCDNサービスだが、機能が非常に豊富なため、CDN以外にも様々な場面で利点がある
EC2やS3等のコンテンツを配信するサーバの前にはClouldFrontを配置するべき

エッジロケーションとは?

エッジサーバが存在する地域のこと
世界52拠点にエッジロケーションが存在する
日本では東京と大阪にある

CloudFrontの設定

メインメニューからCloudFrontを選択する
f:id:tiro105:20150621191726p:plain

Create Distributionを選択
f:id:tiro105:20150621191820p:plain

webのGet Startedを選択
ちなみにRTMPは主に動画のストリーミング配信を行うのに使われる
f:id:tiro105:20150621191946p:plain

Distributionの設定

Origin Settingsでオリジンサーバの設定

Origin Domain Name オリジンサーバのドメイン
Origin Path CloudFrontへのリクエストをオリジンサーバの特定のパスにルーティングしたい場合は設定
Origin ID このDistributionを区別するための名前を設定(なんでもいい)
Restrict Bucket Access オリジンがS3の場合のみ有効、S3バケットへのアクセスをCloudFrontだけにする場合はYes, 直接アクセスしてもいい場合はNoを設定

f:id:tiro105:20150621193609p:plain

次にDefault Cache Behavior Settingsでキャッシュの動作を設定

Path Pattern キャッシュを有効にするパスのパターンの設定、jpgだけなら*.jpg的な
Viewer Protocol Policy コンテンツにアクセスする際にどのプロトコルを利用するか設定
Allowed HTTP Methods エンドユーザに許可するHTTPメソッドを選択
Cached HTTP Methods CloudFrontでのキャッシュが有効になるHTTPメソッドを選択
Forward Headers CloudFrontがオリジンサーバに転送するリクエエストヘッダーの設定、ヘッダー値に基づいてオブジェクトをキャッシュするかの設定
Object Caching CloudFrontがキャッシュを保持する時間の設定、「Use Origin Cache Headers」の場合にはオリジンサーバのものが利用される、ヘッダーに依存せず時間を決める場合には「Customize」を選択し、Max, Minimum TTLを設定する
Forward Cookies CloudFrontからオリジンサーバへ転送するCookieを指定、S3ではcookieを処理しないためこの機能は無効になる
Forward Query Strings クエリ文字列をオリジンサーバに転送するか選択、「Yes」にすることでクエリ文字列が一致した場合はキャッシュを返すことが可能
Smooth Streaming Microsoftスムーズストリーミング形式のメディアを配信する場合はYes
Restrict Viewer Access 署名付きURLを利用するか選択

f:id:tiro105:20150621194851p:plain
f:id:tiro105:20150621194906p:plain

最後にDestribusion SettingsでDestribusion詳細の設定

Price Class 価格クラスを選択、エッジロケーションは地域によって価格帯が違うので価格の安い地域だけを使ったりする
Altemate Domain Names 独自ドメインを使う場合設定
SSL Certificate DefaultではClouldFrontにデフォルトで用意されている証明書を利用する、独自ドメインを利用する場合には「Custom SSL Certificate」を選択し、独自ドメインの証明書を指定
Default Root Obect デフォルトのルートオブジェクトを指定
Logging ログを取得するか設定
Bucket for Logs ログを配置するS3のバケットを設定
Log Prefix ログファイル名の先頭につける文字列を設定
Cookie Logging ログにCookieも記録するか選択
Comment このDistributionに対するコメントを入力できる
Distribution State Distributionの使用準備が整ったあと自動的に有効にするか選択

f:id:tiro105:20150621195633p:plain
f:id:tiro105:20150621195646p:plain

Create DistributionをクリックするとDistributionの作成が開始される
StatusがDeployedになるまで15分ほど待つ
f:id:tiro105:20150621195831p:plain

CloudFrontのDomainNameにアクセスしてみるとS3のバケットの中身が見える
エッジサーバからアクセスできている
f:id:tiro105:20150621200433p:plain

参考

Amazon Web Services パターン別構築・運用ガイド

Amazon Web Services パターン別構築・運用ガイド

広告を非表示にする