Varnish を使用するメリット
Fastly では基盤に、高パフォーマンスのコンテンツ配信向けに設計されたオープンソースの Web アクセラレーターである Varnish を使用しています。Varnish は、エッジでの動的コンテンツ、API、ロジックの高速化を実現するための鍵となります。
オープンソースの主なメリットのひとつは、ニーズに合わせて追加や変更ができることです。Fastly は、追加機能を備えた高度なカスタムバージョンの Varnish 2.1を使用しています。世界中の多くの場所にキャッシュがあるため、私たちは大規模なデプロイに合わせて Varnish を最適化しています。
Fastly は Varnish の力を信頼しています。Fastly の CEO である Artur Bergman とエンジニアの Rogier Mulhuijzen は一部のベースコードの開発に参加しており、今日に至るまでプロジェクトへの貢献を続けています。Rogier が初めて VCL を作成した日について語ったストーリーからも、Varnish が実現できる内容に関する多くの示唆が得られるはずです。
Fastly が Varnish を使う理由について、ご説明しましょう。
よりよいパフォーマンスを実現するインスタントパージ
Varnish の機能によって Fastly では強力なインスタントパージが可能となり、結果として動的コンテンツをキャッシュできるようになります。Varnish のカスタマイズの一環として、Fastly は Varnish をグローバルなキャッシュネットワークへと拡張しています。
Varnish のドキュメントによると、「Varnish は最先端のアーキテクチャを採用し、パフォーマンス重視で作成されています。通常はネットワーク速度に制約を受けるので、効果的にパフォーマンスを問題のない状態に導きます」。Varnish のソフトウェアは、Fastly の SSD サーバーと組み合わせることにより、従来のキャッシュ性能の最大12倍のパフォーマンスを提供できます。
リバースプロキシ
Varnish を使用すると、リバースプロキシが可能になります。Fastly の Varnish がまだキャッシュされていないカスタマーコンテンツのリクエストを受け取ると、Fastly はお客様のオリジンサーバーに接続してリクエストされたアイテムを取得し、それをリクエストしたユーザーへ送信します。
リアルタイムのデータのモニタリングと管理
Varnish 上に構築されているため、Fastly ではコンテンツ配信に関するリアルタイムのモニタリングも提供できます。秒単位の統計が、JSON フィードとしてダッシュボードに配信されるか、ブラウザ内の2分ごとのローリングディスプレイとして表示されます。リアルタイムのアクセスログは、syslog または S3 や Logentries などのサービスにストリーミングできます。
カスタム Varnish Configuration Language (VCL)
カスタム Varnish Configuration Language (VCL) を使用して Varnish を設定し、キャッシュポリシーを定義できます。VCL は、設定ファイルというよりはプログラミング言語として機能するため、Fastly のキャッシュサーバーでの動的コンテンツのキャッシュとアプリケーションロジックの実行に特化した設定を作成できます。
Fastly には、仕様に合わせた VCL を自動生成するコントロールパネルがあります。また、特定の設定の VCL を作成し、カスタム VCL を Fastly の VCL と組み合わせて協調して動作させることも可能です。自作の VCL は、Fastly キャッシュにアップロードし、その後有効化できます (ご自身で作成したカスタム VCL のアップロードにご興味がおありの場合は、Fastly のカスタマーサポートまでご連絡ください)。
Varnish では即座に VCL 設定のロードとアンロードを実行できるため、VCL への変更は迅速にデプロイ可能です。メンテナンス期間を待ったり、サーバーのダウンタイムを我慢したりする必要はありません。
お客様はつねに正しい
Varnish は、その優れた機能性ゆえに Fastly の基盤として使用されていますが、最も肝心なのは、私たちがお客様のニーズにふさわしい CDN を構築するために正しいツールを選択したということです。以下は、Varnish に関するお客様のフィードバックです。
「必要であれば、Fastly 経由でさらに多くの API コールをルーティングできますし、VCL でさまざまな微調整を行い、コードを変更することなくこれらのリクエストの一部を最適化できます。Fastly のおかげで Varnish のパワーと柔軟性を活用できるようになりました。これは想定していなかった大きなメリットであり、歓迎すべきことです」Konstantin Gredeskoul 氏、Wanelo、CTO
「他の CDN との決定的な違いは、Fastly がコントロールの効かないブラックボックスではないということです。Fastly は私たちのインフラストラクチャの一部として機能します。Fastly を利用することは、まさに Varnish のノードとして機能するデータセンターを世界中で稼働させるようなものです。Fastly のカスタム VCL を使用することで、Varnish のパワーと技術を利用しながら最高レベルのコントロールと柔軟性が得られます」Ross Paul 氏、1stdibs、CTO
「初期のキャッシュテンプレートを使用して、当社のあらゆる静的アセットを配信することから始めたのですが、これがうまくいきました。その後、動的コンテンツのキャッシュを含め、アセットをより効率的に配信できるよう、サイトの新規 API の開発や VCL でのさらなる調整に取り組みました。今では静的アセットで98 - 99%のキャッシュヒット率を達成しています」Harry Guillermo 氏、Fast Company、Senior Developer