EC2例項重新平衡建議 - Amazon Elastic Compute Cloud

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

EC2例項重新平衡建議

EC2執行個體重新平衡建議是一種訊號,會在 Spot 執行個體處於中斷風險增加時通知您。該訊號能夠比兩分鐘 Spot 執行個體中斷通知更快到達,讓您有機會主動管理 Spot 執行個體。您可以決定將工作負載重新平衡至未處於提高之中斷風險的新的或現有 競價型執行個體。

Amazon 並非總是可EC2以在兩分鐘 Spot 執行個體中斷通知之前傳送重新平衡建議訊號。因此,重新平衡建議訊號可以與兩分鐘的中斷通知一起到達。

重新平衡建議可作為 EventBridge 事件和 Spot 執行個體上執行個體中繼資料中的項目提供。盡可能發出事件。

注意

只有在 2020 年 11 月 5 日 00:00 UTC 之後啟動的 Spot 執行個體才支援重新平衡建議。

您可以採取的重新平衡動作

以下是您可以採取的一些可能的重新平衡動作:

順利關機

當您收到 Spot 執行個體的重新平衡建議訊號時,您可以啟動執行個體關機程序,其中可能包括確保在程序停止之前完成程序。例如,您可以將系統或應用程式日誌上傳到 Amazon 簡單儲存服務 (Amazon S3)、關閉 Amazon SQS 工作者,或從網域名稱系統 (DNS) 完成取消註冊。您也可以將工作儲存在外部儲存體中,稍後再繼續執行。

防止排程新工作

當您收到 Spot 執行個體的重新平衡建議訊號時,您可以防止在執行個體上排程新工作,同時繼續使用執行個體,直到排定的工作完成為止。

主動啟動新的替代執行個體

您可以將 Auto Scaling 群組、EC2叢集或 Spot 叢集設定為在發出重新平衡建議訊號時自動啟動替換 Spot 執行個體。如需詳細資訊,請參閱 Amazon EC2Auto Scaling 使用者指南和使用叢集和 S EC2 pot 叢集中的容量重新平衡來取代有風險的 Spot 執行個體本使用者指南中的使用容量重新平衡處理 Amazon EC2 Spot 中斷。

監控重新平衡建議訊號

您可以監視重新平衡建議訊號,以便在發出重新平衡建議訊號時,您可以採取在上一部分中指定的動作。重新平衡建議信號可作為傳送至 Amazon EventBridge (以前稱為 Amazon E CloudWatch vents) 的事件提供,以及作為競價型執行個體上的執行個體中繼資料。

使用 Amazon EventBridge

當針對競價型執行個體發出重新平衡建議訊號時,訊號的事件會傳送至 Amazon。 EventBridge如果 EventBridge 偵測到符合規則中定義的模式的事件模式,則會 EventBridge 叫用規則中指定的一個或多個目標。

以下是重新平衡建議訊號的範例事件。

{ "version": "0", "id": "12345678-1234-1234-1234-123456789012", "detail-type": "EC2 Instance Rebalance Recommendation", "source": "aws.ec2", "account": "123456789012", "time": "yyyy-mm-ddThh:mm:ssZ", "region": "us-east-2", "resources": ["arn:aws:ec2:us-east-2:123456789012:instance/i-1234567890abcdef0"], "detail": { "instance-id": "i-1234567890abcdef0" } }

下列欄位會形成規則中定義的事件模式:

"detail-type": "EC2 Instance Rebalance Recommendation"

識別事件是重新平衡建議事件

"source": "aws.ec2"

標識該事件來自 Amazon EC2

建立 EventBridge 規則

您可以撰寫 EventBridge 規則,並在事件模式符合規則時自動執行哪些動作。

下列範例會建立 EventBridge 規則,以便在 Amazon EC2 每次發出重新平衡建議訊號時傳送電子郵件、文字訊息或行動推播通知。將該信號作為 EC2 Instance Rebalance Recommendation 事件發出 ,這觸發了規則定義的動作。

在建立 EventBridge 規則之前,您必須為電子郵件、文字訊息或行動推播通知建立 Amazon SNS 主題。

