AWS Aurora MySQL без сервера: как подключиться из MySQL Workbench

Я пытался использовать AWS Aurora Serverless для MySQL в своем проекте, но мне не удалось подключиться к нему, хотя у меня есть конечная точка, имя пользователя и пароль.

Что я наделал:

  1. В управлении консолью AWS я выбираю RDS> Instances> Aurora> Serverless.
  2. Оставьте настройки по умолчанию
  3. Создать базу данных
  4. AWS создаст только кластер AWS  введите описание изображения здесь
  5. Я открываю MySQL Workbench и использую конечную точку, имя пользователя и пароль для подключения к базе данных.

Результат:

Попытка подключения для пользователя admin с вашего хоста на сервер не удалась: xxxxx.cluster-abcdefg1234.eu-west-1.rds.amazonaws.com:3306: не удается подключиться к серверу MySQL на 'xxxxx.cluster-abcdefg1234. eu-west-1.rds.amazonaws.com '(60)

Я сделал какие-то неправильные шаги? Пожалуйста, посоветуй мне.

****РЕДАКТИРОВАТЬ****

Я попытался создать еще одну базу данных Aurora с типом емкости: Provisioned. Я могу легко подключиться к конечной точке с помощью имени пользователя и пароля с помощью MySql workbench. Это означает, что порт 3306 открыт для рабочего места.

О группе безопасности:  введите описание изображения здесь


person Phong Vu    schedule 06.08.2018    source источник
comment
Какие группы безопасности у вас есть, чтобы открыть доступ к порту 3306 из любого места, где вы используете MySql Workbench? Общая информация о безопасных группах в RDS: docs.aws.amazon. ru / AmazonRDS / latest / UserGuide /   -  person Jorg Roper    schedule 07.08.2018
comment
Я редактировал вопрос. Я думаю, что порт не является проблемой, потому что я создал еще одну базу данных Aurora MySql с типом: Provisioned, и она работает без сбоев. Но с типом serverless это не работает   -  person Phong Vu    schedule 07.08.2018
comment
Можете ли вы установить telnet на xxxxx.cluster-abcdefg1234.eu-west-1.rds.amazonaws.com порт 3306? Если можете - вы знаете, что это проблема config / auth, если нет, то у вас проблема с сетью. В зависимости от вашей операционной системы вам может потребоваться установить Telnet, а затем ввести такую ​​команду, как telnet xxxxx.cluster-abcdefg1234.eu-west-1.rds.amazonaws.com 3306   -  person Jorg Roper    schedule 07.08.2018
comment
Привет, Йорг, кажется, я не могу подключиться к этой конечной точке по telnet. У вас есть идеи, где проверить проблему с config / auth? Во время создания базы данных я установил только главное имя пользователя и пароль и использовал их для подключения с помощью рабочей среды.   -  person Phong Vu    schedule 07.08.2018
comment
Похоже, что Aurora Serverless использует конечные точки VPC интерфейса Privatelink (VPCE) для фактического обеспечения конечной точки внутри вашего VPC, поэтому они недоступны из других источников. Где вы используете верстак?   -  person Michael - sqlbot    schedule 07.08.2018
comment
Спасибо Майклу за указание на VPCE. Любая идея получить доступ к базе данных Aurora Serverless: создать схему, таблицу, запустить sql ... Я попытался подключить его к рабочей среде, но безуспешно.   -  person Phong Vu    schedule 07.08.2018
comment
вы можете настроить api данных для aurora serverless, к которому можно получить доступ извне vpc. Я попробую это с помощью mysql workbench, когда у меня будет время.   -  person jWang1    schedule 04.06.2020


Ответы (11)


Из https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/aurora-serverless.html:

  • Вы не можете дать кластеру БД Aurora Serverless публичный IP-адрес.
  • Вы можете получить доступ к кластеру Aurora Serverless DB только из виртуального частного облака (VPC) на основе сервиса Amazon VPC.
  • Вы не можете получить доступ к конечной точке кластера Aurora Serverless DB через соединение AWS VPN или межрегиональное пиринговое соединение VPC. Существуют ограничения на доступ к конечной точке кластера через внутрирегиональное пиринговое соединение VPC; для получения дополнительной информации см. Интерфейс конечных точек VPC (AWS PrivateLink) в Руководстве пользователя Amazon VPC. Однако вы можете получить доступ к конечной точке кластера Aurora Serverless через соединение AWS Direct Connect.

