在過去幾年中,IPv6 的採用率持續增長,尤其是在行動網路中。遷移到 IPv6 的主要原因包括:
- IPv4 地址的有限可用性可能會限制向公眾擴充套件面向公眾的 Web 和應用程式伺服器的能力。
- 如果行動網路的 IPv6 使用者的網路流量不需要管理 IPv6 到 IPv4 的轉換,他們將體驗到更好的效能。
- 您可能需要遵守監管規則(例如例如美國的《聯邦採購條例》),才能透過 IPv6 執行特定的網際網路流量。
基於這一原因,我們發現,透過向 Amazon Global Accelerator 新增 IPv6 支援,我們可以幫助改善客戶用來訪問您的應用程式的網路路徑。Global Accelerator 使用 Amazon 全域性網路來路由網路流量,並始終保持較低的資料包丟失、抖動和延遲。Atlassian、New Relic 和 SkyScanner 等客戶已經在使用 Global Accelerator 來提高其應用程式的全球可用性和效能。
亞馬遜雲科技開發者社群(https://dev.amazoncloud.cn?sc_channel=SF)為開發者們提供全球的開發技術資源。這裡有技術文件、開發案例、技術專欄、培訓影片、活動與競賽等。幫助中國開發者對接世界最前沿技術,觀點,和專案,並將中國優秀開發者或技術推薦給全球雲社群。如果你還沒有關注/收藏,看到這裡請一定不要匆匆劃過,點這裡(https://dev.amazoncloud.cn/user/register?show=tab1&sc_channel=SF)讓它成為你的技術寶庫!
Global Accelerator 提供兩個全域性靜態公共 IP來充當應用程式的固定入口點。您可以更新應用程式端點,而無需對 IP 地址進行面向使用者的更改。如果您配置了多個應用程式端點,Global Accelerator 會自動將您的流量重新路由到最近的執行狀況良好的可用端點,以緩解端點故障。
從今天開始,您可以透過 Global Accelerator 將 IPv6 流量路由到在 Amazon 區域中執行的應用程式端點,從而提升網路效能。Global Accelerator 目前支援兩種型別的加速器:雙棧和僅限 IPv4 的加速器。使用雙棧加速器,您將獲得一對 IPv4 和 IPv6 全域性靜態 IP 地址,它們可以同時處理 IPv4 和 IPv6 流量。
對於現有的僅限 IPv4 的加速器,您可以將加速器更新為雙棧,以同時處理 IPv4 和 IPv6 流量。此更新使您的加速器能夠處理 IPv6 流量,並且不會影響加速器提供的現有 IPv4 流量。
支援 IPv6 和 IPv4 流量的雙棧加速器需要在後端使用雙棧端點。例如,應用程式負載均衡器 (ALB) 的 IP 地址型別可以配置為僅 IPv4 或雙棧,從而允許它們同時接受 IPv4 或 IPv6 客戶端連線。目前,支援將雙棧 ALB 作為雙棧加速器的端點。
部署雙棧應用程式
為了測試這個新功能,我需要一個帶有 ALB 入口點的雙棧應用程式。應用程式必須部署在 Amazon Virtual Private Cloud(Amazon VPC)中,並且支援 IPv6 流量。我的賬戶中恰好沒有 IPv6 就緒型 VPC。我可以按照這些說明將僅支援 IPv4 的現有 VPC 遷移到 IPv6,也可以建立支援 IPv6 定址的 VPC。在本文中,我選擇建立一個 VPC。
在Amazon 管理控制檯中,我導航到 Amazon VPC 控制皮膚。我選擇啟動 VPC 嚮導。在嚮導中,我為名稱標籤輸入一個值。此值將用於為 VPC 中的所有資源自動生成名稱標籤。然後,我選擇了關聯 Amazon 提供的 IPv6 CIDR 塊的選項。我將所有其他選項保留為預設值,然後選擇建立 VPC。
不到一分鐘後,VPC 就已準備就緒。我編輯了兩個公有子網的設定,以啟用自動分配 IP 設定,以便為該子網中的新網路介面自動請求公有 IPv4 地址和 IPv6 地址。
現在,我想在此 VPC 中部署應用程式。該應用程式將成為我的加速器的端點。我從CloudFormation 文件的“示例解決方案”部分檢視並下載了 WordPress 可擴充套件且耐用的 Amazon CloudFormation 模板。此模板在 ALB 後面部署了一個完整的 WordPress 網站。Web 層是可擴充套件的,並作為 EC2 自動擴充套件組實施。MySQL 資料庫由 Amazon 關聯式資料庫服務(RDS)管理。
在部署堆疊之前,我編輯了模板以進行一些更改。首先,我新增了一個DBSubnetGrou
資源:
"DBSubnetGroup" : {
"Type": "AWS::RDS::DBSubnetGroup",
"Properties": {
"DBSubnetGroupDescription" : "DB subnet group",
"SubnetIds" : { "Ref" : "Subnets"}
}
},
然後,我將DBSubnetGroupName
屬性新增到DBInstance
資源中。這樣,模板建立的資料庫將部署在與 Web 伺服器相同的子網(和 VPC)中。
"DBSubnetGroupName" : { "Ref" : "DBSubnetGroup" },
最後一項更改是將 IpAddressType
屬性新增到ApplicationLoadBalancer
資源中,以建立具有 IPv6 地址,並且可以與 Global Accelerator 的新雙棧選項一起使用的雙棧負載均衡器。
"IpAddressType": "dualstack",
由於 IpAddressType
設定為 dualstack
,因此堆疊建立的 ALB 也將具有 IPv6 地址,並且可以與 Global Accelerator 的新雙棧選項一起使用。
在 CloudFormation 控制檯中,我建立了一個堆疊並上傳了我剛剛編輯的模板。在模板引數中,我輸入要使用的資料庫使用者和密碼。對於 VpcId 引數, 我選擇了我剛剛建立的 IPv6 就緒型 VPC。對於 Subnets 引數,我選擇同一 VPC 的兩個公有子網。之後,我進入後續步驟並建立堆疊。
幾分鐘後,堆疊建立就完成了。要訪問該網站,我需要開啟負載均衡器的網路訪問許可權。在 EC2 控制檯中,我建立了一個安全組,該安全組允許使用 HTTP 和 HTTPS 協議(埠 80 和 443)進行公開訪問。
我從導航窗格中選擇負載均衡器,然後選擇我的應用程式使用的 ALB。在安全部分中,我選擇編輯安全組,然後新增我剛剛建立的安全組以允許 Web 訪問。
現在,我查詢負載均衡器的雙棧(A 或 AAAA 記錄)DNS 名稱。我開啟瀏覽器並使用 DNS 名稱進行連線以完成 WordPress 的配置。
再次連線到端點時,我看到了我的新(空的)WordPress 網站。
使用同時支援 IPv6 和 IPv4 流量的雙棧加速器
現在,我的應用程式已經準備就緒,我在雙棧 ALB 前面新增了一個雙棧加速器。在 Global Accelerator 控制檯中,我選擇了建立加速器。我輸入了加速器的名稱並選擇了標準加速器型別。
為了透過此加速器同時路由 IPv4 和 IPv6,我為 IP 地址型別選擇了雙棧選項。
然後,我使用 TCP 協議為埠 80 新增了一個偵聽器。
對於該偵聽器,我在部署了應用程式的 Amazon 區域中配置一個端點組。
我為端點型別選擇了應用程式負載均衡器,然後在 CloudFormation 堆疊中選擇了 ALB。
然後,我選擇了建立加速器。幾分鐘後,加速器已完成部署,我有一個雙棧 DNS 名稱,可以根據客戶端使用的網路,使用 IPv4 或 IPv6 訪問 ALB。
現在,我的客戶可以使用 IPv4 和 IPv6 地址,或者更好的是,使用加速器的雙棧 DNS 名稱來連線到 WordPress 網站。如果我的客戶使用前端或移動應用程式連線到 WordPress REST API,我可以使用雙棧 DNS 名稱,這樣客戶端就可以使用他們首選的 IPv4 或 IPv6 路由進行連線。
要了解 Global Accelerator 和 ALB 之間的通訊是否正常,我可以監控新的 FlowsDrop Amazon CloudWatch 指標。此指標表明 Global Accelerator 是否無法透過端點路由 IPv6 流量。例如,如果在建立加速器後將 ALB 的配置更新為僅使用 IPv4,則可能會發生這種情況。
可用性和定價
您可以使用 Amazon 管理控制檯、Amazon Command Line Interface(CLI)和 Amazon 開發工具包配置雙棧加速器。您可以使用雙棧加速器來最佳化對部署在任何商業 Amazon 區域的應用程式的訪問。
不支援協議轉換,無論是 IPv4 到 IPv6,還是 IPv6 到 IPv4 的轉換。例如,Global Accelerator 不允許我使用僅限 IPv4 的 ALB 端點配置雙棧加速器。此外,對於 IPv6 ALB 端點,必須啟用客戶端 IP 保留。
使用雙棧加速器不會產生額外成本。您需要為往返於加速器的流量所使用的主導方向的資料傳輸時數和流量付費。資料傳輸成本取決於客戶的位置和執行應用程式的 Amazon 區域。有關更多資訊,請參閱Global Accelerator 定價頁面。
利用 Amazon Global Accelerator 最佳化客戶訪問應用程式時使用的 IPv6 和 IPv4 網路路徑。
— Danilo
文章來源:https://dev.amazoncloud.cn/column/article/6309a244d4155422a46...