Fastlyポータルの概要と設定作成から動作確認までの流れ
特に記載がない限り本記事の記載内容はデフォルト設定での挙動となります。
Fastlyの正式なサポート情報は https://docs.fastly.com/ を参照して下さい。
この記事の内容について
この記事では初めて Fastly のポータルを利用して設定を作成する方を対象に、ポータルの概要や設定作成の手順、考え方などを説明したいと思います。
外部記事へのリンクも多く含んでいるので、まずはこのページの内容をざっと確認して、それぞれの詳細が必要になった場合にリンクされている記事もご確認頂ければと思います。
初回ログイン
Service(配信設定)がひとつも作成されていない状態で初めて Fastly のポータルにログインすると、以下のような画面が表示されます。
GET STARTED をクリックすることで、設定の作成画面に移動します。
Fastly 経由で配信を行うための最低限必要な情報として、上記の画面で黄緑色で囲まれている箇所に以下の情報を入力して下さい。
サービス名: Unnamed service と表示されている箇所をクリックすることで編集可能です。サービスを識別するために任意の名前を入力し、リターンを押すことで変更が確定します
Domain: 配信対象のドメイン名。(Fastlyがエンドユーザーから受けるリクエストの Host ヘッダーに設定されているドメイン名)
Address: Fastlyサーバーがコンテンツを取得するオリジナルのコンテンツの取得先。IPアドレスまたはドメイン名で指定
これらの設定は後からも変更が可能です。また、ここに情報を入力しても実際のトラフィックは DNS レコードを Fastly に向けて CNAME 設定するまで Fastly 経由での配信は開始されません。
配信対象のサイトの DNS レコードをまだ CNAMEすることが出来ない場合、Domain に <name>.global.ssl.fastly.net
を利用することが出来ます。
このドメインの詳細については 無料TLSの設定をご確認下さい。
入力が完了したら右上の Activate ボタンをクリックすることで配信設定が Fastly のネットワークに展開されます。初回の設定の展開は通常1分程度で完了します。
作成済みの設定のバージョンの変更は通常10-20秒程度で展開が完了します。
ポータルの構成
FastlyのポータルにログインするとHome、Stats、Configureという3つのタブが表示されています。
Home
Home タブには Service のリストが表示され、各サービスのリアルタイムトラフィック分析ページ、Actvie なバージョンの設定へのリンク、リクエスト/秒、過去2時間のリクエスト数の推移を示す小さなグラフが表示されます。
Stats
Stats タブではリアルタイム、または過去のトラフィックやキャッシュ情報の分析情報を確認することが出来ます。
Real-time Stats
指定したサービスIDのほぼリアルタイムのキャッシュヒット率などのトラフィック情報を見ることができます。トラフィックの情報を配信拠点毎にドリルダウンして確認することも可能です。展開中のサービスのトラフィック状況や、現時点で何か問題が発生していないかなどを確認するのに適しています。
Histric Stats
サービスIDや期間を指定して配信状況を確認することが出来ます。過去の配信状況の確認やトラフィックの推移などを確認するために利用されます。
配信トラフィックの中長期的な推移やトラフィックスパイクの発生時間、過去のエラーの発生状況などを確認することが出来ます。
なお、過去のトラフィックの配信状況は現時点では特に削除されることなくサービス利用開始時まで遡って閲覧することが可能です。ただし一定期間より古いデータについては日単位でのデータの保存となります。
Configure
既存の配信設定を確認したり、新規に配信設定を作成する場所です。
ここからはConfigureタブの内容についてもう少し詳しく説明したいと思います。
Service
Fastlyではひとつの配信設定をServiceと呼びます。ひとつのServiceに一つの配信Domainが一番管理し易いですが、同一の設定で配信するサイトが複数ある場合などはひとつのServiceに複数の配信ドメインを含むことも可能です。
Serviceには好きな名前をつけることが可能ですので管理しやすい名前をつけて下さい。また、各ServiceにはShow service IDをクリックして表示されるユニークなService IDが割り当てられています。
新規Serviceを作成したい場合は、ページ右側の CREATE SERVICE をクリックして下さい。
VCL(Varnish Configuration Language)について
UIを通じて作成した設定はすべてVCL(Varnish Configuration Language)に変換されています。右上のOptionからShow VCLをクリックすることで、実際に生成されるVCLを確認することが出来ます。
生成されたVCLを理解するとFastlyサーバーががどうのように設定を判断して動作しているのかをより深いレベルで理解することが出来ます。必須ではありませんが是非設定を変更することでどのように生成されるVCLが変わってくるかを確認してみてください。
VersionとLock
Serviceで作成される設定はVersionごとに管理されます。Activate(Production環境に展開)することで設定はLockされ編集することが出来なくなります。Activateしたコンフィグを編集したい場合は、CloneしてActivateされていない新しいコンフィグを作成してから行います。
Serviceの編集
編集可能なServiceのVersionをクリックすると、以下のような画面が表示されます。
サービスの設定は以下のカテゴリーに分けられています。
Domain : 配信対象となるドメインを指定します。
Origins : Fastlyサーバーがコンテンツを取得するオリジナルのコンテンツの取得先を指定します。
Setting : 主にTTLに関する設定を行います。
Content : ヘッダーの情報を書き換えなど、主にコンテンツに対して処理を行う場合に利用します。
Logging : 外部のストレージサービスやログ分析サービスにログを配信する設定を行います。
VCL Snippets : UIでは設定が難しいようなVCL(Varnish Configuration language)のコードを直接記述することが出来ます。
Custom VCL : ローカル環境で編集したVCLをアップロードすることが出来ます。
Image Optimizer : 画像変換機能(有償オプション)についての設定です。
Conditions : UIで作成したConditions(条件)について管理できます。
Data: ACL(アクセスコントロールリスト)やEdge Dictionary の編集を行います。
SnippetとCustom VCL
SnippetとCustom VCLはいずれもUI経由で動作を指定するのではなく、設定上に直接VCLのコードを記載するためのオプションとなります。
そのためどちらのオプションでも概ね同じことが実現出来ますが、ちょっとした処理を特定のサブルーチンの下に直接記述したい場合はSnippetの方が適しています。
逆にCustom VCLは、複数のサブルーチンにまたがる複雑な処理を記載したい場合や、特定の動作をするサービスを複数作成する必要がある場合に、カスタムVCLで設定を定義したファイルをローカルで管理し、そのファイルを対象の複数サービスに適用するといったような利用ケースが考えられます。
まずはSnippetで試してみて、それで何か支障がある場合はCustom VCLの利用を検討する、といった流れがよいでしょう。VCLの書き方については別のQiitaの記事にまとめてみましたのでこちらをご参照下さい。
Fastly VCL 入門
TTLの考え方
Fastlyでは基本的にはオリジンサーバーから返却されるレスポンスヘッダーの内容に基いてTTLを設定しますが、Fastlyサーバー側でTTLを上書きするこことも可能です。TTLの選択ロジックの詳細については以下のページを参照して下さい。
FastlyサーバーのTTLの選択ロジック
設定と条件
特定の条件の場合に特定の挙動を設定したい場合、Fastlyではまず挙動を先に作成し、その後作成した挙動の設定に適用条件(Condition)を付与するという流れになります。
例えば拡張子がjpgの場合に、Fastlyで強制的に1日のTTLを設定したい場合は以下のような流れになります。
- Settingタブを開く
- TTLを1日(86400)でNew Cache Settingを作成する
- 作成したCache SettingにConditionを付与する
適用条件は拡張子がjpgなので
req.url.ext == "jpg"
適用条件を適用しないとすべてのリクエストにTTL1日が適用されるので注意しましょう。
なお、適用条件の左側のreq.url.extはFastlyサーバー上で取得可能なリクエストに関する情報を含む変数のようなものなのです。利用可能な変数はかなりの数があるのですが、一般的に利用される変数についてはFastlyでよく使う変数とテクニックを参照して下さい。
TTL設定の手順の詳細や適用条件の書き方については以下のページを参照して下さい。
Fastlyサーバー上でTTLを設定(上書き)する方法
Fastly の設定に適用条件を設定する
設定のType
Contentタブで設定を作成しようとするとRequest/Cache/ResponseからTypeを求められます。
これはリクエストフローの中のどのタイミングで処理を行いたいかに関係しています。Fastlyに限らずCDNを経由してエンドユーザーのリクエストを処理する場合、概ね以下のようなリクエストの流れになりますが、どの段階で処理を行いたいかに併せてTypeを指定します。
このようにFastlyではリクエストを受けたタイミングで何か処理を行ったり、クライアントへのレスポンスに対してだけ変更を加えたりと処理内容だけでなく処理を行うタイミングも自由にコントロールすることが可能となっています。
Serviceやドメインの上限値
ひとつのアカウントで作成可能なServiceの数や、ひとつのServiceに設定可能なDomainやBackendの数には上限があります。一般的なサイトに対する配信設定を作成する場合はほとんど問題になりませんが、大規模な配信設定や複雑な設定を作成する場合はこれらの上限にも注意しながら設計を行って下さい。以下が代表的な制限になります。
1アカウント配下に作成可能なService数 : 10
1Serviceに設定可能なDomain数 : 20
1Serviceに設定可能なBackendの数 : 5
これらの上限を超えての設定が必要な場合は[email protected]までご相談下さい。
その他の各種設定の上限などは以下のページにまとめられています。
https://docs.fastly.com/guides/debugging/resource-limits
サービスの本番環境への適用(CNAMEレコードの作成)
Fastlyの配信設定が完了すれば、実際の配信をFastly経由に切り替えることが出来ます。
通常は配信対象のDNSレコードをFastlyのドメインにCNAME設定することで切り替えを行います。
切り替え手順の詳細はFastly経由の配信に切り替える手順を参照して下さい。
動作の確認
それでは配信設定が完了し設定がActiveな状態で、Fastlyサーバーが意図したどおりに正しく動作しているかを確認してみましょう。
設定はcurlコマンドなどを利用してテストすることが出来ます。ここでは以下の太字のようなような設定を行ったと想定します。
拡張子がphpのファイルはキャッシュしない
curl -svo /dev/null -H "Fastly-Debug:1" http://www.company.com/test.php
何度アクセスしてもX-Cache: MISSが返却されれば(正しく)キャッシュされていないということになります。
"config.xml"に1日間(86400)のTTLを設定
curl -svo /dev/null -H "Fastly-Debug:1" http://www.company.com/config.xml
数回アクセスすると以下のようにX-CacheにHITが返却されます。
また、Fastly-Debug-TTLから、TTLとしては86400(86398+2)秒が適用されていることが分かります。
< Fastly-Debug-TTL: (H cache-nrt6122-NRT 86397.867 3600.000 2)
< X-Cache: HIT
< X-Cache-Hits: 2
拡張子がjpgのファイルに60日間(5184000)のTTLを設定
curl -svo /dev/null -H "Fastly-Debug:1" http://www.company.com/image.jpg
数回アクセスすると以下のようなレスポンスが返却されます。キャッシュされておりTTLとしては5184000(5183992+8)秒が適用されていることが分かります。
< Fastly-Debug-TTL: (H cache-nrt6134-NRT 5183991.512 3600.000 8)
< X-Cache: HIT
< X-Cache-Hits: 2
通常とは異なるTTLを指定したURLに対してテストを行い意図したとおりにTTLが適用されているか確認を行いましょう。
curlコマンドで返却されるデバッグ用レスポンスの詳細については以下のページを参照して下さい。
FastlyにキャッシュされたオブジェクトのTTL確認方法
少し長い記事になってしまいましたが以上がFastlyのポータルの概要と、設定を作成から動作確認までの一通りの流れになります。
それぞれの項目の詳細はそれぞりリンクされているページやFastlyのオフィシャルドキュメントを参照して見て下さい。オフィシャルページは英文ですが右上の言語タブから日本語を選択することでGoogle翻訳による日本語表示に切り替えることが可能です。
Author And Source
この問題について(Fastlyポータルの概要と設定作成から動作確認までの流れ), 我々は、より多くの情報をここで見つけました https://qiita.com/AtsushiFukuda/items/22302fcca3b13f79a4de著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .