共用方式為


了解網路應用程式工作負載的平台差異

在將範例網頁應用程式遷移到 Azure 之前,務必對 AWS 與 Azure 平台的操作差異有紮實的理解。

本文將介紹這些工作量的一些關鍵概念,並提供更多資源連結以獲取更多資訊。 欲全面比較 Azure 與 AWS 服務,請參見 AWS 與 Azure 服務比較

部署

AKS 和 EKS 都提供多種選項,讓 Azure 和 AWS 上部署受管 Kubernetes 叢集。 這些選項包括基於第三方系統或開源技術的原生解決方案與配置解決方案。

部署選項 EKS AKS
Portal AWS 管理控制台 Azure 入口網站
原生基礎設施即程式碼 AWS CloudFormation BicepAzure 資源管理器(ARM)
原生CLI AWS CLIEKS CLI Azure CLIAzure Developer CLI, and PowerShell
Terraform EKS模組 AzureRM 提供者
Pulumi EKS 群組 AKS ManagedCluster
Crossplane 是的 是的
叢集 API 是的 是的

Azure CLI 的設計注重簡便與易用性。 你可以用一個指令建立、升級或刪除叢集。 這種簡化的方式降低了在 Azure 上管理 Kubernetes 叢集的複雜度。 欲了解更多資訊,請參閱 az aks 指令。 相較之下,EKS CLI 採用較手動的方式,需多步驟配合使用 kubectl。

監測

有效的監控對於識別並解決 Kubernetes 叢集中的問題至關重要。 以下資訊說明了AKS與EKS如何進行監控:

監控選項 EKS AKS
原生監控 亞馬遜 CloudWatch Azure 監視器
管理普羅米修斯與格拉法納 Amazon 管理的 Prometheus 服務Amazon 管理的 Grafana 適用於 Prometheus 的 Azure 監視器受管理服務Azure 受控 Grafana
Datadog 是的 是的
Dynatrace 是的 是的

支援開源專案

AKS 與 EKS 皆支援開源專案,讓您能運用更多功能與功能。 AKS 為 KEDA 與 Karpenter 提供以下詳細說明的託管能力。

開源專案 EKS AKS
Kubernetes 事件驅動自動縮放(KEDA) 是的 是的
卡彭特 是的 節點自動配置AKS Karpenter 供應商

負載平衡

Azure Application Gateway for ContainersAWS Application Load Balancer 是 Microsoft Azure 與 Amazon Web Services 分別提供的兩款熱門第七層負載平衡解決方案。 這些服務在將進來的網路流量分配到多台伺服器上扮演關鍵角色,以確保應用程式的高可用性與效能提升。

AWS 應用程式負載平衡器

AWS 應用負載平衡器(ALB)是亞馬遜網路服務(AWS)中彈性負載平衡的一個元件。 ALB 確保流量僅導向健康的目標物,並隨著流量的增加而擴展。 它支援多種負載平衡器,包括應用負載平衡器、網路負載平衡器、閘道器及經典負載平衡器。

適用於容器的 Azure 應用程式閘道

Azure Application Gateway for Containers 是一款第 7 層網頁流量區域負載平衡器,讓客戶能管理多個下游網頁應用程式及 REST API 的入站流量。 Azure 容器應用閘道旨在優化網頁應用程式的交付,並透過如 Azure 網頁應用程式防火牆Azure Kubernetes Service (AKS) 等功能來增強安全性。 它將進來的應用程式流量分配到多個後端池,包括公有與私有的 Azure 負載平衡器Azure 虛擬機(VM)、Azure 虛擬機規模集(VMSS)、主機名稱、Azure App Service 以及本地/外部伺服器。

比較 Azure Application Gateway for Containers 與 AWS ALB

Azure Application GatewayAWS Application Load Balancer 提供相當的功能集。 下表為解決方案提供比較:

Feature Azure Application Gateway for Containers AWS 應用程式負載平衡器
安全套接層(SSL/TLS)終止 Supported Supported
Autoscaling Supported Supported
區域備援 Supported Supported
Web 應用程式防火牆 Supported Supported
入口控制器 Supported Supported
URL 型路由 Supported Supported
多網站裝載 Supported Supported
Redirection Supported Supported
工作階段親和性 Supported Supported
WebSocket 與 HTTP/2 流量 Supported Supported
雙向 TLS 驗證 Supported Supported
清空連線 Supported Supported
重寫 HTTP 標頭和 URL Supported 支援 AWS WAF

Web 應用程式防火牆

確保網頁應用程式的安全對於防範不斷演變的網路威脅至關重要。 完全託管的網路應用防火牆服務為網路應用程式提供強大的防護,防止威脅與惡意攻擊。

AWS 網路存取防火牆(WAF)

AWS 網頁存取防火牆(WAF) 是一種網頁應用程式防火牆,用來監控對您網頁應用程式的 HTTP 和 HTTPS 請求。 它保護多個 AWS 資源,包括透過 AWS 應用負載平衡器(AWS)暴露的資源。

Azure Web 應用程式防火牆 (WAF)

Azure Web Application Firewall(WAF) 提供集中式保護網路應用程式,防止常見的漏洞與漏洞。 WAF 可透過 Microsoft 的 Azure Application Gateway for ContainersAzure Front DoorAzure Content Delivery Network(CDN) 服務部署。

Azure WAF 內建預設、平台管理的 OWASP(Open Web Application Security Project)規則集 ,能防範各種攻擊,包括跨站腳本與 SQL 注入。 作為 WAF 管理員,您可以自行撰寫 自訂規則 ,以強化核心規則集(CRS)規則。 Azure WAF 也支援 一套機器人防護規則集 ,你可以用來防止惡意機器人爬取、掃描並尋找你網頁應用程式中的漏洞。 Azure WAF 可配置為以下兩種模式:

  • 偵測模式:監控並記錄所有威脅警報。 您可以在「診斷」區段中啟用「適用於容器的應用程式閘道」的記錄診斷功能。 您也必須確保已選取並開啟 WAF 記錄。 網頁應用程式防火牆在偵測模式下不會阻擋來電請求。
  • 預防模式:阻擋規則偵測到的入侵與攻擊。 攻擊者會收到「403 未經授權存取」例外狀況,且連線會關閉。 預防模式會將這類攻擊記錄在 WAF 記錄中。

Azure Web 應用程式防火牆 (WAF) 監視與記錄是透過記錄來提供,以及透過與 Azure 監視器及 Azure 監視器記錄整合來提供。 你可以將 Azure Application Gateway for ContainersAzure Front DoorAzure Content Delivery Network(CDN) 配置為使用 Azure Web Application Firewall(WAF), 並將診斷日誌和指標儲存到 Log Analytics 工作空間。 你可以使用 Azure Monitor Metrics Explorer 分析 Azure WAF 指標,並使用 Kusto 查詢語言 ,針對 Log Analytics 工作區收集的診斷日誌建立並執行查詢。

後續步驟

欲了解更多AKS與EKS差異的資訊,請參閱以下文章:

貢獻者們

本文由 Microsoft 維護。 本書最初由以下貢獻者撰寫:

主要作者:

其他貢獻者: