[速報]待望の新機能”Amazon Redshift concurrency scaling”が発表されました! #reinvent

Amazon Redshiftの新機能"Amazon Redshift concurrency scaling"が発表されました。その内容についてお伝えします。
2018.11.30

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

はじめに

日本時間2018年11月30日、夜中1:30〜3:30のスケジュールで、AWS re:Invent 2018のKeynote 2日目が実施されています。

【速報】AWS re:Invent 2018 Keynote 2日目で発表された新サービスまとめ #reinvent

その中で、Amazon Redshiftの新機能"Amazon Redshift concurrency scaling"が発表されました!

Amazon Redshift concurrency scalingとは?

concurrency scaling、直訳すると、「同時実行スケーリング」です。何千もの同時ユーザーとクエリがあっても一貫して高速のクエリパフォーマンスを提供する新しい機能です。 「クエリのワークロードをサポートするために、必要に応じて容量を自動的に増減させる」とのことです。

Redshftを使ったことのある方であればよく知られた話ですが、Redshiftは「1つ1つの複雑なクエリを高速に処理する」事を得意としているので(下記スライド17ページ)、他の一般的なRDBと異なり、クエリの大量な同時実行には弱いという課題がありました。従来はこの課題を解決するためにWLM(ワークロードマネージメント)等の機能を使って処理に優先順位をつけ、クエリの効率化を図っていました。

今回提供されるこの新機能で、そもそもの同時実行性を上げられるのであれば課題は一気に解決する訳で、期待が高まらないハズはありません!

この機能はつい先日、Redshiftクラスタを構成するノードのリサイズを高速化する"Elastic Resize"が発表されましたが、それを発展利用したもののようです。

Elastic Resizeは新しい構成のクラスタを高速に作成したら、そちらに操作を切り換えて従来のクラスタは削除するふるまいをします。concurrency scalingは、クエリがキューに待機することをきっかけにして、この機能を使ってクラスタを追加起動させ、一時的に大量のリクエストをさばき、負荷が減ったタイミングで自動的にクラスタを削除するという動きをするようです。

2018年11月30日3:30の時点で、AWSからの発表記事は出てないようですが、このKeynoteの発表者でもあるAWSのCTOであるWerner Vogelsのブログに、concurrency scalingに関する言及があり、Keynoteと同じ説明が書かれています。

この発表が行われた時点からプレビューの受付が始まっており、以下のページから申し込みが可能です。

Keynoteの発表では、この新機能によってキューに待たされていた一部のクエリも直ぐに実行できるようになり、スループットを向上させることができる、としていました。

実際に使える日はまだ分かりませんが、今からとても楽しみです!