คุณเชื่อมต่อกับ 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 atlas (แม้ว่าจะไม่สำคัญเท่าที่ฉันสามารถบอกได้)

ฉันได้ทำตามขั้นตอนต่อไปนี้:

  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 atlas และลบช่วงเปิดก่อนหน้า 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