ニフクラ ブログ

ニフクラやクラウドの技術について、エンジニアが語るブログです。

Fastly(CDN)を利用してデータ配信してみよう

こんにちは。ニフティの東條(ひがしじょう)と申します。 今回は、2016年9月にリリースされた「Fastly(CDN)」を利用して、簡単にデータ配信する方法をご紹介いたします。

Fastlyの特長

Fastly(CDN)は通常のCDNがキャッシュをTTLでコントロールしているのと比較して、Fastlyではなんと150msでキャッシュを削除することが可能です。 そのため、従来のCDNではキャッシュしにくいコンテンツであった、時事ニュースやゲームのランキングデータなど動的に生成されるコンテンツをFastlyではキャッシュする事が可能です!

また、ニフティクラウドとFastlyはピアリング接続を持っているため、ニフティクラウドでキャッシュ元となるオリジンサーバーを作成すると、FastlyのPOP(キャッシュサーバー)間での通信が安定かつ高速に行えることが大きな特長となります。

設定内容

それでは、実際に設定してみましょう。 今回は、ニフティクラウド上でオリジンサーバーを作成しFastlyにキャッシュさせ、データ配信をしてみます。

オリジンサーバーの設定

ニフティクラウド上で用意するオリジンサーバーは下記構成とします。 [markdown] |構築リージョン|OS|ミドルウェア| |-|-|-| |east-1|CentOS7.1 64bit Plain|Apache| [/markdown]

Fastly設定

次にFastlyでオリジンサーバーをキャッシュする設定をしてみます。

  1. Service(配信設定)の作成 Fastlyのコントロールパネルにログイン後、オプションよりCreateを選択します。

fastly-1

  1. Service(配信設定)の登録 Server address and portには、オリジンサーバーの設定で作成した仮想サーバーのIPアドレスを入力します。もちろんドメイン名でも構いません。 Domainには、CDNでキャッシュしたファイルを公開する際のドメイン名を入力します。 Descriptionには、Serviceの内容がわかる名前を記載しましょう。

fastly-2

動作確認

早速、CDN経由でオリジンサーバーのデータが配信されているか確認をしましょう。 Serviceの登録後、CDN経由でデータ配信されるURLが表示されますので赤枠のURLにアクセスしてみましょう。

fastly-3

無事、CDNからデータ配信されている事が確認できました。

fastly-4

インスタント・パージ

Fastly(CDN)の特長であるインスタント・パージも試してみましょう。

本来はオリジンサーバーのファイルを更新してもユーザーにはTTLの期限が切れるまで古いキャッシュが表示され続けますが、Fastlyではインスタント・パージを行う事でキャッシュの即時更新をする事が可能です。

それでは、インスタント・パージを実行してみましょう。 今回はFastlyコントロールパネル上で実行しておりますが、APIからも実行が可能です。

fastly-5

なお、実行時にはパスワードが求められますのでパスワードを入力してください。

インスタント・パージ後にCDN用のURLにアクセスすると、キャッシュデータが更新された事が確認できました。

fastly-6

性能テスト

オリジンサーバーのデータがCDNから配信できることは確認できましたので、次は性能テストとしてレスポンス速度について、確認してみたいと思います。 テスト方法は世界主要都市に配置されたクライアント用サーバーからオリジンサーバーとCDNのキャッシュにアクセスし、レスポンス速度を比較してみました。

fastly-7

テストの結果は、ほぼすべての項目でFastlyの値が優れておりました。 また、今回はデータ公開しておりませんが、世界各国からFastlyのCDNにキャッシュにアクセスした際は地理的に分散配置されたPOPからGSLBの機能により、ユーザーに最も近いPOPから応答をしている事がIPアドレスからわかります。

まとめ

Fastly(CDN)を利用してのデータ配信を、非常に簡単に行うことができました。

ニフティクラウドが提供するFastly(CDN)は完全従量制で、無償利用分(お申し込み月に限り、基本料金を3,000円分(税抜)まで無償でご利用いただけます)もありますので、従来のCDNで満足されていない方やこれからCDNを利用してみたいと考えている方はぜひお試しください。

次回は、Fastlyのログを「ニフティクラウド オブジェクトストレージ」に保管する方法を説明したいと思います。