3. 便利な機能を追加する

3 of 7

このページは、Fastly の CDN の説明の一部であり、Fastly の CDN の使用方法および Web サイトの例とドメイン名を示して段階的に説明するチュートリアルです。このチュートリアルでは、静的サイト生成ツールの Jekyll、Amazon AWS、Fastly CDN を使用して静的Webサイトをキャッシュ・配信する手順をご紹介します。詳細については、こちらをご覧ください。

前のセクションでは、Fastly サービスを作成し、ドメインとオリジンホスト名を追加し、Fastly サービス設定を有効にしました。また、curl コマンドラインユーティリティを使用して、Fastly が Web サイトをキャッシュしていることを確認し、さらに、安全なプレビュードメイン名を作成しました。

ドメインに違いがなければ、ここでやめることもできます。まだまだたくさんの機能があります!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 のしくみを示す図

このメソッドは機能しますが、Fastlyは、キャッシュを投入する、より効率的な方法を提供します。shielding機能では、単一の POP を指定して、オリジン/オリジンサーバーへのすべてのリクエストを処理することができます。以下のように、オリジンシールドを有効にすることで、オリジンへのリクエストがPOPから来ていることを確認して、オリジンの負担を減らし、Webホストのコストを削減を削減できます。

ヒント

この機能を有効にする前に、shielding documentationを必ずご覧ください。オリジンシールドは、トラフィック、ヒットパフォーマンス、およびパフォーマンスに影響します。

シールドを無効化した Fastly のしくみを示す図

Taco Labs でオリジンシールドを有効にしましょう。Edit configuration をクリックしてサーバーを複製し、新しいドラフトバージョンを作成します。次に、Origin ページで、オリジンの名前をクリックして、オリジンの設定を編集します。Edit this host ページで、以下のように、シールド POP を選択します。ここでは、AWS リージョンに最も近い POP であることから、Chicago (MDW) を選択しますus-east-2Update をクリックすると変更内容が保存されます。

Fastly コントロールパネルのオリジンシールドインターフェイス

ヒント

一般的に、オリジンに近い 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

出力で以下のように表示されます:

< X-Served-By: cache-mdw17347-MDW, cache-bur17582-BUR
< X-Cache: MISS, MISS
< X-Cache-Hits: 0, 0

キャッシュノードが X-Served-Byヘッダーに表示されているため、オリジンシールドが有効化されているのがわかります。X-Cacheヘッダー (MISS, MISS) は、オブジェクトがシールドのキャッシュやエッジノードではなかったことを意味しており、Fastly はオリジンから Web サイトをフェッチしました。次回は、curl コマンドの実行や、Web サイトのロードを行います。Fastly は、キャッシュから Web サイトをロードします。

ヒント

ヘッダーの可能な値についての詳しい情報は、X-Cacheshielding debuggingドキュメントをご覧ください。

圧縮を使用する

Taco Labs は、静的 Web サイトですが、そのパフォーマンスは、圧縮のメリットがあります。訪問者の Web ブラウザに送信される前に圧縮することで、アセットのサイズを縮小することができ、Web サイトの配信を効果的にスピードアップできます。Fastly コントロールパネルでこの機能を有効にすると、Fastly はオリジンから動的にコンテンツを取得し、圧縮して、キャッシュします。

Edit configuration をクリックしてサーバーを複製し、新しいドラフトバージョンを作成しましょう。次に、Content ページで、以下のように Default compression policy の横にある On スイッチをクリックします。

Fastly コントロールパネルで圧縮設定を有効にする

ヒント

デフォルトの設定で、最もよく使用されるファイルタイプが圧縮されるため、ほとんどの Web サイトではこれで十分です。特定のファイルタイプを圧縮する必要がある場合は、高度な圧縮ポリシーを設定することができます。

これで、Activate ボタンをクリックして、サービス設定を有効にすることができます。

Web サイトをパージする

圧縮を有効化しましたが、Web サイトをテストして、正常に圧縮されているかどうかをテストすることはまだできません。これを理解するには、最近有効化したオリジンフィールドを呼び出してください。シールド POP は、Web サイトの非圧縮バージョンをキャッシュしているため、Web サイトの新しい圧縮バージョンは、まだ存在しません。シールド POP や他のすべてのキャッシュノードが、Web サイトのキャッシュされたバージョンを削除して、新しい圧縮されたバージョンの Web サイトをフェッチしたかどうかを確認するにはどうすればいいのでしょうか?

