Amazon Elastic Container Service

開始使用

獲得 12 個月的 AWS 免費用量方案,同時享受 AWS 的基本支援功能,包括全年無休的客戶服務、支援論壇等等。


問:什麼是 Amazon Elastic Container Service?
Amazon Elastic Container Service (ECS) 是可高度擴展、高效能的容器管理服務,可支援 Docker 容器,並讓您在 Amazon EC2 執行個體的受管叢集上輕鬆執行應用程式。使用 Amazon ECS,就不再需要安裝、操作、擴展自己的叢集管理基礎設施。只需進行簡單的 API 呼叫,便可以啟動和停止啟用容器的應用程式,查詢叢集的完整狀態,使用許多熟悉的功能,包括安全群組、Elastic Load Balancing、EBS 磁碟區和 IAM 角色。您可以使用 Amazon ECS 來根據資源需求及可用性需求,在叢集排程放置容器。還可以整合自己的排程器或第三方排程器,以符合商業或應用程式的特定要求。

問:為什麼應該使用 Amazon ECS?
使用 Amazon ECS,您將不再需要安裝、操作、擴展自己的叢集管理基礎設施,讓您可輕鬆地使用容器,將其作為應用程式的建構區塊。Amazon ECS 讓您可以使用 Docker 容器來排程長時間執行的應用程式、服務和批次處理。Amazon ECS 維持應用程式的可用性,讓您擴展或縮減容器來符合應用程式的容量需求。Amazon ECS 整合了您熟悉的功能,包括 Elastic Load Balancing、EBS 磁碟區、VPC 和 IAM。簡單的 API 讓您可以整合並使用自己的排程器,或將 Amazon ECS 連接到現有的軟體交付程序。

問:Amazon ECS 的定價為何?
使用 Amazon ECS 不會收取其他費用。您要支付為存放和執行應用程式所建立的 AWS 資源 (例如,EC2 執行個體或 EBS 磁碟區) 的費用。您只需按實際用量付費;既沒有最低費用,也沒有前期承諾。

問:Amazon ECS 與 AWS Elastic Beanstalk 有什麼區別?
AWS Elastic Beanstalk 是一個應用程式管理平台,可協助客戶輕鬆部署和擴展 Web 應用程式和服務。其讓使用者無須費心於佈建建構區塊 (例如 EC2、RDS、Elastic Load Balancing、Auto Scaling、CloudWatch)、部署應用程式以及監控運作狀態,只需專注於撰寫程式碼。您只需指定要部署的容器映像、CPU 和記憶體需求、連接埠映射和容器連結。Elastic Beanstalk 將自動處理所有細節,例如佈建 Amazon ECS 叢集、平衡負載、自動調整規模、監控以及在叢集中放置容器。

如果您希望利用容器的各種優勢,但只想透過上傳容器映像,簡化從開發到生產等部署應用程式的程序,則 Elastic Beanstalk 是非常理想的選擇。如果您需要對自訂應用程式架構進行更多精確的控制,則可以直接使用 Amazon ECS。

問:Amazon ECS 與 AWS Lambda 有什麼區別?
Amazon Elastic Container Service 是可高度擴展的 Docker 容器管理服務,可讓您執行和管理在 Docker 容器中執行的分散式應用程式。而 AWS Lambda 是一種事件驅動型任務運算服務,可執行程式碼來回應「事件」(例如,資料變更、網站點擊) 或其他 AWS 服務中的訊息,而您無須管理任何運算基礎設施。

 

 

 

問:如何開始使用 Amazon ECS?
請瀏覽我們的入門頁面了解有關如何開始使用的更多資訊。

問:Elastic Container Service 是否支援任何其他容器類型?
否。Elastic Container Service 目前只支援 Docker 容器平台。

問:我想啟動容器。為什麼必須啟動任務?
Docker 鼓勵您將應用程式分成單一元件,而且 Elastic Container Service 針對此模式進行了優化。任務可讓您定義一組您想將其置放在一起 (或相同置放決策的一部分) 的容器、其屬性以及可能的連結方式。任務包括 Elastic Container Service 做出置放決策所需的所有資訊。要啟動單一容器,您的任務定義應只包含一個容器定義。

問:Amazon ECS 是否支援應用程式和服務?
是。Amazon ECS 服務排程器可以管理長時間執行的應用程式和服務。使用服務排程器可協助您維持應用程式的可用性,讓您擴展或縮減容器來符合應用程式的容量需求。服務排程器讓您可以使用 Elastic Load Balancing 在各個容器間分配流量。Amazon ECS 將自動從關聯的負載平衡器中註冊和取消註冊您的容器。服務排程器也會自動恢復運作狀態不佳 (ELB 運作狀態檢查失敗) 的容器或停止執行,以確保您擁有所需數量的運作狀態良好的容器來支援應用程式。變更您希望服務執行的容器數量,可以擴展和縮減應用程式的規模。變更應用程式的定義或使用新的映像可以更新應用程式。排程器將自動啟動使用新定義的新容器並停止執行舊版本的容器 (如果使用 ELB,則會等待 ELB 連接耗盡)。

