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

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

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

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

    AWS

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

    AWSに最初にアカウントを作るとルートユーザーというものが作られます。…

  3. AWS

    AWSで大規模障害発生時に被害を最小限にする方法

    先日、AWSで大規模障害が発生し、多くのサービスが影響を受けました。こ…

  4. AWS

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

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

  5. AWS

    AWSでEC2インスタンスを安全に使うための3つの注意点

    今回はAWSでEC2インスタンスを起動した際に、安全に使うために行った…

  6. AWS

    AWSでOSの脆弱性対策をする方法

    今回はAWSで作成したEC2インスタンスのOSの脆弱性対策をする方…

最近の記事

  1. AWS

    AWSでOSの脆弱性対策をする方法
  2. webサイトをhttps化するメリットと注意点

    PCI DSS

    webサイトをhttps化するメリットと注意点
  3. AWS

    AWSでLinuxサーバ上のログを自動的にS3に保存する方法
  4. PCI DSS準拠するためにAWSのセキュリティグループを使うためのポイント

    AWS

    PCI DSS準拠するためにAWSのセキュリティグループを使うためのポイント
  5. AWS

    AWSで大規模障害発生時に被害を最小限にする方法
PAGE TOP