使用主控台更新 Amazon ECS服務 - Amazon Elastic Container Service

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

使用主控台更新 Amazon ECS服務

您可以使用 Amazon ECS主控台更新 Amazon ECS服務。目前的服務組態會預先填入。您可以更新任務定義、所需任務計數、容量提供者策略、平台版本和部署組態;或這些的任意組合。

如需有關如何更新藍/綠部署組態的相關資訊,請參閱 使用主控台更新 Amazon ECS藍/綠部署

使用主控台時應考慮以下項目:

如果您想要暫時停止服務,請將所需任務設為 0。然後,當您準備好啟動服務時,請使用原始所需任務計數來更新服務。

使用主控台時應考慮以下項目:

  • 您必須使用 AWS Command Line Interface 來更新使用下列任何參數的服務:

    • 藍/綠部署

    • Service Discovery – 您只能檢視 Service Discovery 組態。

    • 使用自訂指標追蹤政策

    • 更新服務 – 您無法更新awsvpc網路組態和運作狀態檢查寬限期。

    如需有關如何使用 更新服務的資訊 AWS CLI,請參閱 update-serviceAWS Command Line Interface 參考 中。

  • 如果您要在任務定義中變更容器使用的連接埠,您可能需要更新容器執行個體的安全群組,才能使用更新的連接埠。

  • Amazon ECS不會自動更新與 Elastic Load Balancing 負載平衡器或 Amazon ECS容器執行個體相關聯的安全群組。

  • 如果您的服務使用負載平衡器,於建立時為您的服務定義的負載平衡器組態無法使用主控台變更。您可以改為使用 AWS CLI 或 SDK 來修改負載平衡器組態。如需有關如何修改組態的資訊,請參閱 UpdateServiceAmazon Elastic Container Service API參考 中。

  • 如果您為服務更新任務定義,則在負載平衡器組態中指定的容器名稱和容器連接埠必須保留在任務定義中。

您可以更新現有的服務,以變更某些服務組態參數,例如服務維護的任務數或任務使用的任務定義。另外,如果您使用的是 Fargate 任務類型,您可以變更任務使用的平台版本。使用 Linux 平台版本的服務無法更新為使用 Windows 平台版本,反之亦然。如果您的應用程式需要更多容量,您可以擴展您的服務。如果您有未使用的容量要縮減,您可以減少服務所需的任務數並釋出資源。

若要將更新容器映像用於任務,您可以使用該映像建立新任務定義修訂版,然後使用主控台中的 force new deployment (強制執行新部署) 選項來將其部署至服務。

服務排程器 (在服務的部署組態中) 使用運作狀態百分比下限和百分比上限參數,決定部署策略。

如果服務使用滾動更新 (ECS) 部署類型,運作狀態百分比下限代表部署期間,服務中必須維持在 RUNNING 狀態的任務數量下限,以所需任務數量的百分比表示 (無條件進位到最接近的整數)。如果服務包含使用EC2啟動類型的任務,則該參數也會在任何容器執行個體處於 DRAINING 狀態時套用。使用此參數進行部署,無須使用額外的叢集容量。例如,如果您的服務所需任務數量為四項,且運作狀態百分比下限為 50%,則排程器可先停止兩項現有的任務以釋出叢集容量,再啟動兩項新的任務。如果未使用負載平衡器的服務任務為 RUNNING 狀態,則視為運作良好。如果服務的任務使用負載平衡器,這些任務只要是處於 RUNNING 狀態,且負載平衡器也回報為運作良好,即視為運作良好。運作狀態百分比下限的預設值為 100%。

如果服務使用滾動更新 (ECS) 部署類型,則百分比上限參數代表在部署期間,服務中允許處於 PENDINGRUNNINGSTOPPING 狀態的任務數量上限,以所需任務數量的百分比表示 (無條件捨去小數,只保留整數)。如果服務包含使用EC2啟動類型的任務,則該參數也會在任何容器執行個體處於 DRAINING 狀態時套用。使用此參數來定義部署批次大小。例如,如果您的服務有所需的四個任務數目及百分比上限值 200%,則排程器可先啟動四項新任務,再停止四項舊任務。前提是有執行此操作所需的叢集資源。百分比上限的預設值為 200%。

當服務排程器於更新期間取代任務時,服務會先從負載平衡器 (如果使用) 移除任務,並等待連線耗盡。然後,對任務中執行的容器發出相當於 docker stop 的命令。這會造成 SIGTERM 信號和 30 秒逾時,並在之後傳送 SIGKILL,強制停止容器。如果容器在接收到 SIGTERM 信號後於 30 秒內從容處理完畢並結束,就不會傳送任何 SIGKILL 信號。服務排程器依據您定義的運作狀態百分比下限和百分比上限設定,啟動和停止任務。

在容器運作狀態檢查或負載平衡器目標群組運作狀態檢查失敗後,服務排程器也會取代判定為狀況不佳的任務。此取代取決於 maximumPercentdesiredCount 服務定義參數。如果任務標記為運作狀態不佳,服務排程器會先啟動替代任務。然後,會發生以下情況。

  • 如果替換任務的運作狀態為 HEALTHY,則服務排程器會停止運作狀態不佳的任務

  • 如果替代任務的運作狀態為 UNHEALTHY,排程器會停止運作狀態不佳的替代任務或現有運作狀態不佳的任務,以使任務總計數等於 desiredCount

如果 maximumPercent 參數限制排程器先啟動替代任務,排程器會隨機停止運作狀態不佳的任務,以釋放容量,然後啟動替代任務。開始和停止程序會繼續進行,直到所有運作狀態不佳的任務都會取代為運作狀態良好的 一旦已取代了所有運作狀態不佳的任務,而且只執行運作狀態良好的任務,如果任務總數超過 desiredCount,則運作良好的任務會隨機停止,直到任務總計數等於 desiredCount 為止。如需有關 maximumPercentdesiredCount 的詳細資訊,請參閱服務定義參數

重要

如果您要在任務定義中變更容器使用的連接埠,您可能需要更新容器執行個體的安全群組,才能使用更新的連接埠。

如果您為服務更新任務定義,則在服務建立時指定的容器名稱和容器連接埠必須保留在任務定義中。

Amazon ECS不會自動更新與 Elastic Load Balancing 負載平衡器或 Amazon ECS容器執行個體相關聯的安全群組。

更新服務 (Amazon ECS主控台)
  1. https://console.aws.amazon.com/ecs/v2 開啟主控台。

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

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

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

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

    重要

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

  6. 針對所需的任務 ,輸入您要為服務執行的任務數目。

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

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

  9. 若要設定 Amazon ECS偵測和處理部署失敗的方式,請展開部署失敗偵測 ,然後選擇您的選項。

    1. 若要在任務無法啟動時停止部署,請選取使用 Amazon ECS 部署斷路器

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

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

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

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

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

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

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

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

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

  11. (選用) 若要設定服務 Auto Scaling ,請展開服務自動擴展 ,然後指定下列參數。

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

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

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

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

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

      目標追蹤

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

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

      3. 針對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服務指標 ,選擇要用於警示的指標。

      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 (上限),輸入步驟擴展調整的下界限和上界限。根據預設,新增政策的下限為警示閾值,而上限為無限大正數 (+) 值。根據預設,移除政策的上限為警示閾值,而下限為無限小負數 (-) 值。

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

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

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

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

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

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

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

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

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

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

    Amazon EBS

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

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

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

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

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

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

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

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

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

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

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

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

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

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

      • 中,進入索引鍵值。

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

  15. 選擇更新