問:Amazon ECS 是否支援動態連接埠映射?
是。對於 Elastic Load Balancing (ELB) 服務,可以將 Amazon Elastic Container Service (ECS) 上的服務與 Application Load Balancer 建立關聯。Application Load Balancer 支援包含一組 instance:ports 的目標群組。您可以在 ECS 任務定義中指定動態連接埠,這麼做可為 EC2 執行個體上排程的容器提供一個未使用的連接埠。ECS 排程器會自動將任務新增到 Application Load Balancer 上使用該連接埠的目標群組。

問:Amazon ECS 是否支援批次任務?
是。您可以使用 Amazon ECS Run 任務一次執行一個或多個任務。Run 任務在符合任務要求 (包括 CPU、記憶體和連接埠) 的執行個體中開始執行任務。

問:是否能對 Amazon ECS 使用自己的排程器?
ECS 提供 Blox,這是用於容器管理和協調的開放原始碼專案集合。Blox 可輕鬆地透過 API 使用 Amazon ECS 的事件、在本機存放叢集狀態以及查詢本機資料存放區。Blox 還包含協助程式排程器,可做為如何使用叢集狀態伺服器的參考。請參閱 Blox GitHub 頁面以進一步了解。

問:是否能使用自己的 AMI?
是。您可以使用符合 Amazon ECS AMI 規格的任何 AMI。我們建議先從啟用 Amazon ECS 的 Amazon Linux AMI 開始使用。您也可以使用與 Amazon ECS 相容的合作夥伴 AMI。您可以檢閱相關文件了解 Amazon ECS AMI 規格。

問:如何設定容器執行個體,以從 Amazon Elastic Container Registry 提取?
Amazon ECR 已與 Amazon ECS 整合,讓您可輕鬆存放、執行及管理在 Amazon ECS 執行的應用程式容器映像。您只需要在任務定義中指定 Amazon ECR 儲存庫,並將 AmazonEC2ContainerServiceforEC2Role 連接到您的執行個體。然後 Amazon ECS 就會替應用程式擷取適合的映像。

問:Amazon ECS 如何隔離屬於不同客戶的容器?
Amazon ECS 在客戶控制的 Amazon EC2 執行個體中排程要執行的容器,同時以 EC2 客戶可使用的相同隔離控制功能和合規性為基礎來進行建構。

  • 您的運算執行個體位於 Virtual Private Cloud (VPC) 中,且包含您指定的 IP 範圍。您可以決定哪些執行個體向網際網路公開,哪些執行個體保持私有狀態。
  • 您的 EC2 執行個體使用 IAM 角色來存取 ECS 服務。
  • 您的 ECS 任務使用 IAM 角色來存取服務和資源。
  • 安全群組和網路 ACL 讓您能控制進入和離開您的執行個體的對內和對外網路存取。
  • 您可以透過產業標準的加密 IPsec VPN 連接,將您現有的 IT 基礎架構關聯到 VPC 中的資源。
  • 您可以將您的 EC2 資源佈建為專用執行個體。專用執行個體是為了增加額外的隔離,在單一客戶的專用硬體上執行的 Amazon EC2 執行個體。

問:是否能對容器執行個體套用額外的安全設定和隔離架構?
是。做為 Amazon EC2 客戶,您擁有對容器執行個體作業系統的根存取權限,讓您在掌控作業系統安全設定的同時還能控制其他軟體元件的載入和設定,以獲得更多安全功能,例如監控、修補程式管理、日誌管理和主機入侵偵測。

問:是否能以不同的安全設定來操作容器執行個體,或者將不同的任務隔離在不同的環境中?
是。您可以使用您選擇的工具設定不同的容器執行個體。透過建構叢集和設定目標啟動,Amazon ECS 允許您控制在不同容器執行個體中放置任務的情況。

問:Amazon ECS 是否支援從私有或內部來源擷取 Docker 影像?
是。客戶可以設定容器執行個體來存取 VPC 中的私有 Docker 影像登錄檔,或是 VPC 外可以存取的登錄檔,例如,Amazon Elastic Container Registry

問:如何為 ECS 任務設定 IAM 角色?
首先,您需要使用 'Amazon EC2 Container Service Task Role’ 服務角色並連接具有所需許可的政策,為任務建立 IAM 角色。當您建立新任務定義或任務定義修訂時,可以從 ’Task Role’ 下拉式清單選取角色或使用 JSON 格式的 ‘taskRoleArn’ 欄位來指定角色。