Amazon Redshift
どんなもの?
AWS上で提供されているスケーラブルで高速、費用対効果が高くペタバイト規模のデータウェアハウスサービス
PostgreSQLベース
OLTP(Online Transaction Processing)用ではなく、データ分析用
Amazon Redshiftクラスターと呼ばれる一連のノードを起動することで作成
OLAP(Online Analytical Processing)用
カラム型ストレージ
https://scrapbox.io/files/686a2140f1cb1e47fb5f9797.png
Massively Parallel Query Execution(MPP)と呼ばれるエンジンを採用
プロビジョニングで使い続ける場合に価値がある。(そうでない場合はAthenaが有効)
使い方
クラスタの種類
サーバーレスクラスタ
インフラ管理したくない場合
プロビジョンクラスタ
100+以上のノードが、それぞれ16TB以上のストレージを持つ
データロード:
Redshift専用のストレージに取り込んで分析
S3
Kinesis Firehose
DynamoDB
AWS Database Migration Service
Multi AZでも使える(フェイルオーバー)
Enhanced VPC Routingという、VPC経由で、COPYやUNLOADを行える
Leader NodeとCompute Nodeがある
課題:
高コスト
対策
クラスターの構成を見直してコストを抑える
使用していない時間帯にクラスターを休止
データ量を削減することでコストを軽減
自動スナップショットの保存期間を見直し、古いスナップショットを削除
自動スナップショットと併用している手動スナップショットを削除
コスト体系
スナップショット用に無料のストレージが存在するが、上限を超えると課金が発生
複数のノードを組み合わせたクラスター構成で稼働
ノードの種類や性能に応じて料金が変動
ノードにはオンデマンドまたはリザーブドノードを適用可能ですが、スポットノードは使用不可
スナップショットとは?
S3に保存
クラスターのデータベース全体をバックアップ
データとその状態(スキーマ、テーブル、データの中身)を丸ごと保存するコピー
スナップショットの種類
自動スナップショット:
Redshiftが自動で定期的に取得(デフォルトで1日に1回など)。保存期間を過ぎると自動で削除
8時間ごと、5GB以内のデータが変更されること
手動スナップショット:
ユーザーが任意のタイミングで取得。自動では削除されない
長期で保村したい時
別のAWSリージョンに自動的にコピーできる
ディザスタリカバリ戦略に強い
KMS暗号化されたスナップショットに対して
snapshot copy grant
Redshift Spectrum
S3のデータを無料でクエリできる
Redshiftクラスタを用意する必要あり
Redshift Workload Management
ワークロードの順位を管理できる
実行時間の長いクエリ後ろで短いクエリを走らせる
Redshift Concurrency Scaling
その場で容量を追加して、無制限のユーザー数とクエリ数で、一貫したパフォーマンスを出す