AWS・Amazon Redshift Monthly Updates

[号外]テラバイト級全件データを数秒で処理! 新しいSSD版Amazon Redshiftインスタンスは“衝撃の速さ”

2014年1月24日にAmazon Redshift の新しいSSDインスタンスタイプがリリースされました。

AWS発表のブログ記事
【AWS発表】Amazon Redshiftにさらに高速で費用対効果の高いSSDベースの新しいノードが追加

リリース後すぐにそれぞれAmazon Redshiftが利用可能なリージョンで使えるようになったので、さっそくFlyDataチームでもこの新しいインスタンスタイプを試してみました。以前、Amazon Redshiftが最初に公開された時に私たちはHadoop+Hiveとのベンチマークを実行し公開したのですが、その時と同じ前提で今までのHDDバージョンとSSDバージョンの比較ベンチマークも実行してみました。

結果は予想以上に衝撃的で、Amazon Redshiftの新しい地平線を開く(もしくは全く新しい⁠Redshift 2.0⁠のような)と言っていいような内容となりましたので、さっそくここgihyo.jpでも発表したいと思います。今までのビッグデータ処理の常識を覆すような結果で、新しいビジネスの予感さえします。

“常識を覆す”ベンチマーク結果

新しいSSDバージョンのベンチマークとして、以前からのAmazon Redshift HDDバージョンとの比較を行いました。

このSSDバージョンのAmazon Redshiftは「DW2」と呼ばれるインスタンスタイプで、以前の Amazon Redshift HDDバージョンは「DW1」と呼ばれてています。結果は以下のスライドにまとめましたので、詳細なデータはこのスライドをご覧いただくとして、以下ではその説明を行います。

クエリスピード

ベンチマークでわかったことは、DW2は今までのDW1に比べて本当に高速で、同じ値段で比較しても4~8倍もの高速化を実現していました。さらに、クラスタにもっとインスタンスを追加することでより高速化できる点は、以前ともちろん変わりません。

図1 同じクラスタサイズでのDW1、DW2クエリスピード比較
図1 同じクラスタサイズでのDW1、DW2クエリスピード比較
図2 同価格で比べたDW1、DW2クエリスピード比較
図2 同価格で比べたDW1、DW2クエリスピード比較

また、DW1の場合テラバイト以上のデータを全件処理する際、複雑なクエリ(たとえばベンチマーク中の4テーブルによるjoinの上で複雑な計算を行う場合、など)になると最低1~2分はかかり、その性質からクラスタ内のインスタンス数をどれだけ増やしても、30秒以内に短縮することが困難でした。しかし、DW2では簡単なクエリの場合、テラバイト級データ全件が関わるものでも1秒とか、上記の複雑なクエリでも10秒以内にレスポンスが返ってきました。

こうなると、それこそ特定ユーザ用で同時接続数が少なければ、Redshiftを直接バックエンドとして(MySQLの代わりに!)使うというような用途も十分可能になると考えられます(以前は非常に困難だった⁠⁠。また、TableauなどのRedshift対応BIツールもよりきびきびと動くことが期待できます。

このクエリスピードがあれば、Amazon Redshiftを高速なレスポンスが大変重要な用途に利用することがより簡単にできるようになります。たとえばアドテクノロジーの広告配信の最適化や、高度な金融取引のシステムなどが考えられます。費用全体は以前と比べて高くなりますが、大量データを素早く分析できることが大きなメリットになる場合には、SSDインスタンスタイプを使うことで大変な利益を上げる、ということも今後事例として十分ありえそうです。

データロード

また、データロード時間も驚異的に速くなっていました。以前からRedshiftはデータロードに時間がかかることがひとつの課題とされていたのですが、SSDバージョンは各インスタンスの格納データ量が小さいので、必然的にHDDバージョンと比べてより多くのインスタンスを追加することになります。その結果、インスタンスを追加するほど、高速になります。さらにそもそもSSDなので、ロードスピードはベンチマークを実行する前から期待が持てました。

図3 データロード時間の比較
図3 データロード時間の比較

実際、データロードに必要な時間の減少ははっきり見て取れて、dw2.largeインスタンス12台のクラスタによる1.2TBのロードが1時間36分で完了しました。DW1 HDD Redshiftの場合の2台のdw1.8xlargeクラスタ(16台分)が、クラスタのインスタンス数としては私たちが以前ベンチマークを行った中では一番近い比較対象ですが、その場合は2時間37分かかっていました。

コストで比較すると、12 x dw2.large が $3/hour($0.25/hour * 12)で、2 x dw1.8xlargeが$13.60/hour($6.80 * 2)ですので、クエリスピードとロード時間をそれぞれ単純に比較しても、ものすごく速い、という結果になりました。

容量あたりのコスト比較

唯一の難点は、これまでも書いたように DW2インスタンスはかなり高価ということです。DW2はクエリスピードに特化しているので、容量をテラバイト単価で比較した場合、およそDW1よりも4倍程度高くなります。逆に500GB以下の容量で既存のAmazon Redshift HDD(DW1)を利用しているユーザは DW2によって安くなる可能性もあります。

図4 容量によるコストの比較
図4 容量によるコストの比較

まとめ: SSDインスタンスタイプの可能性

結局、SSDバージョンのAmazon Redshiftは、強烈に高速なクエリ速度を持つ、ハイエンドバージョンということができそうです。このインスタンスタイプは、おそらく大規模なデータ処理をRedshiftで行っていたアドテクノロジー企業や、金融系の大規模システムにRedshiftを利用している現場(いくつか話が聞こえてきています)などからの強い要望があって実現したものだと考えられます。

以前Amazon Redshiftの開発チームに聞いたことがあるのですが、まず大口のお客さん向けにこのようなハイエンドの機能(最近のやたら高度なセキュリティ系機能もおそらくそうですね)を提供し、それがこなれてきたところでスケーラビリティを確保して世界中のユーザに提供を開始する、とのことです。今回も、内部ではすでにかなり利用されていたのでしょう。出たばかりの機能にもかかわらず、ベンチマークを取るにあたって特にトラブル等はありませんでした。

引き続き、Amazon Redshiftのリリースにはワクワクさせられっぱなしですが、またなにか大きなリリースがあった時にはこのようにレポートしたいと思います。

筆者が所属するFlyDataでは、Amazon Redshiftを使いはじめるためのリアルタイム継続データインテグレーションサービスFlyData for Amazon Redshiftを提供しています。最近、RDBMS(MySQL)とRedshiftの連携機能であるFlyData Syncもリリースしました。また、Amazon Redshiftの導入コンサルティングも行っていますので、興味がある方はぜひお気軽に info@flydata.com にお問い合わせください。

おすすめ記事

記事・ニュース一覧