ちょっと話題の記事

次世代CDNのFastlyで即時削除(Instant Purge)を体感した

2015.08.31

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

ども、大瀧です。
最近話題のCDN、Fastlyを触ってみました。そのセットアップレポートと、Fastlyの目玉機能の一つであるInstant Purge(即時削除)の様子をご紹介します。

Fastlyとは

FastlyはFastly社が展開するCDN(Content Delivery Network)サービスです。最寄りでは東京と大阪にPOP(points of presence: CloudFrontで言うエッジロケーションのこと)があります。従来のCDNの型に収まらない様々なオプション機能を備え、Varnishを基盤技術とし設定をVCL(Varnish Configuration Language)で記述できるなど先進技術に特化したCDNと見ることができます。

価格体系は一般的なCDNとさほど変わりませんが、アカウント作成時に50ドル分までクレジットカード登録なしで試せる他、OSSデベロッパー向けの支援プランなど柔軟な価格体系がうかがえます。今回はクレジットカードの登録なしのアカウントを作成し、試してみました。

1. アカウント作成

まずは、Fastlyのアカウントを作成します。Fastlyのトップページにある[TRY FASTLY NOW]ボタンからアカウント作成画面を表示します。

fastly01

氏名、メールアドレスなど必要事項を入力し、[SIGN UP]ボタンをクリックするとアカウントが作成され、入力したメールアドレス宛に確認メールが届きます。

fastly02

メールに記載されている確認用リンクをクリックすれば、アカウント作成は完了です。

fastly03

2. オリジンの設定

Fastlyでは任意のWebサイトをオリジン(キャッシュ元)として登録できます。今回はサンプルとして、Amazon S3Hugo *1で生成した静的コンテンツを配置し、S3 Static Website Hosting機能でホストする構成とします。

今回は、Fastly経由で独自ドメインhttp://fastly.otaki.classmethod.info/での配信とし、S3 Static Website Hostingの制約からバケット名をドメインと同名で作成します。以下のような感じです。

fastly12

S3 Static Website Hostingのエンドポイントは<バケット名>.s3-website-<AWSリージョン名>.amazonaws.comですので、オリジンのURLはhttp://fastly.otaki.classmethod.info.s3-website-ap-northeast-1.amazonaws.com/(HTTPの場合)となります。Webブラウザでアクセスすると、以下の表示になります。

fastly04

オリジンの準備はこれでOKです。

3. Fastlyの構成

先ほどの確認用のリンクを踏むと、FastlyのWeb管理画面に遷移し、Quick Startが表示されます。[Name Your Service]には任意の管理画面の表示名を入力し、[Server Address]にオリジンのホスト名(今回はfastly.otaki.classmethod.info.s3-website-ap-northeast-1.amazonaws.com)とポート番号を入力します。[Domain Name]にはFastlyで配信するドメイン名(今回はfastly.otaki.classmethod.info)を入力し、[Configure]ボタンをクリックします。

fastly05

これでFastlyの初期設定は完了です。Quick Startの画面にはStep2の動作確認用URLとStep3のDNS設定が表示されます。

fastly06

DNSの切り替え前にCDNの動作確認ができるのは便利ですね。DNS設定は、今回Route 53を利用します。上述の指示通り、global.prod.fastly.netにCNAMEレコードを向けます。

fastly07

これで全ての設定が完了です。設定したドメイン名にWebブラウザで接続し、Fastly経由で正常にアクセスできることが確認できます。

Instant Purgeの実行

さて、Fastlyの持つ先進的なCDN機能のひとつにInstant Purge(即時削除)があります。一般的なCDNではキャッシュされたコンテンツの削除に時間がかかることが多いですが、Instant Purgeはミリ秒単位での削除が可能です。誤ったコンテンツを公開してしまったり、新しいコンテンツに更新した際に素早く対応することができます。

今回はHugoに新しいページを追加したとして、S3に新しいコンテンツ一式をアップロードしました。その一覧が表示されるよう、トップページ(/)をキャッシュから削除してみます。FastlyのWeb画面の[configure]をクリック、右側にある[Purge] - [Purge URL]をクリックします。

fastly08

[Path]に「/」と入力し、[Purge]ボタンをクリックして削除を実行します。

fastly09

削除リクエストが送信された確認メッセージが表示されます。500ms程度で削除が完了するとのことです。

fastly10

ブラウザでトップページのURLにアクセスしてみると、確かにキャッシュが削除され、一覧が更新された新しいコンテンツが表示されることが確認できます。

fastly11

ちなみに、Instant PurgeはWeb画面からの実行の他に、Restful APIにPURGEリクエストを送って実行することも可能です。

$ curl -X PURGE http://fastly.otaki.classmethod.info/
{"status": "ok", "id": "348-1438971530-45"}

コンテンツの更新を何かしかの仕組みで自動化するために便利そうですね。

まとめ

FastlyのセットアップからInstant Purge機能までを簡単にご紹介してみました。このほかにも様々な便利機能がFastlyには備わっていますので、また別のエントリーでご紹介していきたいと思います。

脚注

  1. Hugoについては、deeeetさんのブログ記事が詳しいです。