[レポート] (New Launch) Introducing Amazon Redshift Serverless #reinvent2021

2022.04.19

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

データアナリティクス事業本部コンサルティングチームの石川です。これまでのRedshift (Provisioned Cluster)が持つ全て機能と接続性を備えたその名の通り、インスタンスを持たないサーバレスなRedshift Serverless(Preview)が登場しました。

弊社では、Redshift ServerlessのPrivate Previewの段階から、AWS様と連携して事前に技術検証やフィジビリティについてフィードバックさせていただきました思い入れの深いサービスであり、Amazon.comのプレスリリースでも私のコメントを紹介させて頂いております。

Amazon RedshiftのVP(Vice President)であるYan LeshinskyさんとプリンシパルプロダクトマネージャーであるNeeraja Rentachintalaさんによる2021/12時点の最新情報のレポートセッションです。

セッション概要

In this session, learn how Amazon Redshift automatically provisions data warehouse capacity and intelligently scales the underlying resources to deliver consistently high performance and simplified operations for even the most demanding and volatile workloads.

このセッションでは、Amazon Redshiftがデータウェアハウスの容量を自動的にプロビジョニングし、基盤となるリソースをインテリジェントにスケーリングして、最も要求が厳しく不安定なワークロードに対しても一貫して高いパフォーマンスと簡素化された操作を提供する方法を学びます。


Redshiftの進化の歴史

2013年に最初のクラウドデータウェアハウスとしてRedshiftを立ち上げました。顧客のニーズや変化する状況に基づいて進化を続けました。

2017年にリリースしたRedshift Spectrumは、データウェアハウスのデータとS3ベースのデータレイクとの組み合わせを可能にし、全ての(不明瞭な)分析データにアクセスできるようになりました。

Concurrency Scalingを追加して、ワークロードのパターンの変化に対応し、Redshiftのパフォーマンスを向上させることができるようになりました。

Redshift Managed Storage(RMS)は、RA3インスタンスから導入され、コンピュートとストレージを独立して拡張できるようになり、使用したコンピューティングやストレージに応じて料金を支払うことができるようになりました。

AQUA(Advanced Query Accelerator)を使用して、パフォーマンスを向上させ、クエリのパフォーマンスを最大10倍向上させることができるようになりました。

コンパイルをサービスとして追加して、クエリをバックグラウンドでコンパイルしてパフォーマンスをさらに向上できるようにしました。

データウェアハウスのデータによる分析だけでなく、RDSとAuroraにフェデレーションを追加して、運用データベースにアクセスできるようにしました。

Data Sharingを追加して、データを移動したり、ETLパイプラインを作成したりする手間をかけずに、組織内または組織間でデータを共有できるようにしました。

Redshift MLを追加して、Redshift内でモデルを構築できるようにしました。

現在までに、何万人もの顧客がRedshiftを使用しています。

Analyze all your data

Redshiftは、データレイクと専用のデータストアの間の両方の長所を活かした、データウェアハウス、運用データベース、およびデータレイク全体で最適な統合を提供します。

Redshiftの最新のデータ戦略アプローチとして、4つの重要なトレンドがあります。

1つ目は、Redshift Spectrumを利用して、S3データレイクにある数TBのjsonやParquetなどのオープンスタンダードファイル形式のデータをクエリして、さまざまな洞察を得ています。

2つ目は、顧客がさまざまな組織や企業間でデータを共有したり、マーケットプレイスで定義されたAWS Data ExchangeとData sharingの統合をサードパーティのデータセットを使用します。

3つ目は、組織全体でデータを活用してより迅速な洞察を得るため、顧客がデータを移動せずにその場でデータをクエリするため、データウェアハウスや運用データベース全体でシームレスにクエリを実行できるFedarated Queryを使用します。

そして最後に、より多くの顧客がRedshiftデータを使用して機械学習ワークロードを簡単に実行できるRedshift MLと呼ばれる機能を導入しました。

Redshift Serverless

そこで、登場したのが新しいコンピューティングオプションであるAmazon Redshift Serverless(Public Preview)です。クラスタプロビジョニングや管理は不要、データアナリスト、データサイエンティスト、および開発者を含むすべてのユーザーは、クエリデータをデータウェアハウスにロードするだけで、Redshiftを使用してデータから数秒で洞察を得ることができます。

Redshift Serverlessの特長は以下の点です。

1.シンプルなユーザーエクスペリエンス

