使用 Service Connect 以短名稱連接 Amazon ECS服務 - Amazon Elastic Container Service

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用 Service Connect 以短名稱連接 Amazon ECS服務

Amazon ECS Service Connect 提供做為 Amazon ECS組態的 service-to-service通訊管理。它在 Amazon 中建置服務探索和服務網格ECS。這可在您由服務部署管理的每個服務內提供完整的組態、在不依賴VPCDNS組態的命名空間內參考服務的統一方式,以及監控所有應用程式的標準化指標和日誌。Service Connect 僅互連服務。

下圖顯示 Service Connect 網路範例,其中 VPC和 2 個服務中有 2 個子網路。在每個子網路中 WordPress 以 1 個任務執行的用戶端服務。執行 MySQL 的伺服器服務,在每個子網路中具有 1 個任務。這兩種服務都具有高度可用性,並且對任務和可用區域問題具有彈性,因為每個服務都會執行分散在 2 個子網路上的多個任務。實心箭頭會顯示從 WordPress 到 My 的連線SQL。例如,從任務中的 WordPress 容器內執行的mysql --host=mysqlCLI命令,其 IP 地址為 172.31.16.1。命令會在 My 的預設連接埠mysql上使用簡短名稱SQL。此名稱和連接埠會在相同任務中連線至 Service Connect Proxy。 WordPress 任務中的代理使用循環配置負載平衡和任何先前異常值偵測中的失敗資訊,來挑選要連線到哪個任務SQL。如圖表中的實心箭頭所示,代理會使用 IP 地址 連接到 MySQL 任務中的第二個代理172.31.16.2。第二個代理會連接到相同任務中的本機 MySQL 伺服器。這兩個代理會報告 Amazon ECS和 Amazon CloudWatch 主控台中圖形中可見的連線效能,以便您能夠以相同方式從各種應用程式取得效能指標。

顯示最低 HA 服務的範例 Service Connect 網路

以下術語會與 Service Connect 搭配使用。

連接埠名稱

將名稱指派給特定連接埠映射的 Amazon ECS任務定義組態。此組態僅供 Amazon ECS Service Connect 使用。

用戶端別名

Amazon ECS服務組態,可指派端點中使用的連接埠號碼。此外,用戶端別名可以指派端點DNS的名稱,覆寫探索名稱。如果 Amazon ECS服務中未提供探索名稱,用戶端別名名稱會覆寫連接埠名稱做為端點名稱。如需端點範例,請參閱端點的定義。可以將多個用戶端別名指派給 Amazon ECS服務。此組態僅供 Amazon ECS Service Connect 使用。

探索名稱

此為選用的中繼名稱,您可以從任務定義為指定的連接埠建立此名稱。此名稱用於建立 AWS Cloud Map 服務。如果未提供此名稱,則會使用任務定義中的連接埠名稱。多個探索名稱可以指派給 Amazon ECS服務的特定連接埠。此組態僅供 Amazon ECS Service Connect 使用。

AWS Cloud Map 服務名稱在命名空間中必須是唯一的。由於此限制,對於每個命名空間中的特定任務定義,如果未提供探索名稱,您只能有一個 Service Connect 組態。

端點

URL 連線至 API或 網站的 。URL 包含通訊協定、DNS名稱和連接埠。如需一般端點的更多資訊,請參閱 Amazon Web Services 一般參考內AWS 詞彙表中的端點

Service Connect 會建立連線至 Amazon ECS服務的端點,並將 Amazon ECS服務中的任務設定為連線至端點。URL 包含通訊協定、DNS名稱和連接埠。您可以在任務定義中選取協定和連接埠名稱,因為連接埠必須比對容器映像內的應用程式。在 服務中,您可以依名稱選取每個連接埠,並指派DNS名稱。如果您未在 Amazon ECS服務組態中指定DNS名稱,預設會使用任務定義的連接埠名稱。例如,Service Connect 端點可以是 http://blog:80grpc://checkout:8080http://_db.production.internal:99

