Проблема изменения размера кластера Redshift с помощью AWS CLI - PullRequest
0 голосов
/ 05 июля 2018

Хотя, я уже решил эту проблему; но делюсь своим опытом здесь, чтобы, если кто-то застрял, это могло бы помочь вам.

Исходя из нашего варианта использования, мы периодически изменяли размер нашего кластера AWS Redshift с помощью интерфейса командной строки, предоставляемого AWS.

Мы использовали следующий скрипт:

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.

Я попытался выполнить поиск с помощью сообщения об ошибке в Google, но не смог разобрать много информации. Я проверил, правильно ли ключи AWS развернуты на моем компьютере, на котором я запускаю сценарии.

В чем здесь проблема и почему это происходит?

1 Ответ

0 голосов
/ 05 июля 2018

Я связался со службой поддержки AWS. Он придумал следующее решение

Причина, по которой я получаю сообщение об ошибке, заключается в том, что платформа redshift пытается выполнить описывающий вызов VPC от имени моей учетной записи, она получает несанкционированное исключение, которое платформа Redshift проглатывает и поднимает из строя Internal Failure.

Мне пришлось добавить новую политику IAM для пользователя IAM, который я использовал для изменения размера вашего кластера Redshift.

{
    "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"
                }
            }
        }
    ]
}
...