Amazon Redshift Serverlessについてまとめてみました

はじめに

Redshift Serverlessを調査/検証する機会がありましたので、結果をまとめてみました。

機能の概要や構成、Redshift ProvisionedやAthenaなどの類似サービスとの違いについてもまとめておりますので、ご一読いただけますと幸いです。

目次

Redshift Serverlessとは

フルマネージド型データウェアハウスサービスのRedshiftのサーバレスサービスです。
サーバレスによってRedshiftのノード部分のキャパシティプランニングが不要となり、分析のためのクエリ実行時に自動でプロビジョニング・スケールしてくれます。
プロビジョニングされたデータウェアハウスでサポートされている機能のほとんどはサーバーレスでもサポートされています。

従来のRedshift ProvisionedとRedshift Serverlessを図解します。

Redshift Provisioned
図解_Redshift_Provisioned.png

Redshift Serverless
こちらは従来のノード部分を意識することなく利用することができます。
図解_Redshift_Serverless.png

以下は代表的な機能です。

Redshift Spectrum

Amazon Redshift テーブルにデータをロードすることなく、Amazon S3 のファイルからデータを取得できます。
Redshift ServerlessにはRedshift Spectrumの料金が含まれているため個別に料金を支払う必要はありません。

Federated Query

Amazon Redshift テーブルにデータをロードすることなく、外部データベースからデータを取得できます。
下記の外部データベースと連携することができます。

  • Amazon RDS for PostgreSQL
  • Amazon Aurora PostgreSQL 互換エディション
  • Amazon RDS for MySQL
  • Amazon Aurora MySQL 互換エディション

構成例

Redshift ServerlessはVPC内3つのサブネットに配置する必要があります。
構成_basic.png

Redshift Serverlessテーブルにデータをロードしてデータ分析などを行う場合は下図が代表的な構成になります。
構成_import_data.png

なお、前述したRedshift Spectrumや、Federated Queryを利用する場合は下図が代表的な構成になります。
Amazon Redshiftテーブルにデータをロードすることはありませんが、スキーマ定義をAWS Glueに作成する必要があります。
AWS Glueを介することにより、Amazon Redshiftテーブルに実データを持つことなくデータの取得が可能になります。
構成_spectrum_data.png

また、SDKを使用したData APIによるRedshift Serverlessへのアクセスも可能です。
下図の通りLambdaからクエリを実行するバックエンド構成も可能です。
構成_spectrum_dataAPI.png

導入手順

基本的にはマネジメントコンソールにて設定内容を入力するだけで構築が出来ます。
しかし1点だけ、RPU(Redshift処理ユニット)の値に注意が必要です。
RPU_Redshift_Serverless.png

この値は増やすほどクエリのパフォーマンスが向上します。
Redshift Serverlessはクエリ実行時間のみの課金になりますので、パフォーマンス向上により実行時間が短くなると利用料金を削減できる可能性があります。

参考) RPUの料金
Amazon Redshift の料金
USD 0.494 (1 RPU 時間あたり) (2024年11月時点)

例1) 8RPUで4時間かかる場合
0.494 * 8 * 4 = 15.808 USD

例2) 16RPUで1時間かかる場合
0.494 * 16 * 1 = 7.904 USD
  → 実行時間の短縮により料金が削減した

例3) 16RPUで4時間かかる場合
0.494 * 16 * 4 = 31.616 USD
  → 実行時間が変わらずRPUが増えた分、料金が増加した
    → この場合はRPUの値を増やさない方がよい

類似サービスとの違いについて

料金体系

  • Athena
  • Redshift Provisioned
    • クラスター稼働時間に応じた課金
    • Redshift Spectrumはスキャンデータ量に応じて別建てで請求される
  • Redshift Serverless
    • RPUに応じたワークロード実行時間
    • クエリを実行しないアイドル時間は課金されない

特徴

  • Athena
    • 手軽にS3データのクエリを実行したい場合に適している
      • Redshiftだと3つのAZ/Subnetに配置する必要がある
      • スキャンするデータ量が少ない場合に適している
  • Redshift Provisioned
    • 絶え間のないワークロードに適している(24/365など)
    • 高負荷の予測が可能な場合に適している
  • Redshift Serverless
    • コスト最適化に適している

注意点

サービスクォータは下記公式ドキュメントに記載されています。
Amazon Redshift のクォータと制限

VPCエンドポイントについて

Redshift Serverlessをデプロイするとリクエスタマネージド型VPCエンドポイントが自動的に作成されます。
リクエスタマネージド型のネットワークインターフェイス

インターフェイスエンドポイントの料金が加算されますので、Redshift Serverless料金試算の際にはご注意ください。
AWS PrivateLink の料金

まとめ

Redshift Serverlessは従来のProvisionedよりも手軽さや料金面で優れています。
しかし、要件や機能においてAthenaで十分な場合や、Provisionedを選択すべき場面があります。
Redshift Serverlessのみにとらわれずに、適切なサービスの選定が大切です。

下記のリンクはRedshiftのBlack Belt資料になります。
サービスの使い分けや、選定フローが記載されております。
Amazon Redshift 運用管理 AWS Black Belt Online Seminar

投稿者プロフィール

nagura
2021年4月からスカイアーチに中途入社しました。
AWSともっと仲良くなるべく日々勉強中です。