Amazon Redshift の伸縮自在なサイズ変更の仕組みを教えてください。
Amazon Redshift クラスターで伸縮自在なサイズ変更を実行したいと考えています。伸縮自在なサイズ変更の仕組みと、それを使用する際の考慮事項を教えてください。
簡単な説明
Amazon Redshift を使用すると、クラスターのサイズ変更中に特定の数のノードに移行できます。デフォルトでは、Amazon Redshift はターゲットクラスターで同じ数のデータスライスを維持することを目指しています。スライスマッピングにより、クラスターのサイズ変更に必要な時間が短縮されます。スライスマッピングプロセス中に、Amazon Redshift はクラスターデータスライスをターゲットクラスターの新しいコンピューティングノードに再シャッフルします。
従来のサイズ変更では、すべての行がクラスターにコピーされ、分散設定に基づいてスライスにマッピングされます。伸縮自在なサイズ変更では、データのスライス全体をスライスがマッピングされているノードにコピーできます。
Amazon Redshift クラスターで伸縮自在なサイズ変更を実行する予定の場合は、次の点を考慮してください。
- 伸縮自在なサイズ変更では、テーブルを並べ替えたり、ディスク領域を再利用したりしません。VACUUM を実行して、テーブルをソートし、ディスク領域を再利用します。
- 伸縮自在なサイズ変更は、EC2-VPC プラットフォームを使用する Amazon Redshift クラスターでのみ使用できます。
- 伸縮自在なサイズ変更は、従来のサイズ変更よりも完了までにかかる時間が短くなることがよくあります。比較するために、従来のサイズ変更オペレーションでは、ソースクラスターからデータをコピーしながら、新しいクラスターをプロビジョニングします。従来のサイズ変更オペレーションでは、まず、配布スタイルに従って新しいノードにデータを配布します。その後、ANALYZE コマンドを実行してテーブル統計を更新します。つまり、Amazon Redshift クラスターでの従来のサイズ変更オペレーションは、伸縮自在なサイズ変更オペレーションよりも完了までに時間がかかります。
解決方法
伸縮自在なサイズ変更の仕組み
Amazon Redshift では、伸縮自在なサイズ変更は、ターゲットノードタイプによって機能の仕方が異なることがあります。ターゲットノードタイプが、ソースノードタイプと同じかどうかを確認します。
ノードタイプを確認するには、Amazon Redshift コンソールにサインインします。ナビゲーションメニューから [Clusters] (クラスター) を選択します。[Clusters] (クラスター) ページには、各クラスター名の下にノードタイプが表示されます。または、describe-clusters AWS コマンドラインインターフェイス (AWS CLI) コマンドを使用して、次のように、Amazon Redshift クラスターに関する詳細情報を取得することもできます。
aws redshift describe-clusters --region <Cluster Region>
例 1: ターゲットノードタイプが既存のノードタイプと同じ
Amazon Redshift は、伸縮自在なサイズ変更 (ノードタイプを変更せずにノードを追加または削除する) を使用してクラスターのサイズを変更すると、自動的にデータを新しいノードに再配布します。
(新しいクラスターをプロビジョニングしてデータを転送する) 従来のサイズ変更とは異なり、伸縮自在なサイズ変更では新しいクラスターは作成されません。通常、伸縮自在なサイズ変更は、数分で完了します。伸縮自在なサイズ変更によってバックグラウンドでのデータの再配布が完了する一方で、クエリのランタイムがわずかに増加することが予想されます。
注: メタデータの移行中、Amazon Redshift クラスターは数分間一時的に利用できなくなります。Amazon Redshift の伸縮自在なサイズ変更プロセスの詳細については、「伸縮自在なサイズ変更」を参照してください。
例 2:ターゲットノードタイプが既存のノードタイプと異なる
ノードタイプが変更された場合、Amazon Redshift は最初にスナップショットを作成します。次に、スナップショットの最新データを使用して新しいターゲットクラスターがプロビジョニングされ、データがバックグラウンドで新しいクラスターに転送されます。データ転送中、Amazon Redshift クラスターは読み取り専用モードで動作し、すべての書き込みがブロックされます。サイズ変更が完了に近づくと、Amazon Redshift は既存のクラスターのエンドポイントと一致するように新しいクラスターのエンドポイントを自動的に更新します。その後、元のクラスターへのすべての接続が閉じられます。
DC2 および DS2 ノード数の制限
Amazon Redshift クラスターで伸縮自在なサイズ変更を実行する場合は、DC2 および DS2 ノードタイプについて次の制限に注意してください。
- dc2.large または ds2.xlarge ノードタイプでは、現在のノード数の半分または 2 倍を使用します。例えば、6 ノードを持つクラスターは、12 ノードまたは 3 ノードのいずれかにサイズ変更できます。
- dc2.8xlarge、ds2.8xlarge、または ra3.xlplus ノードタイプの場合は、ノード数の半分または最大で 2 倍にします。例えば、6 つのノードを持つクラスターは、3、4、5、7、8、9、10、11、12 ノードのサイズに変更できます。
- ra3.16xlarge または ra3.4xlarge ノードタイプの場合は、4 分の 1 または現在のノード数の最大 4 倍を使用してください。例えば、8 つのノードで構成される ra3 クラスターは、最大 32 ノードまで 2、3、4、5、6、7、9 にサイズ変更できます。
伸縮自在なサイズ変更のベストプラクティス
Amazon Redshift クラスターで伸縮自在なサイズ変更を実行する際は、以下のベストプラクティスを考慮してください。
- 特に新しいクラスターのサイズを変更する場合は、伸縮自在なサイズ変更プロセスを開始する前に、自動スナップショットをアクティブにするか、手動でスナップショットを撮ってください。デフォルトでは、クラスターを削除した後でも、手動で作成したスナップショットは無期限に保持されます。ただし、自動スナップショットは Amazon Redshift によって定期的に取得され、保持期間の終了時に削除されます。
- describe-node-configuration-options AWS CLI コマンドを使用して、サイズ変更オペレーションで可能なノード設定を取得します。
注意: AWS CLI コマンドの実行時にエラーが発生した場合は、CLI の最新バージョンを使用していることを確認してください。 - サイズを変更する前にクラスターを VACUUM します。伸縮自在なサイズ変更では、削除対象としてマークされた行は自動的には削除されません。
- resize-cluster コマンドを使用すして、すべてのノード設定の変更を簡単に指定できます。Amazon Redshift コンソールを使用してクラスターのサイズを変更することもできます。
describe-node-configuration-options コマンドの使用例を次に示します。
aws redshift describe-node-configuration-options --action-type resize-cluster --cluster-identifier <Cluster Name> --region <Cluster Region>
resize-cluster コマンドの使用例を次に示します。
aws redshift resize-cluster --cluster-identifier <Cluster Name> --cluster-type multi-node --node-type <Target Node Type> --number-of-nodes <Number of Target Nodes> --no-classic —region <Cluster Region>
その他の考慮事項
Amazon Redshift クラスターで伸縮自在なサイズ変更を実行する際は、次の追加の考慮事項を確認してください。
- 伸縮自在なサイズ変更を行うには、クラスタースナップショットが必要です。スナップショットは、コンソールまたは Amazon Redshift CLI および API を使用して管理できます。
**注意:**AWS CLI コマンドの実行時にエラーが発生した場合は、必ず最新バージョンの CLI を使用してください。 - Amazon Redshift で伸縮自在なサイズ変更操作を開始した後は、操作を取り消すことはできません。サイズ変更操作が完了するまで待ってから、別のサイズ変更操作またはクラスターの再起動を実行します。
- 新しいノード設定には、既存のデータ用に十分なストレージが必要です。ノードを追加しても、データの再配布方法により、新しい設定に十分なストレージがない可能性があります。ストレージ容量の詳細については、「Amazon Redshift クラスターのテーブルが想定と異なるディスクストレージを消費していますが、なぜですか?」を参照してください。
- Amazon Redshift クラスターで伸縮自在なサイズ変更を実行すると、データスライスの不均等な分布からノード間でデータに歪みが生じることがあります。Amazon Redshift クラスターでデータの歪みが見られる場合は、代わりに従来のサイズ変更を実行します。
- 従来のサイズ変更がお客様のユースケースに最適なオプションである場合は、Amazon Redshift クラスターで従来のサイズ変更を実行します。例えば、1 つのノードクラスターにサイズ変更する場合は、従来のサイズ変更を実行できます。伸縮自在なサイズ変更では、元の設定のスライス数を維持することで、クラスターにノードを追加したり、クラスターからノードを削除したりできます。ただし、パフォーマンスにばらつきが生じる可能性があります。ノードスライスをターゲットノードタイプのスライス数に一致させるには、従来のサイズ変更を利用します。詳細については、「Resizing clusters in Amazon Redshift」(Amazon Redshift でのクラスターのサイズ変更) を参照してください。
- 伸縮自在なサイズ変更が開始され、スナップショット操作が進行中のときに、スナップショットが数分以内に完了しないとサイズ変更が失敗する可能性があります。
- 伸縮自在なサイズ変更は、単一ノードクラスターからのサイズ変更や単一ノードクラスターへのサイズ変更には使用できません。
- DS2 リザーブドノードなどのリザーブドノードの場合、サイズ変更を実行すると RA3 リザーブドノードにアップグレードできます。伸縮自在なサイズ変更を実行するときにノードをアップグレードすることも、コンソールを使用してスナップショットから復元することもできます。
関連情報
Resizing clusters in Amazon Redshift (Amazon Redshift でのクラスターのサイズ変更)
Amazon Redshift クラスターのサイズ変更はどのように行いますか?
Amazon Redshift クラスターを数分でスケールアップ/スケールダウンし、必要なときに必要なパフォーマンスを得る
関連するコンテンツ
- 質問済み 2年前lg...
- AWS公式更新しました 2年前
- AWS公式更新しました 1年前
- AWS公式更新しました 2年前
- AWS公式更新しました 2年前