問:什麼是 Amazon ECS Anywhere?
Amazon ECS Anywhere 是 Amazon ECS 的一項功能,可讓您在內部部署執行和管理基於容器的應用程式,包括在您自己的虛擬機器 (VM) 和裸機伺服器上。藉由 ECS Anywhere,您無需安裝或操作本機容器協同運作軟體,然後降低營運開銷。ECS Anywhere 提供全受管解決方案,可讓您跨所有環境將容器管理標準化。
問:為什麼應該使用 ECS Anywhere?
作為全受管和可高度擴展的容器協同運作解決方案,Amazon ECS 可讓您輕鬆在不同類型的運算容量 (例如,採用 AWS Fargate 和 AWS Graviton2 技術的執行個體和您自己資料中心的伺服器上) 執行基於容器的應用程式。ECS Anywhere 擴展了 Amazon ECS 的覆蓋範圍,為您的所有基於容器的應用程式提供單一管理界面,而不論它們在何種環境中執行。因此,在涉及叢集管理、工作負載排程,以及雲端和內部部署監控時,您可以取得簡單、一致的體驗。藉由 ECS Anywhere,您無需安裝和維護任何容器協同運作軟體,因此,無需讓團隊了解專業知識領域和不同工具的技能組。ECS Anywhere 可讓您根據需要輕鬆在內部部署環境中執行應用程式,然後隨時按一下即可遷移至雲端。
問:ECS Anywhere 支援哪些平台和作業系統?
您可以將 ECS Anywhere 與任何 VM(例如,在 VMware、Microsoft Hyper-V 或 OpenStack 上執行)或執行支援的作業系統 (OS) 的裸機伺服器一起使用。ECS 代理是允許主機與 ECS 控制平面連線的軟體,受 Amazon Linux 2、Ubuntu、RHEL、SUSE、Debian、CentOS 和 Fedora 的長期支援 (LTS) 版本的支援,並經過測試。
問:如何將內部部署運算與 AWS 連接,以使用 ECS Anywhere?
- 確保 VM/裸機伺服器具有穩定的網際網路連線。
- 登入 ECS 管理主控台並取得啟用金鑰。一鍵可設定,可用於註冊 1 到 1,000 台虛擬機器或裸機伺服器。您可以根據需要建立任意多的啟用金鑰。
- 在虛擬機器/裸機伺服器上安裝輕量型開放原始碼 ECS 代理程式,可在 Github、Docker Hub 及 Amazon Elastic Container Registry Public 上使用。在安裝設定過程中,提供啟用金鑰和 AWS 區域。
完成後,您的伺服器 (或裸機執行個體) 將可用作 ECS 叢集中的運算容量,且可供排定 ECS 任務。
問:我應為內部部署註冊哪個 AWS 區域?
建議您註冊離內部部署運算地理位置最近的 AWS 區域。
問:我如何確保內部部署運算與 AWS 雲端之間的連結是安全的?
依預設,內部部署運算與 AWS 雲端之間的連結是安全的。在 AWS 區域中執行的 ECS 控制平面透過安全連結向安裝在每個註冊服務器上的 ECS 代理傳送指令來協調容器,該代理使用在伺服器註冊時附加到執行個體的 IAM 角色憑證進行身份驗證。因此,您無需採取任何額外的動作。
此外,ECS 代理使用 AWS Systems Manager Agent 自動且安全地在內部部署伺服器和 ECS 控制平面之間建立信任;其與 AWS 之間的連線透過 Transport Layer Security (TLS) 進行加密。
問:哪種類型的資訊從內部部署運算流回 AWS 區域?
僅管理容器所必須的資訊會傳送至 AWS 區域中執行的 ECS 控制平面。例如,關於主機運作狀態、容器活動 (無論啟動還是停止) 和容器運作狀態檢查 (如有設定) 可能會傳送回 AWS 區域。此資訊可讓 AWS 為您提供有關運作狀態和容量的警示,並管理內部部署運算基礎架構上執行的 ECS 任務。容器記憶體的內容、磁碟儲存或網路流量不會傳送至控制平面。
問:我可以在同一個 ECS 叢集上擁有內部部署運算、EC2 執行個體及 Fargate 嗎?
是。這可讓您輕鬆將內部部署上執行的 ECS 工作負載遷移至Fargate 或 EC2 上 AWS 區域中的 ECS。
問:我可以對用於在 Fargate 和/或 EC2 執行個體上執行 ECS 任務的內部部署環境使用相同的 ECS 任務定義嗎?
是。ECS 任務定義是一組必須在同一地點執行的容器的規範。可以建立 ECS 任務定義,以便他們可與內部部署運算、Fargate 和 EC2 相容,所有這些都在單一任務定義中。
問:如果內部部署運算與 AWS 雲端之間的網路連線中斷會發生什麼?
如果內部部署運算上執行的 ECS 代理與區域內 ECS 控制平面之間的網路連線中斷,現有的 ECS 任務將繼續照常執行。如果任務仍可與其他 AWS 服務連線,則它們將繼續與其通訊,只要任務角色憑證已啟用 (預設到期時間為 6 小時)。憑證到期後,任務將無法與其他 AWS 服務通訊,直至重新建立與控制平面的網路連線,這將自動更新登入資料。此外,在中斷連線期間,不會進行任何資料平面變動操作,例如擴大任務或縮減任務。
問:我可以使用 ECS Anywhere 在氣隙/中斷連接的環境中執行容器嗎?
不可以。ECS 提供駐留在 AWS 區域的基於雲端和全受管的容器協同運作解決方案。因此,它需要內部部署運算擁有穩定的網際網路連線,以便與區域內 ECS 控制平面通訊。
問:使用 ECS Anywhere 時,我可以使用哪些其他 ECS 與 AWS 服務的整合?
藉由 ECS Anywhere,您可以為叢集和服務取得 CloudWatch 指標,使用 CloudWatch 日誌驅動程式取得容器日誌,然後存取 ECS CloudWatch Event 串流以監控叢集的事件。您還可以使用任務 IAM 角色和任務執行角色為您的容器化應用程式提供對 AWS 資源的細粒度存取控制。
問:使用 ECS Anywhere 時可以使用哪些第三方解決方案?
ECS Anywhere 使用與雲端中的 ECS 相同的工具,包括 Terraform、Consul、Datadog、Spinnaker、Jenkins 等。
問:是否可以使用 Amazon ECS Anywhere 執行我的 Windows 容器?
是。客戶可以使用 Amazon ECS Anywhere 和他們現有的 Windows Server 授權在內部部署環境中執行 Windows 應用程式。
問:是否可以將現有的 Microsoft Windows 授權與 Amazon ECS Anywhere 搭配使用?
是,您可以在內部部署基礎設施上使用現有的 Microsoft Windows 授權。
問:是否可以在 ECS Anywhere 上執行 GPU 型工作負載?
是。您可以透過將 --enable-gpu 旗標新增至 Amazon ECS Anywhere 安裝指令碼來啟用 GPU 執行個體。安裝指令碼後,您將可以在任務定義中為特定容器指派多個 GPU。Amazon ECS 將它用作一種排程機制,將實體 GPU 固定至所需的容器,以實現工作負載隔離和最佳效能。您可以將 Nvidia 和 CUDA 驅動程式與 Amazon ECS Anywhere 搭配使用,方法是按照此處提供的步驟安裝驅動程式。
問:ECS Anywhere 成本為多少?
對於每個受管的 ECS Anywhere 外部執行個體,您支付每執行個體小時 0.01025 USD。請參閱定價頁面以了解進一步資訊。
問:什麼是 ECS Anywhere 的服務水準協議 (SLA)?
您可以在這裡找到 ECS Anywhere SLA。