【手把手教學】如何用 VPN 連接 GCP 和 AWS 兩大雲端平台

如何透過 VPN 串接 GCP 和 AWS 的 VPC

作者:Rick
本文轉載自:Complete Think

接續前一篇 VPC Network:GCP 和 AWS 功能比較 的整理,繼續整理如何透過 VPN 把 GCP 和 AWS 的 VPC 串接起來,形成 Hybrid Cloud 架構。

架構

整個架構圖如下:

圖中的顏色意義:
•  藍色:預先準備好,包含 VPC Networking、CIDR、VM Instance
•  紅色:本文介紹過程中建立的資源與設定
•  紫色:本文介紹過程中,可能需要修改的,像是 Firewall / Security Groups

本文設定過程中, GCP and AWS 網路資訊:
•  GCP VPC Networking:
•  CIDR asia-east1: 10.0.0.0/16
•  VM Instance: 10.1.0.3
•  AWS VPC:
•  Region: N. Virginia (ue-east-1)
    •  VPC CIDR: 172.30.0.0/16
•  Public Subnet: 172.30.3.0/24
    •  EC2 Instance: 172.30.3.94

流程

以下是整個設定流程:
1. GCP: 獲取一個 Public (Static) IP
2. AWS: 建立 Customer Gateway
3. AWS: 建立 Virtual Private Gateway
4. AWS: 建立 VPN Connections
5. GCP: 建立 VPN Connections
6. 確認 VPN Tunnel 狀態
7. 測試

* 註記:”步驟可以跟架構圖的編號對應。”

1. GCP: 獲取一個 Public (Static) IP

到 GCP Console:
1. VPC network -> External IP addresses
2. 點選 Reserve a static address,取得一個 Public (Static) IP。
    •  這邊例子 region 選 asia-east1

設定如下圖:

這個例子取得的 IP 是: 35.185.130.167,記下來,下一個步驟會使用。

2. AWS: 建立 Customer Gateway

到 AWS Console:
1. 到 VPC,確認 Region 正確,這裡是例子是 N. Virginia (us-east-1)
2. 選擇 VPN Connections -> Customer Gateways -> Create Customer Gateway,建立如下圖:
•  Name:填入容易了解的識別名稱
•  Routing:選 Static
•  IP Address:填上一個步驟的 Public IP

設定如下圖:

3. AWS: 建立 Virtual Private Gateway

接續前一個步驟,在 VPC 裡繼續建立 Virtual Private Gateway。選擇 VPN Connections -> Virtual Private Gateway -> Create Virtual Private Gateway
•  Name:填入容易了解的識別名稱
•  ASN:選 Amazon default ASN

設定如下圖:

完成後,把 VGW attached 到 VPC。

到 Route Table 設定需要使用的 Subnet,打開 Route Propagation,Route Table 會自動交換,否則就要自行設定 Route Rules。設定如下圖:

4. AWS: 建立 VPN Connections

接續前一個步驟,在 VPC 裡繼續建立 VPN Connections。選擇 VPN Connections -> VPN Connections -> Create VPN Connections:
•  Name:填入容易了解的識別名稱
•  Virtual Private Gateway: 選擇步驟三的 VPG
•  Customer Gateway:選擇步驟二的 CGW
•  Static IP Prefix: 填入 GCP VPC Networking 的 CIDR,這裡的例子是 10.1.0.0/16
•  Tunnel Options: 讓 AWS 自己產生。

設定如下圖:

建立完成後,在 VPN Connections 裡點選剛剛建立的,然後下載 Download Configuration (.txt),Vender 選擇 Generic 就好,再設定檔立面找到以下資訊,下一個步驟會使用。
•  IPSec Tunnel #1
•  IKE version: IKEv1
•  Pre-Shared Key: _s8_w69MhhEB**************
•  Virtual Private Gateway: 52.7.24.140
•  Tunnel 一般會建立兩個,作為 HA,這邊我只做一個。

設定如下圖:

5. GCP: 建立 VPN Connections