つまり、パージです。提供されているパージメソッドのうちの1つを使用することで、Web サイトのコンテンツの一部または全部をキャッシュからパージするよう Fastly に指示することができます。パージは、Web サイトのコンテンツを変更する必要がある度に毎回必要となります。例えば、ブログ投稿のタイトルを更新した場合、新しいタイトルを表示するには、ブログ投稿の URL をパージする必要があります。また、Web サイトの各ページに表示されるロゴを更新する場合にも、画像の URL をパージする必要があります。

パージはコストがかかるため、変更したコンテンツのみをパージすることをお勧めします。よりターゲットを絞ったパージオプションについては、このチュートリアルの後のセクションでご説明します。今回、すべてのアセットに影響する大きな変更を実装したため、すべてをパージを使用します。このメソッドは、Fastly のキャッシュノードからすべての Web サイトのコンテンツをパージします。

では早速、すべてのコンテンツをパージしてみましょう。画面の上部にある Deliver クリックし、Service summary をクリックします。次に、以下のように、Purge メニューから Purge all を選択します。

Fastly コントロールパネルを使用してすべてのコンテンツをパージする

これで以前の圧縮バージョンがパージされたため、Webサイトが効果的に圧縮を使用しているかどうかを確認することができます。Google の PageSpeed Insights を使用して、圧縮のステータスを確認することができます。Web サイトでテキスト圧縮の有効化の監査にパスしている場合、圧縮が機能していることがわかります。ミッションが完了しました!

ログを有効化する

ログイベントとトラフィックは、Web サイトとアプリケーションをモニタリングする上で重要な要素です。CDN を使用した副作用は、ログトラフィックを変更する必要があることです。Fastly を使用するようになった後、事実上、オリジンへのすべてのトラフィックは、Fastly から発生します。引き続きビジターログを収集するには、Fastly のリアルタイムログストリーミング機能を使用して、ログストリーミングエンドポインを設定する必要があります。

Fastly のリアルタイムログリアルタイムログストリーミング機能は、サードパーティサービスに統合されています。当社のログドキュメントは、サポートされているサービスのリストを提供しています。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がログをログエンドポイントに送信しようとした場合、以下のように、コントロールパネルにエラーメッセージが表示されます。

Fastly コントロールパネルに表示された Amazon S3 のログエラー

このエラーは、(Advanced オプションにある) Domain フィールドのデフォルト値を変更するのを忘れていたことが原因でした。正式なホスト名は、S3 バケットが配置されている AWS リージョンによって異なります。当社は、us-east-2の地域を使用しているため、デフォルトのホスト名 (s3.amazonaws.com) をs3.us-east-2.amazonaws.comに更新する必要があります。AWS の Web サイトで、AWS の地域コードの全リストをご覧ください。

Fastly は、S3 バケットにログを書き込みますが、S3 バケットにログが表示されるまでしばらく時間がかかることがあります。最終的に、以下のように複数の新しいログファイルが表示されます。ログファイルが書き込まれている場所の変更に関するドキュメントを参照して、ファイル名と、ファイルが書かれたコントロールを変更する方法を確認してください。

Amazon S3 バケットに表示された Fastly のログファイル

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ログストリーミングを設定する

Papertrail は、初めてログする人にとって便利なオールインワンサービスです。S3 とは異なり、Papertrail は、ログファイルを保持しますが、他には何もしません。Papertrail は、リアルタイムのログと分析専用のみに構築されています。Papertrail アカウントを作成し、Fastly コントロールパネルで Papertrail のログエンドポイントを設定すると、Papertrail インターフェースにリアルタイムログイベントスクロールが表示されます。

Papertrail のストリーミングログ

Papertrail には、ログを読みやすくするための機能があります。例えば、Papertrail を使用して、ログエントリーのタイプのグループ化、ログで検索、特定のタイプのイベントにアラートを設定することなどができます。

また、Papertrail を設定して、ログをフィルターすることもできます。静的アセット ( CSS ファイルや画像など ) のような成功したリクエストの行を削除することで、ログのチャタリングを減らし、4xx や 5xx ステータスのリクエストのログ行に集中させることができるのです。これにより、問題の発見がはるかに簡単になります。


翻訳についての注意事項
このガイドは役に立ちましたか?

このフォームを使用して機密性の高い情報を送信しないでください。サポートが必要な場合は、サポートチームまでご連絡ください。このフォームは reCAPTCHA によって保護されており、Google のプライバシーポリシー利用規約が適用されます。