Amazon Redshift はスペックを上げるのとノード数を増やすのどちらがいいのか
はじめに
ストレージサイズが32TのHDDタイプのRedshiftを構築したい場合、以下の構成が考えられると思います。
- ds2.xlarge(2TB) を16ノードにする。
- ds2.8xlarge(16TB) を2ノードにする。
この2つのパターンはストレージサイズと料金とは同じになりますがどちらがいいのでしょうか?それぞれのメリットを整理してみます。
ds2.xlargeを16ノードの場合
メリットとしてはストレージサイズや処理能力の調整がしやすいことがあります。
ds2.8xlargeを2ノードの場合
次にds2.8xlargeを2ノードの場合にした場合は以下のようなメリットがあります。
- 分散タイプをALLにした場合にノード単位で配置されるのでディスクの使用効率がいい。
- 再分散が発生した場合でもネットワーク通信が軽減される。
- 合計したvCPUコア数が多くI/O性能も優れている。
- リーダーノードはコンピュートノードと同じスペックなのでこちらの方がスペックがよい。
まとめ
これを見るとスペックを上げる方がよさそうに見えますが、スペックを上げた場合のメリットはテーブル、データ、クエリによっては違いが意図したほど出ないことがあるため、AWSでは一度、本番環境を想定して検証してみることを推奨しています。
参考
スペックは以下のAWSのサイトを参考にしました。 料金 - Amazon Redshift | AWS