利用者は、ノードタイプ、ノード数、およびプロビジョニングクラスターなどのクラスタ管理することなく分析に専念できます。Redshift Serverlessはこれらすべてをバックグラウンドで処理し、キャリアスループットを最適化するためのワークロード管理(WLM)、インスタンスの一時停止と再開、パッチ適用、パフォーマンス最適化タスクなど、クラスター構成を手動で構成する必要はありません。

2.ニーズに応じた動的なキャパシティ管理

Redshift Serverlessは、ワークロードの一時的な集中が発生すると、データウェアハウスのキャパシティを自動的にプロビジョニングおよびスケーリングして、一貫性のある高速なパフォーマンスを提供します。

3.SQLの機能とパフォーマンス

Redshift Serverlessでも、RedshiftのSQL機能とパフォーマンス特性を利用できます。つまり、これらはS3 Data Lakeへのクエリ(Redshift Spectrum)、他の運用データベースへのクエリ(Fedrated Query)、Data Sharingを使用した他の組織とのData Sharing(Data Sharing)などです。

4.利用に応じた支払い

料金は、使用するキャパシティとその利用時間に応じてのみ支払い、アイドル時間に対しては課金されません。

Amazon Redshift Serverless key capabilities

Redshift Serverless 利用開始

Redshift Serverlessの使用を開始するのは非常に簡単です。したがって、必要なのはRedshift Consoleに移動して[Try Amazon Redshift Serverless (Preview)]という新しいオプションをクリックして、[Create serverless endpoint]ボタンを押す、それだけです。

Redshiftに付属しているRedshift Query Editorの優れた機能、たとえば、新たなデータベース、スキーマ、テーブルを作成できます。CSV、JSONなど、さまざまなデータ形式のデータを読み込むことができます。

Redshiftが持つその機能全体は、Redshift Serverlessにも提供されます。Redshift Serverlessのシームレスなデータレイク統合機能は、S3データレイクから直接Parquetなどのオープンフォーマットをクエリできます。また、Redshift Serverless からAuroraやRDSのPostgresやMySQLなどの運用データベースにクエリを実行することもできます。Query Editor V2では、運用データベースのカタログやAWS Glue データカタログを参照してクエリを実行できます。

インテリジェントで動的なコンピューティング管理

Redshift Serverlessが自動的にリソースをプロビジョニングするという、インテリジェントで動的なコンピューティング管理を可能にするには、ワークロードパターンを深く理解する必要があります。

クエリを継続的に監視し、ワークロードとは何かを理解し、高度な機械学習アルゴリズムを適用して、ユーザーのワークロードを単純化することで自動化できます。例えば、小さなクエリの場合は少量のリソース、大きなクエリの場合は大量のリソースなど、適切なリソースの決定します。

もう1つは自動スケーリングです。 スケーリングは、性能の維持のみならずコストも最適化する必要があります。これはサーバーレスにとって重要な領域です。バージョンの更新、ワークロードやクエリが発生していないときにコンピューティングリソースをシャットダウンし、クエリが到着し始めたときにそれらを起動することです。そうすることで、ユーザーが使用に対してのみ支払うことができます。

Redshift Serverless の利用費

Redshift Serverlessでは、コンピューティングとストレージの料金を個別に支払います。コンピューティング側では、RPU(Redshift Processing Unit)と呼ばれる新しい抽象正規化コンピューティングユニットとその利用時間に応じて支払います。これまでのRedshift(Provisioned Cluster)異なり、Redshift Serverlessでは、データレイクに対して行うクエリはすべて、RPU時間として計測されます。したがって、コンピューティングに関する請求全体が統一され、簡素化されます。Concurrency ScalingやRedshift Spectrumなど、これらの料金は適用されません。

Redshift Serverlessのストレージは、Redshift Managed Storage(RMS)を使用します。これは、RA3インスタンスタイプで得られるものと非常によく似ており、データのストレージに対して料金を支払うことになります。

Redshift Serverlessに追加した重要な機能の1つは、リカバリポイントの概念です。過去24時間は、30分の粒度で基本的に時間を遡ることができ、その粒度の特定の時点に復元できます。そのため、その機能はリカバリポイントと呼ばれます。

下記のシナリオでは、5つのクエリがあります。

  • 最初の3分間で、Q1、Q2、Q3の3つのクエリを実行
  • 少し後にQ4のクエリを実行
  • 少し後にQ5のクエリを実行

全体として15分間のうち、実際には5分30秒間ワークロードを実行しましたがRedshift Serverlessを使用すると、5分30秒の料金を支払うだけです。つまり、実際にクエリを実行する時間のみで、料金はアイドル状態に発生しません。

