導入事例
AmazonWebServices(AWS) 導入事例
将棋のリアルタイム中継サイトをAWS上で実現
お客様
毎日新聞社様・朝日新聞社様
概要
将棋界で最も格式と歴史がある「名人」の称号を争う「名人戦」、名人への挑戦権をかけて戦う「順位戦」。その全対局(年間約600局)をリアルタイムで中継するサイト「名人戦棋譜速報」を、AmazonWebServices(AWS)上で実現しました。
導入ソリューション
名人戦棋譜速報のインフラ環境をAWSに移行。
同時に、AWSの機能を有効に利用するためのWEBアプリケーションを開発しました。
導入時の 利用AWSプロダクト |
EC2(仮想サーバ) |
---|---|
S3(WEBストレージ) | |
ElasticLoadBalancing(ロードバランサー) | |
AutoScaling(EC2のスケールイン/スケールアウトを制御) | |
ElastiCache(memcacheサーバ) | |
SimpleDB(NoSQLDB) | |
Route53(コンテンツDNS) | |
CloudFront(CDN) |
導入前の課題
名人戦・順位戦は1年を通じて対局が行われ、名人戦棋譜速報ではその全対局が中継の対象になりますが、その中でも「名人戦七番勝負」と、毎年2月3月に行われる「A級一斉対局」の日には、アクセスが集中します。
このアクセス集中に対応するため、従来からロードバランサーを介してWEBサーバを増やす(スケールアウト)ことを行ってきましたが、それには以下のような課題がありました。
・アクセスの大部分が「棋譜ファイル」の配信
棋譜中継は、「棋譜ファイル」というファイルを配信することで実現しています。
「棋譜ファイル」とは、対局者が指した手や、解説者のコメントなどが記述されたものです。
そして、アクセス集中の際には、この「棋譜ファイル」の配信がトラフィックの大半を占めるのです。
ファイルのため、WEBサーバをスケールアウトする際には、ファイルの同期が必要になります。
また、「棋譜ファイル」には対局内容が時系列で記録されていますので、古いバージョンのファイルが配信されないよう、「一貫性」を保証する必要があります。
従来のソリューションは、NFSサーバを配置し、ファイルの一貫性を保っていましたが、NFSサーバがボトルネックとなり、スケールアウトに限界がありました。
・有料サイトのためセッション管理が必要
「棋譜ファイル」を大規模に配信するだけであれば、CDN(コンテンツデリバリーネットワーク)も考えられますが、「名人戦棋譜速報」は有料会員向けサイトであり、CDNは使用できません。
WEBアプリケーションにてセッションを管理し、有料会員にのみコンテンツを配信する必要があります。
導入への流れ
- ・EC2をAWS・東京リージョンの複数データセンター(MultiAvailabilityZones)に分散配置し、ElasticLoadBalancingにて振り分け
- ・HTML、画像、棋譜ファイルといったコンテンツファイルをS3上に格納
- ・S3は東京リージョンとカリフォルニアリージョンの2ヶ所に分散配置
- ・S3上のコンテンツファイルをElastiCacheを使ってキャッシュし、すばやくコンテンツを返却
- ・ElastiCacheもAWS・東京リージョンの複数データセンター(MultiAvailabilityZones)に分散配置
- ・AutoScalingにより、アクセス集中が予想される対局日に自動で仮想サーバ台数を増やし(スケールアウト)、対局終了後に仮想サーバ台数を減らす(スケールイン)
導入後の効果
- ・EC2、キャッシュサーバ(ElastiCache)、S3を分散配置することにより、ダウンが極めて発生しにくいサイトを実現
- ・S3+ElastiCacheにて、データの一貫性を実現しながら、ユーザへの高速配信を実現
- ・柔軟なスケールアウトにより、アクセス集中にも良好なレスポンスタイムを維持
- ・柔軟なスケールインにより、アクセス集中時に合わせた設備投資を回避