Перейти к основному содержимому

Настройка AWS PrivateLink для Redshift

Доступно только для определённых уровней Enterprise

Функция PrivateLink доступна на следующих уровнях dbt Cloud Enterprise:

  • Business Critical
  • Virtual Private

Чтобы узнать больше об этих уровнях, свяжитесь с нами по адресу sales@getdbt.com.

AWS предоставляет два различных способа создания VPC-эндпоинта PrivateLink для кластера Redshift, работающего в другой VPC:

dbt Cloud поддерживает оба типа эндпоинтов, но при выборе типа эндпоинта необходимо учитывать ряд факторов. Управляемые Redshift обеспечивают гораздо более простую настройку без дополнительных затрат, что может сделать их предпочтительным вариантом для многих, но они могут быть недоступны во всех средах. Основываясь на этих критериях, вам нужно определить, какой тип подходит для вашей системы. Следуйте инструкциям из раздела ниже, который соответствует выбранному вами типу эндпоинта.

Конечные точки PrivateLink не могут подключаться между различными облачными провайдерами. Для того чтобы соединение PrivateLink работало, как dbt Cloud, так и сервер (например, Redshift) должны быть размещены у одного и того же облачного провайдера. Например, dbt Cloud, размещенный на AWS, не может подключаться через PrivateLink к сервисам, размещенным на Azure, и dbt Cloud, размещенный на Azure, не может подключаться через PrivateLink к сервисам, размещенным на AWS.

Redshift Serverless

Хотя Redshift Serverless поддерживает управляемые Redshift VPC-эндпоинты, эта функциональность в настоящее время недоступна между учетными записями AWS. Из-за этого ограничения для подключения PrivateLink кластера Redshift Serverless из dbt Cloud необходимо использовать интерфейсный VPC-эндпоинт.

  1. На работающем кластере Redshift выберите вкладку Properties.
Вкладка свойств RedshiftВкладка свойств Redshift
  1. В разделе Granted accounts нажмите Grant access.
Предоставленные учетные записи RedshiftПредоставленные учетные записи Redshift
  1. Введите ID учетной записи AWS: 346425330055 - ПРИМЕЧАНИЕ: Этот ID учетной записи применяется только к средам dbt Cloud Multi-Tenant. Для ID учетных записей Virtual Private/Single-Tenant, пожалуйста, свяжитесь с поддержкой.

  2. Выберите Grant access to all VPCs —или— (опционально) свяжитесь с поддержкой для получения соответствующего регионального ID VPC, чтобы указать его в поле Grant access to specific VPCs.

Предоставление доступа RedshiftПредоставление доступа Redshift
  1. Добавьте необходимую информацию в следующий шаблон и отправьте ваш запрос в поддержку dbt:
Тема: Новый запрос на Multi-Tenant PrivateLink
- Тип: Управляемый Redshift
- Имя кластера Redshift:
- ID учетной записи AWS кластера Redshift:
- Регион AWS кластера Redshift (например, us-east-1, eu-west-2):
- Среда dbt Cloud multi-tenant (US, EMEA, AU):

dbt Labs будет работать от вашего имени для завершения настройки PrivateLink. Пожалуйста, выделите 3-5 рабочих дней на завершение этого процесса. Поддержка свяжется с вами, когда конечная точка будет доступна.

1. Подготовка ресурсов AWS

Создание интерфейсного VPC PrivateLink соединения требует создания нескольких ресурсов AWS в учетной записи, содержащей кластер Redshift:

  • Security Group — Если вы подключаетесь к существующему кластеру Redshift, это, вероятно, уже существует, однако вам может потребоваться добавить или изменить правила Security Group, чтобы принимать трафик от Network Load Balancer (NLB), созданного для этого Endpoint Service.

  • Target Group — Target Group будет прикреплена к NLB, чтобы указать, куда направлять запросы. Существуют различные типы целей для Target Groups NLB, но вы будете использовать тип IP-адреса.

    • Тип цели: IP

      • Стандартный Redshift

        • Используйте IP-адреса из Network Interfaces кластера Redshift, когда это возможно. Хотя IP-адреса, указанные в разделе Node IP addresses, будут работать, они также более подвержены изменениям.
        Тип цели: IP-адресТип цели: IP-адрес
        • Вероятно, будет только один сетевой интерфейс (NI) в начале, но если кластер перейдет в другую зону доступности (AZ), будет создан новый NI для этой AZ. IP NI из оригинальной AZ все еще будет работать, но новый IP NI также может быть добавлен в Target Group. Если добавляются дополнительные IP, обратите внимание, что NLB также должен добавить соответствующую AZ. После создания NI(ы) должны оставаться неизменными (это наше наблюдение из тестирования, но AWS официально это не документирует).
      • Redshift Serverless

        • Чтобы найти IP-адреса для экземпляра Redshift Serverless, найдите и скопируйте конечную точку (только URL, указанный перед портом) в разделе конфигурации Workgroup в консоли AWS для экземпляра.
        Конечная точка Redshift ServerlessКонечная точка Redshift Serverless
        • Из командной строки выполните команду nslookup <endpoint>, используя конечную точку, найденную на предыдущем шаге, и используйте связанные IP для Target Group.
    • Протокол Target Group: TCP

  • Network Load Balancer (NLB) — Требуется создание Listener, который прикрепляется к вновь созданной Target Group для порта 5439

    • Схема: Внутренняя
    • Тип IP-адреса: IPv4
    • Сетевое отображение: Выберите VPC, в которой развертываются VPC Endpoint Service и NLB, и выберите подсети как минимум из двух зон доступности.
    • Security Groups: Network Load Balancer (NLB), связанный с VPC Endpoint Service, должен либо не иметь связанной группы безопасности, либо группа безопасности должна иметь правило, позволяющее запросы от соответствующих частных CIDR dbt Cloud. Обратите внимание, что это отличается от статических публичных IP, указанных на странице dbt Cloud Доступ, регионы и IP-адреса. Поддержка dbt может предоставить правильные частные CIDR по запросу. Если необходимо, до того как вы сможете уточнить правило до меньшего CIDR, предоставленного dbt, разрешите подключение, временно добавив правило разрешения 10.0.0.0/8.
    • Listeners: Создайте один listener на каждую целевую группу, который сопоставляет соответствующий входящий порт с соответствующей целевой группой (подробности).
  • VPC Endpoint Service — Прикрепите к вновь созданному NLB.

