server-infrastructure

大規模データ処理を支えるサーバ/インフラ入門

前回は、基本部分、作り込み、速度と精度の追求である全文検索エンジンの作成についてまとめた。ここでは、大規模データ処理を支えるサーバ/インフラ入門について解説する。

1 エンタープライズ vs. Webサービス

エンタープライズ vs. Webサービス

エンタープライズ(事業)とWebサービスをトラフィック、成長度合い、信頼性、トランザクションの4つで比較すると以下の通り。

  1. トラフィック:それなり-たくさん
  2. 成長度合い:そこそこ-爆発的
  3. 信頼性:死守-99%
  4. トランザクション:多用-それほど使わず

 

Webサービスのインフラ

Webサービスのインフラで重視するポイントは以下の3つである。

  1. 低コスト、高効率:100%の信頼性は目指さない
  2. 設計:スケーラビリティ、応答性が重要
  3. 開発スピード:機動的なリソース提供

 

2 クラウド vs. 自前インフラ

クラウドコンピューティング

クラウドコンピューティングとは、Googleの会長兼CEOのEric Schmidt氏が講演の中で言及したのが最初とされている。厳密には定義されていないが、代表的なサービスにAmazon EC2がある。

 

クラウドのメリット、デメリット

クラウドの最大のメリットはスケーラビリティの柔軟性である。デメリットは、画一的なホスト仕様(メモリの上限68GB、低速なI/O)、曖昧なロードバランサ(Elastic Load Balancing)、まれに止まることである。

 

はてなでのクラウドサービスの使用

はてなではAmazon Web Serviceを一部で使っている。メディアファイルの配信のためにAmazon Cloudfrontというサービスを使っている。小規模なサービスにおいてはクラウドコンピューティングが特に有効であろう。

 

自前インフラのメリット

自前インフラのメリットは以下の3点にまとめられる。

  1. 柔軟なハード構成:メモリ搭載量を増やせるなど
  2. サービスからの要望への柔軟な対応
  3. ボトルネックのコントロール

 

自前インフラと垂直統合モデル

技術モデルには垂直統合モデルと水平分散モデルがあるが、自前インフラは垂直統合モデルといえる。垂直統合モデルは物理的なレイヤから上のサービス設計まで、すべてを一社で構築するモデルである。例えばGoogleやAmazonなどの企業が該当する。水平分散モデルは各レイヤごとに別の企業がシステムを提供することで、全体としてシステムが構築されるモデルである。

 

はてなのサービス規模

はてなのサービス規模は以下の通りである(2010年4月)。

  • 登録ユーザ数は150万人、1900万UU/月
  • 数十億アクセス/月(画像などへのアクセスを除く)
  • ピーク時の回線トラフィック量は850Mbps
  • ハードウェアは600台以上(22ラック)

 

はてなブックマークのシステム構成図

はてなブックマークでは、リバースプロキシが3台、APサーバが11台、DBサーバが24台、キャッシュサーバが7台、ロードバランサが2台、その他のエンジンが9台で計56台で構成されている。全体的な構造は、(リバース)プロキシとアプリケーションとDBの3層構造になっている。APサーバとDBサーバの比率が1:2程度となっている。キャッシュサーバはSquidが2台、memcachedが5台ある。

 

最後に

大規模データ処理を支えるサーバ/インフラ入門についてまとめた。

Webサービスのインフラの特徴と、はてなの特徴について解説した。エンタープライズとWebサービスは、トラフィック、成長度合い、信頼性、トランザクションの各々について異なった特徴を持つ。Webサービスのインフラにおいては、低コストで高効率、設計、開発スピードの速さが重要である。

次回は、規模の増大とシステムの拡張といったスケーラビリティの確保について解説する。

[Web開発者のための]大規模サービス技術入門 ―データ構造、メモリ、OS、DB、サーバ/インフラ (WEB DB PRESS plusシリーズ)


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>