メニュー
Amazon Redshift
管理ガイド (API Version 2012-12-01)

チュートリアル: Amazon Redshift クラスターのサイズ変更

概要

データウェアハウスの容量やパフォーマンスのニーズを変更または拡大する場合、Amazon Redshift の提供するコンピューティングおよびストレージオプションを最大限に利用するためにクラスターのサイズを変更することができます。ノードの数を変更することで、クラスターをスケールインまたはスケールアウトできます。また、別のノードタイプを指定してクラスターを拡大または縮小することもできます。次のいずれかの方法で、クラスターのサイズを変更できます。

  • 既存のクラスターにサイズ変更オペレーションを使用します。

  • スナップショットおよび復元オペレーションを使用して、既存のクラスターのコピーを作成します。次に、新しいクラスターのサイズを変更します。

サイズを変更する方法でも、スナップショットと復元を使用する方法でも、新しいクラスターにはユーザーのテーブルとデータをコピーします。システムテーブルおよびデータは使用されません。ソースクラスターで監査ログを有効にしていた場合、ソースクラスターを削除した後でも Amazon Simple Storage Service (Amazon S3) のログに引き続きアクセスできます。これらのログは、指定したデータポリシーに応じて保持または削除することができます。

サイズ変更オペレーションの概要

サイズ変更オペレーションは、クラスターサイズの変更方法として推奨される最もシンプルな方法です。サイズ変更オペレーションでは、データはコンピューティングノードまたはソースクラスターのノードから、コンピューティングノードまたはターゲットクラスターのノードに並列コピーされます。これに要する時間は、小さい方のクラスターにあるデータの量とノードの数によって異なります。数時間で終わることもあれば、2~3 日かかる可能性もあります。

サイズ変更オペレーションを開始すると、Amazon Redshift はサイズ変更が完了するまで、既存のクラスターを読み取り専用モードにします。この間、実行できるのはデータベースから読み込むクエリのみで、データベースへの書き込みおよび読み取り/書き込みクエリは実行できません。詳細については、Amazon Redshift Database Developer Guide の「Write and read-write operations」を参照してください。

注記

本番稼働環境への影響を最小限に抑えてサイズ変更する必要がある場合、次のセクション「スナップショット、復元、およびサイズ変更オペレーションの概要」の説明に従って、クラスターのコピーを作成し、コピーのサイズを変更してサイズ変更を完了してから、接続のエンドポイントをサイズ変更したクラスターに切り替えます。

Amazon Redshift はソースクラスターを読み込み専用モードにした後で、ノードタイプ、クラスタータイプ、ノード数に指定された情報を使用して、新しいクラスター、すなわちターゲットクラスターをプロビジョニングします。次に、Amazon Redshift はソースクラスターからターゲットクラスターにデータをコピーします。これが完了すると、すべての接続がターゲットクラスターを使用するように切り替わります。この切り替え時点で処理中のクエリがある場合、接続が失われるため、ターゲットクラスターでクエリを再起動する必要があります。サイズ変更の進捗は、Amazon Redshift consoleのクラスターの [Status] タブで確認することができます。

Amazon Redshift はサイズ変更オペレーション中にテーブルをソートしないため、既存のソート順序が維持されます。クラスターのサイズを変更すると、Amazon Redshift は分散スタイルに基づいてデータベーステーブルを新しいノードに分散し、ANALYZE コマンドを実行して統計を更新します。削除対象としてマークされた行は転送されないため、テーブルの再ソートが必要な場合のみ VACUUM コマンドを実行する必要があります。詳細については、Amazon Redshift Database Developer Guide の「テーブルのバキューム処理」を参照してください。

サイズ変更オペレーションを使用した Amazon Redshift クラスターのサイズ変更手順の説明は、「チュートリアル: サイズ変更オペレーションを使用したクラスターのサイズ変更」を参照してください。

スナップショット、復元、およびサイズ変更オペレーションの概要

前のセクションで説明したとおり、サイズ変更オペレーションを使用したクラスターのサイズ変更にかかる時間は、クラスターのデータ量に大きく左右されます。サイズ変更中はデータベースの書き込みまたは読み取り/書き込み操作を実行できないため、サイズ変更オペレーションを使用するか、クラスターが読み取り専用モードになる時間を短縮する別の方法を使用するかを判断する必要があります。

