5. 公開する
最終更新日 2022-02-03
このページは、Fastly の CDN の説明の一部であり、Fastly の CDN の使用方法および Web サイトの例とドメイン名を示して段階的に説明するチュートリアルです。このチュートリアルでは、静的サイト生成ツールの Jekyll、Amazon AWS、Fastly CDN を使用して静的 Web サイトをキャッシュ・配信する手順をご紹介します。詳細については、紹介をご覧ください。
Taco LabsのWeb Web サイトにFastlyサービスを準備ために多くの作業をしました!これで、最終的な作業を行い、公開して、本番 Web サイトに Fastly を使い始めることができます。
Fastly TLS を有効にする
言うまでもなく、事実上、すべての Web サイトと Web アプリケーションにとって、暗号化は難しい要件です。Taco Labs は、ユーザー認証など、Web アプリケーションに共通の多くのインタラクティブ機能を欠いています。しかし、まだTLSの使用はあきらめたくありません。そうしないと、検索エンジンとWeb ブラウザがペナルティを科すからです!
これまで、共有証明書を使用して、FastlyとクライアトのWeb ブラウザの間のトラフィックを保護するために、無料のTLSオプションを使用してきました。顧客に公開されない場合は、そのURL (https://tacolabs.global.ssl.fastly.net
)を使用し続けることができます。例えば、iOSアプリケーション内でアセットを提供するにあたって、Fastlyを使用する場合、継続して無料TLSを使用することができるかもしれません。しかし、tacolabs.com
のような、カスタムドメインに無料 TLS を使用することはできません。訪問者に証明書エラーが発生するためです。
カスタムドメインに TLS を必要とするため、Fastly TLS を使用してドメインに証明書を生成することができます。有料アカウントにアップグレードするためのクレジットカード番号を追加すると、Fastly TLS を使用して、追加料金なしで最大 5 ドメインに TLS 証明書を生成・管理することができます。「暗号化しましょう」オプションを無料で使用できます。これは、Fastlyによって自動的に管理・更新されます。または、独自の証明書をアップロードし、管理することもできます。
画面上部のセキュアリンクをクリックし、次に、TLS 管理リンクをクリックします。そして、始めるボタンをクリックします。以下のウィンドウが表示されます。
フォームに入力して、ドメインを追加し、送信ボタンをクリックすると、以下のように、CNAMEレコードを追加する指示が表示されます。Fastly は、この情報を使用して、tacolabs.com
ドメイン名を所有していることを確認します。
CNAMEレコードを追加するには、AWS Route 53に戻ります。これで、DNSサービスを処理します。DNSレコードが伝播するのに、数分かかります。Fastly が DNS レコードを発見し、検証すると、以下のように、TLS がwww.tacolabs.com
に対して有効になります。
DNSレコードの更新
ドメインにTLSを有効化したら、最終ステップの準備です:ドメインのDNSレコードを更新してFastlyを指すようにします。これを行うと、本番トラフィックは、Fastlyを介して流れ始めます。すべてが適切であることを確認するために、再度設定を確認することをお勧めします。
最初に行うべきことは、Web サイトや Web アプリケーションの既存の DNS レコードを把握することです。Taco LabsはWeb サイトです。最初は、DNSレコードがありませんでした。しかし、実際のシナリオでは、すでにDNSレコードのある既存のWeb サイトと操作することができます。Fastly に新しい CNAME レコードを追加する前に、ドメインの既存の DNS レコードを削除する必要があります。
以下のように、TLSドメインページのDNSの詳細を確認するボタンをクリックすることで、ドメインのCNAMEレコードの値を確認することができます。この値は、IPv6 アドレスをサポートしていませんが、IPv6を有効化するdualstack
よう準備してくれます。
この場合、Fastly コントロールパネルでは、CNAME レコードの値はj.sni.global.fastly.net
ですが、IPv6 を有効化する値としてdualstack.j.sni.global.fastly.net
を使用します。AWS Route 53にCNAMEレコードを追加しましょう。以下のエントリーが表示されます。
DNS レコードは、伝播するのに少し時間がかかりますが、以下のコマンドを使用して、ステータスを確認することができます:
1$ dig www.tacolabs.com +short2dualstack.j.sni.global.fastly.net.3151.101.198.132
これで、すべて設定できました!
apex ドメインをwwwにリダイレクトする
apex ドメインhttp://tacolabs.com
に対応する必要があります: Fastly には、www.tacolabs.com
が使用されていますが、www
なしでドメインを入力したらどうなるでしょうか?リダイレクトを追加し、http://tacolabs.com
と入力すると、自動的にhttp://www.tacolabs.com
にリダイレクトされるようにする必要があります。
まず、Fastlyサービスにドメインとしてtacolabs.com
を追加する必要があります。Edit configurationボタンをクリックして、サーバーを複製し、新しいドラフトバージョンを作成します。次に、ドメインページで、ドメインを作成するボタンをクリックします。ドメインフィールドに、tacolabs.com
と入力し、追加ボタンをクリックします
これで、apex ドメインにリダイレクトを追加することができます。「設定」ページで、「トラフィックを www サブドメインにリダイレクトする」セクションで、apexリダイレクトを追加するリンクをクリックします。以下のように、ドメインメニューから tacolabs.com を選択し、「ステータス」メニューから 301 を選択します。最後に、保存ボタンをクリックし、有効化ボタンをクリックして、サーバー設定の新しいバージョンを有効化します。
Fastlyサービスは、リダイレクトを処理するように設定されています。ここで、tacolabs.com
に DNS レコードを追加する必要があります。TLSページに、DNS AレコードにエニーキャストIPアドレスを表示したセクションがあることを思い出してください。以下のように、これらのエニーキャストのIPアドレスを使用して、tacolabs.com
にルートで新しいDNS Aレコードを作成することができます。
DNS レコードが伝播された後、curl を使用して、リダイレクトが機能しているかどうかをテストすることができます。以下のように、tacolabs.com
はwww.tacolabs.com
にリダイレクトされます。
1$ curl -sLD - http://tacolabs.com -o /dev/null -w '%{url_effective}'2HTTP/1.1 301 Moved Permanently3Server: Varnish4Retry-After: 05cache-control: max-age=864006Location: http://www.tacolabs.com/7Content-Length: 08Accept-Ranges: bytes9Date: Mon, 18 Oct 2021 19:25:46 GMT10Via: 1.1 varnish11Connection: close12X-Served-By: cache-den8264-DEN13X-Cache: HIT14X-Cache-Hits: 015X-Timer: S1634585146.929981,VS0,VE7916
17HTTP/1.1 200 OK18x-amz-id-2: NXLv0EZjIymQiCtAvpbeUyXlfiKjvMBbpSOqz84U5JNOfm5ysn1c43hvahA6oKH1/t+uiJS2Xrw=19x-amz-request-id: T6JEN0EXBQFXVRCF20cache-control: no-store, max-age=021Last-Modified: Fri, 23 Jul 2021 21:54:38 GMT22ETag: "dcf9e4efa41b023a4280c8305070a1cf"23Content-Type: text/html24Server: AmazonS325Via: 1.1 varnish, 1.1 varnish26Content-Length: 446927Accept-Ranges: bytes28Date: Mon, 18 Oct 2021 19:25:46 GMT29Age: 030Connection: keep-alive31X-Served-By: cache-mdw17341-MDW, cache-phx12427-PHX32X-Cache: MISS, MISS33X-Cache-Hits: 0, 034X-Timer: S1634585146.116375,VS0,VE9435Vary: Accept-Encoding
HSTSを有効化し、TLSを強制する
これまでで、ほとんどが完了しましたが、現在の状態において、まだ機能していないものがあります。訪問者は、暗号化されていないwww.tacolabs.com
のバージョンにアクセスすることができます。訪問者に、https://www.tacolabs.com
でサイトの暗号化されたバージョンを強制する必要があります。
TLSを強制し、HTTP 厳格移送セキュリティ (HSTS)を有効にすることで、そうすることができます。Edit configurationボタンをクリックして、サーバーを複製し、新しいドラフトバージョンを作成します。「設定」ページで、以下のように、TLSを強制し、HSTSを有効化するスイッチをクリックし、オンの位置にします。HSTS 期間を、少なくとも、テストの間隔に設定することをお勧めします。
Activate ボタンをクリックして、サービス設定の新しいバージョンを有効化します。これで、リダイレクトを確認することができます。今回、以下の curl コマンドの出力は、http://tacolabs.com
がhttps://www.tacolabs.com
にリダイレクトすることを示しています。
1$ curl -sLD - http://tacolabs.com -o /dev/null -w '%{url_effective}'2HTTP/1.1 301 Moved Permanently3Server: Varnish4Retry-After: 05cache-control: no-store, max-age=06Location: http://www.tacolabs.com/7Content-Length: 08Accept-Ranges: bytes9Date: Mon, 18 Oct 2021 20:38:35 GMT10Via: 1.1 varnish11Connection: close12X-Served-By: cache-bur17572-BUR13X-Cache: HIT14X-Cache-Hits: 015X-Timer: S1634589516.510082,VS0,VE5816Strict-Transport-Security: max-age=30017
18HTTP/1.1 301 Moved Permanently19Server: Varnish20Retry-After: 021Location: https://www.tacolabs.com/22Content-Length: 023Accept-Ranges: bytes24Date: Mon, 18 Oct 2021 20:38:35 GMT25Via: 1.1 varnish26Connection: close27X-Served-By: cache-phx12424-PHX28X-Cache: HIT29X-Cache-Hits: 030X-Timer: S1634589516.811935,VS0,VE131Strict-Transport-Security: max-age=30032
33https://www.tacolabs.com/
対応しなければならない別の問題があります:HTTリダイレクト(https://tacolabs.com
からhttps://www.tacolabs.com
へ)は、証明書の不一致エラーを返します。これを解決するには、セクションの指示に従い、apex ドメイン(tacolabs.com
)に別の TLS 証明書を追加する必要があります。これが完了すると、リダイレクトはすべて機能します。
統計を見る
これで、すべてが設定され、機能します!成功をお祝いしましょう。Fastlyを正常に設定し、オリジンサーバーからWeb サイトやアプリケーションをプルして、可能な限り効率的な方法で顧客に配信することができるようになりました。
ここからは楽しむ時間です。リアルタイムでトラフィックを見ます。Taco Labs は、(まだ) 成功していないフェイク Web サイトですが、ターミナルコマンドでトラフィックをシミュレートすることができます。これにより、Fastly のリアルタイムと履歴的な統計機能を実感することができます。
これまで、特に、Fastly コントロールパネルの「配信」タブで作業してきました。ここからは、以下のように、統計をクリックして、コントロールパネルの別の部分を使います。「統計」には、2 つのページがあります。リアルタイムと履歴です。名前の通り、リアルタイム統計ページには、リアルタイム分析と履歴のキャッシュ統計が表示されます。
まだ何も表示されていませんので、Web サイトにトラフィックを送信しましょう。利用可能な Apache ベンチコマンドツールと、watch コマンドを自由に使用して、訪問者をシミュレートすることができます。
$ watch -n 1 ab -r -n 30 -c 30 -g out.data https://www.tacolabs.com/
ターミナルアプリケーションでこのコマンドが実行されている場合、以下のように、「統計」ページにリアルタイム統計が表示されます。
細かいことは省略しますが、統計ページは、Web サイトやアプリケーションへのトラフィックの俯瞰図を得る最良の方法だということを知ってください。当社のドキュメントには、統計ページの詳細が記載されています。
ログの確認
先ほどのチュートリアルでは、ログの設定を行いました。この作業は、うまくいっているはずです。Fastly のサービスでは、本番のトラフィックが増加しているため、訪問者にエラーが発生していないことを確認するためにログを監視する必要があります。実際のシナリオでは、エラーステータスコード、コンバージョン率の低下、その他Web サイトやアプリケーションに特有の問題がないかどうかを確認する必要があります。先を見越したモニタリングを考えてください。大惨事になる前に、まだ見えない問題の芽を摘むことです。
すでに、2つのエンドポイントが設定されています。Amazon SとPapertrailです。Papertrail エンドポイントは、リアルタイムログストリーミングエンドポイントであるため、それをここで使用します。Amazon S3 は、古いイベントを検証するために使用できる履歴レコードです。下記のPapertrailのインターフェースから、ボットがすでにTaco Labsをクロールしていることがわかり、また、画像の欠落に関連するいくつかのエラーがあることがわかります。
前述したように、ログをフィルターして、本当に興味があるイベントを探すことをお勧めします。例えば、HTTP ステータスコード 200 ですべてのエントリーをフィルターすることができます。そうすると、エラーのみが表示されます。
コントロールパネルを使用してキャッシュを確認する
このチュートリアルでは、curlコマンドを使用して、FastlyがどのようにWeb サイトをキャッシュしているかを確認しました。では、コントロールパネルを使用してみましょう。
「サービス概要」タブの下に、キャッシュをチェックするボタンがあります。このボタンをクリックして、コントロールパネルで指定したドメインを含むUURLを入力することができます。このツールは、Fastly ネットワーク全体でオブジェクトがどのようにキャッシュされているかを示しています。
ご覧のとおり、コントロールパネルのキャッシュ確認ツールは、curlよりも多くの情報を提供します。これは、Web サイトの問題をトラブルシューティングする際に、使用すべき最初のツールの1つです。