AWSでCloudFrontを導入する際に注意する点

AWS

AWSでCloudFrontを導入する際に注意する点

前回の記事でAWSでシステムを構築する際にはCloudFrontを利用した方が良い理由についてご説明しました

AWSでCloudFrontを導入する際に、デフォルト設定のまま使ってしまうと、注意が必要なポイントについてご説明します。

CloudFrontはAWS(Amazon Web Service)が提供するCDN(コンテンツデリバリーネットワーク)サービスです。

CloudFrontをAWSで使用した場合、ほとんどの場合は下記の様な構成になると思います。

AWSでクラウドフロントを使用する場合の基本構成

AWSでCloudFrontを導入する際に注意する点

まずCloudFrontエッジサーバから情報を取得する元として、画像や動画、CSS、JavaScriptなどの静的なファイルはS3に保存します。

そして、PHPなどのプログラミング言語で生成される動的なページはEC2に配置します。

この情報の取得元をオリジンサーバと言います。このオリジンサーバの設定について下記の2つの設定を見直すことをオススメします。

  • エラーレスポンスのキャッシュ時間
  • オリジン keep-alive タイムアウト

エラーレスポンスのキャッシュ時間

AWSでCloudFrontを導入する際に注意する点

デフォルトだとCloudFrontはオリジンサーバから一度4xx, 5xxなどのエラーレスポンスを受け取ってしまうと、5分間は同一のURLでユーザーにエラーを返し続けます。これはCloudFrontエッジサーバの負荷をなるべく下げるためにそのようになっているのだと思いますが、たったの一度だけエラーが発生した場合でも5分間もそれが継続し続けてしまうので注意が必要です。

CloudFront がエラーをキャッシュする時間を制御する

下記の手順で設定を変更できます

AWSコンソールにログインし、メニューのサービスからCloudFrontに移動し、CloudFrontディストリビューションを選択します。

そしてError Pagesのタブをクリックします。次に、Create Custom Error Responseボタンを押します。

AWSでCloudFrontを導入する際に注意する点

そして一つずつエラーキャッシュ時間を変更したいステータスコードを選び設定していきます。

 オリジンkeep aliveタイムアウト

AWSでCloudFrontを導入する際に注意する点

こちらはCloudFrontエッジサーバとオリジンサーバがTCPコネクションを維持する時間で、デフォルトだと5秒と短めに設定されています。

こちらも多くのユーザーにサービスを提供しているCloudFrontエッジサーバの負荷をなるべく高くならないようにという意図でそのように設定されているのかなと思います。

オリジンサーバは一番最初にユーザーからリクエストがあった場合には、オリジンサーバとの間で、TCPコネクションの確立、TLSハンドシェイクという、接続確立のための処理を行います。

その確立のために、何度もオリジンサーバとの間で通信を行う必要があり、特に海外のユーザーにサイトを提供している場合では無視できないくらい大きくなって行きます。最近のサイトでは、HTTPSが当たり前ですので、TLSハンドシェイクの処理が必要になり、以前よりもさらに時間がかかるようになっています。

CloudFrontのkeep-alive タイムアウトを長くすることで、一度確立した接続を長くすることができます。

ただ、これも長くしすぎてしまうと、オリジンサーバのELBの負荷も高まってしまいますが、ELBもオートスケールという機能で自動的に拡張して行きますので、アクセス数にもよりますがそれほど心配はいらないと思います。

オリジンのキープアライブタイムアウト

下記の手順で設定を変更できます。

AWSコンソールのCloudFrontからディストリビューションを選択しOrigins and Origin Groupsタブを選択します。次に、設定を変更したいオリジンをチェックしEditボタンを押します。

AWSでCloudFrontを導入する際に注意する点

Origin Keep-alive Timeoutの値を変更し、Yes, Editボタンを押します。

以上で終わりになります。CloudFrontを構築する際にはこちらの設定を見直してみてください。

関連記事

  1. AWSでS3の利用料を節約するためにやって置いた方がよいこと

    AWS

    AWSでS3の利用料を節約するためにやって置いた方がよいこと

    AWSでファイルや画像などを配置する場所として利用する場所はS3ですが…

  2. PCI DSSの12要件とAWSにおける対応方法

    AWS

    PCI DSSの12要件とAWSにおける対応方法

    今回は、AWSを使ってクレジットカード業界のセキュリティ基準であるPC…

  3. AWSをセキュリティを高めて安全に使う方法

    AWS

    AWSをセキュリティを高めて安全に使う方法

    今回はAWSを安全に使うための方法についてご説明します。AWSは簡…

  4. AWS

    AWSでCloudFrontを使った方が良い理由

    今回はAWSでCloudFrontを使用する際に、設定しておいた方が良…

  5. AWS

    AWSでLinuxサーバ上のログを自動的にS3に保存する方法

    AWSでLinuxサーバ上のApacheのアクセスログやアプリケーショ…

  6. AWS

    CloudFrontでLambda@Edgeを本番運用してわかった注意点

    CloudFrontでLambda@Edgeを一年間運用しまして、気づ…

最近の記事

  1. AWSで安全なネットワーク設計を行うポイント

    AWS

    AWSで安全なネットワーク設計を行うポイント
  2. AWS

    AWSでRDSに安全にデータを保存するための5つのポイント
  3. AWSコンソール用の安全なユーザーの作成方法

    AWS

    AWSコンソール用の安全なユーザーの作成方法
  4. AWS

    AWSでCloudFrontを使った方が良い理由
  5. PCI DSSの12要件とAWSにおける対応方法

    AWS

    PCI DSSの12要件とAWSにおける対応方法
PAGE TOP