Service Connect 服務

Amazon ECS服務中單一端點的組態。這是 Service Connect 組態的一部分,由 主控台中的 Service Connect 和探索名稱組態中的單一資料列,或 Amazon ECS服務JSON組態中services清單中的一個物件組成。此組態僅供 Amazon ECS Service Connect 使用。

如需詳細資訊,請參閱《Amazon Elastic Container Service API參考ServiceConnectService》中的 。

命名空間

用於 Service Connect 之 AWS Cloud Map 命名空間的簡短名稱或完整 Amazon Resource Name (ARN)。命名空間必須與 Amazon ECS服務和叢集 AWS 區域 位於相同位置。中的命名空間類型 AWS Cloud Map 不會影響 Service Connect。

Service Connect 使用 AWS Cloud Map 命名空間做為彼此通訊的 Amazon ECS任務邏輯群組。每個 Amazon ECS服務只能屬於一個命名空間。命名空間內的服務可以分散到相同 AWS 區域 內的不同 Amazon ECS叢集 AWS 帳戶。您可以依任何條件自由組織服務。

用戶端服務

執行網路用戶端應用程式的服務。此服務必須設定命名空間。服務中的每個任務都可以透過 Service Connect Proxy 容器探索,並連線到命名空間中的所有端點。

如果任務中任何容器需要從命名空間中的服務連線到端點,請選擇用戶端服務。如果前端、反向 Proxy 或負載平衡器應用程式透過其他方法 (例如 Elastic Load Balancing) 接收外部流量,則可使用此類型的 Service Connect 組態。

用戶端-伺服器服務

執行網路或 Web ECS服務應用程式的 Amazon 服務。此服務必須具有命名空間,並且至少已設定一個端點。您可以使用端點連上服務中的每項任務。Service Connect Proxy 容器會接聽端點名稱和連接埠,以將流量引導至任務中的應用程式容器。

如果有任何容器在連接埠上公開並接聽網路流量,請選擇用戶端-伺服器服務。這些應用程式不需要連線到相同命名空間中的其他用戶端伺服器服務,但需要用戶端組態。後端、中介軟體、商業層或大多數微服務都可以使用這種類型的 Service Connect 組態。如果您希望前端、反向 Proxy 或負載平衡器應用程式接收來自相同命名空間中使用 Service Connect 設定的其他服務流量,則這些服務應使用此類型的 Service Connect 組態。

Service Connect 功能會建立相關服務的虛擬網路。您可以跨多個不同的命名空間使用相同的服務組態,以執行獨立但相同的應用程式集合。Service Connect 定義 Amazon ECS服務中的代理容器。如此一來,您可以使用相同的任務定義,在具有不同 Service Connect 組態的不同命名空間中執行相同的應用程式。服務執行的每個任務都會在任務中執行代理容器。

Service Connect 適用於相同命名空間內 Amazon ECS服務之間的連線。針對下列應用程式,您需要使用額外的互連方法,連線至使用 Service Connect 設定的 Amazon ECS服務:

  • 在其他命名空間中設定的任務

  • 未針對 Service Connect 設定的任務

  • Amazon 外部的其他應用程式 ECS

這些應用程式可以透過 Service Connect Proxy 連線,但無法解析 Service Connect 端點名稱。

若要讓這些應用程式解析 Amazon ECS任務的 IP 地址,您需要使用另一個互連方法。

定價

Amazon ECS Service Connect 定價取決於您是否使用 AWS Fargate 或 Amazon EC2基礎設施來託管容器化工作負載。在 ECS 上使用 Amazon 時 AWS Outposts,定價會遵循EC2直接使用 Amazon 時所使用的相同模型。如需詳細資訊,請參閱 Amazon ECS 定價

AWS Cloud Map 當 Service Connect 使用它時,用量完全免費。