Подключение к Cloud SQL: общедоступный IP-адрес и авторизованные сети

1. Введение

Последнее обновление: 04.05.2020

Размышляя о связи

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

Иногда это необходимо в производственной среде, но если это возможно, следует выбрать более безопасную альтернативу (например, использовать Cloud SQL Proxy ). Такая конфигурация идеально подходит для разработки и тестирования.

Что вы построите

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

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

Отдельные этапы следующие:

  • Создайте экземпляр Cloud SQL (в этом руководстве используется PostgreSQL, но аналогично работает для MySQL или SQL Server) и разрешите подключение к нему определенным IP-адресам.

Что вам понадобится

  • В учетной записи GCP у вас есть разрешения на включение API и создание сервисов.
  • Для проверки подключения необходимо установить клиент Postgres (или клиент MySQL, если вы хотите использовать MySQL вместо Postgres).

2. Создание экземпляра Cloud SQL

Cloud SQL — это наше решение для управления реляционными базами данных. Оно поддерживает MySQL, PostgreSQL и SQL Server. В этом практическом занятии мы создадим базу данных PostgreSQL, но инструкции аналогичны для всех трех.

На консоли

Перейдите на страницу Cloud SQL и нажмите на 241836b315e11bf5.png кнопка.

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

  1. Присвойте вашему экземпляру идентификатор.
  2. Выберите регион, расположенный недалеко от того места, где вы находитесь.
  3. Введите пароль для пользователя по умолчанию (имя пользователя будет соответствовать имени пользователя выбранной базы данных, например, root для MySQL или postgres для PostgreSQL).
  4. Прокрутите вниз и нажмите « show configuration options
  5. Разверните раздел Connectivity .
  6. Убедитесь, что Public IP установлен, а флажок Private IP снят.
  7. Нажмите 883b32ec2734de01.png кнопка
  8. Узнайте IP-адрес того, откуда вы подключаетесь. Проще всего это сделать, выполнив поиск в Google по запросу "Какой у меня IP-адрес", и в результатах поиска будет указан ваш публичный IP-адрес.
  1. Введите IP-адрес в поле "Сеть", при желании дайте ей имя и нажмите "Готово" в поле New Network .
  2. Прокрутите вниз и нажмите «Создать».

Обычно запуск занимает несколько минут.

После завершения создания экземпляра щелкните по нему в списке, и на странице обзора в разделе « Connect to this instance скопируйте указанный там public IP address . Он появится только после полного создания экземпляра, хотя вы можете перейти к подробной информации до его полного создания.

Используя gcloud

Сначала вам нужно получить IP-адрес, который вы хотите авторизовать для подключения к экземпляру Cloud SQL. Самый простой способ сделать это — открыть браузер и выполнить поиск по запросу "What's my IP", в результатах поиска будет указан ваш публичный IP-адрес. Однако, если у вас нет возможности открыть браузер с того места, где вы это делаете, вы можете использовать такую ​​утилиту, как dig .

dig @resolver1.opendns.com ANY myip.opendns.com +short -4

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

gcloud sql tiers list

Каждый уровень доступен только в определенных регионах. В части руководства, посвященной gcloud, мы просто создаем микроэкземпляр, поэтому вы можете найти доступные регионы для этого уровня, выполнив соответствующую команду (при условии, что у вас установлен grep):

gcloud sql tiers list | grep db-f1-micro

Команда для создания экземпляра будет выглядеть следующим образом (не забудьте заменить <AUTHORIZED_IP> на IP-адрес, полученный из браузера или команды dig, и <REGION> на IP-адрес, близкий к вашему, а также пароль для пользователя root 'postgres'):

gcloud sql instances create sql-codelab-00 --database-version=POSTGRES_11 --tier=db-f1-micro --region=<REGION> --authorized-networks=<AUTHORIZED_IP> --root-password=<PASSWORD>

На выполнение этой процедуры потребуется несколько минут.

После завершения в командной строке отобразится PRIMARY_ADDRESS экземпляра. Скопируйте его для следующего шага.

3. Проверьте соединение и завершите процесс.

Чтобы убедиться в правильности настройки экземпляра, с компьютера, IP-адрес которого вы указали, вы можете выполнить в командной строке следующую команду:

psql "host=<IP-адрес скопирован с предыдущего шага> port=5432 sslmode=disable user=postgres"

Затем укажите пароль пользователя по умолчанию, который вы установили при создании экземпляра Cloud SQL.

Поздравляем! Если все прошло успешно, у вас должна появиться командная строка Postgres, и вы сможете выполнять команды в своей базе данных.

Что дальше?

Посмотрите некоторые из этих практических занятий по программированию...

Справочная документация