如何串接GCP的VPC與MongoDB Atlas的服務
近來有越來越多的使用者開始在 GCP上使用MongoDB。除了自行架設在GCE(VM)上外。 MongoDB也在GCP的Marketplace推出了 MongoDB Atlas的全託管式服務,這一篇就要來介紹如何在GCP Marketplace啟用MongoDB Atlas服務。並將兩個服務(GCP and MongoDB Atlas)的網路連通。
首先請在GCP Marketplace訂閱您的MongoDB Atlas,並開通服務。
MongoDB在GCP Marketplace尚有兩種方案,請參閱下圖
Step 1:
為了做到VPC peering, 兩個服務的IP網段不能有overlap.所以先前的IP Plan就需要做好,避免日後因為環境的新增/異動而造成網路變更的困難。
這邊我們的IP Plan
GCP VPC — 10.0.0.0/22
MongoDB VPC — 192.168.0.0/18
Step 2 :
確認我們已經有10.0.0.0/22的GCP VPC網段
Step 3:
到MongoDB的介面,左邊的功能列點選 “Network Access”,如下圖
右手邊請點選”Peering”,在下方的 Creating a peering connection 的圖框中的右上角請點選“New Peering connection”
Step 4:
Cloud provider請選擇GCP
Step 5:
請在這一頁填上你要跟MongoDB連線的GCP的Project ID還有該VPC的名稱,另外還有你要給這一個MongoDB的VPC 網段,關於Atlas的VPC網段說明的很清楚,網段的範圍一定要大於 /18,而且之後已經有MongoDB的Cluster存在這個VPC的話,是無法做更動的這一點需要注意。
Step 5:
如下圖,我們會看到Atlas會處於”Pending”狀況。因為這時你還需要回到GCP去設定VPC peering.請將
Atlas GCP Project ID 及 Atlas GCP VPC name都記下來,等等再GCP的VPC peering都會用到。
Step 6:
到GCP network點選VPC network peering,並create connection
Step 7:
Name: 請取符合你使用目的的名稱,命名規則取決您公司的管理規則
Your VPC network: 請選擇在這個project裡,哪一個VPC要跟MongoDB連接
Peered VPC network: 請選擇 in another project,之後底下的Project / VPC network name我們將剛才在Atlas記下的資訊填入.
Step 8:
大約等待10分左右,你會看到兩邊的服務VPC peering狀態是Active的
Step 9:
由於VPC peering只是網路的路由有交換到,網路真的要連線就必須再設定網火牆的部分。ㄧ般來說通常都是Application access to Database,所以我們需要再Atlas上設定防火牆規則,讓GCP的內的Application可以連到MongoDB的網段。這裡我們要回到MongoDB的介面,到Network Access的IP Whitelist(如圖一),之後填上要連線到MongoDB的網段(如圖二)。網段的部分可以不用完全跟GCP的VPC網段一樣。完成後就可以看到如圖三的畫面。
Step 10:
測試連線
在這裡我們開啟一台Ubuntu的VM是在與MongoDB peering的GCP VPC內.
回到MongoDB cluster(如下圖一), 點選connect會show出如下圖二的連接方式。由於我們是用GCE來做測試,所以選擇Connect with MongoDB Shell.
下載Mongodb的shell並安裝在該台GCE上並進行連線測試。
Step 12: 確認連線
從該台 GCE看到成功進到MongoDB的cluster