Таким образом, помимо SSH-подключения через экземпляр EC2, вы также можете получить доступ к бессерверному кластеру с помощью mySQL Workbench с AWS Direct Connect.

person Yoga    schedule 21.08.2018
comment
Похоже, что на данный момент бессерверная БД также доступна через AWS Client VPN docs.aws.amazon.com/vpn/latest/clientvpn-admin/ - person Justin Soliz; 23.05.2020
comment
@Yoga У вас есть дополнительная информация о том, как использовать AWS Direct Connect с Aurora? Спасибо. - person Ricardo; 27.06.2020
comment
Tailscale VPN настраивает обратный NAT, и вы можете развернуть его на экземпляре EC2 и следовать инструкциям в этот документ, чтобы установить его в качестве ретранслятора подсети. Благодаря этому моя команда смогла настроить (потребовалось 30 минут) и подключиться к Aurora Serverless из рабочей среды MySQL и Sequel Pro. Надеюсь, это поможет. :) - person Aditya Purandare; 09.11.2020

Один из способов подключения к кластеру Aurora Serverless DB - использование экземпляра Amazon EC2. Вы не можете создавать общедоступные кластеры БД Aurora Serverless в предварительной версии. Эта задача поможет вам создать общедоступный инстанс Amazon EC2 в вашем VPC. Вы можете использовать этот инстанс Amazon EC2 для подключения к кластеру Aurora Serverless DB.

Это прямо из документации, предоставленной при предварительной регистрации. Попробуйте создать экземпляр EC2 и использовать метод туннеля SSH в вашей рабочей среде MYSQL или пользовательском интерфейсе SQL по выбору. Во время предварительного просмотра Aurora Serverless нельзя сделать общедоступным.

person cmtzco    schedule 08.08.2018
comment
Привет, cmtzco, если это так, в настоящее время не время использовать Aurora Serverless DB для производства до официального выпуска. Я прав? - person Phong Vu; 08.08.2018
comment
@PeterPham Да, я бы посоветовал просто протестировать его на предмет возможного использования. Похоже, что он был объявлен для публичного использования 5 дней назад. aws.amazon.com/blogs/aws/aurora-serverless-ga - person cmtzco; 15.08.2018
comment
@cmtzco, вот несколько довольно четких инструкций: aws.amazon.com/es/getting-started/tutorials/ - person Carlos Delgado; 11.09.2019

Обычный шаблон, используемый клиентами для подключения только к сервисам VPC (например, Aurora Serverless, Amazon Neptune, Amazon DocDB и т. Д.), Заключается в том, чтобы иметь средний уровень (экземпляр EC2 или ALB и т. Д.) И делать средний уровень доступным извне VPC. Если ваш вариант использования - это просто опробовать несколько запросов или подключить рабочую среду, то проще всего сделать следующее:

  1. Разрешить DNS бессерверной базы данных и получить ее IP
  2. Создайте ALB в своем VPC с целевой группой IP, который вы нашли в # 1
  3. Создайте новую группу безопасности и прикрепите ее к своему ALB.
  4. Обновите SG, чтобы разрешить входящий трафик откуда угодно. Если вам нужен общедоступный доступ в Интернет, разрешите входящий трафик со всех IP-адресов, включите интернет-шлюз в вашем VPC и используйте общедоступную подсеть для вашего ALB.

Как только все это будет сделано, вы получите новый DNS, который указывает на ваш ALB. Убедитесь, что ваш ALB настроен правильно:

  1. Использование telnet для подключения к вашей конечной точке ALB. telnet alb-endpoint alb-port. Если это удастся, то у вас будет полное сквозное соединение (не только с вашим ALB, но полностью).
  2. Проверьте показатели ALB, чтобы убедиться, что все проверки работоспособности проходят.

Как только это будет сделано, используйте конечную точку ALB в рабочей среде, и все готово.

Этот шаблон рекомендуется только для непроизводственных систем. Затрагивающий шаг - это тот, где вы разрешаете DNS в IP-адрес - этот IP-адрес недолговечен, он может измениться, когда в фоновом режиме происходит масштабное вычисление или отработка отказа.

Надеюсь, это поможет, дайте мне знать, если вам понадобятся более подробные сведения о каком-либо этапе. Вот связанный ответ для Нептуна:

Подключитесь к Neptune на AWS с локального компьютера

