LEXUES BLOG

レキサスブログ

CloudFrontを導入しました! Part2

こんにちは。

IDCソリューションチームAWS推進担当の知花です。

またまたCloudFrontネタ投入します。

Part1ではCDNについて概要だけをお伝えしましたが、Part2ではCloudFrontの構築・導入フローを詳細に載せたいと思います。

CloudFront構築

CloudFrontの構築は、CloudFrontの管理画面より「Create Distribution」を選択。続いて「Download」を選択。

以下、詳細設定となります。

  • Origin Domain Name:オリジンサーバへ割り当てたサブドメインを指定します。
  • Origin ID:自動入力されるため変更不要。
  • Origin Protocol Policy:今回はHTTPのみのサイトのため「HTTP Only」を選択。

 

 

 

  • Object Caching:オリジンサーバ側の設定で制御したいため「Use Origin Cache Headers」を選択。
  • Forward Cookies:Cookie制御は行っていないため「None」を選択。
  • Forward Query Strings:クエリストリングは使用しているので「Yes」を選択。

 

 

 

  • Price Class:CDNの配信エッジを選択。通常、国内配信だと「Use Only US, Europe and Asia」を選択。
  • Alternate Domain Names(CNAMEs):CloudFrontにCNAMEで向けるドメイン名を指定。
  • SSL Certificate:今回は利用していないのでデフォルトのまま。
  • Default Root Object:今回はphpのシステムなので「index.php」を指定。

これにてCloudFrontの構築作業は完了。

 

DNS設定:CloudFrontドメインへCNAMEを指定

続いて、構築したCloudFront環境には「○○○.cloudfront.net」のようなドメイン名が割り振られるのでCloudFront側に向けるサービスドメインをCNAMEで指定します。

 

オリジンサーバ側の設定変更(キャッシュ制御)

コンテンツのキャッシュ時間の制御は、レスポンスヘッダにて Cache-Control: max-age の指定、Expiresヘッダを適切に付与する必要があります。
また、動的コンテンツについては、CloudFrontでキャッシュされないように、Cache-Control: no-storeを指定する必要があります。
今回は以下の方法で対応しました。

Expires指定

ApacheへExpiresモジュールを追加し、Expiresヘッダを挿入。

.htaccess にて以下の設定を追加。

 

Cache-Control: no-store 指定

ApacheへHeadersモジュールを追加し、confへ以下を追加し、
phpプログラムはキャッシュさせないように指定。

 

コンテンツサーバ側で上述のキャッシュ制御対応を行うことで、CloudFrontへキャッシュ時間の指定が行えるようになりました。

 

おわりに

今回の適用したサイトはほぼ静的コンテンツだったため、簡易な対応でCloudFrontを導入することができました。

もちろんのことですが、動的コンテンツについては下手にキャッシュされないように、Cookie対応やクエリ対応などを考慮する必要がありますので、安易な導入にはご注意くださいね。

 

また、DR対策として沖縄のデータセンターを活用される企業様が多いですが、うまくCDNサービスを使うことで高速なWEBサービスを沖縄でも構築することができますよ。私たちレキサスクラウドAWS推進チームではAWSの力を借りて沖縄データセンターの可能性を更に広げる活動も行っています。
ご興味のある方はお気軽にお問い合わせください。

宜しくお願いします。

 

キーワード: 

この記事のライター

みなさまからのご連絡をお待ちしております。

CONTACT US