У меня есть удаленные разработчики, которые путешествуют и постоянно меняют IP-адреса. Я бы хотел, чтобы они могли подключиться к VPN, запущенной на инстансе на EC2. После подключения к VPN с ключом они могут использовать VPN для ретрансляции трафика на сервер RDS. Постоянно менять настройки группы безопасности каждый день для каждого разработчика не вариант.
Я изучил OpenVPN и могу создать VPN-соединение непосредственно с экземпляром, на котором размещается VPN. Я считаю, что мой маршрут не работает, потому что RDS не знает, как направлять ответы обратно в экземпляр RDS.
Очень простым решением было бы просто использовать туннели SSH для передачи трафика SQL. Вы не упоминаете, какую ОС вы используете в своих экземплярах EC2, поэтому я предполагаю, что вы используете Linux (если вы не используете Linux, просто разверните t1.micro
экземпляр для этой цели. Это обеспечит достаточную мощность для такого типа трафика). Итак - с сервером Linux под рукой, настроить его будет довольно просто. Каждому разработчику потребуется учетная запись на этом сервере, и им нужно будет создать для себя пару ключей и предоставить вам открытый ключ для развертывания на своих учетных записях сервера.
Если бы они использовали ОС unixy, они бы выполнили команду, подобную этой:
$ ssh user@ec2-host -L3306:a.b.c.d:3306
... где «a.b.c.d» - это IP-адрес экземпляра RDS. Вам просто нужно убедиться, что у каждого пользователя есть соответствующие права доступа в базе данных RDS для подключения с хоста ec2, через который он передает ssh.
После этого разработчики подключатся к их localhost, порт 3306, и этот трафик будет туннелироваться через экземпляр RDS.
(На самом деле я никогда не использовал RDS, но, поскольку он построен для замены MySQL, я считаю, что мое предположение верное, что используется порт 3306. Если он использует другой порт, измените номер порта в конце приведенной выше команды)
Да, ты не сможешь сделать это, если немного поиграешься. Самым простым решением было бы NAT-трафик VPN, когда шлюз отправляет его в RDS, чтобы RDS знал, что нужно отправить трафик обратно на ваш шлюз, прежде чем он отправит его с NAT и отправит обратно по VPN. Другой способ мощь работа ведется с использованием VPC; Я никогда не использовал его с RDS (или, если честно, вообще), но, поскольку я понимаю, как работает сеть VPC, возможно, что RDS подключается к вашему VPC и, следовательно, мощь иметь возможность использовать шлюз. Я думаю, однако, что NAT будет самым простым вариантом.