Amazon Elastic Container Service 常見問答集
一般問題
問:什麼是 Amazon Elastic Container Service?
Amazon Elastic Container Service (ECS) 是可高度擴展的高效能容器管理服務,可支援 Docker 容器,並讓您在 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體的受管叢集上輕鬆執行應用程式。使用 Amazon ECS,就不再需要安裝、操作、擴展自己的叢集管理基礎設施。只需進行簡單的 API 呼叫,便可以啟動和停止啟用容器的應用程式,查詢叢集的完整狀態,使用許多熟悉的功能,包括安全群組、Elastic Load Balancing、Amazon Elastic Block Store (EBS) 磁碟區和 Identity Access Management (IAM) 角色。您可以使用 Amazon ECS 來根據資源需求及可用性需求,在叢集排程容器的放置。還可以整合自己的排程器或第三方排程器,以符合商業或應用程式的特定要求。
問:為什麼應該使用 Amazon ECS?
使用 Amazon ECS,您將不再需要安裝、操作、擴展自己的叢集管理基礎設施,讓您可輕鬆地使用容器,將其作為應用程式的建構區塊。Amazon ECS 讓您可以使用 Docker 容器來排程長時間執行的應用程式、服務和批次處理。Amazon ECS 維持應用程式的可用性,讓您擴展或縮減容器來符合應用程式的容量需求。Amazon ECS 整合了您熟悉的功能,包括 Elastic Load Balancing、EBS 磁碟區、Amazon Virtual Private Cloud (VPC) 和 IAM。簡單的 API 讓您可以整合並使用自己的排程器,或將 Amazon ECS 連接到現有的軟體交付程序。
問:Amazon ECS 的定價為何?
使用 Amazon ECS 不會收取其他費用。您需支付為存放和執行應用程式所建立的 AWS 資源 (例如,Amazon EC2 執行個體或 EBS 磁碟區) 的費用。您只需在使用時按實際用量付費;既沒有最低費用,也無需前期承諾。
問:Amazon ECS 與 AWS Elastic Beanstalk 有什麼區別?
AWS Elastic Beanstalk 是一個應用程式管理平台,可協助客戶輕鬆部署和擴展 Web 應用程式和服務。其讓使用者無須費心於佈建建置組塊 (例如 EC2、Amazon RDS、Elastic Load Balancing、AWS Auto Scaling、Amazon CloudWatch)、部署應用程式以及監控運作狀態,只需專注於撰寫程式碼。您只需指定要部署的容器映像、CPU 和記憶體需求、連接埠映射和容器連結。
Elastic Beanstalk 將自動處理所有細節,例如佈建 Amazon ECS 叢集、平衡負載、自動調整規模、監控以及在叢集中放置容器。如果您希望利用容器的各種優勢,並想透過上傳容器映像,簡化從開發到生產等部署應用程式的程序,則 Elastic Beanstalk 是非常理想的選擇。如果您需要對自訂應用程式架構進行更多精確的控制,則可以直接使用 Amazon ECS。
問:Amazon ECS 與 AWS Lambda 有什麼區別?
Amazon ECS 是可高度擴展的 Docker 容器管理服務,可讓您執行和管理在 Docker 容器中執行的分散式應用程式。而 AWS Lambda 是一種事件驅動型任務運算服務,可執行程式碼來回應「事件」(例如,資料變更、網站點擊) 或其他 AWS 服務中的訊息,而您無須管理任何運算基礎設施。
使用 Amazon ECS
問: Amazon ECS 是否支援任何其他容器類型?
否。Amazon ECS 目前只支援 Docker 容器平台。
問:我想啟動容器。為什麼必須啟動任務?
Docker 鼓勵您將應用程式分成單一元件,而且 Amazon ECS 針對此模式進行了優化。任務可讓您定義一組您想將其置放在一起 (或相同置放決策的一部分) 的容器、其屬性以及可能的連結方式。任務包括 Amazon ECS 做出置放決策所需的所有資訊。要啟動單一容器,您的任務定義應只包含一個容器定義。
問:Amazon ECS 是否支援應用程式和服務?
是。Amazon ECS 服務排程器可以管理長時間執行的應用程式和服務。使用服務排程器可協助您維持應用程式的可用性,讓您擴展或縮減容器來符合應用程式的容量需求。服務排程器讓您可以使用 Elastic Load Balancing (ELB) 在各個容器間分配流量。Amazon ECS 將自動從關聯的負載平衡器中註冊和取消註冊您的容器。
服務排程器也會自動恢復運作狀態不佳 (即 ELB 運作狀態檢查失敗) 的容器或停止執行,以確保您擁有所需數量的運作狀態良好的容器來支援應用程式。
變更您希望服務執行的容器數量,可以擴展和縮減應用程式的規模。變更應用程式的定義或使用新的映像可以更新應用程式。排程器將自動啟動使用新定義的新容器並停止執行舊版本的容器 (如果使用 ELB,則會等待 ELB 連接耗盡)。
問:Amazon ECS 是否支援動態連接埠映射?
是。對於 ELB 服務,可以將 Amazon ECS 上的服務與 Application Load Balancer (ALB) 建立關聯。ALB 支援包含一組執行個體連接埠的目標群組。您可以在 ECS 任務定義中指定動態連接埠,這麼做可為 EC2 執行個體上排程的容器提供一個未使用的連接埠。ECS 排程器會自動將任務新增到 Application Load Balancer 上使用該連接埠的目標群組。
問:Amazon ECS 是否支援批次任務?
是。您可以使用 Amazon ECS Run 任務一次執行一個或多個任務。Run 任務在符合任務要求 (包括 CPU、記憶體和連接埠) 的執行個體中開始執行任務。
問:是否能對 Amazon ECS 使用自己的排程器?
ECS 提供 Blox,這是用於容器管理和協調的開放原始碼專案集合。Blox 可輕鬆地透過 API 使用 Amazon ECS 的事件、在本機存放叢集狀態以及查詢本機資料存放區。Blox 還包含協助程式排程器,可做為如何使用叢集狀態伺服器的參考。請參閱 Blox GitHub 頁面以進一步了解。
問:如何設定容器執行個體,以從 Amazon Elastic Container Registry 提取?
Amazon ECR 已與 Amazon ECS 整合,讓您可輕鬆存放、執行及管理在 Amazon ECS 執行的應用程式容器映像。您只需要在任務定義中指定 Amazon ECR 儲存庫,並將 AmazonEC2ContainerServiceforEC2Role 連接到您的執行個體。然後 Amazon ECS 就會替應用程式擷取適合的映像。
問:AWS Fargate 和 Amazon ECS 如何搭配使用,還是只要使用 ECS 就可以了?
Amazon ECS 支援 Fargate 技術,客戶可以選擇 AWS Fargate 來啟動他們的容器,無需佈建或管理 Amazon EC2 執行個體。要想在 AWS 上啟動和執行容器,最快的方法就是使用 AWS Fargate。客戶如果想要更好地控制 EC2 執行個體,以便滿足各種合規和監管規定,或者希望能有更多的自訂選項可供選擇,能在不動用 Fargate 的情況下,只借助 ECS 來啟動 EC2 執行個體。
安全與合規
問:Amazon ECS 如何隔離屬於不同客戶的容器?
Amazon ECS 在客戶控制的 Amazon EC2 執行個體中排程要執行的容器,或者利用 AWS Fargate 並同時以 EC2 客戶可使用的相同隔離控制功能和合規設定為基礎來進行建構。您的運算執行個體位於 Virtual Private Cloud (VPC) 中,且包含您指定的 IP 範圍。您可以決定哪些執行個體向網際網路公開,哪些執行個體保持私有狀態。
- 您的 EC2 執行個體使用 IAM 角色來存取 ECS 服務。
- 您的 ECS 任務使用 IAM 角色來存取服務和資源。
- 安全群組和網路 ACL 可讓您控制對您執行個體的入站和出站網路存取。
- 您可以使用行業標準加密的 IPsec VPN 連線,將現有 IT 基礎架構連接至 VPC 中的資源。
- 您可以將您的 EC2 資源佈建為專用執行個體。專用執行個體是為了增加額外的隔離,在單一客戶的專用硬體上執行的 Amazon EC2 執行個體。
問:是否能對容器執行個體套用額外的安全設定和隔離架構?
是。 作為 Amazon EC2 客戶,您擁有對您容器執行個體作業系統 (OS) 的根存取權。您可以擁有作業系統安全設定的擁有權,還可以為安全功能設定其他軟體元件,例如監控、修補程式管理、日誌管理和主機入侵偵測。
問:是否能以不同的安全設定來操作容器執行個體,或者將不同的任務隔離在不同的環境中?
是。您可以使用您選擇的工具設定不同的容器執行個體。透過建構叢集和設定目標啟動,Amazon ECS 允許您控制在不同容器執行個體中放置任務的情況。
問:Amazon ECS 是否支援從私有或內部來源擷取 Docker 影像?
是。客戶可以設定容器執行個體來存取 VPC 中的私有 Docker 影像登錄檔,或是 VPC 外可以存取的登錄檔,例如 Amazon Elastic Container Registry (ECR)。
問:如何為 ECS 任務設定 IAM 角色?
首先,您需要使用 'Amazon EC2 Container Service Task Role’ 服務角色並連接具有所需許可的政策,為任務建立 IAM 角色。當您建立新任務定義或任務定義修訂時,可以從 ’Task Role’ 下拉式清單選取角色或使用 JSON 格式的 ‘taskRoleArn’ 欄位來指定角色。
問:是否可以使用 Amazon ECS 處理受保護醫療資訊 (PHI) 和其他受 HIPAA 管制的工作負載?
可以。Amazon ECS 是 HIPAA 合規服務。若您已與 AWS 簽訂商業夥伴增訂合約 (BAA),可利用 Amazon ECS 使用部署於 AWS Fargate 啟動類型或 Amazon EC2 運算執行個體的 Docker 容器,處理加密的受保護健康資訊 (PHI)。
如需詳細資訊,請參閱我們的 HIPAA 合規頁面。如果打算處理、存放或傳輸 PHI,但尚未與 AWS 簽訂任何 BAA,請聯絡我們取得詳細資訊。
問:是否可以使用 Amazon ECS 處理美國政府管制的工作負載或敏感的受管制非機密資訊 (CUI)?
是。透過使用 AWS GovCloud (US) 區域,Amazon ECS 管理的容器和叢集可透過您的容器滿足敏感資料和受管制工作負載的需求。
如需詳細資訊,請參閱我們的 AWS GovCloud 頁面。
服務水準協議 (SLA)
問:Amazon ECS SLA 能保證什麼?
我們的運算 SLA 保證 Amazon ECS 每個月正常執行時間百分比至少為 99.99%。
問:如何知道自己是否符合 SLA 服務抵扣的資格?
如果您在一個以上的可用區域內執行某項任務,而且在每個月結算週期內,同一個區域每個月的正常執行時間百分比低於 99.99%,則根據運算 SLA,您有資格獲得 Amazon ECS 的 SLA 積分。
如需 SLA 所有條款與條件的完整詳細資訊,以及如何提交索賠的詳細資訊,請參閱運算 SLA 詳細資訊頁面。
開始使用 Amazon ECS