Fastly Agent
概要
NetFUNNEL Fastly エージェントは、Fastly Compute Services から NetFUNNEL サーバーと通信する NetFUNNEL 専用クライアントです。
Compute Service の設定
Compute Service の作成
- Fastly コンソールで [Compute] に移動します。
- 右上の [Create service] をクリックします。
- [+ Use starter kit] を選択します。
- Service name に名前を入力し、Add your own domain に Compute を適用するドメインを入力して [Next: Choose a starter kit] をクリックします。
- Default starter for Rust を選択し、[Finalize and deploy] をクリックします。
CNAME の登録
- デプロイが完了したら、Additional setup の Point your custom domain to Fastly を確認してください。
- [Issue TLS Certification] をクリックします。
- Your DNS provider でドメインが登録されているサービスを選択し、そのサービスで CNAME を登録します。
Service configuration の設定
[Edit configuration](または [Service configuration])をクリックし、[Clone version 1 (active) to edit] をクリックします。 (Fastly Compute は変更のたびに新しいバージョンにクローンする必要があります。)
nf_core ホストの作成
- Origins メニューを選択し、Hostname に serverUrl のドメインを入力して [Add] をクリックします。
- 作成したホストを選択して Edit ページに移動します。
- Name を nf_core に変更し、[Update] をクリックします。
nf_setting ホストの作成
- [+ Create a host] をクリックし、Hostname に settingUrl のドメインを入力して [Add] をクリックします。
- 作成したホストを選択して Edit ページに移動します。
- Name を nf_setting に変更し、[Update] をクリックします。
origin ホストの作成
- [+ Create a host] をクリックし、Hostname にオリジンアドレスを入力して [Add] をクリックします。
- 作成したホストを選択して Edit ページに移動します。
- Name を origin に変更し、[Update] をクリックします。
Activate
- 右上の [Activate] をクリックして保存します。
Config Store の設定
Config Store の作成
- Resources メニューの Config stores で、右上の [+ Create store] をクリックします。
- Store name に nf_config_store と入力し、[Create] をクリックします。
- [Add item] をクリックし、CLIENT_ID を追加します。
- CLIENT_ID は NetFUNNEL コンソールで確認できます。
Config Store のリンク
- 上部タブの [Linked Services] を選択し、[Link service] をクリックします。
- 上で作成した Compute service を選択し、[Next] をクリックします。
- [Link and activate] をクリックします。
- Active Service Versions ウィンドウが表示されたら [Confirm and activate] をクリックします。
トークンの作成
- Account - API tokens - Personal tokens メニューに移動します。
- 右上の [+ Create Token] をクリックします。
- [Continue] をクリックし、再度ログインします。
- Name を入力し、Expiration を Never expire に設定して [Create Token] をクリックします。
エージェントのデプロイ
エージェントファイルとパッケージのインストール
- Fastly CLI 用のパッケージをインストールします。
brew install fastly/tap/fastly
- https://agent-lib.stclab.com/agents/cdn/fastly/netfunnel-fastly-agent-latest.tar から netfunnel-fastly-agent.tar ファイルをダウンロードしてください。
toml ファイルの編集
- ダウンロードしたエージェントファイルを解凍します。
- fastly.toml を開きます。
- Fastly コンソールで Compute service の ID をコピーします。
- cloned_from と service_id の値にコピーした ID を貼り付けます。
authors = []
cloned_from = "{SERVICE_ID}"
description = "Fastly agent for NetFUNNEL - Rust implementation"
language = "rust"
manifest_version = 3
name = "NetFUNNEL-Fastly-Agent-Rust"
service_id = "{SERVICE_ID}"
Compute へのエージェントデプロイ
- netfunnel-fastly-agent フォルダでターミナルを開き、以下のコマンドを実行するとエージェントコードが Compute にデプロイされます。
fastly compute deploy
追加機能
Good Bot の例外処理
Config Store 設定により、特定の User-Agent が含まれる場合にエージェントの動作から除外できます。
Config Store の設定
- Resources メニューの Config stores で、エージェントが使用している store を選択します。
- [+ Add item] をクリックし、以下の表を参考に追加します。
Google、Microsoft、Yahoo、Apple、Facebook のボットを除外した例です。
| Key | Value |
|---|---|
| GOOD_BOTS | Googlebot, Bingbot, Slurp, Applebot, facebookexternalhit |
Compute Purge
- Compute メニューの Compute Services で、エージェントが適用された service を選択します。
- [Purge] をクリックし、[Purge all] を選択します。
- service name を入力し、[Purge all] をクリックします。
進入キーの自動返却
NetFUNNEL Fastly エージェントは、進入後に NetFUNNEL キーを自動で返却し、次の待機者が進入できるようにしています。NetFUNNEL キーを即座に返却せず、セグメントで設定したタイムアウト時に返却したい場合にこの機能を使用できます。
Config Store の設定
- Resources メニューの Config stores で、エージェントが使用している store を選択します。
- [+ Add item] をクリックし、RETURN_KEY(値: true)を参考に追加します。
true(既定値)の場合、待機完了・進入後にエージェントが NetFUNNEL キーを自動で返却します。 false の場合、セグメントで設定したタイムアウト時にキーが返却されます。
Compute Purge
- Compute メニューの Compute Services で、エージェントが適用された service を選択します。
- [Purge] をクリックし、[Purge all] を選択します。
- service name を入力し、[Purge all] をクリックします。
待機室ドメインの変更
NetFUNNEL 待機室ページのドメインは agent-lib.stclab.com です。サービスで使用するドメインに変更する場合は、NetFUNNEL サービスチームに希望ドメインを伝え、Config Store 設定を変更してください。
Config Store の設定
- Resources メニューの Config stores で、エージェントが使用している store を選択します。
- [+ Add item] をクリックし、以下の表を参考に追加します。
| Key | Value |
|---|---|
| VWR_PAGE_DOMAIN | http(s)://{CNAME_DOMAIN} e.g. https://wait.stclab.com |
Compute Purge
- Compute メニューの Compute Services で、エージェントが適用された service を選択します。
- [Purge] をクリックし、[Purge all] を選択します。
- service name を入力し、[Purge all] をクリックします。
クッキードメインの設定
NetFUNNEL サーバーから発行されたキーは、現在のページのドメインを基準にクッキーに保存されます。サブドメイン間でキーを共有する必要がある場合は、メインドメインがクッキーに保存されるよう設定します。
develop.stclab.com と staging.stclab.com のようにサブドメインが異なるページでクッキーを共有するには、.stclab.com と設定します。
Config Store の設定
- Resources メニューの Config stores で、エージェントが使用している store を選択します。
- [+ Add item] をクリックし、以下の表を参考に追加します。
| Key | Value |
|---|---|
| COOKIE_DOMAIN | .{MAIN_DOMAIN} e.g. .stclab.com |
Compute Purge
- Compute メニューの Compute Services で、エージェントが適用された service を選択します。
- [Purge] をクリックし、[Purge all] を選択します。
- service name を入力し、[Purge all] をクリックします。