本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
架構您的 Amazon ECS 解決方案
下圖顯示應用程式生命週期及其如何與 Amazon ECS 元件搭配使用。

您必須建構您的應用程式,以便它們可以在容器上執行。容器是軟體開發的標準化單元,可容納軟體應用程式執行所需的所有一切。這包括相關代碼、執行時間、系統工具和系統庫。容器依據稱為映像的唯讀範本而建立。映像通常由 Dockerfile 建立。Dockerfile 是純文字檔案,其中包含建置容器的指示。建置後,這些映像會存放在登錄檔(如 Amazon ECR) 中,可供下載。
建立並儲存映像後,您可以建立 Amazon ECS 任務定義。任務定義是您應用程式的藍圖。其是一種 JSON 格式的文字檔案,描述了構成應用程式的參數和一個或多個容器。例如,您可以使用其來指定作業系統的映像和參數、要使用的容器、要為您的應用程式開啟的連接埠,以及任務中的容器要使用的資料磁碟區。任務定義可用的特定參數取決於您特定應用程式的需求。
定義任務定義之後,您可以將其部署為叢集上的服務或任務。叢集是在註冊至叢集的容量基礎結構上執行的任務或服務的邏輯群組。
任務是在叢集內將任務定義執行個體化。您可以執行獨立任務,也可以將任務作為服務的一部分執行。您可以使用 Amazon ECS 服務在 Amazon ECS 叢集中同時執行和維護您所需的任務數量。其運作方式為,如果有任何任務因任何原因而出現故障或停止,Amazon ECS 服務排程器就會根據您的任務定義啟動另一個執行個體。這樣就可以取代該任務,從而在服務中保持所需的任務數量。
容器代理程式在 Amazon ECS 叢集內的每個容器執行個體上執行。代理程式會將目前正在執行的任務和您容器的資源使用率的相關資訊傳送至 Amazon ECS。只要接收到 Amazon ECS 的請求即開始和停止任務。
部署任務或服務後,您可以使用下列任何工具來監控部署和應用程式:
-
CloudWatch
-
執行期監控
容量
容量是容器執行所在的基礎設施。以下是選項:
-
Amazon EC2 執行個體
-
無伺服器 (AWS Fargate)
-
內部部署虛擬機器或伺服器
您可以在建立叢集時指定基礎設施。您也可以在註冊任務定義時指定基礎設施類型。任務定義將基礎設施稱為「啟動類型」。當您執行獨立任務或部署服務時,您也可以使用 啟動類型。如需啟動類型選項的相關資訊,請參閱 Amazon ECS 啟動類型。
服務端點
服務端點是您用來以程式設計方式使用網際網路通訊協定第 4 版 (IPv4) 或網際網路通訊協定第 6 版 (IPv6) 連線至服務的 Amazon ECS 進入點 URL。根據預設,您透過程式設計方式連線到 Amazon ECS 的請求會使用僅支援 IPv4 請求的服務端點。若要使用 IPv4 或 IPv6 請求以程式設計方式與 Amazon ECS 連線,您可以使用雙堆疊端點。如需使用雙堆疊端點的資訊,請參閱 使用 Amazon ECS 雙堆疊端點。
聯網
AWS 資源是在子網路中建立的。當您使用 EC2 執行個體時,Amazon ECS 會在您建立叢集時指定的子網路中啟動執行個體。您的任務會在執行個體子網路中執行。對於 Fargate 或內部部署虛擬機器,您可以在執行任務或建立服務時指定子網路。
根據您的應用程式,子網路可以是私有或公有子網路,子網路可以位於下列任何 AWS 資源中:
-
可用區域
-
本機區域
-
Wavelength 區域
-
AWS 區域
-
AWS Outposts
如需詳細資訊,請參閱 共用子網路、本機區域和 Wavelength 區域中的 Amazon ECS 應用程式 或 上的 Amazon Elastic Container Service AWS Outposts 。
您可以使用下列其中一種方法,讓您的應用程式連線至網際網路:
-
具有網際網路閘道的公有子網路
當您的公有應用程式需要大量頻寬或最低延遲時,請使用公有子網路。適用的案例包括影片串流和遊戲服務。
-
具有 NAT 閘道的私有子網路
當您想要保護容器免於直接外部存取時,請使用私有子網路。適用的案例包括付款處理系統或儲存使用者資料和密碼的容器。
-
AWS PrivateLink
使用 AWS PrivateLink 在 VPCs、 AWS 服務和內部部署網路之間建立私有連線,而不會將您的流量暴露到公有網際網路。
功能存取
您可以使用 Amazon ECS 帳戶設定來存取下列功能:
-
Container Insights
CloudWatch Container Insights 會從您的容器化應用程式和微型服務收集、彙總及總結指標和日誌。指標包含 CPU、記憶體、磁碟和網路這類資源的使用率。
-
awsvpc
中繼線對於某些 EC2 執行個體類型,您可以在新啟動的容器執行個體上提供額外的網路介面 (ENIs)。
-
標記授權
使用者必須具有建立 資源之動作的許可,例如
ecsCreateCluster
。如果在資源建立動作中指定標籤, 會對ecs:TagResource
動作 AWS 執行其他授權,以驗證使用者或角色是否具有建立標籤的許可。 -
Fargate FIPS-140 法規遵循
Fargate 支援聯邦資訊處理標準 (FIPS-140),該標準具體說明了保護敏感資訊的加密模組的安全要求。這是目前的美國和加拿大政府標準,且適用於需要符合聯邦資訊安全管理法案 (FISMA) 或聯邦風險和授權管理計劃 (FedRAMP) 的系統。
-
Fargate 任務淘汰時間變更
您可以設定 Fargate 任務淘汰以進行修補之前的等待期間。
-
雙堆疊 VPC
允許任務透過 IPv4, IPv6 或兩者進行通訊。
-
Amazon Resource Name (ARN) 格式
某些功能,例如標記授權,需要新的 Amazon Resource Name (ARN) 格式。
如需詳細資訊,請參閱使用帳戶設定存取 Amazon ECS 功能。
IAM 角色
IAM 角色是您可以在帳戶中建立的另一種 IAM 身分,具有特定的許可。在 Amazon ECS 中,您可以建立角色,將許可授予 Amazon ECS 資源,例如容器或服務。
有些 Amazon ECS 功能需要 角色。如需詳細資訊,請參閱Amazon ECS 的 IAM 角色。
日誌
記錄和監控是維護 Amazon ECS 工作負載可靠性、可用性和效能的重要層面。以下是可用的選項:
-
Amazon CloudWatch 日誌 - 將日誌路由到 Amazon CloudWatch
-
FireLens for Amazon ECS - 將日誌路由到 AWS 服務或 AWS Partner Network 目的地,以進行日誌儲存和分析。 AWS Partner Network 是一個全球合作夥伴社群,利用計劃、專業知識和資源來建置、行銷和銷售客戶產品。