Я настроил частный доступ к службам для CloudSql из своего VPC. Мой VPC имеет 2 подсети в регионах us-west1 и us-central1.
Проблема в следующем:
Мое приложение НЕ может подключиться к экземпляру CloudSQL из us-west1 (подсеть), но может подключиться из другого региона us-central1 нормально.
Я верю доступ к частной службе находится на уровне VPC, поэтому все подсети в этом VPC должны иметь возможность нормально подключаться к экземпляру CloudSQL.
Помощь приветствуется!
Как указано в общедоступной документации GCP на этом ссылка на сайт в пункте сетевых требований:
Чтобы получить доступ к экземпляру Cloud SQL по его частным IP-адресам, вы должны использовать ресурс GCP в том же регионе.
Убедитесь, что приложение находится в том же регионе, что и экземпляр cloudSQL.
В дополнение к ответу Django выше:
Ресурсы GCP, которые вы будете использовать для подключения к экземпляру Cloud SQL, также должны находиться в том же регионе, что и ваш экземпляр Cloud SQL, и также использовать подсеть сети VPC в этом регионе. Эти ресурсы могут быть экземплярами Compute Engine (ВМ) или экземплярами Google Kubernetes Engine.
Ссылка: https://cloud.google.com/sql/docs/postgres/configure-private-ip
Это относится как к MySQL, так и к PostgreSQL.
На момент написания этой статьи это известное ограничение Google Cloud Networking. Я просто надеюсь, что в ближайшем будущем он будет поддержан.
Думал, что дам более актуальный ответ, так как теперь он должен работать в соответствии с обновленным документация:
Вы можете подключиться через частный IP из любого региона. Вы также можете подключаться между проектами через общие VPC.
Мне удалось подключить службу Cloud Run с помощью бессерверного коннектора VPC (на данный момент бета) из региона, отличного от моей БД, с использованием частного IP-адреса.