朝日新聞社・毎日新聞社が共催する「名人戦」、は将棋界で最も格式と歴史があるタイトル戦です。
PCサイト「名人戦棋譜速報」(http://www.meijinsen.jp/)は、その対局をリアルタイム中継する有料課金サイトで、運営は公益社団法人日本将棋連盟が行なっています。
サイトの運用は、毎日新聞社の関連会社である株式会社東京データネットワークに業務委託しています。

サイトのシステム構成図は以下の通りです。

 

 

「名人戦棋譜速報」システム構成図

名人戦棋譜速報には、以下の2つの特徴があります。

1. トラフィックの大半が棋譜ファイルの配信
棋譜中 継は、対局者が指した手や、解説者のコメントなどが記述された「棋譜ファイル」というファイルを配信することで実現しています。そして、アクセス集中の際 には、この「棋譜ファイル」の配信がトラフィックの大半を占めます。 また、「棋譜ファイル」には対局内容が時系列で記録されていますので、古いバージョンのファイルが配信されないよう、「一貫性」を保証する必要がありま す。

2.有料課金サイト
名人戦棋譜速報は有料課金サイトですので、セッション管理を行い、有料会員にのみコンテンツを配信する必要があります。

そこで、「棋譜ファイル」などのコンテンツファイルを、信頼性の高いAmazon S3に確実に保存しています。これらのファイルはAmazon Elasticacheにも一定期間保存されるようにしており、Amazon EC2によるAPサーバでAmazon Elasticacheからコンテンツファイルを取得して配信することで、高速配信を実現しています。
また、セッション情報もAmazon ElastiCacheに保存し、有料会員様専用のコンテンツも配信しています。

使用しているAWSプロダクトは以下の通りです。

  • Amazon EC2
  • Amazon S3
  • Amazon ElasticLoadBalancing
  • Amazon AutoScaling
  • Amazon ElastiCache
  • Amazon SimpleDB
  • Amazon Route53
  • Amazon CloudFront

これらのプロダクトの組み合わせにより、負荷対策、高速配信、高信頼性、運用負荷軽減などを実現しています。

 

サイト運用におけるAWSの利用上のメリットの詳細については、運用会社である株式会社東京データネットワーク様にお聞きした内容を以下に記載します。

激しく増減するユーザトラフィックに対応するためです。
有料会員数は増加傾向にあり、名人決定などの注目が集まる対局が行われる日は、通常時の何十倍という大量のユーザトラフィックが集まります。そのトラフィック量は事前に見積り難いため、注目が集まる対局が行われる日は、エンジニアを張り付かせ、都度負荷対策に追われていました。それでも、場合によって はサーバリソースがパンクし、サイトダウンすることもありました。
そこで、容易にスケールアウトが可能なAWSを導入すれば、大量のユーザトラフィックが集まっても快適なレスポンスタイムを維持できるようになると考えました。
また、有料課金サイトですので、24時間365日、サイトが安定して閲覧できるという、信頼性向上も得られると考えました。

以前のシステム(ロードバランサ+APサーバ3台+ファイルサーバ1台)では、処理できるユーザーリクエスト数の上限は600hit/秒までで、かつ利用していたデータセンター(ホスティング)の都合上、APサーバのスケールアウトが困難な状況でした。
しかし、AWS 移行後は、EC2インスタンスをスケールアウトさせることで、少なくとも4000hit/秒までユーザーリクエストを処理できるようになりました。(これ以上のテストは実施していませんので、実際にはもっと高い性能が出ると思われます)
また、設計やリソース調達を含めた開発期間が、以前のシステムの場合は約6カ月かかりましたが、今回は2カ月半で済みました。かつてはデータセンターとの 調整に多くの時間を要していましたが、AWSではそのような調整が必要なかったことと、すぐに利用可能かつスケーラブルなサービスがAWSに準備されてい たことが、期間短縮の大きな要因であったと考えています。

AWS の特性にあわせたアプリケーション開発が鍵になると思います。 処理とデータの分離、SPOF(単一障害点)を作らない、疎結合、などを意識したアプリケーションを作ることで、AWSの各サービス・機能(Amazon S3、Amazon ElastiCacheなど)の特徴にも合わせることができ、従来のインフラ環境では得難かった高信頼性を得ることができると思います。

EC2以外にも、様々なサービスが充実していることです。今回の事例では、ElastiCacheを採用しましたが、Memcached相当のものを、管理不要で、利用するだけでいいというのは魅力的です。
EC2相当の仮想サーバサービスは他にもありますが、これだけ各種サービスが充実しているのはなかなか見当たらないのではないでしょうか?
管理不要なサービスを利用することで、サイト固有の問題に集中して時間を費やすことができ、サイトの質向上が見込まれます。

別途、コンテンツ管理システム(CMS)が存在しており、これもEC2で運用しています。
CMSは、ファイル(HTMLなど)を生成し、S3にファイルをデプロイしておりますが、これを例えばDynamoDBなどを使ってCMSとサイトを連携させることにより、従来にはなかった表現/見せ方が実現できないかと考えております。

SLAの更なる向上と、ManagementConsoleの機能強化を期待しています。