Fastly経由の配信に切り替える手順


#1

この記事ではサイトの配信をFastly経由に切り替える方法や注意事項について説明します。

特に記載がない限り本記事の記載内容はデフォルト設定での挙動となります。
Fastlyの正式なサポート情報は以下のサイトでご確認下さい。
https://docs.fastly.com/

Fastlyの配信設定を作成し、事前のテストが完了すればいよいよ実際の配信をFastly経由に切り替える事ができます。

配信設定の事前のテスト方法についてはhostsファイルを利用したCDNの導入前テストを参照下さい。

用語

最初にこの記事を理解するにあたって予め理解する必要のある用語を簡単に紹介します。

FQDN - 「Fully Qualified Domain Name」の略でwww.example.comなどWebサイトにアクセスするためのホスト名(サブドメイン)、ドメイン名などすべてを省略せずに指定した記述形式
DNS - Domain Name Systemの略でホスト名からIPアドレスを返却するための仕組み
Aレコード - DNSのレコードタイプの一種。wwwやimgなど特定のホストに対するIPアドレスを設定する場合に利用する
CNAME - DNSのレコードタイプの一種。wwwをwww2といったように別のサイトにリダイレクトする際に利用される
トップレベルドメイン example.comやexample.jpなどといったようにwwwといったホスト名を含まないドメイン。

上記はかなりざっくりとした説明ですのでより深く理解したい方はそれぞれのキーワードを検索して見て下さい。
色々と詳しく分かりやすく説明してくれているサイトがあります。

Fastly経由でコンテンツを配信する3つの方法

大きく分けるとFastly経由でコンテンツを配信するには以下の3つの方法があります。

a. DNSのCNAMEレコードを利用
DNSのCNAMEレコードを利用して、配信対象のドメインをFastlyにリダイレクトします。

b. DNSにFastlyサーバーのIPをAレコードで設定
Fastlyからお知らせするIPアドレスを配信対象のドメインにAレコードとして設定してサービスを適用します。

c. Fastlyドメインを利用
Fastlyのドメインを使ってサイトにアクセスします。

それぞれについてもう少し詳しく説明します。

a. DNSのCNAMEレコードを利用

配信対象のDNSレコードにFastlyを指すドメイン名をCNAMEとして設定します。一般的な導入方法で柔軟性も高いため、特別な理由がない限りはこの方法がとられます。

CNAME先のFastlyのドメインはSSLを配信するかしないかで変わってきます。
non-sslの場合は通常nonssl.global.fastly.net.を利用します。

SSL対応する場合はFastlyのサポートチームから指示されたドメインをCNAME先として利用します。

CNAME先は今後変更になる可能性もあるので以下から最新情報を確認して下さい。
https://docs.fastly.com/guides/basic-setup/adding-cname-records

b. DNSにFastlyサーバーのIPをAレコードで設定

DNSの制約でトップレベルドメインのドメインにはCNAMEレコードを設定することが出来ません。
このためトップレベルドメインのサイトをFastly経由で配信する場合は、Fastlyからお伝えする複数のIPアドレスをAレコードとして設定します。設定するIPアドレスのリストはFastlyのサポートチームに連絡して入手して下さい。

なお、この方法でFastlyに接続する場合にはIP Anycastという技術を使ってユーザーに最適なサーバーを割り当てます。IP Anycastは通常のCNAMEでリクエストをFastlyに向ける方法と比べると柔軟性にかけ、とくに大容量のファイルの配信などには向いていませんのでご注意下さい。

詳細については以下のページを参照下さい。
https://docs.fastly.com/guides/basic-configuration/using-fastly-with-apex-domains

c. Fastlyドメインを利用

DNSを設定変更せずにFastly経由でサイトにアクセスすることができます。

ただしブラウザのアドレスバーにはexample.com.global.prod.fastly.netといったようにfastlyのドメインも表示されます。

本番環境でのWebサイトの配信には向きませんが、導入前の簡単なテストや、APIやイメージサーバーなどユーザーの目につかない部分で使用することも出来ます。

詳細は以下のページを参照下さい。
https://docs.fastly.com/guides/basic-configuration/testing-setup-before-changing-domains

なお、同様の方法を利用して無料でSSL配信することも出来ます。
https://docs.fastly.com/guides/securing-communications/setting-up-free-tls

注意事項と確認事項

サイトの配信を切り替える前に注意すべき内容には以下のようなものがあります。

・DNSのTTL
DNSのレコードにもTTL(Time To Live)があります。DNSレコードを変更した後にその変更がインターネット上に広がるまでにはここで設定したTTLの時間かかる可能性があります。

CNAMEなどDNSの切り替えを予定しているDNSレコードには予め短めのTTLを設定しておくと切替時に新しいレコードの伝搬をスムーズにすることが出来ます。

TTLは600秒ぐらいをおすすめしますが、3600秒(1時間)程度以下なら特に問題になることはないと思います。86400秒(24時間)などが設定されているようであれば予め短いTTLを設定しておいた方がよいでしょう。また、TTLを短くした場合は切り替え後に適切なTTLに戻すことを忘れないようにしましょう。

・CNAMEに設定したレコード
CNAMEレコードにはnonssl.global.fastly.net.というように最後の**.(ドット)**を忘れずに設定して下さい。
これがないとリクエストは正常にFastlyにリダイレクトされません。