Twitterのサービス基盤とAPIについて
世界中のTwitterの発行済みのアカウントは1億を超え、日本でも鳩山首相やソフトバンクの孫社長等が始められ、テレビや雑誌等に特集が組まれるなど、一般的にも認知されつつあります。私自身ももはや、Twitterは手放せないツールとなりました。
日経NETWORK(2009.02)の特集2で「Twitter、ニコニコ動画、Google Appsを解剖する」の中で、「Twitter クラウドサービス活用で大規模対応 API解放で外部サービス呼び込み」は大変興味深い記事でした。
少しポイントを紹介しましょう。
「Twitter.com」の技術のポイントは、
- NTTアメリカのデータセンターとネットワークを利用
- Amazon Web Serviceの「CloudFront」で画像配信
- Amazon Web Serviceの「Amazon S3」でオンラインストレージの利用
- 米Dynの「Dynect Platform」のDNSサービスを利用
- APIを積極的に公開し、連携サービスの促進
「Amazon S3」の利用により、Twitter内のアイコンや背景画像のストレージコストを押さえ、CDNサービスの「CloudFront」を利用することで国内のキャッシュサーバーから配信されるためネットワークの遅延を少なくしています。これらのサービスNTTアメリカのデータセンターとネットワーク内に設置したサーバと組み合わせて提供をしています。
また、Twitterでは、NTTアメリカのデータセンターを利用し、安価な汎用Webサーバを並べ等で安定稼動をさせています。その結果、Twitterの年間稼働率は、2007年の98.08%で2009年は99.76%と2%近く改善しています。
Twitter は多くのユーザのタイムラインの更新が伴うため、データベースに分散キャッシュを多用したり、フォロー数の上限でシステム負荷を調整などの対応をしています。また、DDoS攻撃も頻繁におきていますが、根本的な対策を講じることができていないのが現状のようです。
その他、APIのアクセス制御には「OAuth」と呼ぶプロトコルを採用しています。「OAuth」とは、”あるサービスで認証されたユーザアクセスの権限を、別のサービスに付与する仕組み”ということです。Twitterと連携した様々なサービスが提供されているのも認証を簡素化する仕組みがポイントとなっているのでしょう。
Twitterは一見シンプルで簡単な構造で作られているのではないかと錯覚してしまうこともありますが、世界中のリアルタイムのTLを支えるクラウド基盤やシステム設計、そしてAPI連携など、ブログでは書ききれませんが、様々な工夫がなされています。
Twitterは今後も利用ユーザの拡大が見込まれており、当然これまで以上の大規模なクラウド基盤を利用する必要が出てくるでしょう。Twitterのユーザ拡大に伴い、どのようなシステム構成になるのかというのを追いかけていくのも、勉強になるのかもしれません。