エンタープライズに必要な可用性と拡張性で浸透するNoSQL分散DB「Cassandra」

木本吉信 (DataStax) 2015年04月16日 14時54分

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

 NoSQL徹底研究の特集、今回は「Apache Cassandra」です。第1回でも紹介されているように、商用のリレーショナルデータベース(RDB)製品は汎用機やワークステーションに始まり、ウェブの登場とともにオープンソースのRDBも高価な商用RDBの代替として使われるようになったという歴史があります。

 しかし、2000年代に入りインターネットがさらに普及し、ウェブやモバイルのユーザーが大量のデータを生み出すようになると、今までの考え方やシステムではユーザーの要求を満たすことができなくなり、AmazonやGoogle、Facebookのような先端企業は新しい手法を探り始めます。まさにそうした先端企業の競争力のニーズによって生まれたのがCassandraです。

 Cassandraは、Amazon Web Servicesの「DynamoDB」という分散システムと、Googleの「BigTable」のデータモデルの考え方に基づいてFacebookが膨大なデータ、可用性とスケーラビリティを前提として作った分散システムです。2008年にオープンソースとして公開され、現在はApache Software Foundationのプロジェクトの1つとして運営されています。

 分散データベースであるCassandraは、分散を前提とするシステムであるがゆえのさまざまな特長を備えています。そしてその特長ゆえに、RDBとは大きく異なります。まずは、RDBとCassandraとの違いという側面から見ていきましょう。

RDBとNoSQLの違いから見たCassandra

 一般的な特長からみたRDBとCassandraの違いは以下の通りです。

データモデル:RDBはあまり柔軟性のないデータモデルで構造化されたデータを扱うのに対し、Cassandraは今日のアジャイルな開発手法に適した、より柔軟なデータモデルでデータを扱います。ただし、構造化されたデータは扱わないということではない点に注意してください。特にCassandraではRDBと同じような“テーブル”などの概念があります。

アーキテクチャ:一般的にRDBは一元管理型のスケールアップを前提としたマスタのあるアーキテクチャであるのに対し、Cassandraは分散型のスケールアウトを前提としたマスタのないアーキテクチャになります。マスタのないアーキテクチャは、マスタの切り替え作業やマスタに処理が集中するといったことが発生しないので、可用性に優れていて、拡張を容易にするという大きな特徴があります。

データ分散:一般的なRDBでは、そのマスタのあるアーキテクチャゆえに、データを分散する場合には、読み取り専用の複製をフェイルオーバー先となるコンピュータのディスクに配置します。それに対し、Cassandraは、データベースクラスタを構成する各ノードのディスクにデータを均等に分散し、すべてのノードで書き込みと読み取りを受け付けます。また、RDBでは、地理的に離れたアベイラビリティゾーンやデータセンター間でのレプリケーションが一筋縄ではいかないのに対し、Cassandraは最初からその想定で設計されています。

可用性:RDBでは一般的にマスタが他のマシンにフェイルオーバーする方式により可用性を維持しますが、Cassandraはマスタのない設計によりダウンタイムのない可用性を維持します。

スケーラビリティとパフォーマンス:RDBでは、CPUやメモリ、ディスクなどを中央サーバに追加することでスケールアップしますが、Cassandraはノードを追加することでスケールアウトし、パフォーマンスをリニアに向上できます。例えば、2台のノードで1秒あたり10万件処理できるとしたら、2台追加すれば2倍の20万件、6台追加して4倍の40万件というようにリニアにスケールします。


