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 и нажмите на
кнопка.
Как я уже упоминал, большая часть этого практического занятия универсальна и подходит для любой версии SQL, но для этого занятия выберите PostgreSQL.
- Присвойте вашему экземпляру идентификатор.
- Выберите регион, расположенный недалеко от того места, где вы находитесь.
- Введите пароль для пользователя по умолчанию (имя пользователя будет соответствовать имени пользователя выбранной базы данных, например,
rootдля MySQL илиpostgresдля PostgreSQL). - Прокрутите вниз и нажмите «
show configuration options - Разверните раздел
Connectivity. - Убедитесь, что
Public IPустановлен, а флажокPrivate IPснят. - Нажмите
кнопка - Узнайте IP-адрес того, откуда вы подключаетесь. Проще всего это сделать, выполнив поиск в Google по запросу "Какой у меня IP-адрес", и в результатах поиска будет указан ваш публичный IP-адрес.
- Введите IP-адрес в поле "Сеть", при желании дайте ей имя и нажмите "Готово" в поле
New Network. - Прокрутите вниз и нажмите «Создать».
Обычно запуск занимает несколько минут.
После завершения создания экземпляра щелкните по нему в списке, и на странице обзора в разделе « 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, и вы сможете выполнять команды в своей базе данных.
Что дальше?
Посмотрите некоторые из этих практических занятий по программированию...