AWS announces preview of AWS Interconnect - multicloud
AWS announces AWS Interconnect – multicloud (preview), providing simple, resilient, high-speed private connections to other cloud service providers. AWS Interconnect - multicloud is easy to configure and provides high-speed, resilient connectivity with dedicated bandwidth, enabling customers to interconnect AWS networking services such as AWS Transit Gateway, AWS Cloud WAN, and Amazon VPC to other cloud service providers with ease.
如何為 Amazon ECS 使用 Fargate Spot 容量供應商?
我想為 Amazon Elastic Container Service (Amazon ECS) 使用 AWS Fargate Spot 容量提供商。
簡短描述
在開始之前,請記住以下事項:
- 不需要建立 Fargate 和 Fargate Spot 容量提供者。它們適用於所有帳戶,只需要與叢集建立關聯即可使用。
- Fargate Spot 容量提供者可以使用 ECS PutClusterCapacityProviders API 和 ECS put-cluster-capacity-providers CLI 命令參考與現有叢集關聯。使用 AWS 管理主控台不支援將 Fargate Spot 容量提供者新增至現有叢集。
- Fargate 和 Fargate Spot 容量提供者是保留的,無法刪除。您可以使用 PutClusterCapacityProviders API 將它們與叢集取消關聯。
- Fargate Spot 要求您的任務使用平台版本 1.3.0 或更高(適用於 Linux),並且Fargate Spot 上的 Windows 容器不支持 Fargate 容量提供程序。
解決方法
**注意:**如果您在執行 AWS CLI 命令時收到錯誤訊息,請確定您使用的是最新版本的 AWS CLI。
建立、關聯以及取消 Fargate Spot 容量提供者與您叢集的關聯
當使用僅限聯網的叢集範本從 Amazon ECS 主控台建立時,Fargate Spot 容量提供者會自動與叢集建立關聯。如需詳細資訊,請參閱使用新主控台建立 Fargate 啟動類型的叢集。
**將 Fargate Spot 容量提供者與您的叢集建立關聯 **
如果 Fargate Spot 容量提供者尚未關聯,您可以使用PutClusterCapacityProviders API 或下列 AWS CLI 命令,將容量提供者與叢集建立關聯:
aws ecs put-cluster-capacity-providers \ --cluster <Cluster_name> \ --capacity-providers FARGATE FARGATE_SPOT \ --default-capacity-provider-strategy capacityProvider=FARGATE,weight=1 capacityProvider=FARGATE_SPOT,weight=1 \ --region <Region>
**重要事項:**若要避免覆寫容量提供者,請將所有現有的容量提供者和容量提供者策略納入前面的命令中。未包含在命令中的容量提供者會與叢集取消關聯。
**將 Fargate Spot 容量提供者與您的叢集分離 **
任何與叢集關聯的現有容量提供者,且 PutClusterCapacityProviders API 調用省略的現有容量提供者都將與叢集取消關聯。若要取消 Fargate Spot 容量提供者與 Amazon ECS 叢集的關聯,請執行以下 AWS CLI 命令:
aws ecs put-cluster-capacity-providers \ --cluster <Cluster_name> \ --capacity-providers FARGATE \ --default-capacity-provider-strategy capacityProvider=FARGATE,weight=1 \ --region <Region>
確認您的 Fargate Spot 容量供應商與您的 Amazon ECS 叢集相關聯
若要確認 Fargate Spot 容量提供者是否與您的 Amazon ECS 叢集相關聯,請執行下列命令:
aws ecs describe-clusters \ --cluster <Cluster_name> \ --region <Region>
輸出看起來類似於以下內容:
Output: "capacityProviders": [ "FARGATE", "FARGATE_SPOT" ]
注意:上述命令的輸出包括capacityProviders區段,其中包含與 Amazon ECS 叢集相關聯的容量提供者。
使用 Fargate Spot 容量提供者執行工作或建立服務
若要使用 Fargate Spot 容量提供者執行工作,請執行下列命令:
aws ecs run-task \ --cluster <Cluster_name> \ --capacity-provider-strategy capacityProvider=FARGATE_SPOT,weight=1 \ --task-definition <Task_definition_family>:<revision> \ --network-configuration "awsvpcConfiguration={subnets=[string,string],securityGroups=[string,string],assignPublicIp=string}" \ --count <Number_of_Tasks> \ --region <Region>
若要建立使用 Fargate Spot 容量供應商的 Amazon ECS 服務,請執行下列命令:
aws ecs create-service \ --cluster <Cluster_name> \ --service-name <Service_name> \ --capacity-provider-strategy capacityProvider=FARGATE,weight=1 capacityProvider=FARGATE_SPOT,weight=1 \ --task-definition <Task_defintition_family>:<revision> \ --network-configuration "awsvpcConfiguration={subnets=[string,string],securityGroups=[string,string],assignPublicIp=string}" \ --desired-count <Number_of_tasks> \ --region <Region>
確認您的工作是否在 Fargate Spot 容量提供者上執行
若要確認您的工作使用 Fargate 容量提供者,請執行下列命令:
aws ecs describe-tasks --cluster <Cluster_name> \ --tasks <TaskID> \ --region <Region>
目前不支援追蹤來自 Amazon CloudWatch 的每項服務的 Fargate OnDemand 和Fargate Spot 使用量。不過,您可以使用 CloudWatch 查看總 Fargate OnDemand 和 Spot 使用量的指標。如需詳細資訊,請參閱 AWS Fargate 使用指標。
常見問題
什麼是 Fargate Spot 的最佳實踐?
- Fargate Spot 非常適合無狀態、容錯的工作負載,但不要僅依賴 Spot 任務來處理關鍵工作負載。相反,配置常規 Fargate 任務的混合。
- 通過捕獲 ** SIGTERM 信號來優雅地處理中斷。收到 SIGTERM 訊號時,最佳做法是將StopTimeout**設定為 120 秒。如需詳細資訊,請參閱使用 ECS 進行正常關機。
- 在 Fargate Spot 上運行的應用程序必須具有容錯能力。
當 FARGATE\ _SPOT 容量不可用時,任務會發生什麼情況?
當 ECS 排程器因容量不可用而無法啟動任務時,會發出SERVICE_TASK_PLACEMENT_FAILURE ** 事件。工作不會進入第一階段PROVISIONING且 ECS 事件中不會顯示通知。ECS 排程器將繼續嘗試啟動工作。如果容量變為可用,則SERVICE_STEADY_STATE** 事件將發出。
當沒有可用的 Fargate Spot 容量時,是否存在容錯移轉到 Fargate?
當沒有可用的 FARGATE\ _SPOT 容量時,不可以將故障返回機制給 FARGATE。
在 ECS 服務中使用容量提供者時,工作如何放置的範例是什麼?
在此範例中,容量提供者策略包含下列兩個容量提供者:
Provider 1: FARGATE | Base:2 Weight:1 Provider 2: FARGATE_SPOT | Base:0 Weight:3
根據此策略,在滿足基本值之後,對於使用 FARGATE, 運行的每一個任務,三個任務都使用 FARGATE\ _SPOT。當建立 ECS 服務時,所需的計數為 ** 5**,則會發生下列情況:
-
使用FARGATE 啟動2個任務以滿足基值,其餘3 個任務以 1:3的比例在FARGATE 和 FARGATE_SPOT 之間分配。
-
使用FARGATE的3 個任務和 ** 2 ** 個在FARGATE_SPOT中運行的任務。
使用此相同的策略,發生的向外擴展事件,並且所需的計數增加到 ** 9**。ECS 調度程序將看到 3 個任務已經使用了滿足基礎 的 FARGATE 運行。此外,它還會看到處於PROVISIONING 狀態的新 4 個任務以 1:3 的比例在 FARGATE 和 FARGATE_SPOT 之間分配。最後的 4個任務是使用FARGATE 和 5 任務在FARGATE_SPOT運行。
- 語言
- 中文 (繁體)

相關內容
- 已提問 2 年前
AWS 官方已更新 10 個月前