

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

# 使用 Service Connect 以利用簡稱連線 Amazon ECS 服務
<a name="service-connect"></a>

Amazon ECS Service Connect 提供服務對服務通訊的管理作為 Amazon ECS 組態。其會在 Amazon ECS 中同時建置服務探索和服務網格。這會提供：您透過服務部署管理的每個服務內的完整組態、統一參考未根據 VPC DNS 組態之命名空間內的服務的方式，以及可監控所有應用程式的標準化指標和日誌。Service Connect 僅讓服務互連。

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

![\[顯示最低 HA 服務的範例 Service Connect 網路\]](http://docs.aws.amazon.com/zh_tw/AmazonECS/latest/developerguide/images/serviceconnect.png)


以下術語會與 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 組態。

**端點**  
連線到 API 或網站的 URL。URL 包含協定、DNS 名稱和連接埠。如需一般端點的更多資訊，請參閱 Amazon Web Services 一般參考內*AWS 詞彙表*中的[端點](https://docs.aws.amazon.com/glossary/latest/reference/glos-chap.html#endpoint)。  
Service Connect 可建立與 Amazon ECS 服務連線的端點，並將 Amazon ECS 服務中的任務設定為連線到端點。URL 包含協定、DNS 名稱和連接埠。您可以在任務定義中選取協定和連接埠名稱，因為連接埠必須比對容器映像內的應用程式。在服務中，您可以依名稱選取每個連接埠，並且可以指派 DNS 名稱。如果您未在 Amazon ECS 服務組態中指定 DNS 名稱，則會依預設使用任務定義中的連接埠名稱。例如，Service Connect 端點可以是 `http://blog:80`、`grpc://checkout:8080` 或 `http://_db.production.internal:99`。

**Service Connect 服務**  
Amazon ECS 服務中單一端點的組態。這是 Service Connect 組態的一部分，包含主控台中 **Service Connect and discovery name configuration** (Service Connect 和探索名稱組態) 中的單一列，或是 Amazon ECS 服務 JSON 組態內 `services` 清單中的某個物件。此組態僅供 Amazon ECS Service Connect 使用。  
如需詳細資訊，請參閱 Amazon Elastic Container Service API Reference (《Amazon Elastic Container Service API 參考》) 中的 [ServiceConnectService](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_ServiceConnectService.html)。

**命名空間**  
用於 Service Connect 之 AWS Cloud Map 命名空間的簡短名稱或完整 Amazon Resource Name (ARN)。命名空間必須與 Amazon ECS 服務和叢集位於相同的 AWS 區域 中。中的命名空間類型 AWS Cloud Map 不會影響 Service Connect。命名空間可以是與 中可用 AWS 帳戶 之 using AWS Resource Access Manager (AWS RAM) AWS RAM 共用 AWS 區域 的命名空間。如需有關共用命名空間的詳細資訊，請參閱 *AWS Cloud Map Developer Guide* 中的 [Cross-account AWS Cloud Map namespace sharing](https://docs.aws.amazon.com/cloud-map/latest/dg/sharing-namespaces.html)。  
Service Connect 使用 AWS Cloud Map 命名空間做為彼此通訊的 Amazon ECS 任務邏輯分組。每個 Amazon ECS 服務只能屬於一個命名空間。命名空間內的服務可以分佈到同一 AWS 區域內的不同 Amazon ECS 叢集。如果命名空間是共用命名空間，則服務可以分佈到命名空間擁有者與命名空間取用者 AWS 帳戶。您可以根據任何條件隨意組織服務。

**用戶端服務**  
執行網路用戶端應用程式的服務。此服務必須設定命名空間。服務中的每個任務都可以透過 Service Connect Proxy 容器探索，並連線到命名空間中的所有端點。  
如果任務中任何容器需要從命名空間中的服務連線到端點，請選擇用戶端服務。如果前端、反向 Proxy 或負載平衡器應用程式透過其他方法 (例如 Elastic Load Balancing) 接收外部流量，則可使用此類型的 Service Connect 組態。

**用戶端-伺服器服務**  
執行網路或 Web 服務應用程式的 Amazon ECS 服務。此服務必須具有命名空間，並且至少已設定一個端點。您可以使用端點連上服務中的每項任務。Service Connect Proxy 容器會接聽端點名稱和連接埠，以將流量引導至任務中的應用程式容器。  
如果有任何容器在連接埠上公開並接聽網路流量，請選擇用戶端-伺服器服務。這些應用程式不需要連線至同一命名空間中的其他用戶端-伺服器服務，但仍需設定用戶端組態。後端、中介軟體、業務層或大多數微服務都可以使用這種類型的 Service Connect 組態。如果您希望前端、反向 Proxy 或負載平衡器應用程式接收來自相同命名空間中使用 Service Connect 設定的其他服務流量，則這些服務應使用此類型的 Service Connect 組態。

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

Service Connect 適用於相同命名空間內 Amazon ECS 服務之間的連線。對於下列應用程式，您需要使用額外的互連線方法，才能連線到使用 Service Connect 設定的 Amazon ECS 服務：
+ 在其他命名空間中設定的任務
+ 未針對 Service Connect 設定的任務
+ Amazon ECS 以外的其他應用程式

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

若要讓這些應用程式解析 Amazon ECS 任務的 IP 位址，則需使用其他互連方法。

**Topics**
+ [定價](#service-connect-pricing)
+ [Amazon ECS Service Connect 元件](service-connect-concepts-deploy.md)
+ [Amazon ECS Service Connect 組態概觀](service-connect-concepts.md)
+ [具有共用 AWS Cloud Map 命名空間的 Amazon ECS Service Connect](service-connect-shared-namespaces.md)
+ [Amazon ECS Service Connect 存取日誌](service-connect-envoy-access-logs.md)
+ [加密 Amazon ECS Service Connect 流量](service-connect-tls.md)
+ [使用 設定 Amazon ECS Service Connect AWS CLI](create-service-connect.md)

## 定價
<a name="service-connect-pricing"></a>
+ Amazon ECS Service Connect 定價取決於您使用 AWS Fargate 或 Amazon EC2 基礎設施來託管容器化工作負載。在 AWS Outposts上使用 Amazon ECS 時，定價直接採用與您使用 Amazon EC2 時所用的相同模型。如需詳細資訊，請參閱 [Amazon ECS 定價](https://aws.amazon.com/ecs/pricing)。
+ 使用 Amazon ECS Service Connect 無需額外付費。
+ Service Connect 使用 AWS Cloud Map 時，用量不收取額外費用。
+ 客戶需支付 Amazon ECS Service Connect 使用的運算資源費用，包括 vCPU 與記憶體。由於 Amazon ECS Service Connect 代理程式在客戶任務內執行，因此執行無需額外費用。任務資源會在客戶工作負載與 Amazon ECS Service Connect 代理程式之間共用。
+ 搭配 使用 Amazon ECS Service Connect 流量加密功能時 AWS 私有 CA，客戶會為他們建立的私有憑證授權機構和每個發行的 TLS 憑證付費。如需更多詳細資訊，請參閱 [AWS 私有憑證授權單位 定價](https://aws.amazon.com/private-ca/pricing/)。若要預估 TLS 憑證的每月成本，客戶需要知道已啟用 TLS 的 Amazon ECS 服務數量，將其乘以憑證成本，然後再乘以六。由於 Amazon ECS Service Connect 每五天自動輪換 TLS 憑證，因此每項 Amazon ECS 服務平均每月會發行六個憑證。