[Redshift] 伸縮自在なサイズ変更機能を利用して移行可能なクラスター構成を確認する方法

2024.03.26

困っていた内容

伸縮自在なサイズ変更機能を利用して、ノードタイプ "dc2.large" ノード数 4 のクラスター構成からノードタイプ "dc2.large" ノード数 8 のクラスター構成へは変更することができたのですが、同じノードタイプでより多くのノードを利用するクラスター構成へは移行することができませんでした。

現在利用しているクラスター構成から、伸縮自在なサイズ変更機能を利用して移行が可能なクラスター構成の一覧を取得する方法があれば教えてください。 

結論

オプション --action-type resize-cluster を指定した AWS CLI コマンド describe-node-configuration-options を実行することで、現在のクラスター構成から伸縮自在なサイズ変更機能を利用して移行可能なクラスター構成を確認することができます。

Amazon Redshift でのクラスターのサイズ変更

ソース vs ターゲットクラスターサイズ - 伸縮自在なサイズ変更によってサイズ変更可能なノード数と種類は、ソースクラスターのノード数と、サイズ変更したクラスター用に選択されたノードタイプによって決まります。使用可能な設定を確認するには、コンソールを使用します。また、action-type resize-cluster オプションで describe-node-configuration-options AWS CLI コマンドを使用することもできます。

なお、伸縮自在なサイズ変更機能を利用してクラスター構成を変更する場合、現在のクラスター構成になる前のノードタイプ、ノード数等により、移行可能なクラスター構成が異なります。

Amazon Redshift でのクラスターのサイズ変更

拡大と縮小の制限は、元のノードタイプ、元のクラスター内のノード数、または最後に行った従来のサイズ変更に基づいて決まります。伸縮自在なサイズ変更が拡大または縮小の制限を超える場合は、従来のサイズ変更を使用してください。

やってみた

移行可能なクラスター構成を確認してみた(1回目)

あらかじめ AWS マネジメントコンソールで作成しておいた、ノードタイプ "dc2.large" ノード数 2 の Redshift クラスター(redshift-cluster-1)に対して、伸縮自在なサイズ変更機能を利用して移行可能なクラスター構成を、AWS CLI コマンド describe-node-configuration-options で確認してみます。

$ aws redshift describe-node-configuration-options --cluster-identifier redshift-cluster-1 --action-type resize-cluster
{
    "NodeConfigurationOptionList": [
        {
            "NodeType": "ds2.xlarge",
            "NumberOfNodes": 2,
            "EstimatedDiskUtilizationPercent": 0.01
        },
        {
            "NodeType": "ds2.xlarge",
            "NumberOfNodes": 4,
            "EstimatedDiskUtilizationPercent": 0.01
        },
        {
            "NodeType": "ra3.4xlarge",
            "NumberOfNodes": 2,
            "EstimatedDiskUtilizationPercent": 0.01
        },
        {
            "NodeType": "ra3.4xlarge",
            "NumberOfNodes": 3,
            "EstimatedDiskUtilizationPercent": 0.01
        },
        {
            "NodeType": "ra3.4xlarge",
            "NumberOfNodes": 4,
            "EstimatedDiskUtilizationPercent": 0.01
        },
        {
            "NodeType": "ra3.xlplus",
            "NumberOfNodes": 1,
            "EstimatedDiskUtilizationPercent": 0.01
        },
        {
            "NodeType": "ra3.xlplus",
            "NumberOfNodes": 2,
            "EstimatedDiskUtilizationPercent": 0.01
        },
        {
            "NodeType": "ra3.xlplus",
            "NumberOfNodes": 4,
            "EstimatedDiskUtilizationPercent": 0.01
        },
        {
            "NodeType": "dc2.large",
            "NumberOfNodes": 4,
            "EstimatedDiskUtilizationPercent": 0.01
        }
    ]
}

移行先のノードタイプを "ra3.4xlarge" とする場合は、ノード数の選択肢が 2, 3, 4 と複数選べるようです。 ノードタイプを変更せずにそのまま "dc2.large" を利用する場合は、ノード数 4 のみが選択可能でした。

伸縮自在なサイズ変更

コマンド実行結果より、ノードタイプ "dc2.large" ノード数 4 へのクラスター構成へのパスがあることを確認できたので、伸縮自在なサイズ変更機能でノードタイプ "dc2.large" ノード数 4 のクラスター構成へ変更してみます。

1. クラスターを選択した状態で "アクション" から "サイズ変更" を選択します

2. 伸縮自在なサイズ変更を選択します

3. ノードタイプ "dc2.large" ノード数 4 を選択してクラスターをサイズ変更ボタンを押下します

4. 伸縮自在なサイズ変更によりクラスター構成を変更中

5. ノード数が 2 から 4 へ変更されました

伸縮自在なサイズ変更機能を利用して、ノードタイプ "dc2.large" ノード数 4 のクラスター構成へ変更することができました。

移行可能なクラスター構成を確認してみた(2回目)

現在のクラスター構成から伸縮自在なサイズ変更機能を利用して、移行可能なクラスター構成を調べてみます。

