Настройка AWS PrivateLink для открытия доступа ClickPipes к приватной RDS
В этом варианте используется AWS Endpoint Service, и он в основном подходит для межрегионального доступа. Если вам нужен доступ в пределах того же региона,
вместо этого рекомендуется создать ресурс VPC.
Создание Private Link
-
Найдите свой VPC и создайте NLB
- Перейдите к целевому VPC и создайте Network Load Balancer (NLB). Обратите внимание, что NLB должен быть внутренним (private), а не общедоступным (public).
-
Настройте Target Group
- Target Group должна указывать на IP-адрес конечной точки и порт экземпляра RDS (обычно 5432 для PostgreSQL или 3306 для MySQL).
Если вы хотите автоматизировать процесс обновления Target Group при смене IP-адреса конечной точки RDS, можно использовать AWS Lambda или другие инструменты автоматизации.
Один из модулей Terraform, который можно использовать для этой цели, — этот.
- ВАЖНО: Убедитесь, что в случае DB Cluster/Aurora используется конечная точка экземпляра RDS — ТОЛЬКО конечная точка записи, а НЕ общая конечная точка.
- Убедитесь, что используется протокол TCP, чтобы избежать завершения TLS на NLB.
-
Задайте порт listener
- Порт listener балансировщика нагрузки должен совпадать с портом, используемым в Target Group (обычно 5432 для PostgreSQL или 3306 для MySQL).
-
Создайте VPC сервис конечной точки
- В VPC создайте сервис конечной точки, указывающий на NLB.
- Включите прием запросов на подключение от определенных аккаунтов.
-
Разрешите ClickPipes использовать сервис конечной точки
- Предоставьте аккаунту ClickPipes разрешение запрашивать этот сервис конечной точки.
- Настройте разрешенные субъекты, добавив следующий ID субъекта:
- Настройте разрешенные субъекты, добавив следующий ID субъекта:
- Предоставьте аккаунту ClickPipes разрешение запрашивать этот сервис конечной точки.
-
Отключите “Enforce Security Group Inbound Rules on Private Link Traffic” на NLB (если к NLB привязана группа безопасности)
- Перейдите в настройки NLB и отключите параметр “Enforce Security Group Inbound Rules on Private Link Traffic”, если к NLB привязана группа безопасности.
- Если вы используете Terraform, установите для NLB атрибут
enforce_security_group_inbound_rules_on_private_link_trafficв значениеoff - Этот параметр обязателен, чтобы разрешить трафик из VPC ClickPipes к NLB.
-
Необязательно: включите поддержку межрегиональную, если регион вашей database отличается от региона ClickPipes
- В разделе
Endpoint Servicesв консоли VPC выберите ваш сервис конечной точки. - Нажмите кнопку
Actionsи выберитеModify supported Regions. - Добавьте регионы, из которых вы хотите разрешить доступ к сервису конечной точки; список регионов ClickPipes см. здесь.
- В разделе
-
Рекомендуется для MySQL
- Если вы используете MySQL, рекомендуется установить
skip_name_resolve=1как параметр в исходной базе данных. Из-за повторяющихся проверок работоспособности со стороны NLB MySQL будет блокировать хосты NLB. Установка этого параметра полностью отключает DNS lookup имен хостов, поэтому хосты NLB никогда не будут блокироваться. При использовании RDS это потребует перезапуска экземпляра.
- Если вы используете MySQL, рекомендуется установить
Инициация соединения
Ready, вы можете перейти к следующему разделу, чтобы создать свой ClickPipe.