最初の3分間に発生した3つのクエリは、3分間のcを支払うことになります。 3分間で3000のクエリを受け取る可能性がありますが、それでもその3分間の料金を支払うことになります。Redshiftに発生する主なワークロードは、ダッシュボードアプリケーション、データ探索、アドホッククエリなどであるため、クエリごとの料金ではなく、並行ワークロード用に最適化されています。

パフォーマンスとコストの管理

デフォルトのRedshift Serverlessはすべてを自動化し、ユースケースの90%以上でスケールアップ、スケールダウン、そしてリソース管理の自動機能で拡張できるようになるはずです。コスト管理やパフォーマンスの観点から顧客がコンピューティングを任意で設定したい場合があります。その場合、コンピューティングは、RPU(Redshift Processiong Unit)として指定できます。デフォルトでは自動ですが、任意の値に設定できます。例えば、実行に2時間かかるETLジョブがあり、それを非常に速く実行する必要がある場合は、基本容量を最大に調整して、そのタスクをはるかに速く完了することができます。

一方、使用制限は、コストを予測範囲内に保つためのコスト管理のような役割を果たします。したがって、1日あたり1000 RPU時間を使用したいというように、日次、週次、および月次の制限を設定できます。アクションを定義できます。ユーザーのクエリをブロックするか、ログインして続行するか、しきい値に達したときに何をしたいかという点で、さまざまなオプションを使用できます。

Redshift Serverlessへの移行にSQLやBIの変更不要

Redshift Serverlessを使用するためにSQL分析、BIアプリケーションを変更する必要はありません。データを含むクラスターがある場合は、スナップショットを作成して、サーバーレスに復元できます。あとはServerless Endpointを指すようにSQLアプリケーションを変更するだけです。その理由は、Redshift ServerlessがRedshiftのすべてのSQL機能を提供するためです。

データレイクがよりネイティブになり価格設定が単純化

Redshift Serverlessでは、データウェアハウスにロードされたデータをクエリするのか、S3データレイクのオープンフォーマットのデータをクエリするのか、すべてが統一されて、すべてが同じように扱われます。すべてが同じように扱われ、すべてが同じように計測され、同じように課金されます。そのため、アーキテクチャの観点から見ると、私たちは物事を単純化し、お客様の観点から見ると、より単純化された価格設定になっています。

Redshift ServerlessとProvisioned Cluster間のData Sharingも可能

Data Sharingは、Redshift Serverlessの場合と同じように機能します。データ共有を使用すると、Redshiftクラスター間でライブデータを安全かつ簡単に共有できます。Data Sharingは異なるアカウントでも可能です。最近、AWS Data Exchangeと統合し、Redshiftからデータを取得してライセンスを取得したり、サードパーティからRedshiftに直接データを使用したりできるようになりました。Data Sharingのメカニズムは全く同じなので、Provisioned Cluster(既存のクラスタ)とRedshift Serverlessのエンドポイント間でデータをシームレスに共有できるようになります。

Amazon Redshift Serverless use cases

簡単に始められるようにする

インフラストラクチャについて考える必要なくデータ分析に専念するために、Redshift Serverlessは、物事をシンプルにすることに注力しました。クラスターの作成、管理、インスタンスタイプ、ノード数など考える必要はありません。例えば、データの側面ではDataSharingによって作業が簡素化され、コンピューティングの側面では、Redshift Serverlesssは物事を簡素化します。これらを組み合わせることで、さまざまなワークロードを処理できるという点で俊敏性がもたらされます。

可変ワークロード

必要なキャパシティは1日中変化し続け、動的に変化し、手動でスケールアップ、スケールダウンするのは難しく、複雑になります。したがって、可変ワークロードは、Redshift Serverlessが得意とするユースケースの一つであり、使用に応じて支払うだけ済ます。

定期的なワークロード

1時間ごとにデータが届き、処理する必要があり、その実行を10分毎に繰り返すなど、それは定期的な処理です。そのため、リソースを自動的にプロビジョニングし、作業を行い、終了させる、定期的なワークロードはRedshift Serverlessのとても一般的なパターンです。

スパイクのある定常状態

常に物事はダイナミックに動いており、定常状態があっても予期せぬスパイクが発生することがあります。そのような場合、Redshift Serverlessは、リソースのプロビジョニングを行い、安定したパフォーマンスを維持することができます。スケールアップ、スケールダウン、キャパシティの変動にも対応できます。

Demo

