はじめに
DataStax のドキュメントに Planning an Amazon EC2 cluster というドキュメントがあったので読んでみた
参考
- Planning an Amazon EC2 cluster + 個人的に訳したもの
- EC2 Ephemeral Disks vs EBS Volumes in RAID
- NYC* Jonathan Ellis Keynote: "Cassandra 1.2 + 2.0"
- Cassandra and RAIDs
EC2 上に Cassandra クラスタを構築する際のポイント
DataStax が提供する AMI がある
- 一番簡単に
Cassandra
クラスタを構築したい場合には DataStax が提供するAMI
を使うと良い - シングル
AZ
でのみ利用可能 SimpleSnitch
で初期化されている
ガイドライン
- 信頼出来る
AMI
を使いましょう*1 - プロダクション環境の
EC2
上のCassandra
クラスタはLarge
又はExtra Large
インスタンスとローカルストレージを使うこと - データディレクトリとコミットログの両方を
RAID0
のephemeral disk
のボリュームに置く - データの冗長性を確保する為、複数の
AZ
にまたがってCassndra
クラスタを展開する Cassandra
のバックアップファイルを保存する為のEBS
ボリュームの使用を検討することCassandra JBOD
とRAID0
を合わせて使うとスループットのパフォーマンスが向上する- クラスタには
EBS
ボリュームは使わない方が良い
ドキュメントが言う信頼出来る AMI
- Ubuntu Amazon EC2 AMI Locator
- Debian AmazonEC2Image
- CentOS-6 images on Amazon's EC2 Cloud
補足
Snitch(endpoint_snitch)
Snitch
には 2 つの機能がある。
Cassandra
ノード間通信が効率的に行えるようにクラスタがどのようなネットワーク経路で構成されているかを通知する機能- 複数のデータセンター(以下
DC
)をまたいでクラスタが構成される場合で片方のDC
で障害が起きた際にもう片方のDC
だけでクラスタが稼働出来るようにレプリカを分散させる機能
以下のような Snitch
がある。
種類 | 機能 |
---|---|
SimpleSnitch |
物理的なノード間の近接度合いに基づく設定 |
PropertyFileSnitch |
ユーザーによるデータセンターとラックの定義によって、ノード間の近接度合いが決定される設定 |
RackInferringSnitch |
データセンターとラックの定義によって、ノード間の近接度合いが決定される設定に合わせて、各ノードの IP の第二、第三オクテットが一致しているかで近接度合いを推定する設定 |
Cassandra JBOD
最後
EC2
上でのクラスタ構築のようなドキュメントがあるのはElasticsearch
も似ている- ヤバイ、英語が全く読めない...