share facebook facebook twitter menu hatena pocket slack

cloudpackが提供するVarnishを利用したサービス

鈴木 宏康

WRITTEN BY 鈴木 宏康

cloudpackには「リダイレクトサービス」と「プロキシサービス」という
付加サービスがあり内部的にはVarnishを利用しています。

リダイレクトサービスとは、下記のようにwww無しのドメイン名(suz-lab.com)のみで
アクセスしてきたHTTPリクエストを、wwwの付いたURLにリダイレクトするサービスです。

リダイレクトサービスは、ELB、S3、CloudFrontを独自ドメインで利用する場合に、DNSに対して
CNAMEレコードで設定する必要があるのですが、ドメイン名(例:suz-lab.com)に対しては
CNAMEが利用することができないので、その対策としてのサービスです。
(現在、ELBに関してはRoute53で対応することができます。)

そして、Varnishでの実現方法は、Varnishでリダイレクト専用Webサーバの構築の記事で紹介した通りになります。

プロキシサービスはVarnishで実現できることを、共通のVarnishサーバで「if文」を用い、
個別(アクセスHost名ごとなど)に設定するものです。

今までの実績としては、下記のようなものがあります。

○キャッシュを使ったコンテンツの高速配信

キャッシュサーバであるVarnishの通常の使い方です。
場合によっては、ディレクトリや拡張子ごとに、キャッシュの設定を細かく設定して利用しています。

こちらの情報については本ブログでもVarnishでキャッシュ期限を指定の記事で紹介しています。

○FacebookアプリのコンテンツをS3に配置

Facebookアプリで利用するコンテンツをS3に配置した場合、
FacebookアプリはコンテンツをPOSTメソッドで取得しに来るのですが、
S3はGETメソッドにしか対応していません。
そこで、Varnishを経由させてPOSTメソッドをGETメソッドに変換して
FacebookアプリでもS3を利用できるようにしています。

こちらの情報については本ブログでもVarnish経由でS3のコンテンツをPOSTで取得(Facebookアプリ用)の記事
で紹介しています。

○S3(独自ドメイン設定)でHTTPSを利用

S3のコンテンツを独自ドメインで公開することは、現在HTTPは対応しているのですが、
HTTPSでは対応していません。
そこで、S3のコンテンツを独自ドメインにてHTTPSで公開する場合は、上記画像のように、
ELBでHTTPSのリクエストを受け、ELBのSSLターミネーションでHTTPSの処理を行い、
その後Varnish経由でS3にHTTPで接続する形で実現しています。

こちらの情報については本ブログでもELBを利用して1つのEC2で複数ドメインのHTTPS(SSL)の記事で
紹介しています。

○S3で携帯サイト(Softbank)の著作権保護

S3で独自ヘッダを付与することはできるのですが、x-amz-meta-XXXの形式のキーしか付与することができません。
これにより、Softbank携帯サイトでの著作権保護機能に必要なx-jphone-copyrightのようなヘッダは
直接S3で付与することができないので、アクセスをVarnish経由にしてVarnishでそのヘッダを付与するように
しています。

こちらの情報については本ブログでもS3のオブジェクトのユーザー独自ヘッダのキーの形式はx-amz-meta-XXX
VarnishでS3のコンテンツにx-jphone-copyrightヘッダを付与の記事で紹介しています。

以上のように、cloudpackではAWSのサービスを補完するような形でVarnishを利用しています。

こちらの記事はなかの人(suz-lab)監修のもと掲載しています。
元記事は、こちら

鈴木 宏康

鈴木 宏康

愛知県生まれ。東京工業大学大学院修士課程修了。在学時より、ベンチャー企業でインターネットに関する業務に携わり、現在はクラウド(主にAmazon Web Services)上での開発・運用を軸とした事業の、業務の中心として活躍。

cloudpack

cloudpackは、Amazon EC2やAmazon S3をはじめとするAWSの各種プロダクトを利用する際の、導入・設計から運用保守を含んだフルマネージドのサービスを提供し、バックアップや24時間365日の監視/障害対応、技術的な問い合わせに対するサポートなどを行っております。
AWS上のインフラ構築およびAWSを活用したシステム開発など、案件のご相談はcloudpack.jpよりご連絡ください。