3. 便利な機能の追加
最終更新日 2023-02-07
このページは、Fastly の CDN の説明の一部であり、Fastly の CDN の使用方法および Web サイトの例とドメイン名を示して段階的に説明するチュートリアルです。このチュートリアルでは、静的サイト生成ツールの Jekyll、Amazon AWS、Fastly CDN を使用して静的 Web サイトをキャッシュ・配信する手順をご紹介します。詳細については、紹介をご覧ください。
前のセクションでは、Fastly サービスを作成し、ドメインとオリジンホスト名を追加し、Fastly サービス設定を有効にしました。また、curl コマンドラインユーティリティを使用して、Fastly がウェブサイトをキャッシュしていることを確認し、さらには、無料の TLS を使用して安全なプレビュードメイン名を作成しました。
ドメインに進展がない場合は、ここでやめることができます。まだまだたくさんの機能があります!Fastlyは、Web サイトをキャッシュする限りではありません。
このセセクションでは、Fastly のサービスに利用できるエッジ機能のいくつかを紹介します。例えば、特定のタイプのリクエストに対してシンセティックレスポンスを提供するように Fastly を設定や、アセットの圧縮を有効にして、ストリーミングロギングエンドポイントを設定し、誰が Web サイトを訪問したかを確認できるようになります。
シンセティックレスポンスの設定
Fastly がオリジンからエラーコードを受け取ったとき、またはリクエストが条件に一致したときに、シンセティックレスポンスを提供するように Fastly を設定することができます。これは、404 ページや、robots.txt ファイルなどで特に便利です。Fastly は、一般的なレスポンスにいくつかのクイック設定を提供していますが、HTTP のステータスコードまたは条件に基づいてカスタカスタムレスポンスを設定することができます。詳細については、responses tutorial をご覧ください。このチュートリアルでは、後ほど条件について説明します。
404 ページおよび robots.text ページにシンセティックレスポンスを設定していきます。Edit configuration ボタンをクリックして、サービスを複製し、新しいドラフトバージョンを作成します。次に、Content ページで、以下のように404ページと robots.txt の横にある On スイッチをクリックします。Save ボタンをクリックする前に、デフォルトのレスポンスを編集することができます。
Activate ボタンをクリックして、サービス設定の新しいバージョンを有効化します。ここで、https://tacolabs.global.ssl.fastly.net/robots.txt にアクセスすると、 robots.txt のシンセティックレスポンスが表示されます。
シールドを有効にする
デフォルトでは、以下のように、Fastly POP は、オリジンサーバーから直接リソースをプルします。すべての POP が個別にオリジンからリソースを取得する必要があるため、キャッシュが蓄積されるまでに時間がかかることがあります。オリジンへのトラフィックの急増は、一時的であり、続くのはキャッシュを投入する間だけです。
このメソッドは機能しますが、Fastly はキャッシュを投入する、より効率的な方法を提供します。shielding 機能では、単一の POP を指定して、オリジン/オリジンサーバーへのすべてのリクエストを処理することができます。以下のように、オリジンシールドを有効にすることで、オリジンへのリクエストがPOPから来ていることを確認して、オリジンの負担を減らし、Webホストのコストを削減を削減できます。
ヒント
この機能を有効にする前に、shielding documentation を必ずご覧ください。オリジンシールドは、トラフィック、ヒットパフォーマンス、およびパフォーマンスに影響します。
Taco Labs にシールドを有効にします。Edit configuration ボタンをクリックして、サーバーを複製し、新しいドラフトバージョンを作成します。次に、Origin ページで、オリジンの名前をクリックして、オリジンの設定を編集します。Edit this host ページで、以下のように、シールド POP を選択します。この場合、これが地域の AWS に近い POP であるため、シカゴ (MDW) を選択しますus-east-2
。Update ボタンをクリックして、変更を保存します。
ヒント
一般的に、オリジンに近い POP を選択することをお勧めします。これにより、Fastly はシールド POP とエッジ POP (リクエストを行ったユーザーに近いPOP ) 間のリクエストを最適化するため、より高速なコンテンツ配信が可能になります。オリジンに近い POP の場所を選択するために、私たちは、AWS と Google Cloud Services (GCS) のいくつかのリストを提供しています。詳細については、オリジンシールドの場所を選択するに関するドキュメントをご覧ください。
これで有効化できます!Activate ボタンをクリックして、サービス設定の新しいバージョンを有効化します。
ヘッダーの確認
サービスにオリジンシールドを有効化しましたが、機能しているかどうかを判断するにはどうすればよいでしょうか?再度HTTPヘッダーの確認を行います。端末アプリケーションを開き、次のコマンドを入力します:
$ curl -svo /dev/null -H "Fastly-Debug:1" https://tacolabs.global.ssl.fastly.net
出力で以下のように表示されます:
1< X-Served-By: cache-mdw17347-MDW, cache-bur17582-BUR2< X-Cache: MISS, MISS3< X-Cache-Hits: 0, 0
キャッシュノードが X-Served-By
ヘッダーに表示されているため、オリジンシールドが有効化されているのがわかります。X-Cache
ヘッダー (MISS, MISS
) は、オブジェクトがシールドのキャッシュやエッジノードではなかったことを意味しており、Fastly はオリジンから Web サイトをフェッチしました。次回は、curl コマンドの実行や、Web サイトのロードを行います。Fastly は、キャッシュから Web サイトをロードします。
ヒント
ヘッダーの可能な値についての詳しい情報は、X-Cache
shielding debuggingドキュメントをご覧ください。
圧縮を使用する
Taco Labs は、静的 Web サイトですが、そのパフォーマンスは、圧縮のメリットがあります。訪問者の Web ブラウザに送信される前に圧縮することで、アセットのサイズを縮小することができ、Web サイトの配信を効果的にスピードアップできます。Fastly コントロールパネルでこの機能を有効にすると、Fastly はオリジンから動的にコンテンツを取得し、圧縮して、キャッシュします。
Edit configuration ボタンをクリックして、サーバーを複製し、新しいドラフトバージョンを作成します。次に、Content ページで、以下のように Default compression policy の横にある On スイッチをクリックします。
ヒント
デフォルトの設定は、ほとんどのファイルタイプを圧縮するため、どの Web サイトでも十分に機能します。特定のファイルタイプを圧縮する必要がある場合は、高度な圧縮ポリシーを設定することができます。
これで、Activate ボタンをクリックして、サービス設定を有効化することができます。
Web サイトのパージ
私たちは、圧縮を有効にしていますが、Webサイトが圧縮されているかどうかを確認することはできません。これを理解するには、最近有効化したオリジンフィールドを呼び出してください。シールド POP は、Web サイトの非圧縮バージョンをキャッシュしているため、Web サイトの新しい圧縮バージョンは、まだ存在しません。シールド POP と、他のすべてのキャッシュノードは、Web サイトのキャッシュされたバージョンを削除し、新しい、圧縮されたバージョンを取得するかをどのように伝えるのでしょうか?
つまり、パージです。当社は、提供されたパージ方法の1つを使用して、Web サイトのコンテンツの一部または全部をキャッシュからパージするよう Fastly に指示します。パージは、Web サイトのコンテンツを変更する必要があるときに可能な作業です。例えば、ブログ投稿のタイトルを更新した場合、新しいタイトルを表示するには、ブログ投稿の URL をパージする必要があります。Web サイトの各ページに表示されるロゴを更新した場合、画像の URL をパージする必要があります。
パージはコストがかかるため、変更したコンテンツのみをパージすることをお勧めします。このチュートリアルでは、後で、よりターゲットを絞ったパージオプションについて説明します。今回、すべてのアセットに影響する大きな変更を実施したため、すべてをパージを使用します。このメソッドは、Fastly のキャッシュノードからすべての Web サイトのコンテンツをパージします。
では、コンテンツのすべてをパージしましょう。画面上部の Deliver リンクをクリックし、次に、Service summary リンクをクリックします。次に、以下のように、Purge メニューから Purge all を選択します。
これで以前の圧縮バージョンがパージされたため、Webサイトが効果的に圧縮を使用しているかどうかを確認することができます。Google の PageSpeed Insights を使用して、圧縮のステータスを確認することができます。Web サイトでテキスト圧縮の有効化の監査にパスしている場合、圧縮が機能していることがわかります。ミッションが完了しました!
ログを有効化
ログイベントとトラフィックは、Web サイトとアプリケーションをモニタリングする上で重要な要素です。CDN を使用した副作用は、ログトラフィックを変更する必要があることです。Fastly を使用するようになった後、事実上、オリジンへのすべてのトラフィックは、Fastly から発生します。引き続きビジターログを収集するには、Fastly のリアルタイムログストリーミング機能を使用して、ログストリーミングエンドポインを設定する必要があります。
Fastly のリアルタイムログリアルタイムログストリーミング機能は、サードパーティサービスに統合されています。私たちの logging documentation は、サポートされているサービスのリストを提供しています。Fastly サービスを、1つまたは複数のログエンドポイントに接続することができます。
2種類のログを理解する
このチュートリアルでは、Amazon S3 と Papertrail の2つのログエンドポイントを設定します。これらのサービスは、機能に若干の違いがあります。Amazon S3 では、Fastly はログをバッチし、Amazon S3 バケットのファイルに時間単位で書き込んでいます。これは、リアルタイム分析に必要ではない、ログファイルを保存するにはコスト効率の高い方法です。
Papertrail は、ストリーミングログファイルに特化して構築されています。Fastly のリアルタイムログストリーミング機能とペアになった場合、リアルタイムで更新するファイルをテーリングしているようなものになります。画面全体にログのスクロールが表示され、検索機能を使用して、特定のログエントリーを探すことができます。
Amazon S3 ログストリーミングの設定とトラブルシューティング問題
Amazon S3 ログストリーミングエンドポイントを設定するには、ログに新しい S3 バケットを作成し、Fastly ドキュメントの手順に従って、Amazon S3 エンドポイントを設定します。これは、フォームに入力し、新しい設定を有効化するのと同じくらい簡単です。
Fastly はログエンドポイントに問題をトラブルシューティングするために使用できる、いくつかのツールを提供しています。まずはFastly コントロールパネルにログインします。Fastly がログをログエンドポイントに送信しようとした場合、以下のように、コントロールパネルにエラーメッセージが表示されます。
この場合、ドメインフィールド (高度なオプションの下) でデフォルトの値を変更するのを忘れてしまいました。正式なホスト名は、S3 バケットが配置されている AWS リージョンによって異なります。当社は、us-east-2
の地域を使用しているため、デフォルトのホスト名 (s3.amazonaws.com
) を s3.us-east-2.amazonaws.com
に更新する必要があります。AWS の Web サイトで、AWS の地域コードの全リストをご覧ください。
Fastly は、S3 バケットにログを書き込みますが、S3 バケットにログが表示されるまでしばらく時間がかかることがあります。最終的に、以下のように、いくつかの新しいログファイルが表示されます。ログファイルが書き込まれている場所の変更に関するドキュメントを参照して、ファイル名と、ファイルが書かれたコントロールを変更する方法を確認してください。
AWS コントロールパネルを使用して、ファイルを開くことができます。ファイルの抜粋は、以下のように表示されます。streaming logsに関するドドキュメントには、ログ形式と変数に関する詳細が記載されています。
{ "timestamp":"2021-08-23T16:32:15", "client_ip":"73.127.172.124", "geo_country":"united states", "geo_city":"albuquerque", "url":"/tacos", "request_referer":"https://tacolabs.global.ssl.fastly.net/base-layers/", "request_user_agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.107 Safari/537.36", "fastly_is_edge":true, "response_state":"HIT", "response_status":302, "response_reason":"Moved Temporarily", "response_body_size":313, "request_method":"GET", "request_protocol":"HTTP/1.1", "fastly_server":"cache-phx12422-PHX", "host":"tacolabs.global.ssl.fastly.net" }{ "timestamp":"2021-08-23T16:32:15", "client_ip":"73.127.172.124", "geo_country":"united states", "geo_city":"albuquerque", "url":"/favicon.ico", "request_referer":"https://tacolabs.global.ssl.fastly.net/tacos/", "request_user_agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.107 Safari/537.36", "fastly_is_edge":true, "response_state":"PASS", "response_status":403, "response_reason":"Forbidden", "response_body_size":303, "request_method":"GET", "request_protocol":"HTTP/1.1", "fastly_server":"cache-phx12422-PHX", "host":"tacolabs.global.ssl.fastly.net" }
Papertrail log streamingの設定
Papertrailは、初めてログする人にとって便利なオールインワンサービスです。S3 とは異なり、Papertrail は、ログファイルを保持しますが、他には何もしません。Papertrail は、リアルタイムのログと分析専用のみに構築されています。Papertrail アカウントを作成し、Fastly コントロールパネルで Papertrail のログエンドポイントを設定すると、Papertrail インターフェースにリアルタイムログイベントスクロールが表示されます。
Papertrail には、ログを読みやすくするための機能があります。例えば、Papertrail を使用して、ログエントリーのタイプのグループ化、ログで検索、特定のタイプのイベントにアラートを設定することなどができます。
また、Papertrail を設定して、ログをフィルターすることもできます。静的アセット ( CSS ファイルや画像など ) のような成功したリクエストの行を削除することで、ログのチャタリングを減らし、4xx や 5xx ステータスのリクエストのログ行に集中させることができるのです。これにより、問題の発見がはるかに簡単になります。