Amazon Redshiftは、AWSがネイティブに提供するクラウドDWHサービスで、S3・Glue・IAMといったAWSエコシステムとの深い統合が最大の強みです。2013年の登場時はリーダーノードとコンピュートノードから成る伝統的なMPPアーキテクチャでしたが、その後RA3インスタンスによるコンピュート・ストレージ分離、そしてRedshift Serverlessのリリースで選択肢が大幅に広がりました。本記事ではRedshiftのアーキテクチャ、主要機能、ProvisionedとServerlessの料金モデル、そして実務で効く最適化テクニックを整理します。AWS中心のデータ基盤を設計する方に向けて、Redshiftを選ぶべきか・どう使うべきかの判断材料を提供します。

Amazon Redshiftとは何か――AWSネイティブのクラウドDWH

Amazon Redshiftは、2013年にAmazon Web Servicesが提供開始したクラウドDWHサービスです。ParAccelというPostgreSQL系のMPP DWHをベースに開発されたため、PostgreSQL互換のSQL方言で操作できます。発売当時は「オンプレDWHをクラウドに持ち込む」という文脈で画期的な存在でしたが、その後SnowflakeやBigQueryが登場し、競争の焦点は「コンピュート/ストレージの分離」と「サーバーレス」に移りました。

Redshiftはこの流れに合わせて進化を続けており、RA3インスタンスで「Managed Storage」というコンピュートとストレージを分離した構成を導入、2021年にはRedshift Serverlessをリリースしました。現在はProvisionedモードServerlessモードの2択から選ぶ設計です。AWS中心のデータ基盤では、S3連携・IAM・Glue・Lake Formationとの統合がシームレスな点で今も第一候補になり得ます。

Redshiftのアーキテクチャ

Redshiftのアーキテクチャを理解するには、Provisionedモードから見るのが分かりやすいです。リーダーノードが1台、コンピュートノードが複数台集まって1つのクラスターを構成します。リーダーノードはクエリを受け付けてプランを立て、コンピュートノードに処理を分散します。

【Redshiftクラスタ構成(Provisioned)】

      [Client / BI Tool]
              |
              v
      +----------------+
      | Leader Node    |
      |  (Plan/Coord)  |
      +----------------+
         |    |    |
         v    v    v
  [Compute] [Compute] [Compute]
   Node 1    Node 2    Node 3
         \    |    /
          v   v   v
      [Managed Storage (RA3)]
          (S3ベースの共有層)

※ RA3ではストレージが分離し、
  ノード追加時もデータ再配置が不要

一方Redshift Serverlessでは、ノード概念がユーザーから隠蔽され、「ワークグループ」と「ネームスペース」という抽象的な単位でクエリを実行します。RPU(Redshift Processing Unit)が自動スケールするため、運用者はサイズ見積もりから解放されます。

aws redshift-serverless create-namespace --namespace-name analytics-ns
aws redshift-serverless create-workgroup \
  --workgroup-name analytics-wg --namespace-name analytics-ns \
  --base-capacity 32

Redshiftの主な機能

Redshiftを支える5つの主要機能を紹介します。

1. Redshift Spectrum:S3上のデータをクラスタにロードせずに直接クエリできる機能です。データレイクとの連携で威力を発揮します。

2. AQUA(Advanced Query Accelerator):FPGAベースのハードウェア高速化機能で、集計・スキャン系クエリを加速します(対応インスタンスが限定される点に注意)。

3. Materialized View:マテリアライズドビューとして事前計算結果を保持し、更新は自動的に反映可能です。複雑なBIクエリの高速化に有効です。

4. データシェアリング:複数クラスター間で同一データを物理コピーなしに共有できる機能です(RA3限定)。

5. Amazon SageMaker連携:Redshift ML機能でSQL内からSageMakerモデルの学習・推論が呼び出せ、MLをSQLに統合できます。

-- Redshift Spectrumの外部テーブル作成
create external schema spectrum_sales
from data catalog
database 'analytics_db'
iam_role 'arn:aws:iam::123456789012:role/RedshiftSpectrumRole';

create external table spectrum_sales.orders (
  id bigint, user_id bigint, amount numeric(10,2), order_date date
)
stored as parquet
location 's3://my-bucket/orders/';
機能概要ユースケース競合比較
Redshift SpectrumS3データを直接SQLデータレイク統合、長期保存の分析Athenaとの競合だが既存Redshiftと一貫
AQUAハードウェア加速集計・スキャン中心ワークロード競合DWHには同等機能なし
Materialized View事前計算結果を保持BIダッシュボード高速化Snowflake/BigQueryも類似機能あり
データシェアリングクラスター間共有本番/開発の分離、取引先共有Snowflake比で機能成熟度はやや劣る
Redshift MLSageMakerとの統合予測モデル、推論のSQL化BigQuery MLに類似