回到 GCP Console 建立 VPN Connections。選擇 Networking -> Hybrid Connectivity -> VPN

VPN Gateway 選擇以下的項目
•  Network
•  Region
•  IP Address: 步驟一建立的 Public (Static) IP

設定如下圖:

VPN Tunnel設定以下,資訊來自於步驟四 VPN Config 裡
•  Remote peer IP Address: VPN Config 的 Virtual Private Gateway,這邊例子是 52.7.24.140
•  IKE Version: VPN Config 的設定,這邊例子是 IKEv1
•  Shared Secret: VPN Config 的設定
•  Routing Options 選擇 Policy-based
    •  Remote network IP ranges: AWS VPC 的 CIDR
    •  選擇 GCP subnetworks

6. 確認 VPN Tunnel 狀態

步驟五設定好的之後存檔,等約五到十分鐘,確認連線狀態,順利的話狀態如下圖:

GCP VPN Tunnels:

AWS VPN Connection:

7. 測試

兩邊機器相互 ping,順利狀態如下:

GCP to AWS:

AWS to GCP:

Troubleshooting

過程中如果有問題,可以依序檢查以下的設定:
•  AWS:
•  VPN Tunnel Status
•  Route Table
•  Network ACLs
•  Security Groups: 可以先開 0.0.0.0/0
•  GCP
•  VPN Tunnel Status
•  Firewall Rules: 增加 0.0.0.0/0 icmp 掛到 VM instance

結論

本文整理如何用 VPN 串接 GCP / AWS 的 VPC,確認技術的可行性,實際上的應用要考慮的更多。

現在 SaaS 越來越流行,很多人會以為 IaaS 不重要,或者忽略。但是企業整體營運還是要面對 IT 基礎設施 (Infrastructure),而最根本的就是 Network Topology  的問題,這些問題包含了 1) 規劃、2) 可控性、3) 執行政策 三個面向,本質上是沒有改變,不會因此而 NoOps。用生活的例子來說:
1. 規劃:公路要先規劃有哪些主幹線、支線,哪些主幹道中哪一些會交錯?
2. 可控性:這些道路可否管控流量?閘道?紅綠燈?單行道?紅綠燈多遠距離設計一個?
3. 執行政策:哪些車可以上快速道路?假日車流如何疏導?活動如何管制車輛?罰款如何?酒駕怎麼辦?

交通建設的技術,會隨時代改變、進步,但是這三個問題不會隨著技術前進而消失,而是會轉化成其他的形式。

會使用 Hybrid Cloud 通常都是要把服務從既有的 Data Center 搬到 Cloud 的中、大型企業,當把服務搬到 Cloud 時,勢必都需要考慮原本的網路和 Cloud Networking 的整合與串接,串好後就會面臨前面提的三個問題。更多相關的經驗,請參考:Plan and Design Multiple VPCs in Different Regions 的分享,未來有機會再整理 GCP VPC Networking 規劃心得。

延伸閱讀

•  Experience GCP
•   Compare GCP VPC Network with AWS
•   Plan and Design Multiple VPCs in Different Regions
•   Ops as Code using Serverless

參考資料

•   Automated Network Deployment: Building a VPN Between GCP and AWS
•   AWS Managed VPN Connections 

 


iKala - GCP 專門家

GCP 專門家,Google Cloud 首席合作夥伴暨代理商,協助逾 200 家企業使用 Google Cloud,客戶廣布遊戲、媒體、數據廣告、電商、金融等多種產業。我們擁有超過 30 位技術人員,更通過 Google 原廠雲端架構師及資料工程師認證,具備第一手 GCP 產品開發及導入經驗,能提供您紮實的客製化技術服務。

我們提供了多項的 GCP 加值服務:

了解更多: https://gcp.expert/
加入我們: https://goo.gl/rg9D3Q
Facebook Fan Page: https://www.facebook.com/gcp.expert/
聯絡我們:+886 2 87681110 或請來信 gcp@ikala.tv