Рубрики
Uncategorized

EC2 прокси в RDS для статического IP -адреса

Этот пост изначально появился в моем блоге RDS Antsances в AWS, не получают статический IP -адрес. Этот… Tagged with AWS, DevOps.

Этот пост изначально появился В моем блоге

RDS экземпляры в AWS не получают статический IP -адрес. Обычно это хорошая вещь, а не проблема. Это обеспечивает гибкость для сохранения доступности, в то время как физический хост RDS может сдвигаться для изменения размера или сбой в другую зону доступности (AZ). В любом случае, клиенты подключаются к RDS от HostName, и AWS волшебным образом обновляет имя хоста, чтобы указать на IP -адрес для активного хоста в настоящее время.

Единственный раз, когда это создает проблему, — это когда вы хотите подключиться к RDS из частной/корпоративной сети и необходимо обновить конфигурацию брандмауэра или туннеля VPN, чтобы позволить соединения с RDS. Если это не проблема для вас, вы можете перестать читать это.

Проблема заключается в правилах брандмауэра, туннелях VPN и NAT, и NAT правили, все работают по IP -адресам, а не на именах хостов. Вы не можете настроить свой брандмауэр для разблокировки трафика на экземпляр RDS, если вы не знаете его IP -адрес.

Обходной путь, который я обнаружил, заключалась в том, чтобы поместить сервер EC2 перед RDS в качестве прокси TCP. Вы можете дать статический IP -адрес экземпляру EC2 с Privateipaddress свойство Aws:: ec2:: ancess , или с Aws:: ec2:: eipassociation Ресурс для статического общедоступного IP. Затем вы используете этот экземпляр EC2, чтобы перенаправить трафик в экземпляр RDS с помощью имени хоста. IP -адрес экземпляра EC2 становится статическим IP базы данных для целей брандмауэра.

Есть много разных способов перенаправить трафик от EC2 на RDS. Вы можете выбрать тот, который вам лучше всего подходит:

  • Socat : например, SOCAT TCP-Listen, [Port], Fork, Reuseaddr TCP: [HOSTNAME]: [PORT] Анкет

    • Плюсы: простой и удобный, простой в установке с Yum установить Socat Анкет
    • Минусы: не широко известно; Форки процесса на соединение, так что не подходит для большего объема
  • Хапрокс

  • nginx

    • Плюсы: Вы, возможно, уже используете его
    • Минусы: излишний для портора
  • ssh Перенаправление порта

    • Плюсы: широко понятно, SSH/SSHD уже установлен по умолчанию
    • Минусы: требует установления и аутентификации соединения SSH, которое является избыточным, когда вы только хочу пересылку порта

На настройке группы безопасности : Поместите экземпляр EC2 и экземпляр RDS в две разные группы безопасности, а затем эти группы безопасности могут ссылаться друг на друга. Это идеальный вариант использования для CloudFormation’s AWS:: EC2:: SecurityGroupingRessress и AWS:: EC2:: SecurityGrougeGress Ресурсы («Обычно для разрешения групп безопасности для ссылки друг на друга»). Поскольку вы не знаете IP -адрес экземпляра RDS, вы можете обратиться к группе безопасности экземпляра RDS. Группа безопасности EC2 будет иметь выходное правило для RDS Security Group и наоборот.

Иначе это хорошая идея, чтобы заблокировать группу безопасности EC2. Экземпляр EC2 должен разрешать только исходящий доступ к целевому экземпляру RDS и DNS для разрешения имени хоста. Экземпляр RDS должен разрешать входящий доступ только через прокси EC2.

Другие советы по облачной форме : Держите экземпляр EC2 в стеке сам по себе, чтобы его можно было восстановить независимо. Вы можете сделать перекрестные ссылки на экземпляр RDS из стека EC2. Кроме того, вы можете поместить сценарий в UserData Свойство в EC2, чтобы внедрить имя хоста RDS (из ссылки на перекрестное стек) в файлы конфигурации Upstart ( /etc/init/your-proxy-service.conf ) Таким образом, ваша прокси -сервис будет автоматически начнеться на загрузке и обратится к правильному имени хоста.

Оригинал: «https://dev.to/wrschneider/ec2-proxy-to-rds-for-a-static-ip-address-11i8»