Amazon Redshift で Elastic resize した後、バックグラウンドでノードスライスにデータを再分配が完了するまではクエリの実行に時間がかかる可能性がある。
2. このオペレーションはクラスターのメタデータを移行します。クラスターは数分間使用できません。クエリの大部分は一時的に停止され、接続は開いた状態になります。ただし、一部のクエリは削除される可能性があります。この段階は短い。
クラスターのサイズ変更 - Amazon Redshift
3. セッション接続が回復し、クエリが再開します。
4. 伸縮自在なサイズ変更は、バックグラウンドでノードスライスにデータを再分配します。クラスターは読み取りと書き込み操作に利用できますが、一部のクエリは実行に時間がかかる可能性があります。
5. 操作が完了すると、Amazon Redshift はイベント通知を送信します。
Amazon Redshift では、クラスターのスライスからノードへのマッピングが変更されると、Elastic リサイズの実行時にスライスのシャッフルが発生します。Amazon Redshift はデータをスライス全体に均等に分散して並列処理するため、ノードを追加または削除するとスライスが再分散されます。この再分散では、新しいスライス間でデータが分散され、効率的なパフォーマンスが維持されます。Elastic リサイズの実行にかかる時間は、クラスターのサイズ、データ量、およびワークロードアクティビティによって異なります。
Amazon Redshift での Elastic リサイズに関するトラブルシューティング | AWS re:Post
リサイズが完了すると、以下の AWS CLI コマンドを実行結果で Status が "SUCCEEDED" になる(リサイズ中は "IN_PROGRESS")。
aws redshift describe-resize --cluster-identifier mycluster
Amazon Redshift プロビジョニングされたクラスターのイベント通知 - Amazon Redshift
Amazon Redshift category Event ID Event severity Description Monitoring REDSHIFT-EVENT-3537 INFO Cluster '[cluster name]' data transfer completed at [time in UTC].
実行例
- Elasitc resize でクラスターのノード数を変更する。
% aws redshift resize-cluster \ --cluster-identifier redshift-cluster-poc-central \ --cluster-type multi-node \ --node-type ra3.4xlarge \ --number-of-nodes 4 \ --no-classic
- リサイズの状態を確認する
% while true do date -Iseconds aws redshift describe-resize --cluster-identifier redshift-cluster-poc-central sleep 30s done 2025-06-11T05:27:37+09:00 { "TargetNodeType": "ra3.4xlarge", "TargetNumberOfNodes": 4, "TargetClusterType": "multi-node", "Status": "IN_PROGRESS", <-- 変更中は "IN_PROGRESS" になる "ResizeType": "ElasticResize", "TargetEncryptionType": "NONE" } ... 2025-06-11T05:34:59+09:00 { "TargetNodeType": "ra3.4xlarge", "TargetNumberOfNodes": 4, "TargetClusterType": "multi-node", "Status": "SUCCEEDED", <-- 完了すると "SUCCEEDED" になる "ResizeType": "ElasticResize", "Message": "Elastic resize completed successfully.", "TargetEncryptionType": "NONE" }
- マネジメントコンソール([Amazon Redshift] - [Event])のイベントには完了すると REDSHIFT-EVENT-3537 が出力される。
- STV_UNDERREPPED_BLOCKS
export PGPASSWORD="hoge" while true do date -Iseconds aws redshift describe-resize --cluster-identifier redshift-cluster-trailing psql -h alter-add-column-lab.********.ap-northeast-1.redshift.amazonaws.com -p 5439 -d dev -U awsuser -c "SELECT COUNT(1) FROM STV_UNDERREPPED_BLOCKS;" sleep 10s done -- count が 0 になれば OK count --------- 0