2. Fastly の使用を開始する
最終更新日 2022-03-01
このページは Fastly 101 (サンプル Web サイトとドメイン名によって Fastly を使用する方法を示す段階的なチュートリアル) の一部です。このガイドでは、Jekyll 静的サイトジェネレーター、Amazon AWS、Fastly CDN を使用して静的 Web サイトをキャッシュ・配信する手順をご紹介します。詳細については、紹介をご覧ください。
では、Fastly アカウントを作成し、Fastly コントロールパネルにログインしてみましょう。無料トライアルに登録することができます。クレジットカード情報は必要ありません。登録してアカウントを認証すると、以下の画面が表示されます。
Fastly アカウントを作成して設定を追加しても、本番環境の Web サイトに関連するものは何も変更されません。トラフィックは、DNS レコードを更新するまでに、S3 バケットに流れ続けます。
サービス / Service名の変更
Fastly は、アカウントに登録したときに、サービスを作成しました上のスクリーンショットでサービス設定を確認します。Fastly アカウントに複数のサービスが存在します。どれも異なる Web サイトまたはアプリケーションに対応することができます。サービス設定では、ドメイン名、オリジン、ヘッダー、キャッシュ設定など、Fastly サービスに関するあらゆる設定を行うことができます。
以下のように、現在の名前 (Unnamed Service
) をクリックして Taco Labs
のように覚えやすい名前を指定してサービス名を変更します。
現在、設定されているサービスは1つのみですが、今後さらに追加することがあるかもしれません。サービスに分かりやすい名前をつけることで、すべてのサービスが表示されるコントロールパネルのホームページで他のサービスと見分けがつきやすくなります。
ドメインの追加
これで、サービス設定にドメインを追加する準備ができました。ドメインにはユーザーがアクセスするパブリック URL を設定します。これを設定することで、Fastly は、サービスへのトラフィックがどこから発生するかを把握することができます。以下のように、ドメインフィールドに www.tacolabs.com
を入力し、Add をクリックしてサービス設定にドメインを保存します。
お客様はすでにドメインを追加しているため、サービス内のドメインwww.tacolabs.com
として追加することはできません。Fastly では、複数のサービスで同じドメインを使用することはできません。
オリジンホスト名の追加
次に、サービス設定にオリジンのホスト名を追加し、Fastly がコンテンツをどこからプルするかを把握できるようにします。サイドバーの Hosts リンクをクリックし、以下のように S3 でホストされた静的 Web サイトのパブリック URL (www.tacolabs.com.s3-website.us-east-2.amazonaws.com
) を入力します。
オリジンのホスト名を探すには、少し時間がかかります。AWS や Google Cloud Platform などのクラウドサービスを使用している場合、管理コンソールでホスト名を確認することができますが、常にそうできるとは限りません。ここでは、AWS が提供する S3 の静的 Web サイトホスティング機能を使用しているため、オリジンのホスト名は、S3 でホストされた Web サイトのパブリック URL (www.tacolabs.com.s3-website.us-east-2.amazonaws.com
) になります。静的 Web サイトのホスティング機能を使用せずに S3 バケットを使用している場合、オリジンのホスト名は Amazon S3 統合ガイドに記載されている形式に従います (www.tacolabs.com.s3.us-east-2.amazonaws.com
)。また、オリジンサーバーである場合、オリジンホスト名は、IP アドレスとなる可能性が高いです。
オリジン接続の TLS を無効化する
TLS で保護できる接続には、オリジンと Fastly 間の接続、および Fastly とユーザー間の接続の2つがあります。以下の図で2つの接続の違いを確認できます。
Fastly は、Web コントロールパネルをホスト名に入力した場合、オリジンと Fastly の間で TLS を自動的に有効化します。(IP アドレスを入力すると、TLS は自動的に無効化されます。)S3 の静的ホスト機能は TTLS をサポートしていないため、S3 バケットと Fastly の間で TLS を無効化するオリジン設定を調整する必要があります。Fastly とユーザー間の TLS は後で設定します。
接続を暗号化すると、よいでしょう!実際の状況では、Fastlyとオリジンの接続を可能な限り暗号化してください。オリジンによっては、Let's Encrypt が発行する無料証明書をインストールできる場合があります。
下に示しているように、オリジン設定を編集ペンシルアイコンをクリックし、いいえ、TLS を有効化しませんを選択してください。次に、Update ボタンをクリックして設定を保存します。これですべて完了です!
サービスのバージョン管理
サービス設定の有効化の準備ができましたが、そうする前に、Fastly がどのようにしてサービス設定の変更を管理するかについて説明しましょう。これは、多くの新規ユーザーが混乱する問題です。ですから、進める前に、ここで仕組みを説明します。
Fastly のバージョンサービス設定。これは Fastly サービス設定にコントロールパネルを適用するようなものです。このチュートリアルではこれまで、ドラフトバージョンのサービス設定を使って作業してきました。*ドラフトバージョンのサービス設定を有効にすると、Fastly は設定を本番環境にプッシュし、サービス設定をロックします。変更を行う場合、アクティブなバージョンをクローン*し、新しいバージョンを編集する必要があります。
上の図が示すように、サービス設定の各バージョンにはバージョン番号が割り当てられています。以前のサービス設定とアクティブな設定は編集することはできませんが、前のバージョンをクローンして新しいバージョンで変更することは可能です。コントロールパネルを使用して、バージョンにコメントを追加し、2つの異なるバージョンの違いを表示することができます。また、以前のサーバー設定のバージョンにロールバックすることができます。サービスと仕組みについての詳細を知るには、サービスの操作に関するドキュメントをご覧ください。
サービス設定の有効化
サービス設定を有効化しましょう。そうすることで、Fastly がどのように Web サイトをキャッシュし、配信するかをプレビューできます。以下のように、画面の右上にある Activate ボタンをクリックします。これは、どの本番環境の Web サイトにも影響しません。DNS レコードはまだ変更されていません。
Fastly は、サービス設定をロックし、設定を本番環境にプッシュします。
Web サイトのプレビュー
Fastly がサービス設定の変更を伝播するのに、数分かかる場合があります。変更が有効になったら、Fastly がどのように Web サイトをキャッシュし、配信するかをプレビューすることができます。Fastly はすべてのサービスにテストドメイン名を提供します。以下のように、Domains ページにテストドメインへのリンクが表示されます。
Web ブラウザでリンクをクリックして開きます。表示されました!http://www.tacolabs.com.global.prod.fastly.net/
にウェブサイトがあります。Fastly は S3 の静的サイトから Web サイトをプルして POP サーバーにキャッシュし、テストドメインを介して配信しました。
キャッシュ状態の確認
この初期段階で、Fastly がどのように Web サイトを配信しているかを確認するため、キャッシュをチェックして、HTTP ヘッダーを確認することをお勧めします。そうするには、2つの方法があります。コントロールパネルを使用して、オブジェクトのキャッシュ状態をチェックするか、または curl と呼ばれるコマンドラインユーティリティを使用することもできます。
まず、コマンドラインインターフェースを使用してみましょう。通常 curlは Unix と Linux ベースのシステムにデフォルトでインストールされています。端末アプリケーションを開き、次のコマンドを入力します:
1
$ curl -svo /dev/null -H "Fastly-Debug:1" http://www.tacolabs.com.global.prod.fastly.net
出力で以下のように表示されます。
1
2
3
4
< Age: 585551
< X-Served-By: cache-sna10742-LGB
< X-Cache: HIT
< X-Cache-Hits: 1
X-Cache: HIT
は、オブジェクトが Fastly のキャッシュにあることを意味しています。(Web サイトにアクセスする前にコマンドを実行すると、X-Cache: MISS
が確認できます。これは、Web サイトがまだ Fastly のキャッシュにないことを意味します。)また、キャッシュ内に現在のオブジェクトの時代と、コンピュータにコンテンツを提供するキャッシュノードが表示されます。
鋭い読者は、curl コマンドにヘッダーが追加されたことに気付くでしょう。Fastly-Debug
ヘッダーは Fastly 独自のものです。ヘッダーが存在すると、Fastly のキャッシュサーバーが追加のレスポンスヘッダーを出力するよう指示します。
このチュートリアル全体で、キャッシュの確認とヘッダーの検証を続けていきます。詳細に興味をお持ちの方は、キャッシュのチェックに関するガイドまたは HTTP ヘッダー参照ドキュメントをご覧ください。
無料 TLS でサイトを保護する
プレビューサイトの URL は、S3 の静的サイトの URL のように、TLS で保護されていません。Fastly の無料TLSオプションを使用することで、これを修正できます。これにより、サービスに別のプレビュー URL を付与することができます。デフォルトで TLS を使用するように設計されたものです。
新しい TLS ドメインを追加する前に、サービス設定のアクティブなバージョンをクローンする必要があります。Clone をクリックして新しいドラフトバージョンを作成します。次に、以下のように Domains ページで Create Domain ボタンをクリックして新しいドメインを追加します。Fastly の共有 TLS ドメイン (<name>.global.ssl.fastly.net
) を使用し、最初に tacolabs
を入力します。従って URL は tacolabs.global.ssl.fastly.net
になります。
独自ドメイン名でこの手順に従っている場合、ユニークでドット区切りの名前でない限り、tacolabs
にはどんな単語でも代入できます(例:www.example.org.global.ssl.fastly.net
は機能しません)。
追加ボタンをクリックしてドメインを追加しましょう。次に、有効化ボタンをクリックして、サーバー設定の新しいバージョンを有効化します。Fastly は変更をデプロイし、Web サイトhttps://tacolabs.global.ssl.fastly.netで見ることができます。これで接続が暗号化されます。いかがですか?
オリジンに Host ヘッダーをオーバーライドする
有効化されたサービス設定のバージョンには若干、問題があることが分かりました。https://tacolabs.global.ssl.fastly.net にアクセスすると、以下のページが表示されます。何が問題なのでしょうか?
HTTP ヘッダーについては、先ほど簡単にご説明しました。今度は、Amazon がリクエストを正しくルーティングできるよう、ヘッダーを設定する必要があります。この場合、オリジナルレベルでオーバーライドする Host ヘッダーを設定することで、オーバーライドするホストを指定できます。Amazon は、Fastly が送信するものとは別の Host ヘッダーを期待するため、これを行う必要があります。
設定を編集するボタンをクリックして、サーバーをクローンし、新しいドラフトバージョンを作成しましょう。次に、Origins ページでペンシルアイコンをクリックして、オリジン設定を編集します。Advanced options セクションのすぐ上で、Override host フィールドに以下のようにオリジンのホスト名 (www.tacolabs.com.s3-website.us-east-2.amazonaws.com
) を入力し、Update ボタンをクリックします。
Activate ボタンをクリックしてサービス設定の新しいバージョンを有効化します。Fastly が変更をデプロイします。これには数分かかることがあります。終わると、https://tacolabs.global.ssl.fastly.net で Web サイトにアクセスできるようになります。