$ aws redshift describe-node-configuration-options --cluster-identifier redshift-cluster-1 --action-type resize-cluster
{
    "NodeConfigurationOptionList": [
        {
            "NodeType": "ds2.xlarge",
            "NumberOfNodes": 2,
            "EstimatedDiskUtilizationPercent": 0.01
        },
        {
            "NodeType": "ds2.xlarge",
            "NumberOfNodes": 4,
            "EstimatedDiskUtilizationPercent": 0.01
        },
        {
            "NodeType": "ra3.4xlarge",
            "NumberOfNodes": 2,
            "EstimatedDiskUtilizationPercent": 0.01
        },
        {
            "NodeType": "ra3.4xlarge",
            "NumberOfNodes": 3,
            "EstimatedDiskUtilizationPercent": 0.01
        },
        {
            "NodeType": "ra3.4xlarge",
            "NumberOfNodes": 4,
            "EstimatedDiskUtilizationPercent": 0.01
        },
        {
            "NodeType": "ra3.xlplus",
            "NumberOfNodes": 1,
            "EstimatedDiskUtilizationPercent": 0.01
        },
        {
            "NodeType": "ra3.xlplus",
            "NumberOfNodes": 2,
            "EstimatedDiskUtilizationPercent": 0.01
        },
        {
            "NodeType": "ra3.xlplus",
            "NumberOfNodes": 4,
            "EstimatedDiskUtilizationPercent": 0.01
        },
        {
            "NodeType": "dc2.large",
            "NumberOfNodes": 2,
            "EstimatedDiskUtilizationPercent": 0.01
        }
    ]
}

1 回目のコマンド実行結果と比較して、"NodeType": "dc2.large" のノード数が 2 に変化しただけなので、本 AWS CLI コマンドを実行することにより、現在のクラスター構成を除いた移行可能な全てのクラスター構成を取得できそうです。

おまけ

ノードタイプ "dc2.large" ノード数 4 で作成した Redshift クラスター(redshift-cluster-2)が移行可能なクラスター構成についても確認してみます。

$ aws redshift describe-node-configuration-options --cluster-identifier redshift-cluster-2 --action-type resize-cluster
{
    "NodeConfigurationOptionList": [
        {
            "NodeType": "ds2.xlarge",
            "NumberOfNodes": 2,
            "EstimatedDiskUtilizationPercent": 0.01
        },
        {
            "NodeType": "ds2.xlarge",
            "NumberOfNodes": 4,
            "EstimatedDiskUtilizationPercent": 0.01
        },
        {
            "NodeType": "ds2.xlarge",
            "NumberOfNodes": 8,
            "EstimatedDiskUtilizationPercent": 0.01
        },
        {
            "NodeType": "ra3.16xlarge",
            "NumberOfNodes": 2,
            "EstimatedDiskUtilizationPercent": 0.01
        },
        {
            "NodeType": "ra3.4xlarge",
            "NumberOfNodes": 2,
            "EstimatedDiskUtilizationPercent": 0.01
        },
        {
            "NodeType": "ra3.4xlarge",
            "NumberOfNodes": 3,
            "EstimatedDiskUtilizationPercent": 0.01
        },
        {
            "NodeType": "ra3.4xlarge",
            "NumberOfNodes": 4,
            "EstimatedDiskUtilizationPercent": 0.01
        },
        {
            "NodeType": "ra3.4xlarge",
            "NumberOfNodes": 5,
            "EstimatedDiskUtilizationPercent": 0.01
        },
        {
            "NodeType": "ra3.4xlarge",
            "NumberOfNodes": 6,
            "EstimatedDiskUtilizationPercent": 0.01
        },
        {
            "NodeType": "ra3.4xlarge",
            "NumberOfNodes": 7,
            "EstimatedDiskUtilizationPercent": 0.01
        },
        {
            "NodeType": "ra3.4xlarge",
            "NumberOfNodes": 8,
            "EstimatedDiskUtilizationPercent": 0.01
        },
        {
            "NodeType": "ra3.xlplus",
            "NumberOfNodes": 1,
            "EstimatedDiskUtilizationPercent": 0.01
        },
        {
            "NodeType": "ra3.xlplus",
            "NumberOfNodes": 2,
            "EstimatedDiskUtilizationPercent": 0.01
        },
        {
            "NodeType": "ra3.xlplus",
            "NumberOfNodes": 4,
            "EstimatedDiskUtilizationPercent": 0.01
        },
        {
            "NodeType": "ra3.xlplus",
            "NumberOfNodes": 8,
            "EstimatedDiskUtilizationPercent": 0.01
        },
        {
            "NodeType": "dc2.large",
            "NumberOfNodes": 2,
            "EstimatedDiskUtilizationPercent": 0.01
        },
        {
            "NodeType": "dc2.large",
            "NumberOfNodes": 8,
            "EstimatedDiskUtilizationPercent": 0.01
        }
    ]
}

ノードタイプ "dc2.large" ノード数 4 でクラスターを作成した場合は、伸縮自在なサイズ変更機能を利用してノードタイプ "dc2.large" ノード数 8 のクラスターへ移行できることが確認できました。お問い合わせいただいたクラスターは、"dc2.large" ノード数 4 で作成された可能性が高そうです。

まとめ

希望とするクラスター構成が伸縮自在なサイズ変更機能を利用して実現できない場合は、従来のサイズ変更機能を利用したクラスター変更をご検討ください。

Amazon Redshift でのクラスターのサイズ変更

従来のサイズ変更 - ノードタイプ、ノード数、またはその両方を、伸縮自在なサイズ変更と同様に変更できます。従来のサイズ変更は完了するまでに時間がかかりますが、ノード数の変更または移行先のノードタイプが、伸縮自在なサイズ変更の範囲内に収まらない場合は便利です。

この記事がどなたかのお役に立てば幸いです。

参考資料