Балансировка нагрузки между зонами

Мы настоятельно рекомендуем использовать балансировку нагрузки между зонами для вашего NLB или группы целевых ресурсов; некоторые соединения могут требовать этого. Балансировка нагрузки между зонами также может улучшить распределение маршрутизации и устойчивость соединений. Обратите внимание, что подключение между зонами может повлечь дополнительные расходы на передачу данных, хотя для запросов из dbt Cloud они должны быть минимальными.

2. Предоставление доступа учетной записи AWS dbt к VPC Endpoint Service

На подготовленном VPC Endpoint Service нажмите вкладку Allow principals. Нажмите Allow principals, чтобы предоставить доступ. Введите ARN корневого пользователя в соответствующей производственной учетной записи AWS и сохраните изменения.

  • Principal: arn:aws:iam::346425330055:role/MTPL_Admin
Введите ARNВведите ARN

3. Получение имени VPC Endpoint Service

После того как VPC Endpoint Service будет подготовлен, вы можете найти имя сервиса в консоли AWS, перейдя в VPCEndpoint Services и выбрав соответствующий сервис эндпоинта. Вы можете скопировать значение поля имени сервиса и включить его в ваше сообщение в поддержку dbt Cloud.

Получить значение поля имени сервисаПолучить значение поля имени сервиса

4. Добавьте необходимую информацию в шаблон ниже и отправьте ваш запрос в поддержку dbt:

Тема: Новый запрос на Multi-Tenant PrivateLink
- Тип: Интерфейсный Redshift
- Имя VPC Endpoint Service:
- Регион AWS кластера Redshift (например, us-east-1, eu-west-2):
- Среда dbt Cloud multi-tenant (US, EMEA, AU):

dbt Labs будет работать от вашего имени для завершения настройки PrivateLink. Пожалуйста, выделите 3-5 рабочих дней на завершение этого процесса. Поддержка свяжется с вами, когда конечная точка будет доступна.

Создание подключения в dbt Cloud

После того как поддержка dbt Cloud завершит настройку, вы можете начать создавать новые подключения, используя PrivateLink.

  1. Перейдите в настройкиСоздать новый проект → выберите Redshift
  2. Вы увидите две радиокнопки: Public и Private. Выберите Private.
  3. Выберите частный эндпоинт из выпадающего списка (это автоматически заполнит поле имени хоста/учетной записи).
  4. Настройте оставшиеся детали платформы данных.
  5. Проверьте ваше подключение и сохраните его.

Устранение неполадок

Если конечная точка PrivateLink была создана и настроена в dbt Cloud, но подключение все еще не работает, проверьте следующее в вашей сетевой конфигурации, чтобы убедиться, что запросы и ответы могут успешно маршрутизироваться между dbt Cloud и поддерживающим сервисом.

Конфигурация

Начните с конфигурации:

 1. Группа безопасности NLB
 2. Слушатель NLB и целевая группа
 3. Балансировка нагрузки между зонами
 4. Таблицы маршрутизации и ACL

Мониторинг

Чтобы помочь изолировать проблемы с подключением через соединение PrivateLink из dbt Cloud, есть несколько источников мониторинга, которые можно использовать для проверки активности запросов. Сначала запросы должны быть отправлены на конечную точку, чтобы увидеть что-либо в мониторинге. Свяжитесь с поддержкой dbt, чтобы узнать, когда проводилось тестирование подключения, или запросите новые попытки подключения. Используйте эти временные метки для корреляции с активностью в следующих источниках мониторинга.

 Мониторинг сервиса конечной точки VPC
 Мониторинг NLB
 Логи потоков VPC
0