Как вы подключаетесь к MongoDB Atlas из Google Cloud Run при использовании VPC и одноранговых сетей?

Aug 19 2020

Я пытаюсь подключиться из Google Cloud Run к MongoDB с помощью VPC и одноранговых сетей, но не могу установить соединение. Цель состоит в том, чтобы иметь возможность подключаться из Cloud Run к Atlas, разрешая только определенный диапазон IP-адресов.

Моя установка:

  • MongoDB Atlas работает в Google Cloud.
  • Контейнер Google Cloud Run, на котором запущен сервер NodeJS в том же регионе, что и атлас MongoDB (хотя, насколько я могу судить, это не имеет значения).

Я предпринял следующие шаги:

  1. Создайте VPC на стороне Google Cloud, следуя инструкциям из https://cloud.google.com/vpc/docs/using-vpc.

  2. Настройте пиринговую сеть между моим VPC и MongoDB Atlas VPC: https://docs.atlas.mongodb.com/security-vpc-peering/

  3. Настройте бессерверный доступ к VPC с помощью коннектора: https://cloud.google.com/vpc/docs/configure-serverless-vpc-access

  4. Повторно развернутый контейнер облачного запуска с помощью коннектора выше: https://cloud.google.com/run/docs/configuring/connecting-vpc

  5. Добавлен диапазон CIDR из шага 3 в белый список атласа MongoDB и удален предыдущий открытый диапазон 0.0.0.0/0.

Все шаги выполнены успешно (зеленые точки и т. Д.), Но когда я пытаюсь подключиться после шага 5, соединение не удается. Что мне не хватает?

Ответы

2 Stefan Aug 19 2020 at 17:39

Решил это, отвечая на мой собственный вопрос. Оказывается, подход, описанный в вопросе, действительно работает. Мне не хватало двух вещей:

  1. Вам необходимо изменить строку подключения MongoDB на частную строку подключения. Вы можете получить его, нажав «Подключиться» в разделе «Кластеры» на панели управления MongoDB. Насколько я мог видеть, это нигде не задокументировано в руководстве по одноранговым сетям MongoDB.

  2. Внесите в белый список диапазон CIDR как из самого VPC (шаг 1), так и из диапазона CIDR из бессерверного коннектора (шаг 3) в сетевых настройках MongoDB Atlas.