料金モデルと最適化

Redshiftの料金モデルは、ProvisionedとServerlessの2系統があります。

Provisioned:ノードインスタンスを時間単位で課金するモデルです。オンデマンド・1年予約・3年予約があり、予約購入で最大75%のコスト削減が可能です。安定した本番ワークロード向けです。

Serverless:RPU(Redshift Processing Unit)の使用量に応じた従量課金です。使っていない時間は課金されないため、断続的なワークロードに向きます。新規導入ならServerlessからスタートするのが推奨されます。

課金方式コスト特性適するワークロード最小コストの目安
Provisioned(オンデマンド)ノード時間課金常時稼働・大規模本番dc2.large時間約$0.25〜
Provisioned(1/3年予約)前払いで最大75%削減中長期確定ワークロード要見積もり
ServerlessRPU秒課金不定期・検証・初期導入$0.36/RPU時間〜

Redshiftの最適化テクニック

Redshiftのパフォーマンスを引き出すには、MPPアーキテクチャ特有のチューニングが効きます。以下の5つは押さえておきたい定番です。

1. ソートキーと分散キーの設計:ソートキーはWHERE/JOINで頻出するカラムを指定し、ゾーンマップによるスキャンスキップを狙います。分散キーはJOINキーを指定し、ネットワーク越しのデータ移動を減らします。

2. VACUUM / ANALYZE:削除・更新の多いテーブルは定期的にVACUUMで再整列、ANALYZEで統計情報を更新します。RA3/Serverlessでは自動化機能があります。

3. WLM(Workload Management):重いETLとインタラクティブクエリのキューを分離し、同時実行制御を行います。

4. 短期クラスタリサイズ:繁忙期だけノードを増やし、終わったら戻すといった運用が可能です。

5. Concurrency Scaling:同時実行クエリが増えたときに、一時的に追加クラスタを自動起動する機能です。

create table analytics.orders (
  order_id    bigint not null,
  customer_id bigint not null,
  order_date  date   not null,
  amount      numeric(10,2)
)
distkey(customer_id)
sortkey(order_date);

Redshiftが向くケース・向かないケース

向くケース向かないケース
AWSを主戦場にしているマルチクラウド戦略が必須
S3データレイクとDWHを併用したい完全サーバーレス思考でDremel系の自動化を求める
既存のRedshift資産を活かしつつ最適化したい新規プロジェクトでコンピュート/ストレージ分離を最優先
PostgreSQL互換のSQL知見を活用したいSnowflake級のタイムトラベルやゼロコピークローンが必須

まとめ

本記事の要点を振り返ります。

  • RedshiftはAWSネイティブのクラウドDWHで、S3/IAM連携が強み
  • ProvisionedとServerlessの2モードから選択可能
  • ソートキー・分散キー設計が性能を左右する
  • 新規導入はServerlessから始めるのが推奨
  • Spectrumによるデータレイク連携が独自の強み

次に読むべき記事は、クラウドDWH3大サービス比較、dbt入門、そしてマイグレーション戦略の実践編です。DE-STKではRedshiftの設計レビュー・既存クラスタのパフォーマンスチューニング・他DWHへの移行戦略策定まで幅広く支援しています。お気軽にご相談ください。

よくある質問(FAQ)

Q. Redshift ProvisionedとServerlessのどちらを選ぶべきですか?

A. ワークロードが予測可能で常時稼働ならProvisioned、変動が大きく使った分だけ課金したいならServerlessが適しています。新規導入ならServerlessから始めるのが推奨です。

Q. RedshiftからSnowflakeやBigQueryへの移行は簡単ですか?

A. SQL互換性は高いため基本的なクエリはそのまま移行できますが、Redshift固有の機能(ソートキー、分散キー等)は再設計が必要です。dbtを使っている場合はアダプタの切り替えで比較的容易です。

Q. Redshift Spectrumとは何ですか?

A. S3上のデータをRedshiftクラスタにロードせずに直接SQLでクエリできる機能です。データレイクとDWHをシームレスに連携させ、コストを抑えながら大規模データの分析が可能になります。