Cassandraの利点

 以下のいずれにも当てはまるのであれば、従来のRDBでも十分に役目を果たします。無理にRDBから移行する必要もありませんし、RDBのアプローチでシステムを組み立てるのであれば、RDBを使う方がお勧めです。

  • ダウンタイムを許容できる可用性でよい、あるいは100%のアップタイムを得るためにコストと手間を惜しまない
  • スケーラビリティはさほど重要でない、あるいはスケーラビリティを得るためにコストと手間を惜しまない
  • 膨大な量のデータの取り込みにパフォーマンスを問わない
  • データの一貫性を絶対的に必要とする

 しかし、一貫性の点を除き、これらの条件は今までのシステム構築の上で、各企業が仕方なく受け入れてきた事実でしかありません。Cassandraはその考えを大きく変えることが可能です。

 冒頭にも書いたようなインターネット先端企業の要請から生まれたデータベースではありますが、あらゆる人やモノがインターネットに接続し、膨大な量のデータがひっきりなしにやり取りされる今の世界にあっては、このようなデータベースがあらゆる企業にとって必須となります。時代にマッチしたオンラインアプリケーションの開発と管理に寄与するCassandraの主要な機能を以下に示します。

大規模にスケーラブル:Cassandraは、すべてのノードが等価であるマスタレスの設計です。どのノードも同じように扱えるため、運用もシンプルでスケールアウトも容易です。

すべてがアクティブとして動作: Cassandraノードはどれも書き込みと読み取りの両方を受け付けます。

リニアにスケールするパフォーマンス:データベースをオンラインにしたままノードを追加することで、予測可能な形でパフォーマンスを向上させることができます。例えば、2台のノードで毎秒20万のトランザクションを処理できていれば、4台で40万、8台で80万のトランザクションを処理できます。また、その逆の、オンラインでスケールダウンすることも容易に可能です。

ZDNet Japan 記事を毎朝メールでまとめ読み(登録無料)

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

この記事を読んだ方に

関連ホワイトペーパー

連載

CIO
シェアリングエコノミーの衝撃
デジタル“失敗学”
コンサルティング現場のカラクリ
Rethink Internet:インターネット再考
インシデントをもたらすヒューマンエラー
トランザクションの今昔物語
エリック松永のデジタルIQ道場
研究現場から見たAI
Fintechの正体
米ZDNet編集長Larryの独り言
大木豊成「仕事で使うアップルのトリセツ」
山本雅史「ハードから読み解くITトレンド放談」
田中克己「展望2020年のIT企業」
松岡功「一言もの申す」
松岡功「今週の明言」
内山悟志「IT部門はどこに向かうのか」
林 雅之「デジタル未来からの手紙」
谷川耕一「エンプラITならこれは知っとけ」
大河原克行「エンプラ徒然」
内製化とユーザー体験の関係
「プロジェクトマネジメント」の解き方
ITは「ひみつ道具」の夢を見る
セキュリティ
エンドポイントセキュリティの4つの「基礎」
企業セキュリティの歩き方
サイバーセキュリティ未来考
ネットワークセキュリティの要諦
セキュリティの論点
スペシャル
エンタープライズAIの隆盛
インシュアテックで変わる保険業界
顧客は勝手に育たない--MAツール導入の心得
「ひとり情シス」の本当のところ
ざっくり解決!SNS担当者お悩み相談室
生産性向上に効くビジネスITツール最前線
ざっくりわかるSNSマーケティング入門
課題解決のためのUI/UX
誰もが開発者になる時代 ~業務システム開発の現場を行く~
「Windows 10」法人導入の手引き
ソフトウェア開発パラダイムの進化
エンタープライズトレンド
10の事情
座談会@ZDNet
Dr.津田のクラウドトップガン対談
Gartner Symposium
IBM World of Watson
de:code
Sapphire Now
VMworld
Microsoft WPC
Microsoft Connect()
HPE Discover
Oracle OpenWorld
Dell Technologies World
AWS re:Invent
AWS Summit
PTC LiveWorx
吉田行男「より賢く活用するためのOSS最新動向」
古賀政純「Dockerがもたらすビジネス変革」
中国ビジネス四方山話
ベトナムでビジネス
日本株展望
企業決算
このサイトでは、利用状況の把握や広告配信などのために、Cookieなどを使用してアクセスデータを取得・利用しています。 これ以降ページを遷移した場合、Cookieなどの設定や使用に同意したことになります。
Cookieなどの設定や使用の詳細、オプトアウトについては詳細をご覧ください。
[ 閉じる ]