CDNとしての安定度と低廉な料金を両立したさくらのウェブアクセラレータ
※こちらの記事は2018年9月25日にASCII.jpで公開された記事を再編集したものです。
文:大谷イビサ/TECH.ASCII.jp 写真:曽根田元
さくらインターネットが作ったオリジナルCDNサービス「さくらのウェブアクセラレータ」。シンプルで安定したサービスを目指した背景について、当サービスシニアプロデューサーの山本真史氏に話を聞いた。
運用効率を上げられるさくらオリジナルのCDNサービス
さくらのウェブアクセラレータは、Webサーバーへのアクセス負荷を軽減するCDN(Content Delivery Network)サービス。CDNはユーザのサーバーとクライアントPCの間に設置されたプロキシとして動作してデータをキャッシュする。これによりサーバーの負荷を軽減し、大量アクセスの処理が可能になり、効率的にデータを配信できる。山本氏は、「短時間にアクセスが集中するバーストトラフィックに対しては、クラウドのサーバーを増やすことで対応が可能ですが、この場合サーバーを増やす手間がかかる上に、非常に高コストな帯域増強を行う必要が出てきます。その点、ウェブアクセラレータなら回線帯域を気にしないネットワークサービスとして利用できるので、導入・運用の負荷やコストを低く抑えられるメリットがあります」とアピールする。
サービス開始前は、同様のサービスとして「コンテンツ配信サービス」があったが、特定のクライアントの要件に沿ったカスタムサービスで、運用コストもかかっていた。特定のクライアントの要件に沿ったカスタムサービスだったので、一般的に多くのユーザーが抱える課題を解決できなかったため、徐々に他社に移行されはじめたという。
「一般的なCDNサービスでは、キャッシュされていないデータをお客様のサーバーへ取りに行くのが普通ですが、コンテンツ配信サービスは手動で動画をアップロードする必要がありました。 ストレージとセットで提供してしまうと更新の都度アップロードが必要になるという弱点も見えてきました」(山本氏)
そんな中、使いやすい汎用的なCDNサービスとして、さくらのウェブアクセラレーターの開発がスタートした。「田中社長が作っちゃおうと言ってくれたのも大きかったのですが、なにより自分が作りたかった」と語る山本氏。2015年にプロジェクトがスタートし、2016年7月にはβ版、2ヶ月後の10月1日には正式版に開始した。当初、サービスは大阪にしかなかったが、スピード感をもって取り組んだ結果、今は複数拠点で展開されている。また、VPSやクラウドなどさくらのサービスはもちろん、他社サービスでも利用できるようになった。
Apache Traffic Server、nginxなどOSSをフル活用
サービスは、キャッシュサーバーやロードバランサーなど、ほとんどOSSをベースに作られている。キャッシュサーバーは当初ngnixを使っていたが、キャッシュするデータを1コンテンツずつファイル化してしまったり、運用するうえで使い勝手が悪いところがあった。Fastly社で採用されている「Varnish Cash」も検討したが、マルチテナントを想定しなかったり、キャッシュがメモリにしかできないといった仕様の制約があった。そのため、現在はnginxとApache Traffic Serverを組み合わせたリバースプロキシとして提供されている。「ImageFluxを共同開発しているピクシブさんやYahoo! JAPANさんでもApache Traffic Server使っている実績があるため、弊社でも導入することにしました」と山本氏は語る。
ネットワーク帯域としては東京で40Gbps分、大阪で20Gbps分が用意されており、さくらのバックボーンに接続されている。もちろん、運用されているサーバ数もかなりの数に上っている。「帯域やハードウェアのリソースについてはかなり余裕を持って作っています。ファイルのサイズや種類、リクエスト数、HTTPか、HTTPSかで全然異なるため、常時半分近くのリソースは必ず開けておくというスタンスでやってます」と山本氏は語る。
サービス仕様も安全性やユーザーのコントロールを重視している。既存のCDNでは、HTTPのCache-Controlヘッダのうち、Webブラウザと同じmax-ageやexpiresなどを見ることが多く、配信側が意図しないファイルをキャッシュさせてしまうことがあるという。その点、さくらのウェブアクセラレーターはmax-ageやexpiresではなく、s-maxageというヘッダを見るため、デフォルトではキャッシュされない。そのため、ユーザーが意図して設定したコンテンツのみをキャッシュでき、画像ファイルは30分、動的に生成したページは1分といった具合に、使いわけることも可能になっている。
後発なので売りは料金 配信データ量にのみ課金
サービスの売りは、やはり料金。「後発で機能面も不足しているものが多かったため、まずは料金を一番下げてみようと考えた」とのことで、インバウンドは無料にし、アウトバウンドのトラフィックのみ1GiBあたり5円を課金することにした。リクエスト数にはコストがかからず、純粋に配信した分のみ課金されるので、仕組み自体もシンプルだ。「この5円も税抜ではなく、税込で5円。これはけっこうがんばったところ。トラフィックが増えるほど、インパクトが出るところです」(山本氏)。
さらに無償枠も用意されており、500GiBまでが無償枠が用意されている。「CDN使ったことないお客様って多いんですよね。そこで、まずは触ってもらうということで、クーポンじゃなく、無償枠をつけてしまうことにしました」と山本氏は語る。
現状は、ゲームや広告配信、ECサイト、映画の紹介サイトなど、画像のやりとりが定常的に多いサイトでの利用が多い。現在、公開されているユーザーとしては、β版のときから利用いただいているtenki.jpのALiNKインターネットや、スマホゲーム配信を手がけるACCESSPORTなどが挙げられる。「tenki.jpさんはやはり台風が近くなると、アクセスも多くなりますが、そのためにインフラを備えておくのは大変です。突発までいかないまでも、先が読めない、安定しないトラフィックに対しては、さくらのウェブアクセラレータはかなり有効だと思います」(山本氏)。
■関連記事
豪雨レーダーのヘビーな処理を支えるさくらの専用サーバ
高機能化を進めるCDNサービスも多いが、さくらのウェブアクセラレータはキャッシュ配信という基本機能を追求していくのが進化の方向性。「CDNってサービスを乗り換えられやすい。だからコアとなるキャッシュ配信が安定して動かないと、どんな機能が付加されても意味がないんです」と山本氏は語る。「将来的にはApache Traffic Serverを代替できるキャッシュサーバーアプリケーションを自社で作る計画もありますがまだまだ構想段階。β版からご利用いただいているユーザ様には不具合の改修なども含めて一緒にサービスを作っていただいた部分も大きいので非常に感謝しています。まずはとにかく、サービスの基本価値を高めるべく、お客様のWebサイトをアクセラレートできるサービスを目指していきたいです」(山本氏)。