Настройка AWS PrivateLink для Redshift Enterprise +
Функция приватного подключения доступна для следующих Enterprise-тарифов dbt:
- Business Critical
- Virtual Private
Чтобы узнать больше об этих тарифах, свяжитесь с нами по адресу sales@getdbt.com.
AWS предоставляет два различных способа создания VPC-эндпоинта PrivateLink для кластера Redshift, работающего в другой VPC:
dbt поддерживает оба типа эндпоинтов, однако при выборе подходящего варианта необходимо учитывать ряд факторов. Redshift-managed обеспечивает значительно более простую настройку и не требует дополнительных затрат, поэтому для многих пользователей он может быть предпочтительным вариантом, но он доступен не во всех средах. Исходя из этих критериев, вам нужно определить, какой тип эндпоинта подходит именно для вашей системы. Далее следуйте инструкциям из раздела ниже, который соответствует выбранному типу эндпоинта.
Частные конечные точки подключения не могут соединяться между разными облачными провайдерами (AWS, Azure и GCP). Чтобы частное подключение работало, и dbt, и сервер (например, Redshift) должны быть размещены у одного и того же облачного провайдера. Например, dbt, размещённый в AWS, не может подключаться к сервисам, размещённым в Azure, а dbt, размещённый в Azure, не может подключаться к сервисам, размещённым в GCP.
Настройка Redshift-managed PrivateLink
-
Найдите раздел Granted accounts в настройках Redshift
-
Standard Redshift
- В запущенном кластере Redshift выберите вкладку Properties.
-
Redshift Serverless
- На странице Workgroup configuration для Redshift Serverless.
-
-
В разделе Granted accounts нажмите Grant access.
-
Введите AWS account ID:
346425330055— ПРИМЕЧАНИЕ: этот account ID применяется только для Multi-Tenant‑окружений dbt. Для Virtual Private / Single‑Tenant account ID, пожалуйста, свяжитесь с Support. -
Выберите Grant access to all VPCs —или— (необязательно) обратитесь в Support, чтобы получить соответствующий региональный VPC ID и указать его в поле Grant access to specific VPCs.
-
Добавьте необходимую информацию в следующий шаблон и отправьте ваш запрос в dbt Support:
-
Standard Redshift
Subject: New Multi-Tenant PrivateLink Request
- Type: Redshift-managed
- Redshift cluster name:
- Redshift cluster AWS account ID:
- Redshift cluster AWS Region (for example, us-east-1, eu-west-2):
- <Constant name="cloud" /> multi-tenant environment (US, EMEA, AU): -
Redshift Serverless
Subject: New Multi-Tenant PrivateLink Request
- Type: Redshift-managed - Serverless
- Redshift workgroup name:
- Redshift workgroup AWS account ID:
- Redshift workgroup AWS Region (for example, us-east-1, eu-west-2):
- <Constant name="cloud" /> multi-tenant environment (US, EMEA, AU):
-
dbt Labs выполнит настройку приватного подключения от вашего имени. Пожалуйста, заложите 3–5 рабочих дней на завершение этого процесса. Служба поддержки свяжется с вами, когда конечная точка (endpoint) будет доступна.
Настройка интерфейсного PrivateLink для Redshift
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, будут работать, они также более подвержены изменениям.
- Вероятно, будет только один сетевой интерфейс (NI) в начале, но если кластер перейдет в другую зону доступности (AZ), будет создан новый NI для этой AZ. IP NI из оригинальной AZ все еще будет работать, но новый IP NI также может быть добавлен в Target Group. Если добавляются дополнительные IP, обратите внимание, что NLB также должен добавить соответствующую AZ. После создания NI(ы) должны оставаться неизменными (это наше наблюдение из тестирования, но AWS официально это не документирует).
-
Redshift Serverless
- Чтобы найти IP-адреса для экземпляра Redshift Serverless, найдите и скопируйте конечную точку (только URL, указанный перед портом) в разделе конфигурации Workgroup в консоли AWS для экземпляра.
- Из командной строки выполните команду
nslookup <endpoint>, используя конечную точку, найденную на предыдущем шаге, и используйте связанные IP для Target Group.
-
-
Протокол Target Group: TCP
-
-
Network Load Balancer (NLB) — Требуется создать Listener, который будет привязан к только что созданной Target Group (порт
5439используется по умолчанию)- Scheme: Internal
- IP address type: IPv4
- Network mapping: Выберите VPC, в которой разворачиваются VPC Endpoint Service и NLB, а также выберите сабнеты как минимум из двух Availability Zones.
- Security Groups: Network Load Balancer (NLB), связанный с VPC endpoint service, либо не должен иметь привязанной security group, либо security group должна содержать правило, разрешающее запросы из соответствующих private CIDR(s) dbt. Обратите внимание, что это отличается от статических публичных IP-адресов, перечисленных на странице dbt Access, Regions, & IP addresses. Команда поддержки dbt может предоставить корректные private CIDR(s) по запросу. При необходимости, до тех пор пока вы не сможете уточнить правило до меньшего диапазона CIDR, предоставленного dbt, разрешите подключение, временно добавив allow‑правило
10.0.0.0/8. - Listeners: Создайте по одному listener’у на каждую target group, который сопоставляет соответствующий входящий порт с нужной target group (details).
-
VPC Endpoint Service — Подключите к только что созданному NLB.
- Acceptance required (optional) — Требуется принять наш запрос на подключение после того, как dbt создаст endpoint.
Мы настоятельно рекомендуем включить балансировку нагрузки между зонами для вашего NLB или Target Group; для некоторых подключений она может быть обязательной. Балансировка между зонами также может улучшить распределение маршрутизации и устойчивость соединений. Учтите, что межзональная связность может повлечь дополнительные расходы на передачу данных, хотя для запросов из dbt они должны быть минимальными.
2. Предоставление доступа учетной записи AWS dbt к VPC Endpoint Service
На подготовленном VPC Endpoint Service нажмите вкладку Allow principals. Нажмите Allow principals, чтобы предоставить доступ. Введите ARN корневого пользователя в соответствующей производственной учетной записи AWS и сохраните изменения.
- Principal:
arn:aws:iam::346425330055:role/MTPL_Admin
3. Получение имени VPC Endpoint Service
После того как VPC Endpoint Service будет создан, вы можете найти имя сервиса в консоли AWS, перейдя в раздел VPC → Endpoint Services и выбрав соответствующий endpoint service. Вы можете скопировать значение поля service name и включить его в ваше обращение в службу поддержки dbt.
4. Добавьте необходимую информацию в шаблон ниже и отправьте запрос в dbt Support:
Subject: New Multi-Tenant PrivateLink Request
- Type: Redshift Interface-type
- VPC Endpoint Service Name:
- Redshift cluster AWS Region (for example, us-east-1, eu-west-2):
- dbt AWS multi-tenant environment (US, EMEA, AU):
dbt Labs выполнит настройку приватного подключения от вашего имени. Пожалуйста, заложите 3–5 рабочих дней на завершение этого процесса. Служба поддержки свяжется с вами, когда конечная точка (endpoint) будет доступна.
Создание подключения в dbt
После того как поддержка dbt завершит настройку, вы сможете начать создавать новые подключения с использованием PrivateLink.
- Перейдите в настройки → Создать новый проект → выберите Redshift
- Вы увидите две радиокнопки: Public и Private. Выберите Private.
- Выберите частный эндпоинт из выпадающего списка (это автоматически заполнит поле имени хоста/учетной записи).
- Настройте оставшиеся детали платформы данных.
- Проверьте ваше подключение и сохраните его.
Устранение неполадок
Если эндпоинт PrivateLink был создан и настроен в dbt, но соединение по‑прежнему не работает, проверьте следующие элементы сетевой конфигурации, чтобы убедиться, что запросы и ответы могут успешно маршрутизироваться между dbt и базовым сервисом.
Конфигурация
Начните с конфигурации:
Мониторинг
Чтобы помочь изолировать проблемы с подключением по PrivateLink от dbt, можно использовать несколько источников мониторинга для проверки активности запросов. Для того чтобы в мониторинге появились данные, запросы сначала должны быть отправлены на endpoint. Обратитесь в службу поддержки dbt, чтобы узнать, когда выполнялось тестирование подключения, или запросить новые попытки подключения. Используйте это время, чтобы сопоставить его с активностью в следующих источниках мониторинга.






