Как вы подключаетесь к MongoDB Atlas из Google Cloud Run при использовании VPC и одноранговых сетей?
Я пытаюсь подключиться из Google Cloud Run к MongoDB с помощью VPC и одноранговых сетей, но не могу установить соединение. Цель состоит в том, чтобы иметь возможность подключаться из Cloud Run к Atlas, разрешая только определенный диапазон IP-адресов.
Моя установка:
- MongoDB Atlas работает в Google Cloud.
- Контейнер Google Cloud Run, на котором запущен сервер NodeJS в том же регионе, что и атлас MongoDB (хотя, насколько я могу судить, это не имеет значения).
Я предпринял следующие шаги:
Создайте VPC на стороне Google Cloud, следуя инструкциям из https://cloud.google.com/vpc/docs/using-vpc.
Настройте пиринговую сеть между моим VPC и MongoDB Atlas VPC: https://docs.atlas.mongodb.com/security-vpc-peering/
Настройте бессерверный доступ к VPC с помощью коннектора: https://cloud.google.com/vpc/docs/configure-serverless-vpc-access
Повторно развернутый контейнер облачного запуска с помощью коннектора выше: https://cloud.google.com/run/docs/configuring/connecting-vpc
Добавлен диапазон CIDR из шага 3 в белый список атласа MongoDB и удален предыдущий открытый диапазон 0.0.0.0/0.
Все шаги выполнены успешно (зеленые точки и т. Д.), Но когда я пытаюсь подключиться после шага 5, соединение не удается. Что мне не хватает?
Ответы
Решил это, отвечая на мой собственный вопрос. Оказывается, подход, описанный в вопросе, действительно работает. Мне не хватало двух вещей:
Вам необходимо изменить строку подключения MongoDB на частную строку подключения. Вы можете получить его, нажав «Подключиться» в разделе «Кластеры» на панели управления MongoDB. Насколько я мог видеть, это нигде не задокументировано в руководстве по одноранговым сетям MongoDB.
Внесите в белый список диапазон CIDR как из самого VPC (шаг 1), так и из диапазона CIDR из бессерверного коннектора (шаг 3) в сетевых настройках MongoDB Atlas.