person The-Big-K    schedule 27.07.2019
comment
ALB не подходит для этого варианта использования, поскольку ALB поддерживает только протокол HTTP / HTTPS, но для подключения к Aurora из MySQL Workbench требуется протокол MySQL. - person Takayuki Sato; 06.08.2020
comment
Тогда использовать NLB? - person The-Big-K; 06.08.2020
comment
Насколько я понимаю, NLB также не подходит, потому что Aurora не предоставляет IP-адрес или идентификатор экземпляра для цели. - person Takayuki Sato; 07.08.2020

  • Мы не можем подключить Aurora Serverless напрямую из MySQL Workbench, поскольку для Aurora Serverless назначены только частные IP-адреса, а не общедоступные IP-адреса.

  • Мы можем подключить Aurora Serverless из EC2, но не можем подключить Aurora Serverless через туннель SSH Mysql Workbench.

  • Мы не можем подключить Aurora Serverless через ALB, поскольку ALB разрешает только трафик HTTP и HTTPS. вы можете telnet ALB-RDS-DNS с локального компьютера, но не можете подключиться к MySQL Workbench

Тогда какое здесь решение;

  • Мы можем подключить Aurora Serverless через NLB, поскольку NLB разрешает трафик по протоколу TCP;

Шаги 1. Создание NLB и добавление прослушивателя. Протокол балансировки нагрузки: TCP и порт балансировщика нагрузки: 3306.

Шаг 2: Выберите VPC (это должен быть тот же VPC из Aurora Serverless Cluster) и добавьте подсети (общедоступные).

Шаг 3: перейдите к настройке маршрутизации, выберите тип цели: IP и протокол: TCP, порт: 3306.

Шаг 4. Используйте DNS Checker, чтобы получить частный IP-адрес бессерверного кластера Aurora, и добавьте эти IP-адреса с портом 3306.

Шаг 5: Создайте NLB

Теперь измените группу безопасности Aurora Serverless Cluster, разрешите трафик из 0.0.0.0 (не рекомендуется) или VPC CIDR.

Теперь перейдите в Mysql Workbench и используйте DNS-имя NLB, и попробуйте подключиться, используя правильное имя пользователя и пароль Aurora Serverless Cluster.

person Ashish Tripathi    schedule 19.02.2021
comment
Хорошо работает! Одним из потенциальных недостатков этого может быть то, что проверка работоспособности NLB предотвратит полное отключение экземпляра Aurora (если это актуально). - person njam; 02.05.2021
comment
Как на шаге 4 получить частный IP-адрес моего бессерверного кластера Aurora? - person Fernando Santiago; 07.07.2021

Для подключения к Aurora без сервера или к любой базе данных в частной подсети вам понадобится «узел перехода», которым может быть любой экземпляр EC2 в общедоступной подсети.

Следуйте инструкциям ниже:

  1. Откройте группу безопасности, прикрепленную к базе данных, и добавьте новое правило, как показано ниже: -

Тип: MYSQL / Aurora, Протокол: TCP, Диапазон портов: 3306,
Источник: securitygroupofEC2 (вы можете все группы безопасности, введя 'sg-')

  1. Откройте группу безопасности, подключенную к EC2, и сделайте порт 22 открытым. Если нет, добавьте новое правило, как показано ниже: -

Тип: SSH, Протокол: TCP, Диапазон портов: 22, Источник: МОЙ IP

  1. Откройте Workbench, нажмите Новое соединение.
- Standard TCP/IP over SSH
 - SSH Hostname : < your EC2 Public IP >  #34.3.3.1
 - SSH Username : < your username > #common ones are : ubuntu, ec2-user, admin
 - SSH KeyFile: < attach your EC2 .pem file>

 - MYSQL Hostname: <database endpoint name> #mydb.tbgvsblc6.eu-west-1.rds.amazonaws.com

 - MYSQL Port: 3306
 - Username : <database username>
 - Password: <database password>

Нажмите «Проверить соединение» и готово !!

person Farooq Butt    schedule 07.06.2021

API данных и редактор запросов для подключения к Aurora Serverless теперь доступны еще в некоторых регионах.

https://aws.amazon.com/about-aws/whats-new/2020/05/amazon-rds-data-api-and-query-editor-available-additional-regions/

person vaibhav mittal    schedule 02.06.2020
comment
MySQL Workbench не может использовать ни то, ни другое - person Rahly; 17.10.2020

