本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Amazon ECS Service Connect 組態概觀
當您使用 Service Connect 時,需要在資源中設定參數。
下表說明了 Amazon ECS 資源的組態參數。
| 參數位置 | 應用程式類型 | 說明 | 必要 |
|---|---|---|---|
| 任務定義 | 用戶端 | 用戶端任務定義中的 Service Connect 沒有可用的變更。 | N/A |
| 任務定義 | 用戶端-伺服器 | 伺服器必須將 name 欄位新增至容器 portMappings 中的連接埠。如需詳細資訊,請參閱portMappings |
是 |
| 任務定義 | 用戶端-伺服器 | 伺服器可以選擇性地提供應用程式協定 (例如 HTTP),以接收其伺服器應用程式 (例如 HTTP 5xx) 的協定特定指標。 |
否 |
| 服務定義 | 用戶端 | 用戶端服務必須新增 serviceConnectConfiguration,才能設定要加入的命名空間。此命名空間必須包含此服務需要探索的所有伺服器服務。如需詳細資訊,請參閱serviceConnectConfiguration。 |
是 |
| 服務定義 | 用戶端-伺服器 | 伺服器服務必須新增 serviceConnectConfiguration,才能設定可從中使用服務的 DNS 名稱、連接埠號碼和命名空間。如需詳細資訊,請參閱serviceConnectConfiguration。 |
是 |
| 叢集 | 用戶端 | 叢集可以新增預設的 Service Connect 命名空間。在服務中設定 Service Connect 時,叢集中的新服務會繼承命名空間。 | 否 |
| 叢集 | 用戶端-伺服器 | 在套用至伺服器服務的叢集中,Service Connect 沒有可用的變更。伺服器任務定義和服務必須設定相應的組態。 | N/A |
Service Connect 的設定步驟概觀
下列步驟概述了如何設定 Service Connect。
重要
-
Service Connect 會在您的帳戶中建立 AWS Cloud Map 服務。透過手動註冊/取消註冊執行個體、變更執行個體屬性或刪除服務來修改這些 AWS Cloud Map 資源,可能會導致應用程式流量或後續部署產生非預期的行為。
-
Service Connect 不支援任務定義中的連結。
-
將連接埠名稱新增至任務定義中的連接埠對映。此外,您可以識別應用程式的第 7 層協定,以取得其他指標。
-
建立具有 AWS Cloud Map 命名空間的叢集、使用共用命名空間,或分別建立命名空間。為簡化組織管理,請建立具有您所需命名空間名稱的叢集,並為該命名空間指定相同的名稱。在這種情況下,Amazon ECS 會使用必要的組態建立新的 HTTP 命名空間。Service Connect 不會使用或建立 Amazon Route 53 中的 DNS 託管區域。
-
設定服務以在命名空間內建立 Service Connect 端點。
-
部署服務以建立端點。Amazon ECS 會將 Service Connect Proxy 容器新增至每項任務,並在 AWS Cloud Map中建立 Service Connect 端點。此容器未在任務定義中設定,而且任務定義可以重複使用而不需要修改,以在相同的命名空間或多個命名空間中建立多個服務。
-
將用戶端應用程式部署為服務,以連線到端點。Amazon ECS 會在每項任務中透過 Service Connect Proxy,將這些應用程式連線至 Service Connect 端點。
應用程式僅使用 Proxy 來連線至 Service Connect 端點。沒有其他設定可使用 Proxy。Proxy 會執行循環配置負載平衡、異常值偵測和重試。如需 Proxy 的詳細資訊,請參閱 Service Connect Proxy。
-
透過 Amazon CloudWatch 中的 Service Connect Proxy 監控流量。
叢集組態
您可以在建立或更新叢集時為 Service Connect 設定預設命名空間。您指定為預設的命名空間名稱可以位於相同的 AWS 區域 和 帳戶中,也可以位於相同的 中 AWS 區域 ,並由另一個 AWS 帳戶 使用 共用 AWS Resource Access Manager。
如果您建立叢集並指定預設的 Service Connect 命名空間,則叢集會在 Amazon ECS 建立命名空間時在 PROVISIONING 狀態中等待。您可以看到 attachment 所處的叢集狀態顯示命名空間的狀態。根據預設,附件不會顯示在 中 AWS CLI,您必須新增 --include ATTACHMENTS才能查看。
如果您想要使用 與 AWS 帳戶 共用的命名空間 AWS RAM,請在叢集組態中指定命名空間的 Amazon Resource Name (ARN)。如需共用 AWS Cloud Map 命名空間的詳細資訊,請參閱 搭配共用 AWS Cloud Map 命名空間使用 Amazon ECS Service Connect。
服務組態
Service Connect 針對最低組態要求而設計。您必須為要在任務定義中與 Service Connect 搭配使用的每個連接埠映射設定名稱。在 服務中,您需要開啟 Service Connect,然後選取 中的命名空間 AWS 帳戶 或共用命名空間,以建立用戶端服務。若要建立用戶端-伺服器服務,您需要新增符合其中一個連接埠映射名稱的單一 Service Connect 服務組態。Amazon ECS 會重複使用任務定義中的連接埠號碼和連接埠名稱,以定義 Service Connect 服務和端點。若要覆寫這些值,您可以在主控台中使用 Discovery (探索)、DNS 和 Port (連接埠) 等其他參數,或分別在 Amazon ECS API 中使用 discoveryName 和 clientAliases。
初始運作狀態檢查組態
Service Connect 可在將流量路由至任務之前確保任務的運作狀態良好。當任務啟動時 (在部署、擴展或取代期間),Service Connect 會監控任務的運作狀態,以確保已準備好接受流量。您必須定義任務定義中必要容器的運作狀態檢查,才能啟用此行為。
當任務準備好接受流量時,初始運作狀態檢查的行為會考量到達到 狀態的潛在延遲:
-
如果任務是
HEALTHY,則立即可供流量使用。 -
如果任務的運作狀態為
UNKNOWN,則 Service Connect 會遵循任務基本容器的容器運作狀態檢查組態 (請參閱 運作狀態檢查) 來計算逾時,最多可達8 minutes,再將其提供給流量使用,即使它仍為UNKNOWN。 -
如果任務是
UNHEALTHY,Service Connect 會延遲高達 的流量路由8 minutes。在此期間,Amazon ECS 可能會啟動替代任務。如果沒有運作狀態良好的任務,您的部署可能會根據服務的組態復原。
對於所有持續的流量,Service Connect 會根據極端值偵測使用被動運作狀態檢查,以有效率地路由流量。