首页 > 解决方案 > 使用 AWS CLI 调整 Redshift 集群大小的问题

问题描述

虽然,我已经解决了这个问题;但是在这里分享我的经验,以便如果有人被卡住,这可能对您有所帮助。

根据我们的用例,我们过去常常使用 AWS 提供的 CLI 定期调整 AWS Redshift 集群的大小。

我们曾经使用以下脚本:

aws redshift modify-cluster  --region=eu-west-1 --cluster-identifier test-cluster --node-type dc1.large --number-of-nodes 2

它抛出以下错误:

An error occurred (InternalFailure) when calling the ModifyCluster operation (reached max retries: 4): An internal error has occurred. Please try your query again at a later time.

我尝试使用谷歌上的错误消息进行搜索,但无法找到太多信息。我已检查 AWS 密钥是否正确部署在我运行脚本的机器上。

这里有什么问题,为什么会发生?

标签: amazon-web-servicesamazon-redshiftaws-cli

解决方案


我与 AWS 支持团队取得了联系。它提出了以下解决方案

我收到错误的原因是当 Redshift 平台试图代表我的账户进行描述 VPC 调用时,它得到了一个未经授权的异常,Redshift 平台正在吞下并冒泡内部故障。

我必须向我用来调整 Redshift 集群大小的 IAM 用户添加新的 IAM 策略。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Action": [
                "redshift:*",
                "ec2:DescribeAccountAttributes",
                "ec2:DescribeAddresses",
                "ec2:DescribeAvailabilityZones",
                "ec2:DescribeSecurityGroups",
                "ec2:DescribeSubnets",
                "ec2:DescribeVpcs",
                "ec2:DescribeInternetGateways",
                "sns:CreateTopic",
                "sns:Get*",
                "sns:List*",
                "cloudwatch:Describe*",
                "cloudwatch:Get*",
                "cloudwatch:List*",
                "cloudwatch:PutMetricAlarm",
                "cloudwatch:EnableAlarmActions",
                "cloudwatch:DisableAlarmActions"
            ],
            "Effect": "Allow",
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": "iam:CreateServiceLinkedRole",
            "Resource": "arn:aws:iam::*:role/aws-service-role/redshift.amazonaws.com/AWSServiceRoleForRedshift",
            "Condition": {
                "StringLike": {
                    "iam:AWSServiceName": "redshift.amazonaws.com"
                }
            }
        }
    ]
}

推荐阅读