本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
從網際網路接收傳入的連線
如果您執行公用服務,則必須接受來自網際網路的輸入流量。例如,您的公用網站必須接受來自瀏覽器的輸入 HTTP 要求。在這種情況下,互聯網上的其他主機也必須啟動到應用程序主機的輸入連接。
解決這個問題的一種方法是在具有公共 IP 地址的公共子網中的主機上啟動容器。不過,我們不建議使用此項目來進行大規模應用程式。對於這些,更好的方法是有一個位於互聯網和應用程序之間的可擴展輸入層。此方法可讓您使用任一AWS在本節中列出的服務作為輸入。
Application Load Balancer
Application Load Balancer 在應用程式層運作。這是開放系統互相連線 (OSI) 模型的第七層。這使得應用程序負載平衡器適用於公共 HTTP 服務。如果您有網站或 HTTP REST API,則 Application Load Balancer 是此工作負載適用的負載平衡器。如需詳細資訊,請參閱「」什麼是 Application Load Balancer?中的Application Load Balancer 使用者指南。

透過此架構,您可以在公用子網路中建立 Application Load Balancer,使其具有公用 IP 位址,並可以接收來自網際網路的輸入連線。當 Application Load Balancer 收到輸入連線,或更具體地說是 HTTP 要求時,它會使用其私人 IP 位址開啟應用程式的連線。然後,它通過內部連接轉發請求。
Application Load Balancer 具有下列優勢。
-
SSL/TLS 終止 — Application Load Balancer 可以維持與用戶端通訊的安全 HTTPS 通訊和憑證。它可以選擇性地終止負載平衡器級別的 SSL 連接,這樣您就不必在自己的應用程序中處理證書。
-
進階路由 — Application Load Balancer 可以有多個 DNS 主機名稱。它還具有先進的路由功能,可根據諸如主機名稱或要求的路徑等度量,將傳入的 HTTP 請求發送到不同的目的地。這表示您可以使用單一 Application Load Balancer 作為許多不同內部服務的輸入,甚至可以在 REST API 的不同路徑上使用微服務。
-
GRPC 的支持和網絡套接字-Application Load Balancer 可以處理不僅僅是 HTTP。它也可以負載平衡 GRPC 和基於網絡插座的服務,具有 HTTP/2 的支持。
-
安全性 — Application Load Balancer 可協助保護您的應用程式免受惡意流量侵害 它包含 HTTP 同步緩和措施等功能,並與 AWS Web 應用程式防火牆 (AWS WAF。AWS WAF可以進一步篩選出可能包含攻擊模式的惡意流量,例如 SQL 插入或跨網站指令碼。
網路負載平衡器
Network Load Balancer 可在開放系統互相連線 (OSI) 模型的第四層運作。它適用於需要端對端加密的非 HTTP 通訊協定或案例,但不具有 Application Load Balancer 相同的 HTTP 特定功能。因此,Network Load Balancer 最適合不使用 HTTP 的應用程式。如需詳細資訊,請參閱「」什麼是 Network Load Balancer?中的網路負載平衡器使用者指南。

當 Network Load Balancer 用作輸入時,其運作方式與 Application Load Balancer 類似。這是因為它是在公有子網路中建立的,而且具有可在網際網路上存取的公有 IP 地址。然後,Network Load Balancer 器打開到運行容器的主機的私有 IP 地址的連接,並將數據包從公共端發送到私有端。
由於 Network Load Balancer 在網路堆疊的較低層級運作,因此它沒有與 Application Load Balancer 相同的功能集。但是,它確實具有以下重要功能。
-
端對端加密 — 由於 Network Load Balancer 在 OSI 模型的第四層運作,因此不會讀取封包的內容。這使得它適用於需要端對端加密的負載平衡通訊。
-
TLS 加密 — 除了端對端加密之外,Network Load Balancer 也可以終止 TLS 連線。如此一來,您的後端應用程式就不必實作自己的 TLS。
-
UDP 支援 — 由於 Network Load Balancer 在 OSI 模型的第四層運作,因此適用於非 HTTP 工作負載和 TCP 以外的通訊協定。
Amazon API Gateway HTTP API
Amazon API Gateway HTTP API 是一種較少入口的服務器,適合在請求卷或請求卷突然爆發的 HTTP 應用程序。如需詳細資訊,請參閱「」什麼是 Amazon API Gateway?中的API Gateway 開發人員指南。

Application Load Balancer 和 Network Load Balancer 的定價模型包含每小時的價格,可讓負載平衡器隨時接受傳入連線。相較之下,API Gateway 會分別收取每個要求的費用。這樣的效果是,如果沒有請求進來,則不會收取任何費用。在高流量負載下,Application Load Balancer 或 Network Load Balancer 可以以比 API Gateway 更便宜的每個請求價格來處理大量的請求。不過,如果您的整體要求數量很少或流量很低,則使用 API Gateway 的累積價格應該比支付小時費用來維護未充分利用的負載平衡器更具成本效益。
API Gateway 函式使用 VPC 連結,允許AWS受管理服務,使用其私有 IP 位址連線至 VPC 私有子網路內的主機。它可以檢測這些私人 IP 地址,通過查看AWS Cloud Map由 Amazon ECS 服務探索管理的服務探索記錄。
API Gateway 支援下列功能。
-
SSL/TLS 終止
-
將不同的 HTTP 路徑路由到不同的後端微服務
除了上述功能之外,API Gateway 還支援使用自訂 Lambda 授權器,您可以使用這些授權器來保護您的 API 免於未經授權的使用。如需詳細資訊,請參閱「」欄位備註:使用 Amazon ECS 和 Amazon API 閘道的無伺服器容器型 API