2015年6月26日

オペレーション

ヤフーの画像配信システム(CDN)の紹介

  • このエントリーをはてなブックマークに追加

システム統括本部プラットフォーム開発本部の新部(@osa2be)です。
CDNの運用を担当しています。

先日、知り合いの技術者と話していてヤフーのバックエンドがどうなっているのか興味があると聞かれましたので、社内にいくつかあるCDNのうち2つとIDCフロンティアのサービスをご紹介します。

はじめに

ヤフーには多くのサービスが存在していますが、様々な理由により突発的にリクエストが増加することがあります。
そのようなリクエストに対応するためにサービスごとに大きな配信システムを持つことは、インフラの準備や運用工数など高いコストが必要になります。
そのため、共通のCDNを準備して各サービスのサーバ負荷を平滑化しています。
以前は、社外のCDNを併用していた時期もありましたが、社内に十分な設備が準備できたことや、常に大きいトラフィックがあるため利用量による課金よりも自社で持つ方がコストを抑えられることもあり、現在は多くのコンテンツを自社のCDNから配信しています。

画像配信用CDN

1つ目は、ヤフーのほとんどの画像、JavaScript,CSSを配信しているシステムです。
以下の構成のものを複数拠点に設置してあります。
cdn
GSLBやロードバランサーのL2DSR,L3DSR,インラインを利用しており、1段目から2段目のCacheサーバへのアクセスではURLごとに特定のサーバにアクセスさせてキャッシュヒット率を上げています。
ショッピングやヤフオク!のような画像更新頻度の高いところで60%程度、それ以外はほぼ100%ヒットしています。

ソフトウェア

サーバソフトウェアには、1段目と2段目どちらもApache Traffic Serverを使用しています。
Apache Traffic Serverについては、以下の記事を小柴、大久保が書いております。

ハードウェア

ハードウェアは、1段目も2段目も一般的な1Uの実機を採用しており2段目のみディスクへのアクセスが発生するためSSDにしています。
それ以前は、2UサーバにHDD6本をRAID0で組んでいましたがIO性能不足となったため社内でも比較的早い時期からSSDを導入していました。
現在は、10GNICとPCIeフラッシュストレージのサーバへスケールアップを進めているところです。

リクエスト数と日々気にしていること

通常時のリクエスト数は、お昼休みの時間帯(12:00~13:00)に約100万リクエスト/秒まで、地震発生時などは約200万リクエスト/秒まで跳ね上がります。

PCが中心だった頃はここまで集中することはなかったのですが、スマートフォンのpush通知などにより瞬間的なリクエストの増加が発生するようになり各サービス担当者、インフラチーム、CDNチームなどで話し合いながら対応を進めています。

少し前までは主にトラフィック量を意識することが多かったのですが、現在は、数百Gbpsの帯域があるためトラフィック量はそれほど問題になっておらず最近はリクエスト数について特に注意するようにしています。

CDNは、社内の様々なサービスで使われることもあって季節の出来事やスポーツイベントなどには常に気を配っており、リクエスト数の増加がどのくらいの規模になるのか、対策を考えないといけないものなのかをよく話し合います。

ストレージ

キャッシュサーバが取得するオリジナル画像は、ニュース、ヤフオク!など各サービスのサーバの他にヤフー内製のオブジェクトストレージにも格納しています。
操作するAPI用サーバとストレージ用サーバで構成されていてAPI用サーバは一般的な1Uサーバで、ストレージ用サーバは4UのHDDを12本搭載したものを使っています。
増設や機種の交換を頻繁に行っているのでサーバ台数や容量はよく変わるのですが、現在は、台数が1500台くらいで約10PBの容量があります。

災害時用CDN

2つ目は、災害時に公共機関ウェブサイトの負荷を軽減するシステムです。

emg

東日本大震災時に様々なウェブサイトが閲覧しづらくなる状況が発生しました。そのため、災害時用CDNを半日程度で構築し、様々な公共機関などのウェブサイトをキャッシュして元となるサイトの負荷軽減を行いました。
半日で作れたのは、当時サーバの入れ替えがちょうど終わったタイミングで交換後の外したばかりのサーバがデータセンターに残っていたためです。
どのくらいのリクエストが来るのか予想が出来なかっために外していた全サーバを投入したのが初期の災害時用CDNとなりました。
以後、構成を見直し、地震に限らず台風や大雨などの際に状況に応じて公共機関ウェブサイトをキャッシュして負荷軽減を行っています。

以下のページのポイント2でご紹介しています。
https://about.yahoo.co.jp/info/public/

IDCフロンティアのコンテンツキャッシュサービス

2014年12月にIDCフロンティアよりコンテンツキャッシュサービスがリリースされました。

コンテンツキャッシュサービスの紹介
http://www.idcf.jp/network/cache/

こちらのサービスに関しましては、ヤフーのCDNチーム、インフラチームが協力しております。
これまでのCDN運用経験を生かして、サービス開始前は主にサーバ選定やNW構築について協力し、サービス開始後はお互いにコミュニケーションを取りながら運用にも関わっております。

以上、簡単ではありますが、ヤフーの画像配信システム(CDN)のご紹介でした。

Yahoo! JAPANでは情報技術を駆使して人々や社会の課題を一緒に解決していける方を募集しています。詳しくは採用情報をご覧ください。

  • このエントリーをはてなブックマークに追加