若要建立重新平衡建議事件的 EventBridge 規則
  1. 在打開 Amazon EventBridge 控制台https://console.aws.amazon.com/events/

  2. 選擇建立規則

  3. 針對 Define rule detail (定義規則詳細資訊) 執行下列動作:

    1. 輸入規則的Name (名稱),或者輸入描述。

      在同一個區域和同一個事件匯流排上,規則不能與另一個規則同名。

    2. 針對 Event bus (事件匯流排) 選擇 default (預設值)。當您帳戶中的 AWS 服務產生事件時,一律會前往您帳戶的預設事件匯流排。

    3. 針對 Rule type (規則類型) 選擇 Rule with an event pattern (具有事件模式的規則)。

    4. 選擇 Next (下一步)

  4. 針對 Build event pattern (建置事件模式) 執行下列動作:

    1. 對於事件來源,請選擇AWS 事件或 EventBridge合作夥伴事件。

    2. 針對此範例的 Event pattern (事件模式),您需指定下列事件模式,以便與 EC2 Instance Rebalance Recommendation 事件相符,然後選擇 Save (儲存)。

      { "source": ["aws.ec2"], "detail-type": ["EC2 Instance Rebalance Recommendation"] }

      若要新增事件模式,您可以選擇事件模式表單來使用範本,或選擇自訂模式 (JSON編輯器) 來指定您自己的模式,如下所示:

      1. 若要使用範本建立事件模式,請執行下列動作:

        1. 選擇 Event pattern form (事件模式表單)。

        2. Event source (事件來源) 欄位中,選擇 AWS services (服務)。

        3. 對於「AWS 服務」,請選擇「EC2現貨艦隊

        4. 對於事件類型,請選擇EC2執行處理重新平衡建議

        5. 若要自訂範本,請選擇 Edit pattern (編輯模式) 並進行變更以與範例事件模式相符。

      2. (替代) 若要指定自訂事件模式,請執行下列動作:

        1. 選擇自定義模式(JSON編輯器)

        2. Event pattern (事件模式) 方塊中,為此範例新增事件模式。

    3. 選擇 Next (下一步)

  5. 針對 Select target(s) (選取目標) 執行下列動作:

    1. Target types (目標類型) 欄位中,選擇 AWS service (服務)。

    2. 針對 [選取目標],選擇要在事件發生時傳送電子郵件、簡訊或行動推播通知的SNS主題

    3. 針對 Topic (主題),請選擇現有的主題。您首先需要使用 Amazon 控制台創建一個 Amazon SNS SNS 主題。如需詳細資訊,請參閱 Amazon 簡單通知服務開發人員指南中的使用 Amazon SNS 進行 application-to-person (A2P) 簡

    4. (選用) 在 Additional settings (其他設定) 下,您可以選擇性地設定其他設定。如需詳細資訊,請參閱 Amazon EventBridge 使用者指南中的建立對事件做出反應的 Amazon EventBridge 規則 (步驟 16)。

    5. 選擇 Next (下一步)

  6. (選用) 針對 Tags (標籤),您可以選擇性地將一或多個標籤指派給您的規則,然後選擇 Next (下一步)。

  7. 針對 Review and create (檢閱和建立) 執行下列動作:

    1. 檢閱規則的詳細資訊,然後視需求進行修改。

    2. 選擇建立規則

有關更多信息,請參閱 Amazon EventBridge 用戶指南中的 Amazon EventBridge 規則和 Amazon EventBridge 事件模式

使用執行個體中繼資料

執行個體中UTC繼資料類別events/recommendations/rebalance提供針對 Spot 執行個體發出重新平衡建議訊號時的大約時間 (英吋)。

我們建議您每 5 秒檢查重新平衡建議訊號,這樣您就不會錯過對重新平衡建議採取行動的機會。

如果 Spot 執行個體收到重新平衡建議,則發出訊號的時間會出現在執行個體中繼資料中。您可以擷取如下所示的發出訊號時間。

針對您的作業系統使用此指令。

IMDSv2
[ec2-user ~]$ TOKEN=`curl -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600"` \ && curl -H "X-aws-ec2-metadata-token: $TOKEN" http://169.254.169.254/latest/meta-data/events/recommendations/rebalance
IMDSv1
[ec2-user ~]$ curl http://169.254.169.254/latest/meta-data/events/recommendations/rebalance
PS C:\> Invoke-RestMethod -uri http://169.254.169.254/latest/meta-data/events/recommendations/rebalance

以下是範例輸出,表示針對競價型執行個體發出重新平衡建議訊號的時間。UTC

{"noticeTime": "2020-10-27T08:22:00Z"}

如果尚未發出實例的信號,events/recommendations/rebalance則不存在,並且在嘗試檢索它時收到 HTTP 404 錯誤。

使用重新平衡建議訊號的服務

Amazon EC2 Auto Scaling、EC2叢集和 Spot Fleet 使用重新平衡建議訊號,在執行中的執行個體收到兩分鐘的 Spot 執行個體中斷通知之前,主動使用新的 Spot 執行個體擴充叢集,讓您輕鬆維持工作負載可用性。您可以讓這些服務主動地監控並回應影響 競價型執行個體 的可用性的變更 如需詳細資訊,請參閱下列內容: