在上篇 「DAY10 雲端基礎章-VPC 基礎概念篇」 中,介紹 AWS 的網路服務 VPC (Virtual Private Cloud, 虛擬私有雲),了解它的基本組成與概念,為後續的實作鋪路。
本篇我們來實際盤點一下「本章節」會使用到的 AWS 服務,需要建立什麼樣的 VPC 網路環境,接著來實際建立。
其他章節的服務應用,將於後續再陸續建立
10.0.0.0/16
Private Subnet A:10.0.1.0/24
Private Subnet B:10.0.2.0/24
Private Subnet C:10.0.3.0/24
👉 設計重點:全部子網路都是私有子網 (Private Subnet),不會對外開放 Public IP。
為了讓 Private Subnet 內的 Lambda 能與 AWS 服務安全互通,需要建立以下 VPC Endpoints:
👉 設計重點:
若沒有建立 Endpoint,Private Subnet 內的 Lambda 無法正確存取 S3。
10.0.0.0/16
→ local(VPC 內部流量)pl-xxxxxx
(S3 Prefix List)→ S3 Gateway Endpoint0.0.0.0/0
→ NAT Gateway(選配,僅當 Lambda 需要安裝外部套件時才使用)👉 設計重點:
若只是 S3、EventBridge、Lambda 內部互通,不需要 NAT Gateway;但若 Lambda 要存取外部 API,則必須建立 NAT Gateway。
👉 設計重點:
Security Group 應該採用「最小權限原則」,只允許 Lambda 與必要的 AWS 服務互通。
還記得我們說過不應該使用 Root 帳號做更多的操作嗎?
所以本篇我們將使用 Joe 使用者來做建立,此使用者繼承的 Group 權限是 Admin 權限,所以可以用來建置 VPC 環境,接著請先依照 Day9 所介紹的登入方式,來登入使用者Joe
吧!
Step1:尋找 VPC 服務
Step2:進入 VPC 儀板表頁面後,可以看到已經有很多預設正在運行的服務,但我們不使用預設的,我們要額外做建立,接著我們點擊「VPC」進入設定頁面
Step3:可以看到有一個預設的 VPC 已經有指派 Private IP,我們要額外建立,請點選右上角的「建立 VPC」
Step4:接著依照我們上方規劃的內容建立 VPC Name 和填寫 CIDR
Step6:完成 VPC 的建置後,接著我們要來建立子網路,點選左邊的「子網路」頁籤
Step7:進入「子網路」頁面後,可以看到有預設好的 Subnet,但我們一樣要建立自己環境的子網路,接著點選右上角的「建立子網路」
Step8:選擇剛剛建立的 VPC:andy_ironman,然後開始分別新增所需的三個子網路,完成後點選「建立子網路」
首先要選擇剛剛建立好的 VPC
接著分別建立 andy_ironman_subnet_a
andy_ironman_subnet_b
andy_ironman_subnet_c,當你確認三個都新增完後,點選右下角的「建立」按鈕
Step9:完成建立後,我們回到子網路頁面即可以看到剛剛建立的三個子網路
Step10:接著我們要來建立 Route Table,一樣於左邊頁籤,點選「路由表」
Step11:進入路由表頁面後,我們會看到一個預設的路由表,但我們不使用他,一樣點選右上「建立路由表」來建新的路由表
Step12:一樣做命名與選擇剛剛建立的 VPC,然後點選右下角的「建立路由表」即可
Step13:完成後即可以看到 Route table 與 VPC 做關聯,以及顯示路由的目的地 IP
Step14:接著我們要來建立子網路的關聯,我們點選同頁面的「子網路關聯」即可跳轉頁面
Step15:進入子網路關聯頁面後,可以看到下方有三個「沒有明確關聯的子網路」,我們需要把它跟 Route Table 做關聯,故點選圖片內步驟 2 的 「編輯子網路關聯」
Step16:我們先點選下圖序號 1 的全選按鈕,接著確認下方都有被選擇後,點選序號 2 的「儲存關聯」按鈕來完成子網路的關聯
Step17:可以看到 Route Table 已完成了跟子網路的關聯
Step18:接著我們要來建立需使用的 Endpoint,一樣於左邊的清單找到「端點」點擊後進入頁面
Step19:端點並無預設內容,於是我們就直接針對要使用的服務,來建立他們連結的端點,一樣於右上角點選「建立端點」進入頁面
Step20:首先我們先來建立 S3 Endpint (Gateway),透過搜尋「S3」尋找對應的 Endpoint
選擇剛剛建立的 VPC 和 Route Table,政策預設即可
確認選擇完畢後,一樣點選右下角的「建立端點」按鈕即可
回到頁面後,記得在確認一次你選擇的是 S3 Gateway 不是 instance,即完成 S3 Endpoint 的建立
Step21:最後我們回到 Route Table 內確認剛剛建立的 S3 Endpoint 是否有正常顯示
經過以上步驟後,我們即完成了本章節目前所需的 VPC 網路環境建置!
透過 VPC 建置能確保 AWS 服務都能在 Private VPC 中安全運作,並且透過 VPC Endpoint 與 S3、EventBridge 互通。後續我們會在這個架構中加入 Glue、Athena、Lake Formation、QuickSight,形成完整的資料湖環境。
下篇我們將進入 「DAY12 雲端基礎章-S3 Data Lakehouse 儲存結構設計」,介紹 Lakehouse 架構下的 S3 該如何做設計。
[1] What is Amazon VPC?
[2] Gateway endpoints for Amazon S3
[3] Configuring a Lambda function to access resources in a VPC
[4] Amazon EventBridge Interface VPC endpoints
[5] Interface VPC endpoints