Невозможно подключиться к Amazon Redshift Serverless из Python — время ожидания соединения

Я пытаюсь подключиться к своему бессерверному экземпляру Amazon Redshift из Python с помощью пакета redshift_connector, но постоянно сталкиваюсь с ошибкой времени ожидания соединения.

Вот как я пытаюсь подключиться:


host = "redshift-host"
database = "dev"
port=5439
user = "admin"
password = "the-admin-password"
serverless_acct_id = "my_serverless_account_id"
serverless_work_group = "my_workgroup_name"

# Option 1

conn = redshift_connector.connect(

    iam=True,
    host=host,
    database=database,
    access_key_id = "AWS_ACCESS_KEY_ID",
    secret_access_key = "AWS_SECRET_ACCESS_KEY",
    session_token = "AWS_SESSION_TOKEN",
    region = "eu-north-1",
    is_serverless=True,
    serverless_acct_id=serverless_acct_id,
    serverless_work_group=serverless_work_group
)

# Option 2

conn = redshift_connector.connect(
    host=host,
    database=database,
    port=port,
    user=user,
    password=password,
)

Оба из них терпят неудачу: raise OperationalError("connection time out", timeout_error) redshift_connector.error.OperationalError: ('connection time out', TimeoutError(60, 'Operation timed out'))

Вот подробности моей настройки и того, что я пробовал до сих пор:

Что я проверил:

  • Публичная доступность: подтверждено, что бессерверная конечная точка Redshift общедоступна.
  • Группы безопасности: Гарантировано, что группа безопасности разрешает входящий трафик через порт 5439 с адреса 0.0.0.0/0.
  • Сетевые списки управления доступом: проверено, что сетевые списки управления доступом для подсети не блокируют входящий или исходящий трафик через порт 5439.
  • Таблица маршрутов: проверено, что таблица маршрутов подсети включает маршрут к интернет-шлюзу (0.0.0.0/0 -> igw-XXXXXXXX). Локальный брандмауэр: нет правил брандмауэра, блокирующих исходящий трафик на порту 5439.

Мне кажется, что все должно быть настроено правильно и я смогу подключиться. Однако я все еще получаю ошибку тайм-аута. Что я делаю не так?

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

Обновление:
Я попытался подключиться к БД DBeaver, используя соединение JDBC, что также не удалось с ошибкой: Connection attempt timed out.
Мне кажется, что что-то в настройке сети не позволяет входящие соединения...

🤔 А знаете ли вы, что...
Python используется в разработке мобильных приложений с использованием Kivy.


1
71
1

Ответ:

Решено

Мне удалось подключиться! Бессерверное рабочее пространство Redshift было подключено к нескольким подсетям, причем некоторые из них были частными. При выборе только общедоступных подсетей мне удалось подключиться.