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