デモシナリオ

  • 私が大手アパレル企業のデータアナリスト
  • 売り上げを伸ばすためのホリデープロモーションを考え出すことが私たちの使命
  • データソースには、S3データレイクの過去の販売情報がある
  • 今年と近年。情報はデータウェアハウスにあり、Redshiftに入れたいものです
  • Aurora、Aurora Serverlessである運用データベース。リアルタイムの販売注文と在庫に関する情報がある
  • これらの販売数量の一部を、提携しているベンダー、または提携している多くのベンダーに提供する必要があるという追加の要件もある
  • これらのベンダーが在庫管理について決定できるように、このデータをライブで共有したい

Redshift Serverlessの準備

すべてがデフォルトになっており、必要に応じてネットワークなどカスタマイズも可能です。Redshift Serverlessでは、データはデフォルトで暗号化され、AWSが管理するキーです。これはアカウントのRedshift Serverlesエンドポイントの構成です。これは1回限りのアクションです。

Query Editor V2によるデータ集計と可視化

次に、Redshiftに付属しているQuery Editorからクエリを実行できます。TPC-DS、TPC-Hなどのベンチマークデータセットやその他のいくつかのデータセットなどのサンプルデータセットが付属しているため、分析をより迅速に開始できます。

でも環境のデータは、データウェアハウス内のローカルデータの他に、2017年、2018年の過去の売上はS3データレイク、運用データベースのAuroraに最新の売上と在庫情報があります。

RedshiftのQuery Editorからデータウェアハウス内のローカルデータ、RDS Aurora Postgresデータベースにあるデータ、およびS3データレイクのオープンフォーマットのParquetデータをクエリできます。Query Editorは、Redshift全てのデータソースを組み合わせ、グラフとして視覚化できます。グラフから、ここ数ヶ月、10月、11月にいくらかの減少があることがわかります。そこで、事業のさまざまなカテゴリーを見て、この減少の理由を調査します。

分析に必要となるS3上の昨年のマーケティングチームによってキュレーションされたデータをQuery EditorをRedshift Serverlessに導入します。データをロードするには、S3データ、ターゲットスキーマ、ターゲットテーブルなどを指定するだけです。

QuickSightによるデータ分析

QuickSightを用いて、減少を引き起こしている女性のサブカテゴリ分析して、どのプロモーションが最も効果的であるか、どのカテゴリーのためにこのプロモーションを開始するかを判断します。

Redshift Serverlessの自動的にスケールアップ

上記のデータ分析クエリを実行した結果、データウェアハウスに対する需要の多様で予測不可能な傾向が見られますが、Redshiftはリクエストに応じて自動的にスケールアップおよびスケールダウンしています。

青はクエリ(qcount)です。オレンジはキャパシティ(rpu)です。そして、キャパシティとクエリの需要と一致します。また、ワークロードがない場合、容量はなく、すべてがアイドル状態になります。あなたはそれを支払う必要はありません。

コスト管理の観点から物事を管理したい場合は、使用制限、1日あたりの制限、1週間あたりの制限などを設定できます。

Data Sharing

最後のユースケースはData Sharingです。Redshift Serverless(右)からベンダーにデータを共有しています。Provisioned Clusterは、Redshift Serverlessとデータを共有でき、その逆も可能です。

Redshift Serverlessは、RedshiftのクロスアカウントData Sharing機能を用いてビューを作成しライブで共有しています。ベンダーの共有データを見ることができます。Redshift Serverlessと組み合わせたデータ共有は、コンピューティング側とデータ側の両方で物事を簡素化し、組織全体の分析の面で俊敏性をもたらします。

Nest Step

最初にRedshift Serverlessを試してみたい場合は、ここにリンクがあります。また、これについて詳しく知りたい場合は、これらのWebページをご覧になり、遠慮なく質問してください。ありがとうございました。

最後に

本セッションの中の「Redshiftの進化の歴史」は、私の数年間の歴史でもあり、勝手にエモいなと、感傷に浸っていました。

Redshift Serverlessは、クエリの特性やリクエスト数に応じて、RPU(Redshift Processing Unit)が、自動的にスケールアップ/スケールダウンするので、データアナリストやデータサイエンティストは、インフラのことを考えることなく、分析に注力できるようになります。今後、Redshiftと言えば、Redshift Serverlessが第一候補として利用されるようになるのではないかと考えています。

現在は、Redshift Serverless(Preview)は、$500までクレジットが提供されていますので、ぜひこの機会にRedshift Serverlessのパフォーマンスやフィジビリティを確認することをおすすめします。

Redshift Serverlessは、Private Preview段階でも、すさまじい負荷試験をしたり、主要な機能をじゅうたん爆撃的に検証しましたが、サクッと動いていたのでGAが楽しみです。GAになったらガンガンとブログを書きたいと思います!

合わせて読みたい