Amazon Redshift クラスターにほぼ恒常的な書き込みアクセスが必要な場合、スナップショットと復元操作を使用できます。これについては、次のセクションで説明します。この方法では、スナップショットが作成された後でソースクラスターに書き込まれたデータは、ターゲットクラスターに切り替えた後、手動でコピーする必要があります。コピーにかかる時間によっては、両方のクラスター内のデータが同じになり、ターゲットクラスターに切り替えられるようになるまでに、これを数回繰り返さなければならない場合もあります。このプロセスは、ターゲットクラスターのすべてのデータが使用可能になるまでに、既存のクエリに悪影響を及ぼす可能性がありますが、データベースへの書き込みができない時間は最短になります。

スナップショットと復元によるサイズ変更方法には、次のプロセスを使用します。

  1. 既存のクラスターのスナップショットを作成します。既存のクラスターがソースクラスターです。

  2. スナップショットを作成した時刻を記録して、スナップショット後のデータをターゲットデータベースにロードするための抽出、処理、ロード (ETL) プロセスを再実行する必要がある時点を識別できるようにします。

  3. 新しいクラスターにスナップショットを復元します。この新しいクラスターがターゲットクラスターです。サンプルデータがターゲットクラスターにあることを確認します。

  4. ターゲットクラスターのサイズを変更します。ターゲットクラスターに関して、新しいノードタイプ、ノード数、その他の設定を選択します。

  5. ソースクラスターのスナップショット作成後に発生した ETL プロセスでロードされたデータを確認します。ターゲットクラスターには、同じデータを同じ順序で再ロードする必要があります。進行中のデータロードがある場合、ソースクラスターとターゲットクラスターのデータが同じになるまで、このプロセスを数回繰り返す必要があります。

  6. ソースクラスターで実行中のすべてのクエリを停止します。これを行うには、クラスターを再起動するか、スーパーユーザーとしてログインし、PG_CANCEL_BACKEND および PG_TERMINATE_BACKEND コマンドを使用できます。クラスターを再起動すると、クラスターが使用できないことを最も簡単に確認できます。

  7. ソースクラスター名を変更します。たとえば、examplecluster から examplecluster-source に変更します。

  8. 変更前のソースクラスター名を使用して、ターゲットクラスターの名前を変更します。たとえば、ターゲットクラスターの名前を examplecluster に変更します。これ以降、examplecluster を含むエンドポイントを使用するアプリケーションは、すべてターゲットクラスターに接続します。

  9. ターゲットクラスターに切り替えた後、ソースクラスターを削除し、すべてのプロセスが期待どおりに動作することを確認します。

また、ターゲットクラスター用の依存システムとレポートをすぐに最新状態にする必要がない場合は、ターゲットクラスターにデータを再ロードする前にソースクラスターとターゲットクラスターの名前を変更することができます。この場合、前述のステップ 6 はプロセスの最後に移動されます。

名前変更プロセスは、アプリケーションが引き続き同じエンドポイントを使用してクラスターに接続する必要がある場合にのみ必要になります。これが必要ない場合は、クラスターの名前を変更する代わりに、そのクラスターに接続するアプリケーションを、ターゲットクラスターのエンドポイントを使用するように更新することもできます。

クラスター名を再利用するのには、いくつかの利点があります。最初に、エンドポイントが変わらないため、基盤となるクラスターを変更しても、アプリケーションの接続文字列を更新する必要がありません。次に、Amazon CloudWatch アラームや Amazon Simple Notification Service (Amazon SNS) 通知のような関連アイテムはクラスター名に関連付けられているため、そのクラスターにセットアップした同じアラームと通知を継続して使用することができます。この継続的な使用は、アラームや通知などの関連項目を再設定することなく、柔軟にクラスターのサイズを変更できる必要がある本番環境では特に重要です。

スナップショット、復元、サイズ変更を使用した Amazon Redshift クラスターのサイズ変更プロセスの手順については、「チュートリアル: スナップショット、復元、サイズ変更オペレーションを使用したクラスターのサイズ変更」を参照してください。