3. 便利な機能の追加

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

ドメインに進展がない場合は、ここでやめることができます。しかし、まだまだたくさんの機能があります!Fastlyは、Web サイトをキャッシュするだけではありません。

このセセクションでは、Fastlyのサービスに利用できるエッジ機能のいくつかを紹介します。例えば、特定のタイプのリクエストに対してシンセティックレスポンスを提供するように Fastly を設定し、また、アセットの圧縮を有効にして、ストリーミングロギングエンドポイントを設定し、そして、誰が Web サイトを訪問したかを確認できるようになります。

シンセティックレスポンスの設定

Fastlyがオリジンからエラーコードを受け取ったとき、またはリクエストが条件に一致したときに、シンセティックレスポンスを提供するようにFastlyを設定することができます。これは、404ページや、robots.txtファイルなどで特に便利です。Fastlyは、一般的なレスポンスにいくつかのクイック設定を提供していますが、HTTPのステータスコードまたは条件に基づいてカスタカスタムレスポンスを設定することができます。詳細については、レスポンスチュートリアルをご覧ください。このチュートリアルでは、後で条件について説明します。

404 ページおよび robots.text ページにシンセティックレスポンスを設定しましょう。Edit configuration ボタンをクリックして、サービスをクローンし、新しいドラフトバージョンを作成します。次に、「コンテンツ」ページで、以下のように404ページrobots.txtの横のオンスイッチをクリックします。保存ボタンをクリックする前に、デフォルトのレスポンスを編集することができます。

シンセティックレスポンスの設定

有効化ボタンをクリックして、サービス設定の新しいバージョンを有効化します。ここで、https://tacolabs.global.ssl.fastly.net/robots.txtにアクセスすると、robots.txtのシンセティックレスポンスが表示されます。

オリジンシールドを有効にする

デフォルトでは、以下のように、Fastly POPは、オリジンサーバーから直接リソースをプルします。すべてのPOPが個別にオリジンからリソースを取得する必要があるため、キャッシュが蓄積されるまでに時間がかかることがあります。オリジンへのトラフィックの急増は、一時的であり、続くのはキャッシュを投入する間だけです。

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

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

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

Taco Labs にオリジンシールドを有効にしましょう。Edit configuration ボタンをクリックして、サーバーをクローンし、新しいドラフトバージョンを作成します。次に、Origin ページで、オリジンの名前をクリックして、オリジンの設定を編集します。「このホストを編集する」ページで、以下のように、シールドPOPを選択します。この場合、これが地域の AWS に近い POP であるため、シカゴ (MDW) を選択しますus-east-2アップデートボタンをクリックして、変更を保存します。

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

これで有効化できます!有効化ボタンをクリックして、サービス設定の新しいバージョンを有効化します。

ヘッダーの確認

サービスにオリジンシールドを有効化しましたが、機能しているかどうかを判断するにはどうすればよいでしょうか?再度HTTPヘッダーの確認を行いましょう。端末アプリケーションを開き、次のコマンドを入力します:

1
$ curl -svo /dev/null -H "Fastly-Debug:1" https://tacolabs.global.ssl.fastly.net

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

1
2
3
< 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 サイトをロードします。

圧縮を使用する

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

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

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

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

Web サイトのパージ

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

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

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

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

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

これで、以前の圧縮バージョンがパージされたのため、Web サイトが効果的に gzip 圧縮を使用しているかどうかを確認することができます。gzip 圧縮の状態を確認できる、無料の Web サイトとツールがたくさんあります。結果は、以下のように表示されます。ミッションが完了しました!

gzip圧縮が有効化されているかどうかを確認する

ログを有効化

ログイベントとトラフィックは、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 のログエラー

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

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

Amazon S3 バケットでの Fastly のログファイル

AWS コントロールパネルを使用して、ファイルを開くことができます。ファイルの抜粋は、以下のように表示されます。ストリーミングログに関するドドキュメントには、ログ形式と変数に関する詳細が記載されています。

1
2
{     "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 を使用して、ログエントリーのタイプのグループ化、ログで検索、特定のタイプのイベントにアラートを設定することなどができます。

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



Back to Top