Вы должны использовать экземпляр EC2, у которого есть доступ к вашей dbinstance.
У этого экземпляра EC2 должен быть открыт порт 22 для ssh.
Теперь используйте перенаправление портов с локального на EC2 на экземпляр db.
Теперь на рабочем столе укажите имя хоста 127.0.0.1 и порт <forwarded port>.

person Muhammad Ahmed    schedule 14.09.2020

Aurora serverless не имеет общедоступной конечной точки для подключения из любого ide, такого как рабочая среда MYSQL, Sequel pro и т. Д. Но мы можем подключиться через cli, запустив экземпляр в том же vpc, в котором находится aurora serverless.

Кроме того, вы можете оформить заказ на cloud9 и aws cloud ide. Это, в свою очередь, только ec2, но также будет иметь пользовательский интерфейс, и он может использоваться командами и множеством других функций.

person Raj yadav    schedule 14.12.2020

Изначально я застрял в том же сценарии. На что следует обратить внимание при подключении AWS RDS Aurora.

  • Не удается подключить Public, вам нужен экземпляр EC2 с тем же регионом, где была создана Aurora.

  • Aurora Public access должен быть отмечен Нет (у меня это сработало).

  • Вам необходимо создать группу безопасности, в которую вы должны добавить правила для входящих и исходящих (IpAddress экземпляров EC2).

Пример: Type = MYSQL / AURORA, Protocol = TCP, PortRange = 3306, Source = Custom и ваш диапазон IP-адресов,

  • измените экземпляр и группу безопасности для экземпляра и немедленно примените изменения.

  • При создании Aurora вы создадите MasterName, Pwd и схему по умолчанию для подключения.

  • После создания перейдите в кластер, возьмите конечную точку кластера и войдите в систему, используя свой экземпляр EC2 и MySQL Workbench, имя хоста в качестве конечной точки кластера, имя пользователя и пароль, введенные при создании базы данных aurora.

person GirishBabuC    schedule 25.09.2018
comment
Он спрашивает об Aurora Serverless, у которой нет параметра Publicly Accessible. - person Alan; 25.07.2019

Этого можно добиться с помощью haproxy.

Установите Haproxy на Centos-> yum install haproxy

удалите существующую конфигурацию в этом файле /etc/haproxy/haproxy.cfg и добавьте следующие строки (убедитесь, что вы заменили URL-адрес конечной точки RDS в конфигурации ниже)

глобальный пользователь haproxy group haproxy

по умолчанию повторные попытки 2 тайм-аут подключения 3000 тайм-аут сервер 5000 тайм-аут клиент 5000

слушать mysql-cluster bind 0.0.0.0:3307 режим tcp-сервера mysql-1 test.cluster-crkxsds.us-west-2.rds.amazonaws.com:3306

После внесения изменений в файл запустите haproxy -> service haproxy start

Вы можете подключить Aurora RDS в MYSQL Workbench, используя общедоступный IP-адрес с номером порта 3307.

person Balaji R    schedule 26.05.2020

Я предполагаю, что ваша группа безопасности неправильно настроена для доступа. Вам необходимо явно разрешить удаленный доступ через этот порт к этому экземпляру.

Из официальных документов:

Две распространенные причины сбоев подключения к новому экземпляру БД:

  • Экземпляр БД был создан с использованием группы безопасности, которая не авторизует подключения с устройства или экземпляра Amazon EC2, на котором запущено приложение или служебная программа MySQL. Если экземпляр БД был создан в VPC, он должен иметь группу безопасности VPC, которая авторизует соединения. Если экземпляр БД был создан вне VPC, он должен иметь группу безопасности БД, которая авторизует соединения.

  • Экземпляр БД был создан с использованием порта по умолчанию 3306, и в вашей компании есть правила брандмауэра, блокирующие подключения к этому порту с устройств в сети вашей компании. Чтобы исправить эту ошибку, воссоздайте экземпляр с другим портом.

Смотрите здесь для получения дополнительной информации:

https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_ConnectToInstance.html

person mjuarez    schedule 06.08.2018
comment
Спасибо за совет, но это не так (пожалуйста, обратитесь к моему обновлению по вопросу) - person Phong Vu; 07.08.2018
comment
AWS создал только кластер для Aurora MySql типа Serverless, без экземпляра вообще. - person Phong Vu; 07.08.2018