2. Fastly の使用を開始する
最終更新日 2023-04-05
このページは、Fastly CDN 導入ガイドの一部です。同ガイドは、Webサイトとドメイン名の例を使って Fastly CDN の使用方法を分かりやすく解説するステップバイステップのチュートリアルです。このチュートリアルでは、静的サイト生成ツールの Jekyll、Amazon AWS、Fastly CDN を使用して静的Webサイトをキャッシュ・配信する手順をご紹介します。詳細については、こちらをご覧ください。
では、Fastly アカウントを作成し、Fastly コントロールパネルにログインしてみましょう。無料トライアルに登録できます。クレジットカード情報は必要ありません。登録してアカウントを認証すると、以下の画面が表示されます。
注意
Fastly アカウントを作成して設定を追加しても、本番環境の Web サイトに関連するものは何も変更されません。トラフィックは DNS レコードを更新するまでは、S3 バケットに流れ続けます。
サービス名を変更する
アカウントに登録すると、Fastly にサービスが作成されます。上記のスクリーンショットには Service Configuration が表示されています。Fastly アカウントには複数のサービスを含めることができ、個別の Web サイトまたはアプリケーションに各々のサービスで対応することができます。Service Configuration では、ドメイン名、オリジン、ヘッダー、キャッシュ設定など、Fastly サービスに関するあらゆる設定を行うことができます。
Options メニューから Edit service name を選択して、サービス名を変更しましょう。下記に示すように、Taco Labs
などの覚えやすい名前をサービス名に使用します。
現在、設定されているサービスは1つのみですが、今後さらに追加することがあるかもしれません。サービスに分かりやすい名前をつけることで、すべてのサービスが表示されるホームページ (All services) で他のサービスとの見分けがつきやすくなります。
ドメインを追加する
これで、サービス設定にドメインを追加する準備ができました。ドメインにはユーザーがアクセスするパブリック URL を設定します。これを設定することで、Fastly は、サービスへのトラフィックがどこから発生するかを把握することができます。以下のように、ドメインフィールドに www.tacolabs.com
を入力し、Add をクリックしてサービス設定にドメインを保存します。
注意
すでに追加済みであるため、サービス内のドメインとして www.tacolabs.com
を追加することはできません。Fastly では、複数のサービスで同じドメインを使用することはできません。
オリジンホスト名を追加する
次に、サービス設定にオリジンのホスト名を追加し、Fastly がコンテンツをどこからプルするかを把握できるようにします。サイドバーの Hosts をクリックし、S3 静的 Web サイト (www.tacolabs.com.s3-website.us-east-2.amazonaws.com
) の公開 URL を以下のように入力します。
ヒント
オリジンのホスト名を探すには、少し調査が必要になる場合があります。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 つの接続の違いを確認できます。
Web コントロールパネルにホスト名を入力すると、Fastly はオリジンと Fastly の間で TLS を自動的に有効にします。(IP アドレスを入力すると、TLS は自動的に無効になります。)S3 の静的ホスト機能は TLS をサポートしていないため、S3 バケットと Fastly の間で TLS を無効にするように、オリジン設定を調整する必要があります。Fastly とユーザー間の TLS は後で設定します。
ヒント
常に接続を暗号化しておくことは、良い習慣です。実際の状況では、Fastlyとオリジンの接続を可能な限り暗号化してください。オリジンによっては、Let's Encrypt が発行する無料証明書をインストールできる場合があります。
以下に示されているように、鉛筆アイコンをクリックしてオリジン設定を編集し、No, do not enable TLS (いいえ、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 ベースのシステムにデフォルトでインストールされています。端末アプリケーションを開き、次のコマンドを入力します:
$ curl -svo /dev/null -H "Fastly-Debug:1" http://www.tacolabs.com.global.prod.fastly.net
出力で以下のように表示されます:
1< Age: 5855512< X-Served-By: cache-sna10742-LGB3< X-Cache: HIT4< 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 で保護されていません。これは TLS を Fastly の共有ドメインで使用することで解決できます。これにより、サービスに別のプレビュー 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
は機能しません)。
Add をクリックしてドメインを追加しましょう。次に、Activate をクリックして、サーバー設定の新しいバージョンを有効にします。Fastly が変更をデプロイし、https://tacolabs.global.ssl.fastly.net で Web サイトを確認できるようになります。これで接続が暗号化されます。されますよね?
オリジンのホストヘッダーをオーバーライドする
どうやら、有効にしたサービス設定のバージョンには、少し問題があるようです。https://tacolabs.global.ssl.fastly.net にアクセスすると、以下のページが表示されます。何が問題なのでしょうか?
HTTP ヘッダーについては、先ほど簡単に説明しました。今度は、Amazon がリクエストを正しくルーティングできるよう、ヘッダーを設定する必要があります。この場合、オリジンレベルでオーバーライドするホストヘッダーを設定することで、オーバーライドホストを指定できます。Amazon は、Fastly から送信されるものとは別の Host ヘッダーを期待していることから、これを行う必要があります。
Edit configuration ボタンをクリックして、サーバーを複製し、新しいドラフトバージョンを作成しましょう。次に、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 サイトを確認することができます。
翻訳についての注意事項
このフォームを使用して機密性の高い情報を送信しないでください。サポートが必要な場合は、サポートチームまでご連絡ください。このフォームは reCAPTCHA によって保護されており、Google のプライバシーポリシーと利用規約が適用されます。