更新 Amazon ECS 服務 - Amazon Elastic Container Service

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

更新 Amazon ECS 服務

建立服務之後,有時候您可能需要更新服務參數,例如任務數量。

當您更新使用 Amazon ECS 斷路器的服務時,Amazon ECS 會建立服務部署和服務修訂。這些資源可讓您檢視服務歷史記錄的詳細資訊。如需詳細資訊,請參閱使用 Amazon ECS 服務部署檢視服務歷史記錄

先決條件

更新服務之前,請確認您的部署類型可以變更哪些服務參數。如需可變更參數的完整清單,請參閱 更新 Amazon ECS 服務參數

程序

Console
  1. 開啟主控台,網址為 https://console.aws.amazon.com/ecs/v2

  2. 叢集頁面上,選擇叢集。

  3. 在叢集詳細資訊頁面的服務區段中,選取服務旁的核取方塊,然後選擇更新

  4. 若要讓服務啟動新部署,請選取 Force new deployment (強制執行新部署)。

  5. 任務定義中,選擇任務定義系列和修訂。

    重要

    主控台會驗證選取的任務定義系列和修訂是否與定義的運算組態相容。如果您收到警告,請同時驗證任務定義相容性和您選擇的運算組態。

  6. 如果您選擇 Replica (複寫),針對 Desired tasks (所需任務),輸入要在服務中啟動並維護的任務數。

  7. 如果您選擇複本,若要讓 Amazon ECS 監控跨可用區域的任務分佈,並在發生不平衡時重新分佈,請在可用區域服務重新平衡下,選取可用區域服務重新平衡

  8. 針對 Min running tasks (執行中任務下限),輸入部署期間必須維持在 RUNNING 狀態的服務任務數量下限,它是所需任務數量的百分比 (無條件進位到最接近的整數)。如需詳細資訊,請參閱部署組態

  9. 針對 Max running tasks (執行中任務上限),輸入部署期間允許的處於 RUNNINGPENDING 狀態的服務任務數目上限,它是所需任務數量的百分比 (無條件捨去到最接近的整數)。

  10. 若要設定 Amazon ECS 如何偵測並處理部署失敗,請展開 Deployment failure detection (部署失敗偵測),然後選擇您的選項。

    1. 若要在任務無法啟動時停止部署,請選取 Use the Amazon ECS deployment circuit breaker (使用 Amazon ECS 部署斷路器)。

      若要讓軟體在部署斷路器將部署設定為失敗狀態時,自動將部署轉返至最後完成的部署狀態,請選取在失敗時轉返

    2. 若要根據應用程式指標停止部署,請選取使用 CloudWatch 警示 (s)。然後,從 CloudWatch 警示名稱中選擇警示。若要建立新的警示,請前往 CloudWatch 主控台。

      若要讓軟體在 CloudWatch 警示將部署設定為失敗狀態時,自動轉返部署至最後完成的部署狀態,請選取在失敗時轉返

  11. 若要變更運算選項,請展開運算組態,然後執行下列動作:

    1. 對於 上的服務 AWS Fargate,對於平台版本,請選擇新版本。

    2. 對於使用容量提供者策略的服務,對於容量提供者策略,請執行下列動作:

      • 若要新增其他容量提供者,請選擇 Add more (新增更多)。然後,針對 Capacity provider (容量提供者),選擇容量提供者。

      • 若要移除容量提供者,請選擇容量提供者右側的 Remove (移除)。

      使用 Auto Scaling 群組容量提供者的服務無法更新為使用 Fargate 容量提供者。使用 Fargate 容量提供者的服務無法更新為使用 Auto Scaling 群組容量提供者。

  12. (選用) 若要設定服務 Auto Scaling,請展開服務自動擴展,然後指定下列 parameters.To 使用預測自動擴展,這會查看過去從流量載入的資料,並在建立服務之後進行設定。如需詳細資訊,請參閱使用歷史模式透過預測擴展來擴展 Amazon ECS 服務

    1. 若要使用服務自動擴展,請選取 Service auto scaling (服務自動擴展)。

    2. 針對任務數量下限,輸入服務自動擴展要使用的任務數量下限。所需的計數不會低於此計數。

    3. 針對任務數量上限,輸入服務自動擴展要使用的任務數量上限。所需的計數不會高於此計數。

    4. 選擇政策類型。在擴展政策類型下,選擇下列其中一個選項。

      使用此政策類型 執行此作業

      目標追蹤

      1. 針對 Scaling policy type (擴展政策類型),選擇 Target tracking (目標追蹤)。

      2. 針對 Policy name (政策名稱),輸入政策的名稱。

      3. 針對 ECS service metric (ECS 服務指標),選擇下列其中一項指標。

        • ECSServiceAverageCPUUtilization – 服務的平均 CPU 使用率。

        • ECSServiceAverageMemoryUtilization – 服務的平均記憶體使用率。

        • ALBRequestCountPerTarget – Application Load Balancer 目標群組中每個目標完成的請求數。

      4. 針對 Target value (目標值),輸入服務為選取的指標保持的值。

      5. 針對橫向擴展冷卻時間,輸入橫向擴展活動 (新增任務) 之後必須通過的時間量,然後才能開始另一個橫向擴展活動。

      6. 對於縮減冷卻時間,輸入在縮減活動 (移除任務) 之後必須通過的時間量,然後才能開始另一個縮減活動。

      7. 若要防止政策執行縮減活動,請選取 Turn off scale-in (關閉縮減)。

      8. • (選用) 如果您希望擴展政策向外擴展以增加流量,但不需要在流量減少時向內擴展,請選取關閉向內擴展。

      步驟擴展
      1. 針對 Scaling policy type (擴展政策類型),選擇 Step scaling (步驟擴展)。

      2. Policy Name (政策名稱) 輸入政策的名稱。

      3. 針對 Alarm name (警示名稱),輸入警示的唯一名稱。

      4. 針對 Amazon ECS service metric (Amazon ECS 服務指標),選擇用於警示的指標。

      5. 針對 Statistic (統計資料),選擇警示統計資料。

      6. 針對 Period (期間),選擇警示的期間。

      7. 針對 Alarm condition (警示條件),選擇如何比較選取的指標與定義的閾值。

      8. 針對 Threshold to compare metrics (比較閾值與指標) 和 Evaluation period to initiate alarm (啟動警示的評估期),輸入用於警示的閾值以及評估閾值的時間長度。

      9. Scaling actions (擴展動作) 下,執行下列動作:

        • 針對動作,選取是否要新增、移除或設定服務的特定所需計數。

        • 如果您選擇新增或移除任務,請在中輸入啟動擴展動作時要新增或移除的任務數量 (或現有任務的百分比)。如果您選擇設定所需的計數,請輸入任務數量。對於 Type (類型),選取 Value (值) 是整數或是現有所需計數的百分比值。

        • 針對 Lower bound (下限) 和 Upper bound (上限),輸入步驟擴展調整的下界限和上界限。根據預設,新增政策的下限為警示閾值,而上限為無限大正數 (+) 值。根據預設,移除政策的上限為警示閾值,而下限為無限小負數 (-) 值。

        • (選用) 新增其他擴展選項。選擇新增擴展動作,然後重複擴展動作步驟。

        • 針對冷卻時間,以秒為單位輸入等待先前的擴展活動生效的時間量。對於新增政策,這是橫向擴展活動之後的時間,擴展政策會封鎖向內擴展活動,並限制一次可以向外擴展的任務數量。對於移除政策,這是縮減活動之後的時間,必須在另一個縮減活動開始之前通過。

  13. (選用) 若要使用 Service Connect,請選取 Turn on Service Connect (開啟 Service Connect),然後指定下列項目:

    1. Service Connect configuration (Service Connect 組態) 下,指定用戶端模式。

      • 如果您的服務執行的網路用戶端應用程式只需要連線到 命名空間中的其他服務,請選擇用戶端

      • 如果服務執行的是網路或 Web 服務應用程式,且需要為此服務提供端點,並連線至命名空間中的其他服務,請選擇 Client and server (用戶端和伺服器)。

    2. 若要使用非預設叢集命名空間的命名空間,請在 Namespace (命名空間) 欄位中選擇服務命名空間。

  14. 如果您的任務使用與部署時組態相容的資料磁碟區,您可以透過擴展磁碟區來設定磁碟

    磁碟區名稱和磁碟區類型會在您建立任務定義修訂時設定,且無法在更新服務時變更。若要更新磁碟區名稱和類型,您必須建立新的任務定義修訂,並使用新的修訂來更新服務。

    若要設定此磁碟區類型 執行此作業

    Amazon EBS

    1. 針對 EBS 磁碟區類型,選擇您要連接至任務的 EBS 磁碟區類型。

    2. 針對大小 (GiB),以 GB (GiB) 為單位輸入磁碟區大小的有效值。您可以指定最小 1 GiB,最大 16,384 GiB 磁碟區大小。除非您提供快照 ID,否則需要此值。

    3. 針對 IOPS,輸入磁碟區應提供的輸入/輸出操作 (IOPS) 數目上限。此值僅適用於 io1io2、 和 gp3磁碟區類型。

    4. 針對輸送量 (MiB/s),輸入磁碟區應提供的輸送量,以每秒 MB 為單位 (MiBps 或 MiB/s)。此值只能針對磁碟gp3區類型設定。

    5. 對於快照 ID,如果您想要從快照建立磁碟區,請選擇現有的 Amazon EBS 磁碟區快照或輸入快照的 ARN。您也可以不選擇或輸入快照 ID 來建立新的空白磁碟區。

    6. 如果您指定快照 ID,您可以指定磁碟區初始化速率 (MiB/s)。在 MiB/s 中輸入介於 100 到 300 之間的值,以決定從使用快照 ID 指定快照載入資料以建立磁碟區的速度。

    7. 針對檔案系統類型,選擇用於磁碟區上資料儲存和擷取的檔案系統類型。您可以選擇作業系統預設值或特定檔案系統類型。Linux 的預設值為 XFS。對於從快照建立的磁碟區,您必須指定建立快照時磁碟區所使用的相同檔案系統類型。如果檔案系統類型不相符,任務將無法啟動。

    8. 針對基礎設施角色,選擇具有必要許可的 IAM 角色,以允許 Amazon ECS 管理任務的 Amazon EBS 磁碟區。您可以將 AmazonECSInfrastructureRolePolicyForVolumes受管政策連接至 角色,也可以使用政策做為建立和連接您自己的政策的指南,該政策具有符合您特定需求的許可。如需有關必要許可的詳細資訊,請參閱 Amazon ECS 基礎設施 IAM 角色

    9. 針對加密,如果您想要依預設設定使用 Amazon EBS 加密,請選擇預設。如果您的帳戶已預設設定加密,則會使用設定中指定的 AWS Key Management Service (AWS KMS) 金鑰來加密磁碟區。如果您選擇預設,且 Amazon EBS 預設加密未開啟,則磁碟區將取消加密。

      如果您選擇自訂,您可以為磁碟區加密指定 AWS KMS key 您選擇的 。

      如果您選擇,除非您已預設設定加密,或者您從加密快照建立磁碟區,否則磁碟區將不會加密。

    10. 如果您已選擇自訂加密,則必須指定要使用 AWS KMS key 的 。針對 KMS 金鑰,選擇 AWS KMS key 或輸入金鑰 ARN。如果您選擇使用對稱客戶受管金鑰來加密磁碟區,請確定您已在 AWS KMS key 政策中定義正確的許可。如需詳細資訊,請參閱 Amazon EBS 磁碟區的資料加密

    11. (選用) 在標籤下,您可以透過從任務定義或服務傳播標籤,或提供您自己的標籤,將標籤新增至 Amazon EBS 磁碟區。

      如果您想要從任務定義傳播標籤,請選擇傳播標籤的任務定義。如果您想要從服務傳播標籤,請選擇 Service for Propagate 標籤來源。如果您選擇不傳播,或者如果您不選擇值,則不會傳播標籤。

      如果您想要提供自己的標籤,請選擇新增標籤,然後為您新增的每個標籤提供索引鍵和值。

      如需標記 Amazon EBS 磁碟區的詳細資訊,請參閱標記 Amazon EBS 磁碟區

  15. (選用) 為協助識別您的服務,請展開 Tags (標籤) 區段,然後設定標籤。

    • 【新增標籤】 選擇新增標籤,然後執行下列動作:

      • 索引鍵中,輸入索引鍵名稱。

      • 中,進入索引鍵值。

    • [移除標籤] 在標籤旁邊,選擇 移除標籤

  16. 選擇更新

AWS CLI
  • 執行 update-service。如需有關執行 命令的資訊,請參閱《 AWS Command Line Interface 參考》中的 update-service

    下列update-service範例會將服務所需的任務計數更新my-http-service為 2。

    user-input 取代為您的值。

    aws ecs update-service \ --cluster MyCluster \ --service my-http-service \ --desired-count 2

後續步驟

追蹤您的部署,並檢視 Amazon ECS 斷路器服務的服務歷史記錄。如需詳細資訊,請參閱使用 Amazon ECS 服務部署檢視服務歷史記錄