
【VPC内リージョンサービス】
Redshift は、ペタバイト級のデータを高速に処理できる データウェアハウス(DWH) です。
SQL準拠 / PostgreSQL互換 の構文でクエリを実行でき、既存のBIツールやアプリケーションと高い互換性を持ちます。
内部的には クラスタ と ノード で構成され、データを分散配置するための ディストリビューションキー を用いることで、効率的な並列処理(MPP)を実現します。データは 列指向ストレージ(Columnar Storage) で格納され、ソートキー や 圧縮エンコード によりI/Oを最適化し、高速なクエリ応答を可能にしています。
マテリアライズドビュー による結果キャッシュや 結合最適化 により、複雑な分析クエリも高パフォーマンスで実行できます。さらに、AQUA(Advanced Query Accelerator) と RA3ノード を活用することで、ストレージ分離型のスケーラブルな構成が可能です。
Redshift Spectrum を使用すると、S3 上のデータを直接参照してクエリを実行でき、Athena と同様にデータレイク統合分析を実現します。
運用面では、Concurrency Scaling や Redshift Serverless によって、負荷や利用状況に応じて柔軟にスケールすることができます。
メタデータ管理には Glue Data Catalog / Lake Formation を活用し、Glue, QuickSight, Lambda, Kinesis などのサービスとシームレスに連携します。
AWS Glue / Data Pipeline / DMS と組み合わせることで、データの抽出・変換・移行(ETL)を自動化できます。
セキュリティと運用面では、自動スナップショット / モニタリング により高い可用性と可観測性を確保します。
料金体系は オンデマンド / リザーブドインスタンス / Serverless従量課金 から選択でき、コスト最適化も容易です。
重要用語
ユースケース
| データウェアハウスによるBI分析基盤 | RDSや業務システム、S3のログデータなどを集約し、RedshiftにロードしてBIツールからの集計・可視化に利用する。 |
| 長期データの時系列分析 | 数年分の売上データやアクセスログなどをRedshiftに蓄積し、期間をまたいだ傾向分析やレポート作成を行う。 |
| S3データレイクとの連携分析 | Redshift Spectrumを使って、S3上のデータを直接クエリしつつ、頻繁に使うデータはRedshiftローカルに置くハイブリッド構成をとる。 |
ベストプラクティス
| ソートキーと分散キーの設計 | クエリとデータ分布に合わせてキーを設定し、性能を最適化する。 |
| ワークロードマネジメント | WLMでクエリキューを制御し、重要クエリの優先度を上げる。 |
| スナップショットと自動メンテナンス | 定期的なスナップショットとVACUUM/ANALYZEでクラスタを健全に保つ。 |
高可用性・バックアップ・リトライ
| 高可用性・バックアップ・リトライ設計のポイント |
|---|
| 【デフォルト】AWS内部で冗長化 ・ノード内でのデータミラーリング(各コンピュートノード内で、データが自動的にミラーリング) ・メタデータ(クラスタのメタデータやカタログ情報がリーダーノードとS3で冗長化) |
| 【マルチAZ配置】(RA3クラスタのみ:デフォルト) |
| 【データソースとの接続経路】の冗長化(S3、RDS等との接続をVPCエンドポイント経由にする) |
| 【クライアント接続】の冗長化設計(複数のリーダーノードエンドポイント活用) |
| 【データパイプライン】の冗長化(ETL処理の複数スケジュール設定) |
| 【自動バックアップ】バックアップ保持期間 1 ~ 35 日(0 を指定すると自動バックアップ無効) デフォルト 1 日 クラスタデータを S3 に自動スナップショットとしてバックアップ PITR:日次スナップショット+トランザクションログを用いて、保持期間内の任意時点に復元可能 |
| 【スナップショット】任意のタイミングで手動スナップショットを取得可能 保持期限は無制限(ユーザーが削除するまで保持) クラスターのデータ全体を S3 にスナップショットとして保存 スナップショットからいつでもクラスターを復元可能(スナップショット時点の状態) |
セキュリティ
| 関連サービス | 設定内容 |
|---|---|
| KMS(データの暗号化と鍵の安全管理) | 【クラスタやスナップショットの暗号化が必要】 独自KMSキーを使うことを推奨(鍵操作、監査) |
| Secrets Manager(機密情報の安全管理) | シークレット(秘密情報)の作成が推奨 BIツールやETLジョブからアクセスする認証情報 |
| SSM Parameter Store(設定情報の一元管理) | - |
| CloudTrail(操作履歴の記録・監査・追跡) | 【自動記録】 作成・更新・削除・設定変更は自動記録される。(コントロールプレーンAPI) データ操作は追跡できない(データプレーンAPI) |
| Config(リソースの構成状態・設定変更を記録) | 【Configが有効な場合】 クラスタ設定変更履歴・暗号化/パブリックアクセス/監査ログの準拠評価 |
| GuardDuty(脅威を自動検出) | 【GuardDutyが有効な場合】 クラスタAPI操作の異常検知 |
Redshiftが実行ロールを引き受ける典型的な連携パターン
| 実行ロールを介して連携するサービス | 実行ロールにアタッチするポリシー |
|---|---|
| CloudWatch Logs | logs:CreateLogGroup logs:CreateLogStream logs:PutLogEvents |
| S3 | s3:ListBucket s3:GetObject s3:PutObject |
| DynamoDB | dynamodb:GetItem dynamodb:PutItem dynamodb:UpdateItem dynamodb:DeleteItem dynamodb:Query dynamodb:Scan |
| Lambda | lambda:InvokeFunction |
| SageMaker | sagemaker:InvokeEndpoint |
| Glue Data Catalog | glue:GetTable glue:GetDatabase glue:GetPartitions glue:GetDatabases glue:GetConnection |
| Secrets Manager | secretsmanager:GetSecretValue secretsmanager:DescribeSecret |
| SSM Parameter Store | ssm:GetParameter ssm:GetParameters |
| KMS | kms:Encrypt kms:Decrypt kms:GenerateDataKey kms:DescribeKey |
信頼ポリシー: Redshift
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": "redshift.amazonaws.com"
},
"Action": "sts:AssumeRole"
}
]
}
ログ・監視
| ログ出力先 | ログの種類 |
|---|---|
| S3 | 監査ログ |
標準メトリクス
| メトリクス名 | 説明 |
|---|---|
| CommitQueueLength | コミットキュー長 |
| NetworkReceiveThroughput | 受信スループット |
| NetworkTransmitThroughput | 送信スループット |
| ReadIOPS | 読み取りIOPS |
| TempBlocksToDisk | テンポラリ書き込み量 |
| WLMQueueLength | WLMキュー長 |
| WriteIOPS | 書き込みIOPS |
| CPUUtilization | CPU使用率 |
| DatabaseConnections | DB接続数 |
| HealthStatus | クラスタヘルス |
制限値(固定値/ハードリミット/ソフトリミット)
| ハードリミット | 制限値 |
|---|---|
| クラスターあたりのノード数 | 最大128(ra3) |
| ソフトリミット | 制限値 |
|---|---|
| スナップショット数/クラスター | 20(自動)、20(手動) |
| パラメータグループ数/リージョン | 100 |
| セキュリティグループ数/リージョン | 20 |
| サブネットグループ数/リージョン | 20 |
| イベントサブスクリプション数/リージョン | 20 |
| 同時接続数 | 500(デフォルト)、最大8,192 |
| クラスター数/リージョン | 200 |
AWS CLIのサンプルコード
CloudFormationのサンプルコード
Terraformのサンプルコード
料金計算
| 課金項目 | 説明 |
|---|---|
| ノード時間 | クラスターノードの稼働時間 |
| バックアップストレージ | 自動スナップショットの容量 |
| データ転送 | インターネットへのデータ転送量 |
| Redshift Spectrum | スキャンしたデータ量(TB単位) |
| Concurrency Scaling | 同時実行スケーリングの使用時間 |