

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

# AWS 與 Amazon EC2 Auto Scaling 整合的 服務
<a name="ec2-auto-scaling-integrations"></a>

Amazon EC2 Auto Scaling 可以與其他 AWS 服務整合。檢閱以下整合選項，進一步了解如何結合使用每項服務與 Amazon EC2 Auto Scaling。

**Topics**
+ [Auto Scaling 中的容量重新平衡，以取代具有風險的 Spot 執行個體](ec2-auto-scaling-capacity-rebalancing.md)
+ [使用容量預留在特定可用區域中預留容量](use-ec2-capacity-reservations.md)
+ [使用 從命令列建立 Auto Scaling 群組 AWS CloudShell](create-auto-scaling-groups-with-cloudshell.md)
+ [使用 建立 Auto Scaling 群組 AWS CloudFormation](creating-auto-scaling-groups-with-cloudformation.md)
+ [使用 取得執行個體類型建議 AWS Compute Optimizer](asg-getting-recommendations.md)
+ [使用 Elastic Load Balancing 在 Auto Scaling 群組中分配傳入應用程式流量](autoscaling-load-balancer.md)
+ [使用 VPC Lattice 目標群組管理流量流程](ec2-auto-scaling-vpc-lattice.md)
+ [使用 EventBridge 處理 Auto Scaling 事件](automating-ec2-auto-scaling-with-eventbridge.md)
+ [使用 Amazon VPC 為您的 Auto Scaling 執行個體提供網際網路連線](asg-in-vpc.md)

# Auto Scaling 中的容量重新平衡，以取代具有風險的 Spot 執行個體
<a name="ec2-auto-scaling-capacity-rebalancing"></a>

Auto Scaling 中的容量重新平衡可協助您主動取代具有中斷風險的 Spot 執行個體，以維持工作負載可用性。

當 Spot 執行個體的中斷風險提高時，Amazon EC2 Spot 服務會將 EC2 執行個體重新平衡建議傳送至 Amazon EC2 Auto Scaling。如果您啟用容量重新平衡，Auto Scaling 會嘗試主動取代群組中已收到 EC2 執行個體重新平衡建議的 Spot 執行個體。這樣一來，您即可有機會將工作負載重新平衡至未處於提高之中斷風險的新的 Spot 執行個體。

當您不使用容量重新平衡時，在 Amazon EC2 Spot 服務中斷執行個體且其運作狀態檢查失敗之前，Auto Scaling 不會取代 Spot 執行個體。在中斷執行個體之前，Amazon EC2 必定會提供 EC2 執行個體重新平衡建議和 Spot 執行個體兩分鐘中斷通知。

**Topics**
+ [概要](#capacity-rebalancing-overview)
+ [容量重新平衡行為](#capacity-rebalancing-behavior)
+ [考量事項](#capacity-rebalancing-considerations)
+ [啟用容量重新平衡以主動取代具有風險的 Spot 執行個體](enable-capacity-rebalancing-console-cli.md)

## 概要
<a name="capacity-rebalancing-overview"></a>

若要將容量重新平衡與 Auto Scaling 群組搭配使用，基本步驟如下：

1. 設定您的 Auto Scaling 群組，以使用多個執行個體類型和可用區域。這樣一來，Amazon EC2 Auto Scaling 就可以查看每個可用區域中 Spot 執行個體的可用容量。如需詳細資訊，請參閱[具有多種執行個體類型和購買選項的 Auto Scaling 群組](ec2-auto-scaling-mixed-instances-groups.md)。

1. 視需要新增生命週期關聯，以便在接收重新平衡通知的執行個體內對應用程式執行正常關閉程序。如需詳細資訊，請參閱[Amazon EC2 Auto Scaling lifecycle hook](lifecycle-hooks.md)。

   以下是您可能使用 lifecycle hook 的一些原因：
   + 實現 Amazon SQS 工作者的順利關機
   + 完成從網域名稱系統 (DNS) 取消註冊
   + 提取系統或應用程式日誌並上傳到 Amazon Simple Storage Service (Amazon S3)

1. 開發 lifecycle hook 的自訂動作。若要盡快調用您的自訂動作，您需要知道執行個體何時可以終止。可以透過偵測執行個體的生命週期狀態來找出答案。
   + 若要調用執行個體以外的動作，請撰寫 EventBridge 規則，以在事件模式符合規則時自動化要採取的動作。
   + 若要在執行個體內調用動作，請將執行個體設定為執行關閉指令碼，並透過執行個體中繼資料擷取生命週期狀態。

   設計自訂動作在兩分鐘內完成操作至關重要。這樣可以確保在執行個體終止前有充裕的時間完成任務。

完成這些步驟後，您便可以開始使用容量重新平衡。

## 容量重新平衡行為
<a name="capacity-rebalancing-behavior"></a>

透過容量重新平衡，當執行個體接收重新平衡建議時，Amazon EC2 Auto Scaling 的行為如下：
+ 新 Spot 執行個體啟動時，Amazon EC2 Auto Scaling 會先等待新執行個體通過運作狀態檢查，然後才會終止先前的執行個體。在取代多個執行個體時，每個先前的執行個體都會在新執行個體啟動並通過其運作狀態檢查之後開始終止。
+ 由於 Amazon EC2 Auto Scaling 會在終止先前的執行個體前嘗試啟動新執行個體，達到或接近最大指定容量便會阻礙或完全停止重新平衡的活動。若要避免這個問題，Amazon EC2 Auto Scaling 可以暫時超過該群組的大小上限最高可達所需容量的 10%。
+ 如果您沒有將 lifecycle hook 新增到 Auto Scaling 群組，Amazon EC2 Auto Scaling 便會在新執行個體通過運作狀態檢查後立即終止先前的執行個體。
+ 如果您新增了 lifecycle hook，便可藉由您為 lifecycle hook 指定的逾時值，來延長我們開始終止先前執行個體之前所需的時間。
+ 如果您使用擴展政策或排程擴展，則擴展活動會並行執行。如果正在執行擴展活動，且 Auto Scaling 群組低於其所需的新容量，Amazon EC2 Auto Scaling 會在終止先前的執行個體之前進行擴增。

如果在一個可用區域中沒有執行個體類型的容量，Amazon EC2 Auto Scaling 會繼續嘗試在其他啟用的可用區域中啟動 Spot 執行個體，直到啟動成功為止。

在最壞的情況下，如果新執行個體無法啟動或其運作狀態檢查失敗，Amazon EC2 Auto Scaling 會繼續嘗試重新啟動這些執行個體。在其嘗試啟動新的執行個體時，會在發出兩分鐘的中斷通知後，最終中斷並強制終止先前的執行個體。

## 考量事項
<a name="capacity-rebalancing-considerations"></a>

使用容量重新平衡時，請考慮下列事項：

**應用程式的設計應容許 Spot 中斷**  
您的應用程式應該能夠處理執行個體數量的動態變更以及 Spot 執行個體提前中斷的可能性。例如，如果 Auto Scaling 群組位於 Elastic Load Balancing 負載平衡器後方，Amazon EC2 Auto Scaling 會等待執行個體從負載平衡器取消註冊，然後再呼叫 lifecycle hook。如果取消註冊執行個體和完成生命週期動作的時間過長，在 Amazon EC2 Auto Scaling 等待您的生命週期動作完成後再終止執行個體期間，執行個體可能會中斷。  
Amazon EC2 並不總是能在兩分鐘 Spot 執行個體中斷通知之前傳送重新平衡建議訊號。有時候，重新平衡建議訊號會與兩分鐘的中斷通知一起到達。發生這種情況時，Amazon EC2 Auto Scaling 會呼叫 Lifecycle hook，並嘗試立即啟動新 Spot 執行個體。

**避免中斷替代 Spot 執行個體的風險提高**  
如果您使用 `lowest-price` 配置策略，替代 Spot 執行個體的中斷風險可能會提高。這是因為我們會在當時具有可用容量的最低價集區中啟動執行個體，即使您的替代 Spot 執行個體在啟動後很快就會中斷也一樣。為了避免提高中斷風險，我們強烈建議您不要使用 `lowest-price` 配置策略。相反，我們建議使用 `price-capacity-optimized` 配置策略。此策略會在 Spot 集區中啟動最不可能中斷且價格可能最低的 Spot 執行個體。因此，它們在不久後的將來不太可能會中斷。

**只有在可用性相同或更好時，Amazon EC2 Auto Scaling 才會啟動新執行個體**  
容量重新平衡的其中一個目標是改善 Spot 執行個體的可用性。如果現有的 Spot 執行個體收到重新平衡建議，只有新執行個體提供與現有執行個體相同或更好的可用性時，Amazon EC2 Auto Scaling 才會啟動新執行個體。如果新執行個體的中斷風險比現有執行個體更大，則 Amazon EC2 Auto Scaling 將不會啟動新執行個體。但是，Amazon EC2 Auto Scaling 將基於 Amazon EC2 Spot 服務提供的資訊，繼續評估 Spot 容量集區，並在可用性改善時啟動新執行個體。  
如果 Amazon EC2 Auto Scaling 不主動啟動新執行個體，現有執行個體可能會中斷。發生這種情況時，Amazon EC2 Auto Scaling 會在收到 Spot 執行個體中斷通知後立即嘗試啟動新執行個體。無論新執行個體是否存在高中斷風險，都會進行此嘗試。

**容量重新平衡不會增加 Spot 執行個體中斷率**  
當您啟用容量重新平衡時，不會增加 [Spot 執行個體中斷率](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-interruptions.html) (當 Amazon EC2 需要恢復容量時回收的 Spot 執行個體數量)。但是，如果容量重新平衡偵測到執行個體有中斷風險，Amazon EC2 Auto Scaling 將立即嘗試啟動新的執行個體。因此，與在有風險的執行個體中斷後等待 Amazon EC2 Auto Scaling 啟動新的執行個體相比，可能會取代更多執行個體。  
雖然您可以在啟用容量重新平衡的情況下取代更多執行個體，但您可以從主動式而非被動式中受益。這可讓您有更多時間在執行個體中斷之前採取行動。透過 [Spot 執行個體中斷通知](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-instance-termination-notices.html)，您通常最多只有兩分鐘時間來正常關閉您的執行個體。透過容量重新平衡事先啟動新的執行個體，可讓現有程序更有可能在有風險的執行個體上完成作業。您也可以啟動執行個體關閉程序，防止在有風險的執行個體上排定新的作業，並為新啟動的執行個體作好準備以接管該應用程式。透過容量重新平衡的主動式取代，您可以從正常連續性中獲益。  
下列理論範例示範了使用容量重新平衡的風險和益處：  
+ 下午 2:00 – 收到執行個體 A 的重新平衡建議，Amazon EC2 Auto Scaling 立即嘗試啟動取代執行個體 B，讓您有時間開始關機程序。
+ 下午 2:30 – 收到執行個體 B 的重新平衡建議，會取代為執行個體 C，讓您有時間開始關機程序。
+ 下午 2:32 – 如果未啟用容量重新平衡，並且如果在下午 2:32 仍未收到執行個體 A 的 Spot 執行個體中斷通知，則您最多只有兩分鐘時間採取動作。不過，執行個體 A 會一直持續執行，直到此時為止。

# 啟用容量重新平衡以主動取代具有風險的 Spot 執行個體
<a name="enable-capacity-rebalancing-console-cli"></a>

您可以使用 AWS 管理主控台 或 AWS CLI 來啟用 Auto Scaling 群組的容量重新平衡。啟用容量重新平衡時，Amazon EC2 Auto Scaling 會嘗試主動取代群組中收到 EC2 執行個體重新平衡建議的 Spot 執行個體。

## 啟用容量重新平衡 (主控台)
<a name="enable-capacity-rebalancing-console"></a>

您可以在建立或更新 Auto Scaling 群組時啟用或停用容量重新平衡。

**啟用新 Auto Scaling 群組的容量重新平衡**

1. 前往網址 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) 開啟 Amazon EC2 主控台，然後從導覽窗格中選擇 **Auto Scaling 群組**。

1. 選擇 **Create Auto Scaling group** (建立 Auto Scaling 群組)。

1. 在**步驟 1：選擇啟動範本或組態**中，輸入 Auto Scaling 群組的名稱，選擇啟動範本，然後選擇**下一步**以繼續下一個步驟。

1. 在**步驟 2：選擇執行個體啟動選項**中，針對**執行個體類型需求**，選擇建立混合執行個體群組的設定。這包括可啟動的執行個體類型、執行個體購買選項，以及 Spot 和隨需執行個體的配置策略。依預設，這些設定並未設定。要進行設定，您必須選擇 **Override launch template** (覆寫啟動範本)。如需有關建立混合執行個體群組的詳細資訊，請參閱 [具有多種執行個體類型和購買選項的 Auto Scaling 群組](ec2-auto-scaling-mixed-instances-groups.md)。

1. 在**網路**下，視需要選擇選項。驗證您想要使用的子網路是否位於不同的可用區域中。

1. 在**配置策略**區段下，選擇 Spot 的配置策略。勾選或清除**容量重新平衡**核取方塊，即可啟用或停用容量重新平衡。您唯有在**執行個體購買選項**區段中請求了要作為 Spot 執行個體啟動的 Auto Scaling 群組的百分比時，才能看到這個選項。

1. 建立 Auto Scaling 群組。

1. (選用) 視需要新增生命週期關聯。如需詳細資訊，請參閱[將生命週期掛鉤新增至 Auto Scaling 群組](adding-lifecycle-hooks.md)。

**啟用或停用現有 Auto Scaling 群組的容量重新平衡**

1. 前往網址 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) 開啟 Amazon EC2 主控台，然後從導覽窗格中選擇 **Auto Scaling 群組**。

1. 選取 Auto Scaling 群組旁的核取方塊。頁面底部會開啟一個分割窗格。

1. 在 **Details** (詳細資訊) 索引標籤上，依次選擇 **Allocation strategies** (分配策略)、**Edit** (編輯)。

1. 在**配置策略**區段下，選取或清除**容量重新平衡**下的核取方塊，以啟用或停用容量重新平衡。

1. 選擇**更新**。

## 啟用容量重新平衡 (AWS CLI)
<a name="enable-capacity-rebalancing-aws-cli"></a>

下列範例示範如何使用 AWS CLI 來啟用和停用容量重新平衡。

搭配以下參數使用 [create-auto-scaling-group](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/create-auto-scaling-group.html) 或 [update-auto-scaling-group](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/update-auto-scaling-group.html) 命令：
+ `--capacity-rebalance` / `--no-capacity-rebalance` – 指出是否啟用容量重新平衡的布林值。

在呼叫 [create-auto-scaling-group](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/create-auto-scaling-group.html) 命令前，您需要設定供 Auto Scaling 群組使用的啟動範本名稱。如需詳細資訊，請參閱 [為 Auto Scaling 群組建立啟動範本](create-launch-template.md)。

**注意**  
以下程序說明如何使用 JSON 或 YAML 格式組態檔案。如果您使用 AWS CLI 版本 1，則必須指定 JSON 格式的組態檔案。如果您使用 AWS CLI 版本 2，您可以指定 YAML 或 JSON 格式的組態檔案。

### JSON
<a name="enable-capacity-rebalancing-aws-cli-json"></a>

**要建立和設定新的 Auto Scaling 群組**
+ 使用下列 [create-auto-scaling-group](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/create-auto-scaling-group.html) 命令建立新的 Auto Scaling 群組並啟用容量重新平衡。此命令參考 JSON 檔案作為 Auto Scaling 群組的唯一參數。

  ```
  aws autoscaling create-auto-scaling-group --cli-input-json file://~/config.json
  ```

  如果您尚未擁有指定[混合執行個體政策](ec2-auto-scaling-mixed-instances-groups.md)的 CLI 組態檔案，請建立一個。

  在組態檔案中，將以下命令列新增至最上層 JSON 物件。

  ```
  {
      "CapacityRebalance": true
  }
  ```

  以下是範例 `config.json` 檔案。

  ```
  {
      "AutoScalingGroupName": "my-asg",
      "DesiredCapacity": 12,
      "MinSize": 12,
      "MaxSize": 15,
      "CapacityRebalance": true,
      "MixedInstancesPolicy": {
          "InstancesDistribution": {
              "OnDemandBaseCapacity": 0,
              "OnDemandPercentageAboveBaseCapacity": 25,
              "SpotAllocationStrategy": "price-capacity-optimized"
          },
          "LaunchTemplate": {
              "LaunchTemplateSpecification": {
                  "LaunchTemplateName": "my-launch-template",
                  "Version": "$Default"
              },
              "Overrides": [
                  {
                      "InstanceType": "c5.large"
                  },
                  {
                      "InstanceType": "c5a.large"
                  },
                  {
                      "InstanceType": "m5.large"
                  },
                  {
                      "InstanceType": "m5a.large"
                  },
                  {
                      "InstanceType": "c4.large"
                  },
                  {
                      "InstanceType": "m4.large"
                  },
                  {
                      "InstanceType": "c3.large"
                  },
                  {
                      "InstanceType": "m3.large"
                  }
              ]
          }
      },
      "TargetGroupARNs": "arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/my-alb-target-group/943f017f100becff",
      "VPCZoneIdentifier": "subnet-5ea0c127,subnet-6194ea3b,subnet-c934b782"
  }
  ```

### YAML
<a name="enable-capacity-rebalancing-aws-cli-yaml"></a>

**要建立和設定新的 Auto Scaling 群組**
+ 使用下列 [create-auto-scaling-group](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/create-auto-scaling-group.html) 命令建立新的 Auto Scaling 群組並啟用容量重新平衡。此命令參考 YAML 檔案作為 Auto Scaling 群組的唯一參數。

  ```
  aws autoscaling create-auto-scaling-group --cli-input-yaml file://~/config.yaml
  ```

  將下命令列新增至 YAML 格式組態檔案。

  ```
  CapacityRebalance: true
  ```

  以下是範例 `config.yaml` 檔案。

  ```
  ---
  AutoScalingGroupName: my-asg
  DesiredCapacity: 12
  MinSize: 12
  MaxSize: 15
  CapacityRebalance: true
  MixedInstancesPolicy:
    InstancesDistribution:
      OnDemandBaseCapacity: 0
      OnDemandPercentageAboveBaseCapacity: 25
      SpotAllocationStrategy: price-capacity-optimized
    LaunchTemplate:
      LaunchTemplateSpecification:
        LaunchTemplateName: my-launch-template
        Version: $Default
      Overrides:
      - InstanceType: c5.large
      - InstanceType: c5a.large
      - InstanceType: m5.large
      - InstanceType: m5a.large
      - InstanceType: c4.large
      - InstanceType: m4.large
      - InstanceType: c3.large
      - InstanceType: m3.large
  TargetGroupARNs:
  - arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/my-alb-target-group/943f017f100becff
  VPCZoneIdentifier: subnet-5ea0c127,subnet-6194ea3b,subnet-c934b782
  ```

**要啟用現有 Auto Scaling 群組的容量重新平衡**
+ 使用下列 [update-auto-scaling-group](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/update-auto-scaling-group.html) 命令來啟用容量重新平衡。

  ```
  aws autoscaling update-auto-scaling-group --auto-scaling-group-name my-asg \
    --capacity-rebalance
  ```

**驗證是否已為 Auto Scaling 群組啟用容量重新平衡**
+ 使用下列 [describe-auto-scaling-groups](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/describe-auto-scaling-groups.html) 命令來驗證是否已啟用容量重新平衡，並檢視詳細資訊。

  ```
  aws autoscaling describe-auto-scaling-groups --auto-scaling-group-name my-asg
  ```

  以下是回應範例。

  ```
  {
      "AutoScalingGroups": [
          {
              "AutoScalingGroupName": "my-asg",
              "AutoScalingGroupARN": "arn",
              ...
              "CapacityRebalance": true
          }
      ]
  }
  ```

**停用容量重新平衡**  
使用 [update-auto-scaling-group](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/update-auto-scaling-group.html) 命令與 `--no-capacity-rebalance` 選項來停用容量重新平衡。

```
aws autoscaling update-auto-scaling-group --auto-scaling-group-name my-asg \
  --no-capacity-rebalance
```

## 相關資源
<a name="capacity-rebalancing-related-resources"></a>

如需容量重新平衡的詳細資訊，請參閱 AWS 運算部落格上的[使用適用於 Amazon EC2 Auto Scaling 的新容量重新平衡功能主動管理 Spot 執行個體生命週期](https://aws.amazon.com/blogs/compute/proactively-manage-spot-instance-lifecycle-using-the-new-capacity-rebalancing-feature-for-ec2-auto-scaling/)。

如需 EC2 執行個體重新平衡建議的詳細資訊，請參閱《Amazon [EC2 使用者指南》中的 EC2 執行個體重新平衡建議](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/rebalance-recommendations.html)。 *Amazon EC2 *

若要進一步了解生命週期關聯，請參閱下列資源。
+ [教學課程：設定叫用 Lambda 函數的 lifecycle hook](tutorial-lifecycle-hook-lambda.md) (使用 EventBridge)
+ [教學課程：使用資料指令碼和執行個體中繼資料來擷取生命週期狀態](tutorial-lifecycle-hook-instance-metadata.md)

## 限制
<a name="capacity-rebalancing-limitations"></a>
+ 只有在執行個體未受到縮減保護的情況下，Amazon EC2 Auto Scaling 才能取代接收重新平衡通知的執行個體。但是，縮減保護不會防止 Spot 中斷的終止。如需詳細資訊，請參閱[使用執行個體縮減保護來控制執行個體終止](ec2-auto-scaling-instance-protection.md)。
+ 容量重新平衡的支援可在所有 AWS 區域 提供 Amazon EC2 Auto Scaling 的商業區域使用，中東 (阿拉伯聯合大公國) 區域除外。

# 使用容量預留在特定可用區域中預留容量
<a name="use-ec2-capacity-reservations"></a>

Amazon EC2 隨需容量預留可讓您在特定可用區域中保留運算容量。若要開始將容量保留與 Auto Scaling 搭配使用，請先在特定可用區域中建立容量保留或容量保留群組。然後，您可以在建立容量保留偏好設定或更新現有群組時，將容量保留偏好設定新增至 Auto Scaling 群組。

若要建立容量保留，請參閱*《Amazon EC2 使用者指南*》中的[建立容量保留](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/capacity-reservations-create.html)。若要建立容量保留群組，請參閱*《Amazon EC2 使用者指南*》中的[建立容量保留群組](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/create-cr-group.html)。

## 容量保留偏好設定
<a name="asg-capacity-reservation-preference"></a>

「容量保留」偏好設定可協助您在使用隨需容量之前，將使用容量保留中的預留容量設為優先，如此有助於您有效率地使用容量保留功能。您可以從下列容量保留偏好設定選項中選取：
+ **預設** – Auto Scaling 會使用啟動範本或開放容量保留中的容量保留偏好設定。
+ **無** – Auto Scaling 不會在容量保留中啟動執行個體。執行個體將以隨需容量執行。
+ **僅限容量保留** – Auto Scaling 只會在容量保留或容量保留群組中啟動執行個體。如果容量無法使用，執行個體將無法啟動。
+ **容量保留優先** – Auto Scaling 會在容量保留或容量保留群組中啟動執行個體。如果容量不可用，執行個體將以隨需容量執行。

如果您選取「僅限容量保留」或「容量保留優先」，則可以指定容量保留目標。

**注意**  
您必須選取「容量保留」偏好設定。容量保留目標是選擇性的。

**容量保留偏好設定和啟動範本的考量事項**  
如果選取「僅限容量保留」或「容量保留優先」，請將下列事項列入考量：
+ 如果選取「僅限容量保留」或「容量保留優先」，則 Auto Scaling 會使用在 Auto Scaling 群組中指定的，而不是啟動範本中的容量保留目標。
+ 如果選取「僅限容量保留」或「容量保留優先」，但未指定容量保留目標，則 Auto Scaling 會使用啟動範本容量保留目標，或開放的容量保留目標。

**容量保留目標規格**  
如果您先選取容量保留或容量保留，可使用下列容量保留目標選項：
+ **開啟** – Auto Scaling 會在任何開啟的容量保留中啟動執行個體。如果您只選取容量保留，但無法使用容量，則執行個體將無法啟動。如果您先選取容量保留，但無法使用容量，執行個體將以隨需容量啟動。
+ **指定容量保留** – Auto Scaling 會在指定的容量保留中啟動執行個體。如果您只選取容量保留，但無法使用容量，則執行個體將無法啟動。如果您先選取容量保留，但無法使用容量，執行個體將以隨需容量啟動。
+ **指定容量保留資源群組** – Auto Scaling 會在指定容量保留資源群組中的開放容量保留中啟動執行個體。如果您只選取容量保留，但無法使用容量，則執行個體將無法啟動。如果您先選取容量保留，但無法使用容量，執行個體將以隨需容量啟動。

## 可用區域餘額和容量保留
<a name="az-balance-capacity-reservations"></a>

即使您使用容量保留偏好設定，Auto Scaling 仍會優先考慮可用區域餘額。這表示：
+ 使用 `capacity-reservations-first` – Auto Scaling 群組會先在 AZs 之間平均分配執行個體，然後在可用時使用容量預留。如果可用區域無法使用容量預留，執行個體將以隨需方式啟動，以維持可用區域平衡。
+ 使用 `capacity-reservations-only` – Auto Scaling 群組只會使用容量預留。根據可用容量預留的位置，這可能會導致 AZs 之間的執行個體分佈不均勻。

**範例**  
如果您在 AZ-a 中有 10 個容量預留、AZ-b 中有 3 個、AZ-c 中有 1 個，且所需的容量為 9 個執行個體：
+ 將 `capacity-reservations-first` 用於 9 個執行個體將導致每個 AZ 有 3 個執行個體 （維護 AZ 平衡），其中有些執行個體可能以隨需執行。
+ 將 `capacity-reservations-only`用於 9 個執行個體會導致根據可用容量預留的分佈不均勻。

# 將容量保留偏好設定與 Auto Scaling 群組搭配使用
<a name="capacity-reservation-create-asg-procedure"></a>

若要搭配 Auto Scaling 群組使用容量保留，您必須先建立容量保留或容量保留資源群組。然後，您可以在建立容量保留偏好設定或更新現有群組時，將容量保留偏好設定新增至 Auto Scaling 群組。

若要建立容量保留，請參閱*《Amazon EC2 使用者指南*》中的[建立容量保留](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/capacity-reservations-create.html)。若要建立容量保留群組，請參閱《*Amazon EC2 使用者指南*》中的[建立容量保留群組](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/create-group.html)。

當您建立或編輯 Auto Scaling 群組時，請使用下列其中一種方法來使用容量保留偏好設定。

------
#### [ Console ]

**在新群組上使用容量保留偏好設定 （主控台）**

1. 遵循 中的指示[使用 Amazon EC2 啟動精靈建立 Auto Scaling 群組](create-asg-ec2-wizard.md)並完成程序中的每個步驟，直到步驟 3。

1. 在**設定群組大小和擴展**頁面**的其他容量設定**、**容量保留偏好設定**下，選取容量保留偏好設定。如需容量保留偏好設定的詳細資訊，請參閱 [容量保留偏好設定](use-ec2-capacity-reservations.md#asg-capacity-reservation-preference)。

1. 繼續[使用 Amazon EC2 啟動精靈建立 Auto Scaling 群組](create-asg-ec2-wizard.md)中的步驟。

------
#### [ AWS CLI ]

**在新群組上使用容量保留偏好設定 (AWS CLI)**  
將 `--capacity-reservation-specification` 參數新增至 [create-auto-scaling-group](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/create-auto-scaling-group.html) 命令。

1. 指定容量保留偏好設定。如需詳細資訊，請參閱[容量保留偏好設定](use-ec2-capacity-reservations.md#asg-capacity-reservation-preference)。

1. 指定容量保留目標。如果選取「僅限容量保留」或「容量保留優先」，但未指定容量保留目標，則 Auto Scaling 會使用啟動範本容量保留目標，或開放的容量保留目標。

------

------
#### [ Console ]

**在現有群組上使用容量保留偏好設定 （主控台）**

1. 前往網址 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) 開啟 Amazon EC2 主控台，然後從導覽窗格中選擇 **Auto Scaling 群組**。

1. 在螢幕上方的導覽列中，選擇您在建立 Auto Scaling 群組時所在的 AWS 區域 。

1. 選取 Auto Scaling 群組旁的核取方塊。

   頁面底部會開啟一個分割窗格。

1. 在**詳細資訊**索引標籤的**容量保留偏好設定**下，選擇**編輯**。

1. 在**額外容量設定**、**容量保留偏好設定**下，選取容量保留偏好設定。如需容量保留偏好設定的詳細資訊，請參閱 [容量保留偏好設定](use-ec2-capacity-reservations.md#asg-capacity-reservation-preference)。

1. 選擇**更新**。

------
#### [ AWS CLI ]

**在現有群組上使用容量保留偏好設定 (AWS CLI)**  
將 `--capacity-reservation-specification` 參數新增至 [update-auto-scaling-group](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/update-auto-scaling-group.html) 命令。

1. 指定容量保留偏好設定。如需詳細資訊，請參閱[容量保留偏好設定](use-ec2-capacity-reservations.md#asg-capacity-reservation-preference)。

1. 指定容量保留目標。如果選取「僅限容量保留」或「容量保留優先」，但未指定容量保留目標，則 Auto Scaling 會使用啟動範本容量保留目標，或開放的容量保留目標。

------

# 使用 EC2 Auto Scaling 進行可中斷的容量保留
<a name="asg-interruptible-capacity-reservations"></a>

可中斷容量預留代表 AWS 組織內隨需容量預留擁有者提供給您的備用容量。這些保留適用於可中斷的工作負載，因為容量擁有者可以隨時透過 2 分鐘的中斷通知回收容量，之後執行個體就會終止。如需可中斷容量保留及其運作方式的概觀，請參閱《*Amazon EC2 使用者指南*》中的[可中斷容量保留](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/interruptible-capacity-reservations.html)。

若要開始使用，您可以從帳戶中的任何隨需容量保留配置未使用的容量，以建立可中斷的保留。接著，您可以建立啟動範本，指定可中斷的容量保留 ID 和適當的市場類型。最後，建立 Auto Scaling 群組以使用您建立的啟動範本。

**注意**  
可中斷容量保留不支援混合執行個體群組。
可中斷的容量保留會顯示在您的帳戶中，並將新屬性`interruptible`設為 `true`。

**Topics**
+ [操作準則](#operational-guidelines)
+ [在啟動範本中指定可中斷的容量保留](#specify-interruptible-cr)
+ [限制](#limitations)
+ [相關資源](#related-resources)

## 操作準則
<a name="operational-guidelines"></a>

以下是在 Auto Scaling 群組中使用可中斷容量保留時應遵循的基本操作準則。
+ 從可中斷容量保留啟動的執行個體，可在回收容量時以 2 分鐘通知終止。設計您的應用程式來處理正常關機。
+ Amazon EC2 會在終止執行個體前 2 分鐘傳送 EventBridge 通知。雖然 Auto Scaling 不會自動回應這些事件，但您可以設定自訂自動化來回應中斷通知。
+ 當執行個體因容量回收而終止時，Auto Scaling 的運作狀態檢查程式會偵測終止，並根據您群組的組態自動啟動替換執行個體。
+ 指向特定版本的啟動範本，而不是 `$Default`或 `$Latest`版本，以確保一致性。

**注意**  
當回收可中斷的容量保留執行個體時，Auto Scaling 群組的擴展活動將會顯示：`taken out of service in response to an Amazon EC2 health check that indicated it had been terminated or stopped`。Auto Scaling 會嘗試以與未通過運作狀態檢查的任何執行個體相同的方式取代執行個體。

## 在啟動範本中指定可中斷的容量保留
<a name="specify-interruptible-cr"></a>

若要建立以 Auto Scaling 群組特定可中斷容量保留為目標的啟動範本，請使用下列其中一種方法：

------
#### [ Console ]

**在啟動範本中指定可中斷的容量保留 （主控台）**

1. 前往 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) 開啟 Amazon EC2 主控台。

1. 在頂端導覽列上，選取您有可中斷容量保留 AWS 區域 的 。

1. 在導覽窗格的 **Instances (執行個體)** 底下，選擇 **Launch Templates (啟動範本)**。

1. 選擇**建立啟動範本**，然後建立啟動範本。視需要包含 AMI 的 ID、執行個體類型和任何其他啟動範本設定。

1. 展開**進階詳細資訊**區段以檢視進階設定。

1. 針對**購買選項**，選擇**可中斷的容量保留**。

1. 針對**容量保留**，選擇**依 ID 的目標**，然後針對**容量保留 - 依 ID 的目標**，選擇現有可中斷容量保留的容量保留 ID。

1. 當您完成時，請選擇**建立啟動範本**。

如需使用啟動範本建立 Auto Scaling 群組的說明，請參閱 [使用啟動範本建立 Auto Scaling 群組](create-asg-launch-template.md)。

------
#### [ AWS CLI ]

**在啟動範本中指定可中斷的容量保留 (AWS CLI)**  
使用下列 [create-launch-template](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/create-launch-template.html) 命令來建立啟動範本，以指定現有的可中斷容量保留 ID。將每個使用者輸入預留位置替換為自己的資訊。

```
aws ec2 create-launch-template --launch-template-name my-template-for-interruptible-cr \
  --version-description AutoScalingVersion1 --region us-east-2 \
  --launch-template-data file://config.json
```

**提示**  
如果此命令擲回錯誤，請確定您已在 AWS CLI 本機將 更新為最新版本。

`config.json` 的內容：

```
{
    "ImageId": "ami-04d5cc9b88example",
    "InstanceType": "t3.nano",
    "SecurityGroupIds": [
        "sg-903004f88example"
    ],
    "KeyName": "MyKeyPair",
    "InstanceMarketOptions": {
        "MarketType": "interruptible-capacity-reservation"
    },
    "CapacityReservationSpecification": {
        "CapacityReservationTarget": {
            "CapacityReservationId": "cr-02168da1478b509e0"
        }
    }
}
```

下列為範例輸出：

```
{
    "LaunchTemplate": {
        "LaunchTemplateId": "lt-068f72b724example",
        "LaunchTemplateName": "my-template-for-interruptible-cr",
        "CreateTime": "2023-10-27T15:12:44.000Z",
        "CreatedBy": "arn:aws:iam::123456789012:user/Bob",
        "DefaultVersionNumber": 1,
        "LatestVersionNumber": 1
    }
}
```

您可以使用下列 [describe-launch-template-versions](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/describe-launch-template-versions.html) 命令來驗證與啟動範本相關聯的中斷容量保留 ID：

```
aws ec2 describe-launch-template-versions --launch-template-names my-template-for-interruptible-cr \
  --region us-east-2
```

------

**Auto Scaling 群組層級組態**  
您可以選擇性地在 Auto Scaling 群組層級指定容量保留設定，以覆寫啟動範本設定：
+ **容量保留偏好設定**：僅`capacity-reservations-only`支援可中斷的容量保留。不支援 `capacity-reservations-first`偏好設定。
+ **目標規格**：您可以在群組層級指定不同的可中斷容量保留 ID，以覆寫啟動範本設定。

## 限制
<a name="limitations"></a>
+ 可中斷容量保留不支援混合執行個體政策。
+ 您必須在啟動範本中指定正確的市場類型 (`interruptible-capacity-reservation`) 以及容量保留 ID。

## 相關資源
<a name="related-resources"></a>
+ 如需有關建立和管理可中斷容量保留的資訊，請參閱《*Amazon EC2 使用者指南*》中的[可中斷容量保留](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/interruptible-capacity-reservations.html)。
+ 如需搭配 Auto Scaling 使用容量保留的一般資訊，請參閱 [使用容量預留在特定可用區域中預留容量](use-ec2-capacity-reservations.md)。
+ 如需 Auto Scaling 群組運作狀態檢查的資訊，請參閱 [ Auto Scaling 群組中執行個體的運作狀態檢查](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-health-checks.html)。

# 使用 從命令列建立 Auto Scaling 群組 AWS CloudShell
<a name="create-auto-scaling-groups-with-cloudshell"></a>

在[支援的 AWS 區域](https://docs.aws.amazon.com/cloudshell/latest/userguide/supported-aws-regions.html)中，您可以 AWS CloudShell 針對直接從 啟動的瀏覽器型預先驗證 Shell，使用 執行 AWS CLI 命令 AWS 管理主控台。您可以使用您偏好的 shell (Bash、PowerShell 或 Z shell) 對 服務執行 AWS CLI 命令。

您可以使用下列兩種方法 AWS 管理主控台 之一， AWS CloudShell 從 啟動 ：
+ 選擇主控台導覽列上的 AWS CloudShell 圖示。該圖示位於搜尋方塊的右側。
+ 使用主控台瀏覽列上的搜尋方塊來搜尋 **CloudShell**，然後選擇 **CloudShell** 選項。

第一次在新的瀏覽器視窗中 AWS CloudShell 啟動時，歡迎面板會顯示並列出主要功能。關閉此面板後，狀態更新會顯示，同時 Shell 會設定並轉寄您的主控台憑證。出現命令提示時，表示 Shell 已準備好開始互動。

如需此服務的詳細資訊，請參閱 [AWS CloudShell 使用者指南](https://docs.aws.amazon.com//cloudshell/latest/userguide/welcome.html)。

# 使用 建立 Auto Scaling 群組 AWS CloudFormation
<a name="creating-auto-scaling-groups-with-cloudformation"></a>

Amazon EC2 Auto Scaling 已與 整合 AWS CloudFormation，此服務可協助您模型化和設定 AWS 資源，以減少建立和管理資源和基礎設施的時間。您可以建立範本來描述您想要的所有 AWS 資源 （例如 Auto Scaling 群組），並為您 CloudFormation 佈建和設定這些資源。

使用 時 CloudFormation，您可以重複使用範本來一致且重複地設定 Amazon EC2 Auto Scaling 資源。描述您的資源一次，然後在多個 AWS 帳戶 和 區域中逐一佈建相同的資源。

## Amazon EC2 Auto Scaling 和 CloudFormation 範本
<a name="working-with-templates"></a>

若要為 Amazon EC2 Auto Scaling 及相關服務佈建和設定資源，您必須了解 [CloudFormation 範本](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-guide.html)。範本是以 JSON 或 YAML 格式化的文本檔案。這些範本說明您要在 CloudFormation 堆疊中佈建的資源。如果您不熟悉 JSON 或 YAML，您可以使用 CloudFormation 設計工具來協助您開始使用 CloudFormation 範本。如需詳細資訊，請參閱*AWS CloudFormation 《 使用者指南*》中的[什麼是 CloudFormation 設計工具？](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/working-with-templates-cfn-designer.html)。

若要開始建立您自己的 Amazon EC2 Auto Scaling 堆疊範本，請完成下列任務：
+ 使用 [AWS::EC2::LaunchTemplate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-launchtemplate.html) 建立啟動範本。
+ 使用 [AWS::AutoScaling::AutoScalingGroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-autoscaling-autoscalinggroup.html) 建立 Auto Scaling 群組。

如需示範如何在 Application Load Balancer 後方部署 Auto Scaling 群組的演練，請參閱*《AWS CloudFormation 使用者指南》*中的[演練：建立可擴展且達到負載平衡的應用程式](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/walkthrough-autoscaling.html)。

您可以在 *AWS CloudFormation 使用者指南*的下列章節中找到建立 Auto Scaling 群組和相關資源的範本程式碼片段的其他實用範例：
+ [Amazon EC2 Auto Scaling 資源類型參考](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_AutoScaling.html)
+ [使用 設定 Amazon EC2 Auto Scaling 資源 AWS CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/quickref-ec2-auto-scaling.html)

## 進一步了解 CloudFormation
<a name="learn-more-cloudformation"></a>

若要進一步了解 CloudFormation，請參閱下列資源：
+ [AWS CloudFormation](https://aws.amazon.com/cloudformation/)
+ [AWS CloudFormation 使用者指南](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html)
+ [CloudFormation API 參考](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/Welcome.html)
+ [AWS CloudFormation 命令列界面使用者指南](https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/what-is-cloudformation-cli.html)

# 使用 取得執行個體類型建議 AWS Compute Optimizer
<a name="asg-getting-recommendations"></a>

AWS 提供 Amazon EC2 執行個體類型建議，透過使用 支援的 功能，協助您改善效能、節省成本或兩者 AWS Compute Optimizer。您可以使用這些建議來決定是否要移至 Auto Scaling 群組中的新執行個體類型。

若要提出建議，Compute Optimizer 會分析您現有的執行個體規格和最近的指標歷史記錄。然後，編譯的資料會用來建議哪些 Amazon EC2 執行個體類型進行最佳化，以處理現有的效能工作負載。建議會連同每小時執行個體定價一起傳回。

**注意**  
若要從 Compute Optimizer 取得建議，您必須先選擇加入 Compute Optimizer。如需詳細資訊，請參閱《 AWS Compute Optimizer使用者指南》**中的 [AWS Compute Optimizer 入門](https://docs.aws.amazon.com/compute-optimizer/latest/ug/getting-started.html)。

**Topics**
+ [限制](#compute-optimizer-limitations)
+ [調查結果](#findings-classifications)
+ [檢視建議](#viewing-recommendations)
+ [評估建議的考量](#considerations)

## 限制
<a name="compute-optimizer-limitations"></a>

Compute Optimizer 會針對 Auto Scaling 群組中設定為啟動和執行 M、C、R、T 及 X 執行個體類型的執行個體產生建議。不過，它不會對採用 AWS Graviton2 處理器的 -g 執行個體類型 （例如 C6g) 和具有較高網路頻寬效能的 -n 執行個體類型 （例如 M5n) 產生建議。

Auto Scaling 群組也必須設定為執行單一執行個體類型 (即沒有混合執行個體類型)，不得連接至擴展政策，並且對所需容量、最小容量和最大容量 (即具有固定數量執行個體的 Auto Scaling 群組) 具有相同的值。Compute Optimizer 會針對 Auto Scaling 群組中符合*所有*這些組態需求的執行個體產生建議。

## 調查結果
<a name="findings-classifications"></a>

Compute Optimizer 會將其 Auto Scaling 群組問題清單分類如下：
+ **Not optimized** (未最佳化)：當 Compute Optimizer 找出可為您的工作負載提供更好效能的建議時，Auto Scaling 群組會被視為未最佳化。
+ **Optimized (已最佳化)**：當 Compute Optimizer 根據選擇的執行個體類型判定群組已正確佈建為執行您的工作負載時，Auto Scaling 群組會被視為已最佳化。對於已最佳化的資源，Compute Optimizer 有時可能會建議新一代的執行個體類型。
+ **None** (無)：沒有適合此 Auto Scaling 群組的建議。如果選擇加入 Compute Optimizer 的時間少於 12 小時，或 Auto Scaling 群組執行時間少於 30 小時，或 Compute Optimizer 不支援 Auto Scaling 群組或執行個體類型時，可能會發生這種情況。如需詳細資訊，請參閱 [限制](#compute-optimizer-limitations) 一節。

## 檢視建議
<a name="viewing-recommendations"></a>

在選擇加入 Compute Optimizer 之後，您可以檢視它針對您的 Auto Scaling 群組所產生的問題清單和建議。如果您最近才選擇加入，則最多 12 小時都不會提供任何建議。

**檢視針對 Auto Scaling 群組所產生的建議**

1. 在 [https://console.aws.amazon.com/compute-optimizer/](https://console.aws.amazon.com/compute-optimizer/) 開啟運算最佳化工具主控台。

   儀表板頁面即會開啟。

1. 選擇 **View recommendations for all Auto Scaling groups (檢視所有 Auto Scaling 群組的建議)**。

1. 選取 Auto Scaling 群組。

1. 選擇 **View detail** (檢視詳細資訊)。

   檢視會根據預設表格設定，變更為在預先設定的檢視中最多顯示三個不同的執行個體建議。它也會為 Auto Scaling 群組提供最近的 CloudWatch 指標資料 (CPU 平均使用率、平均網路輸入和平均網路輸出)。

決定您是否要使用其中一項建議。決定是否要最佳化以改善效能、降低成本，或是結合這兩者。

若要變更 Auto Scaling 群組中的執行個體類型，請更新啟動範本或 Auto Scaling 群組以使用新的啟動組態。現有執行個體會繼續使用先前的組態。若要更新現有執行個體，請終止它們，以便由 Auto Scaling 群組取代；或允許自動擴展，以便根據您的[終止政策](as-instance-termination.md)用新的執行個體逐漸取代舊的執行個體。

**注意**  
使用執行個體生命週期上限和執行個體重新整理功能，您也可以取代 Auto Scaling 群組中現有的執行個體，從而啟動使用啟動範本或啟動組態的新執行個體。如需詳細資訊，請參閱 [根據執行個體生命週期上限來取代 Auto Scaling 執行個體](asg-max-instance-lifetime.md) 和 [使用執行個體重新整理來更新 Auto Scaling 群組中的執行個體](asg-instance-refresh.md)。

## 評估建議的考量
<a name="considerations"></a>

移至新的執行個體類型之前，請考慮下列事項：
+ 建議不會預測您的使用量。建議是根據您最近 14 天期間的歷史使用情況而定。請務必選擇符合未來用量需求的執行個體類型。
+ 著重於圖形化指標，以判斷實際使用量是否低於執行個體容量。您也可以檢視CloudWatch 中的指標資料 (平均、峰值、百分比)，以進一步評估您的 EC2 執行個體建議。例如，注意 CPU 百分比指標在白天的變化，以及是否有需要應付的尖峰時期。如需詳細資訊，請參閱《Amazon CloudWatch 使用者指南》**中的[檢視可用指標](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/viewing_metrics_with_cloudwatch.html)。
+ Compute Optimizer 可能會提供高載效能執行個體的建議，亦即 T3、T3a 和 T2 執行個體。如果您定期突增超過基準，請確定您可以根據新執行個體類型的 vCPU 繼續執行此操作。如需詳細資訊，請參閱《*Amazon EC2 使用者指南*》中的[高載效能執行個體的 CPU 點數和基準效能](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/burstable-credits-baseline-concepts.html)。
+ 如果您購買的是預留執行個體，隨需執行個體可能會以預留執行個體方式計費。變更目前的執行個體類型之前，請先評估對預留執行個體使用率和涵蓋範圍的影響。
+ 盡可能考慮轉換為較新一代的執行個體。
+ 移轉至不同的執行個體系列時，請確定目前的執行個體類型和新的執行個體類型是相容的，例如在虛擬化、架構或網路類型方面。如需詳細資訊，請參閱《*Amazon EC2 使用者指南*》中的[調整執行個體大小的相容性](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-resize.html#resize-limitations)。
+ 最後，請考慮針對每個建議所提供的效能風險評分。效能風險指出您可能需要花費的精力，以驗證建議的執行個體類型是否符合工作負載的效能需求。我們也建議在進行任何變更之前和之後進行嚴格的負載和效能測試。

**其他資源**  
除了本頁面上的主題之外，請參閱下列資源：
+ [Amazon EC2 執行個體類型](https://aws.amazon.com/ec2/instance-types/)
+ [AWS Compute Optimizer 使用者指南](https://docs.aws.amazon.com/compute-optimizer/latest/ug/)

# 使用 Elastic Load Balancing 在 Auto Scaling 群組中分配傳入應用程式流量
<a name="autoscaling-load-balancer"></a>

Elastic Load Balancing 會自動在您執行的所有 EC2 執行個體中分配傳入的應用程式流量。Elastic Load Balancing 以最佳化路由傳送流量來協助管理傳入請求，讓所有執行個體均不會負擔過重。若要搭配 Auto Scaling 群組使用 Elastic Load Balancing，請[將負載平衡器連接到 Auto Scaling 群組](attach-load-balancer-asg.md)。這樣會將群組註冊到負載平衡器，該負載平衡器會作為 Auto Scaling 群組所有 Web 流量的單一聯絡點。

在將 Elastic Load Balancing 與 Auto Scaling 群組搭配使用時，不需要將個別 EC2 執行個體註冊到負載平衡器。由 Auto Scaling 群組啟動的執行個體會自動註冊到負載平衡器。同樣地，由 Auto Scaling 群組終止的執行個體也會自動從負載平衡器取消註冊。

在將負載平衡器連接到 Auto Scaling 群組後，您可以設定 Auto Scaling 群組使用 Elastic Load Balancing 指標 (例如每個目標的 Application Load Balancer 請求計數)，以便隨著需求波動而擴展群組中的執行個體數目。

您也可以將 Elastic Load Balancing 運作狀態檢查新增到 Auto Scaling 群組，以便 Amazon EC2 Auto Scaling 根據這些額外的運作狀態檢查識別和取代運作狀態不佳的執行個體。此外，您還可以建立 CloudWatch 警示，在目標群組的狀態良好的主機數目低於允許值時通知您。

**Topics**
+ [Elastic Load Balancing 類型](#integrations-aws-elastic-load-balancing-types)
+ [準備連接負載平衡器](getting-started-elastic-load-balancing.md)
+ [連接負載平衡器](attach-load-balancer-asg.md)
+ [設定負載平衡器](as-create-load-balancer-console.md)
+ [確認連接狀態](load-balancer-status.md)
+ [新增可用區域](as-add-az-console.md)
+ [移除可用區域](as-remove-az-console.md)
+ [分開負載平衡器](as-remove-load-balancer.md)
+ [AWS CLI 使用 Elastic Load Balancing 的範例](examples-elastic-load-balancing-aws-cli.md)

## Elastic Load Balancing 類型
<a name="integrations-aws-elastic-load-balancing-types"></a>

Elastic Load Balancing 提供四種可與 Auto Scaling 群組一起使用的負載平衡器類型：Application Load Balancer、Network Load Balancer、Gateway Load Balancer 和 Classic Load Balancer。

負載平衡器類型的設定方式有關鍵的差異。若採用 Application Load Balancer、Network Load Balancer 和 Gateway Load Balancer，執行個體會作為目標註冊到目標群組，並將流量路由到目標群組。若採用 Classic Load Balancer，執行個體會直接註冊到負載平衡器。

Application Load Balancer  
在應用程式層 (HTTP/HTTPS) 的路由及負載平衡並支援以路徑為基礎的路由。Application Load Balancer 可將請求路由至 Virtual Private Cloud (VPC) 中一或多個已註冊目標 (例如 EC2 執行個體) 上的連接埠。

Network Load Balancer  
在傳輸層 (TCP/UDP 第 4 層) 的路由和負載平衡，其以擷取自第 4 層標頭的地址資訊為基礎。Network Load Balancer 可以處理流量暴增、保留用戶端的來源 IP，並在負載平衡器生命週期中使用固定 IP。

Gateway Load Balancer  
將流量分配到一組設備執行個體。為第三方虛擬設備 (例如防火牆、入侵偵測和預防系統以及其他設備) 提供擴展性、可用性和簡易性。Gateway Load Balancer 可與支援 GENEVE 通訊協定的虛擬設備搭配使用。由於需要進行額外的技術整合，請務必在選擇 Gateway Load Balancer 之前閱讀使用者指南。

Classic Load Balancer  
在傳輸層 (TCP/SSL) 或應用程式層 (HTTP/HTTPS) 進行路由及負載平衡。

若要深入了解可用的不同類型的負載平衡器，請參閱下列資源：
+ [什麼是 Elastic Load Balancing？](https://docs.aws.amazon.com/elasticloadbalancing/latest/userguide/what-is-load-balancing.html)
+ [什麼是 Application Load Balancer？](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/introduction.html)
+ [什麼是 Network Load Balancer？](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/introduction.html)
+ [什麼是 Gateway Load Balancer？](https://docs.aws.amazon.com/elasticloadbalancing/latest/gateway/introduction.html)
+ [什麼是 Classic Load Balancer？](https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/introduction.html)

# 準備連接 Elastic Load Balancing 負載平衡器
<a name="getting-started-elastic-load-balancing"></a>

將 Elastic Load Balancing 負載平衡器連接至 Auto Scaling 群組之前，您必須先完成下列先決條件：
+ 您必須已建立用於將流量路由至 Auto Scaling 群組的負載平衡器和目標群組。

  有兩種方法可以建立負載平衡器和目標群組：
  + **使用 Elastic Load Balancing** – 在建立 Auto Scaling 群組之前，請遵循 Elastic Load Balancing 文件中的程序來建立和設定負載平衡器和目標群組。略過註冊 Amazon EC2 執行個體的步驟。當您將目標群組連接至 Auto Scaling 群組時，Amazon EC2 Auto Scaling 會自動負責註冊 （和取消註冊） 執行個體。如需詳細資訊，請參閱《Elastic Load Balancing 使用者指南》**中的 [Elastic Load Balancing 入門](https://docs.aws.amazon.com/elasticloadbalancing/latest/userguide/load-balancer-getting-started.html)。
  + **使用 Amazon EC2 Auto Scaling** – 從 Amazon EC2 Auto Scaling 主控台建立、設定和連接具有基本組態的負載平衡器和目標群組。如需詳細資訊，請參閱[從主控台設定 Application Load Balancer 或 Network Load Balancer](as-create-load-balancer-console.md)。
+ 在建立負載平衡器之前，請了解您需要的負載平衡器類型。如需詳細資訊，請參閱[Elastic Load Balancing 類型](autoscaling-load-balancer.md#integrations-aws-elastic-load-balancing-types)。
+ 負載平衡器及其目標群組必須與 Auto Scaling 群組位於相同的 AWS 帳戶 VPC 和區域。
+ 目標群組必須指定 `instance` 的目標類型。在使用 Auto Scaling 群組時，您無法指定 `ip` 的目標類型。
+ 如果 Auto Scaling 群組的啟動範本不包含正確的安全群組，以允許來自負載平衡器的必要傳入流量，您必須更新啟動範本。建議採用的規則取決於負載平衡器的類型和負載平衡器使用的後端類型。例如，若要將流量路由傳送至 Web 伺服器，則允許從負載平衡器的連接埠 80 上傳入 HTTP 存取。修改啟動範本時，現有執行個體不會以新設定更新。若要更新現有的執行個體，您可以啟動執行個體重新整理來取代執行個體。如需詳細資訊，請參閱[使用執行個體重新整理來更新 Auto Scaling 群組中的執行個體](asg-instance-refresh.md)。
+ 啟動範本中的安全群組也必須允許從 Elastic Load Balancing 正確連接埠上的負載平衡器存取，才能執行其運作狀態檢查。
+ 在 Gateway Load Balancer 後方部署虛擬設備時，啟動範本中的 Amazon Machine Image (AMI) 必須指定支援 GENEVE 通訊協定的 AMI ID，以允許 Auto Scaling 群組與 Gateway Load Balancer 交換流量。此外，啟動範本中的安全群組必須允許連接埠 6081 上的 UDP 流量。

**提示**  
如果您的 Bootstrap 指令碼需要一段時間才能完成，可以選擇將啟動 lifecycle hook 新增至 Auto Scaling 群組，以在 Bootstrap 指令碼成功完成且執行個體上的應用程式已準備好接受流量之前，先延遲在負載平衡器後再註冊執行個體。初始在 Amazon EC2 Auto Scaling 主控台中建立 Auto Scaling 群組時，無法新增 lifecycle hook。不過，您可以在建立群組之後新增生命週期關聯。如需詳細資訊，請參閱[Amazon EC2 Auto Scaling lifecycle hook](lifecycle-hooks.md)。

## 設定目標的運作狀態檢查
<a name="elb-health-checks-for-targets"></a>

您可以為向 Elastic Load Balancing 負載平衡器註冊的目標設定運作狀態檢查，以確保它們能夠正確處理流量。特定步驟會根據您使用的負載平衡器類型而有所不同。如需詳細資訊，請參閱下列資源：
+ **Application Load Balancer** – 請參閱 *Application Load Balancer 使用者指南*中的[目標群組的運作狀態檢查](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/target-group-health-checks.html)。
+ **Network Load Balancer** – 請參閱 *Network Load Balancer 使用者指南*中的[目標群組的運作狀態檢查](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/target-group-health-checks.html)。
+ **Gateway Load Balancer** – 請參閱《*Gateway Load Balancer 使用者指南*》中的[目標群組的運作狀態檢查](https://docs.aws.amazon.com/elasticloadbalancing/latest/gateway/health-checks.html)。
+ **Classic Load Balancer** – 請參閱 [Classic Load Balancer 使用者指南中的設定 Classic Load Balancer 的運作狀態檢查](https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/elb-healthchecks.html)。 **

根據預設，Amazon EC2 Auto Scaling 不會將執行個體視為運作狀態不佳，如果執行個體未通過 Elastic Load Balancing 運作狀態檢查，則會予以取代。Auto Scaling 群組的預設運作狀態檢查只進行 EC2 運作狀態檢查。如需詳細資訊，請參閱[Auto Scaling 群組中的執行個體運作狀態檢查](ec2-auto-scaling-health-checks.md)。

若要讓 Amazon EC2 Auto Scaling 取代 Elastic Load Balancing 回報運作狀態不佳的執行個體，您可以將 Auto Scaling 群組設定為使用 Elastic Load Balancing 運作狀態檢查。如此一來，如果執行個體未通過 Amazon EC2 EC2 Auto Scaling 就會將執行個體視為運作狀態不佳。 Elastic Load Balancing 如果將多個負載平衡器目標群組或 Classic Load Balancer 連接到群組，上述所有項目都必須回報執行個體狀態良好，群組才會將該執行個體視為狀態良好。假如上述任一個項目回報執行個體運作狀態不佳，Auto Scaling 群組便會替換該執行個體，即使其他回報其運作狀態良好也一樣。

如需如何為 Auto Scaling 群組啟用這些運作狀態檢查的資訊，請參閱 [將 Elastic Load Balancing 負載平衡器連接至 Auto Scaling 群組](attach-load-balancer-asg.md)。

**注意**  
為了確保這些運作狀態檢查盡快開始，請確定您群組的運作狀態檢查寬限期未設定太高，但足夠讓 Elastic Load Balancing 運作狀態檢查判斷目標是否可用於處理請求。如需詳細資訊，請參閱[設定 Auto Scaling 群組的運作狀態檢查寬限期。](health-check-grace-period.md)。

# 將 Elastic Load Balancing 負載平衡器連接至 Auto Scaling 群組
<a name="attach-load-balancer-asg"></a>

本主題說明如何將 Elastic Load Balancing 負載平衡器連接至 Auto Scaling 群組。其中也說明如何開啟 Elastic Load Balancing 運作狀態檢查，讓 Amazon EC2 Auto Scaling 取代 Elastic Load Balancing 回報運作狀態不佳的執行個體。

預設情況下，Amazon EC2 Auto Scaling 只會根據 Amazon EC2 運作狀態檢查來取代運作狀態不佳或無法連接的執行個體。如果您開啟 Elastic Load Balancing 運作狀態檢查，則如果您連接到 Auto Scaling 群組的任何 Elastic Load Balancing 負載平衡器回報運作狀態不佳，Amazon EC2 Auto Scaling 可以取代執行中的執行個體。

如需將 Application Load Balancer 連接至 Auto Scaling 群組的教學課程，請參閱 [教學課程：設定擴展和負載平衡應用程式](tutorial-ec2-auto-scaling-load-balancer.md)。

**重要**  
繼續操作之前，請先完成上一節中的所有[先決條件](getting-started-elastic-load-balancing.md)。

**Contents**
+ [連接目標群組或 Classic Load Balancer](#as-add-load-balancer-console)
+ [分離目標群組或 Classic Load Balancer](#as-remove-load-balancer)

## 連接目標群組或 Classic Load Balancer
<a name="as-add-load-balancer-console"></a>

當您建立或更新 Auto Scaling 群組時，您可以連接一或多個目標群組或 Classic Load Balancer。當您連接 Application Load Balancer、Network Load Balancer 或 Gateway Load Balancer 時，您會連接目標群組，而不是負載平衡器本身。

請依照本節中的步驟，使用主控台執行下列操作：
+ 將目標群組或 Classic Load Balancer 連接至 Auto Scaling 群組
+ 開啟 Elastic Load Balancing 的運作狀態檢查

**若要在建立新 Auto Scaling 群組時連接現有負載平衡器**

1. 前往網址 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) 開啟 Amazon EC2 主控台，然後從導覽窗格中選擇 **Auto Scaling 群組**。

1. 在畫面頂端的導覽列上，選擇您在其中建立負載平衡器的 AWS 區域 。

1. 選擇 **Create Auto Scaling group** (建立 Auto Scaling 群組)。

1.  在步驟 1 和步驟 2 中，選擇所需選項，然後繼續進行**步驟 3：設定進階選項**。

1. 針對 **Load balancing** (負載平衡)，選擇 **Attach to an existing load balancer** (連接到現有負載平衡器)。

1. 在 **Attach to an existing load balancer** (連接到現有負載平衡器) 下，執行下列其中一項操作：

   1. 對於 Application Load Balancer、Network Load Balancer 和 Gateway Load Balancer：

      選擇 **Choose from your load balancer target groups** (從負載平衡器目標群組中選擇)，然後從 **Existing load balancer target groups** (現有負載平衡器目標群組) 欄位中選擇目標群組。

   1. 對於 Classic Load Balancer：

      選擇 **Choose from Classic Load Balancers** (從 Classic Load Balancer 中選擇)，然後從 **Classic Load Balancer ** 欄位中選擇您的負載平衡器。

1. (選用) 在**運作狀態檢查**、**其他運作狀態檢查類型**上，選取**開啟 Elastic Load Balancing 運作狀態檢查**。

1. (選用) 針對**運作狀態檢查寬限期**，輸入時長，以秒為單位。這是 Amazon EC2 Auto Scaling 在進入 `InService` 狀態後檢查執行個體的運作狀態之前需要等待的時間。如需詳細資訊，請參閱[設定 Auto Scaling 群組的運作狀態檢查寬限期。](health-check-grace-period.md)。

1. 繼續建立 Auto Scaling 群組。建立 Auto Scaling 群組之後，您的執行個體會自動註冊到負載平衡器。

**將現有負載平衡器連接到建立後的 Auto Scaling 群組**

1. 前往網址 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) 開啟 Amazon EC2 主控台，然後從導覽窗格中選擇 **Auto Scaling 群組**。

1. 選取 Auto Scaling 群組旁的核取方塊。

   **Auto Scaling groups** (Auto Scaling 群組) 頁面底部會開啟一個分割窗格。

1. 在**整合**索引標籤上，選擇**負載平衡**、**編輯**。

1. 在 **Load balancing** (負載平衡) 下方，執行下列其中一項操作：

   1. 針對 **Application, Network or Gateway Load Balancer target groups** (Application、Network 或 Gateway Load Balancer 目標群組)，選取其核取方塊並選擇目標群組。

   1. 針對 **Classic Load Balancer**，選取其核取方塊並選擇您的負載平衡器。

1. 選擇**更新**。

當您完成連接負載平衡器時，您可以選擇開啟使用負載平衡器的運作狀態檢查。

**開啟 Elastic Load Balancing 運作狀態檢查**

1. 在 **Details** (詳細資訊) 索引標籤上，選擇 **Health checks** (運作狀態檢查)、**Edit** (編輯)。

1. 在**運作狀態檢查**、**其他運作狀態檢查類型**上，選取**開啟 Elastic Load Balancing 運作狀態檢查**。

1. 對於**運作狀態檢查寬限期**，輸入時間量，以秒為單位。這是 Amazon EC2 Auto Scaling 在進入 `InService` 狀態後檢查執行個體的運作狀態之前需要等待的時間。如需詳細資訊，請參閱[設定 Auto Scaling 群組的運作狀態檢查寬限期。](health-check-grace-period.md)。

1. 選擇**更新**。

**注意**  
您可以在使用 AWS CLI連接負載平衡器時，監控負載平衡器的狀態。當 Amazon EC2 Auto Scaling 已成功註冊執行個體，且至少有一個已註冊的執行個體通過了運作狀態檢查時，您就會獲得 `InService` 狀態。如需詳細資訊，請參閱[確認負載平衡器的連接狀態](load-balancer-status.md)。

## 分離目標群組或 Classic Load Balancer
<a name="as-remove-load-balancer"></a>

如果不再需要負載平衡器，請按照下列步驟從 Auto Scaling 群組分開它。

**將負載平衡器從群組中分開**

1. 前往網址 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) 開啟 Amazon EC2 主控台，然後從導覽窗格中選擇 **Auto Scaling 群組**。

1. 選取現有群組旁邊的核取方塊。

   **Auto Scaling groups** (Auto Scaling 群組) 頁面底部會開啟一個分割窗格。

1. 在 **Details** (詳細資訊) 索引標籤上，選擇 **Load balancing** (負載平衡)、**Edit** (編輯)。

1. 在 **Load balancing** (負載平衡) 下方，執行下列其中一項操作：

   1. 針對 **Application, Network or Gateway Load Balancer target groups** (Application、Network 或 Gateway Load Balancer 目標群組)，選擇目標群組旁的刪除圖示 (X)。

   1. 針對 **Classic Load Balancer**，選擇負載平衡器旁的刪除圖示 (X)。

1. 選擇**更新**。

當您完成分離目標群組時，您可以關閉 Elastic Load Balancing 運作狀態檢查。

**關閉 Elastic Load Balancing 運作狀態檢查**

1. 在 **Details** (詳細資訊) 索引標籤上，選擇 **Health checks** (運作狀態檢查)、**Edit** (編輯)。

1. 對於**運作狀態檢查**、**其他運作狀態檢查類型**，取消選取**開啟 Elastic Load Balancing 運作狀態檢查**。

1. 選擇**更新**。

# 從主控台設定 Application Load Balancer 或 Network Load Balancer
<a name="as-create-load-balancer-console"></a>

在建立 Auto Scaling 群組時，請使用下列程序來建立和連接 Application Load Balancer 或 Network Load Balancer。

**若要在建立新的 Auto Scaling 群組時建立和連接新的負載平衡器**

1. 前往網址 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) 開啟 Amazon EC2 主控台，然後從導覽窗格中選擇 **Auto Scaling 群組**。

1. 選擇 **Create Auto Scaling group** (建立 Auto Scaling 群組)。

1. 在步驟 1 和步驟 2 中，選擇所需選項，然後繼續進行**步驟 3：設定進階選項**。

1. 針對 **Load balancing** (負載平衡)，選擇 **Attach to a new load balancer** (連接到新的負載平衡器)。

   1. 針對 **Attach to a new load balancer** (連接到新的負載平衡器) 下的 **Load balancer type** (負載平衡器類型)，選擇建立 Application Load Balancer 或 Network Load Balancer。

   1. 針對 **Load balancer name** (負載平衡器名稱)，輸入負載平衡器的名稱，或保留預設名稱。

   1. 針對 **Load balancer scheme** (負載平衡器機制)，選擇建立面向公有網際網路的負載平衡器，或保留內部負載平衡器的預設值。

   1. 針對 **Availability Zones and subnets** (可用區域與子網路)，選取您在其中啟用 EC2 執行個體的各個可用區域的公有子網路。(這些資訊會在步驟 2 中預先填入。)

   1. 針對 **Listeners and routing** (接聽程式和路由)，請更新接聽程式的連接埠號碼 (若有必要)，再在 **Default routing** (預設路由) 下選擇 **Create a target group** (建立目標群組)。您也可以從下拉式清單中選擇現有目標群組。

   1. 如果在最後一個步驟中選擇 **Create a target group** (建立目標群組)，對於 **New target group name** (新目標群組名稱)，請輸入目標群組的名稱，或保留預設名稱。

   1. 若要將標籤新增至負載平衡器，選取 **Add tag** (新增標籤)，並提供各標的標籤鍵和標籤值。

1. (選用) 在**運作狀態檢查**、**其他運作狀態檢查類型**上，選取**開啟 Elastic Load Balancing 運作狀態檢查**。

1. (選用) 針對**運作狀態檢查寬限期**，輸入時長，以秒為單位。這是 Amazon EC2 Auto Scaling 在進入 `InService` 狀態後檢查執行個體的運作狀態之前需要等待的時間。如需詳細資訊，請參閱[設定 Auto Scaling 群組的運作狀態檢查寬限期。](health-check-grace-period.md)。

1. 繼續建立 Auto Scaling 群組。建立 Auto Scaling 群組之後，您的執行個體會自動註冊到負載平衡器。
**注意**  
建立 Auto Scaling 群組之後，您可以使用 Elastic Load Balancing 主控台來建立其他接聽程式。如需建立使用安全通訊協定 (例如 HTTPS) 的接聽程式或 UDP 接聽程式，便會用到此功能。只要使用不同的連接埠，您就可以將更多接聽程式新增至現有負載平衡器。

# 確認負載平衡器的連接狀態
<a name="load-balancer-status"></a>

連接負載平衡器後，它會進入 `Adding` 狀態，同時註冊該群組中的執行個體。在群組內所有執行個體都註冊完成後，它會進入 `Added` 狀態。在至少有一個註冊的執行個體通過運作狀態檢查後，它就會進入 `InService` 狀態。當負載平衡器進入 `InService` 狀態後，Amazon EC2 Auto Scaling 可以終止和替換任何回報為運作狀態不佳的執行個體。如果沒有註冊的執行個體通過運作狀態檢查 (例如，因為運作狀態檢查的設定錯誤)，負載平衡器不會進入 `InService` 狀態。Amazon EC2 Auto Scaling 不會終止和替換執行個體。

當您分離負載平衡器後，它會進入 `Removing` 狀態，同時取消註冊該群組的執行個體。取消註冊後的執行個體仍繼續執行作業。依預設，Application Load Balancer、Network Load Balancer 和 Gateway Load Balancer 會啟用連接耗盡 (取消註冊延遲)。如果啟用了連接耗盡，Elastic Load Balancing 會等待執行中的請求完成或最大逾時過期 (以兩者之中先發生者為準)，再取消註冊執行個體。

您可以使用 AWS Command Line Interface (AWS CLI) AWS SDKs來驗證連接狀態。您無法從主控台確認連接狀態。

**使用 AWS CLI 驗證連接狀態**  
以下 [describe-traffic-sources](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/describe-traffic-sources.html) 命令會傳回指定 Auto Scaling 群組之所有流量來源的連接狀態。

```
aws autoscaling describe-traffic-sources --auto-scaling-group-name my-asg
```

此範例會傳回連接至 Auto Scaling 群組的 Elastic Load Balancing 目標群組的 ARN，以及 `State` 元素中目標群組的連接狀態。

```
{
    "TrafficSources": [
        {
            "Identifier": "arn:aws:elasticloadbalancing:region:account-id:targetgroup/my-targets/1234567890123456",
            "State": "InService",
            "Type": "elbv2"
        }
    ]
}
```

# 新增可用區域
<a name="as-add-az-console"></a>

若要利用地理備援的安全性和可靠性，請讓 Auto Scaling 群組跨越您工作所在區域中的多個可用區域，並連接負載平衡器以跨越這些可用區域分配傳入流量。

當一個可用區域運作狀態不佳或無法使用時，Amazon EC2 Auto Scaling 會在受影響的可用區域中啟動新的執行個體。當運作狀態不佳的可用區域恢復到良好狀態時，Amazon EC2 Auto Scaling 會自動為 Auto Scaling 群組所有可用區域重新平均分配應用程式執行個體。為此，Amazon EC2 Auto Scaling 會嘗試在可用區域中使用最少的執行個體啟動新的執行個體。不過，若是嘗試失敗了，Amazon EC2 Auto Scaling 會試著在其他可用區域中啟動執行個體，直到成功為止。

Elastic Load Balancing 會為您為負載平衡器啟用的各個可用區域建立負載平衡器節點。若您啟用負載平衡器跨區域負載平衡功能，則每個負載平衡器節點會將流量平均分配至所有啟用的可用區域內已註冊的執行個體。若顯示跨區域負載平衡，每個負載平衡器節點會平均地將請求僅分配到其可用區域中已註冊的執行個體。

在建立 Auto Scaling 群組時，您必須指定至少一個可用區域。之後，您可以透過新增可用區域到 Auto Scaling 群組，並啟用負載平衡器的可用區域 (若負載平衡器提供支援) 來擴展您應用程式的可用性。

**限制**  
若要為負載平衡器更新啟用的可用區域，您必須注意下列限制：
+ 在為負載平衡器啟用可用區域時，您要從該可用區域指定一個子網路。請注意，您可以為負載平衡器在每個可用區域啟用最多一個子網路。
+ 對於面向網際網路的負載平衡器，您為負載平衡器指定的子網路必須至少有八個可用的 IP 地址。
+ 針對 Application Load Balancer，您必須啟用至少兩個可用區域。
+ 針對 Network Load Balancer，您無法停用已啟用的可用區域，但可以啟用其他區域。
+ 對於閘道負載平衡器，您無法停用已啟用的可用區域，但您可以啟用其他可用區域。

按照下列步驟將 Auto Scaling 群組和負載平衡器擴展至其他可用區域內的子網路。

**如要新增可用區域**

1. 前往網址 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) 開啟 Amazon EC2 主控台，然後從導覽窗格中選擇 **Auto Scaling 群組**。

1. 選取現有群組旁邊的核取方塊。

   **Auto Scaling groups** (Auto Scaling 群組) 頁面底部會開啟一個分割窗格。

1. 在 **Details** (詳細資訊) 索引標籤上，選擇 **Network** (網路)、**Edit** (編輯)。

1. 在 **Subnet** (子網路) 中，選擇與要新增到 Auto Scaling 群組的可用區域對應的子網路。

1. 選擇**更新**。

1. 若要為您的負載平衡器更新可用區域，以使其與您的 Auto Scaling 群組共用相同的可用區域，請完成以下步驟：

   1. 在導覽窗格的 **Load Balancing (負載平衡器)**，選擇 **Load Balancer (負載平衡器)**。

   1. 選擇您的負載平衡器。

   1. 執行以下任意一項：
      + 對於 Application Load Balancer 與 Network Load Balancer：

        1. 在 **Description** (描述) 索引標籤上，針對 **Availability Zones** (可用區域) 選擇 **Edit** (編輯)。

        1. 在 **Edit subnets** (編輯子網路) 頁面上，針對 **Availability Zones** (可用區域)，選取要新增的可用區域核取方塊。如果該區域只有一個子網路，則會選取該子網路。如果該區域有多個子網路，則請選取其中一個子網路。
      + 對於 VPC 中的 Classic Load Balancer：

        1. 在 **Instances** (執行個體) 索引標籤上，選擇 **Edit Availability Zones** (編輯可用區域)。

        1. 在 **Add and Remove Subnets** (新增和移除子網路) 頁面上，針對 **Available subnets** (可用的子網路)，使用新增 (\$1) 圖示選擇該子網路。子網路會移至 **Selected subnets** (選取的子網路) 下。

   1. 選擇**儲存**。

## 相關資源
<a name="availability-zone-related-resources"></a>

在您變更可用區域時，Amazon EC2 Auto Scaling 會重新平衡群組。這表示取代和重新分配某些執行個體。如需詳細資訊，請參閱[範例：跨可用區域分配執行個體](auto-scaling-benefits.md#arch-AutoScalingMultiAZ)。

如果您在可用區域中註冊的目標尚未啟用負載平衡器，則負載平衡器不會將流量路由到這些目標。如需詳細資訊，請參閱 *Elastic Load Balancing 使用者指南*中的 [Elastic Load Balancing的運作方式](https://docs.aws.amazon.com/elasticloadbalancing/latest/userguide/how-elastic-load-balancing-works.html) 。

# 移除可用區域
<a name="as-remove-az-console"></a>

若要從 Auto Scaling 群組和負載平衡器移除可用區域，請按下列步驟操作。

**若要移除可用區域**

1. 前往網址 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) 開啟 Amazon EC2 主控台，然後從導覽窗格中選擇 **Auto Scaling 群組**。

1. 選取現有群組旁邊的核取方塊。

   **Auto Scaling groups** (Auto Scaling 群組) 頁面底部會開啟一個分割窗格。

1. 在 **Details** (詳細資訊) 索引標籤上，選擇 **Network** (網路)、**Edit** (編輯)。

1. 在 **Subnet** (子網路) 中，針對要從 Auto Scaling 群組移除的可用區域對應的子網路，請選擇刪除 (X) 圖示。如果該區域有多個子網路，則選擇每個子網路的刪除 (X) 圖示。

1. 選擇**更新**。

1. 若要為您的負載平衡器更新可用區域，以使其與您的 Auto Scaling 群組共用相同的可用區域，請完成以下步驟：

   1. 在導覽窗格的 **Load Balancing (負載平衡器)**，選擇 **Load Balancer (負載平衡器)**。

   1. 選擇您的負載平衡器。

   1. 執行以下任意一項：
      + 針對 Application Load Balancer：

        1. 在 **Description** (描述) 索引標籤上，針對 **Availability Zones** (可用區域) 選擇 **Edit** (編輯)。

        1. 在 **Edit subnets** (編輯子網路) 頁面上，對於 **Availability Zones** (可用區域)，取消勾選要移除之該可用區域子網路的核取方塊。
      + 對於 VPC 中的 Classic Load Balancer：

        1. 在 **Instances** (執行個體) 索引標籤上，選擇 **Edit Availability Zones** (編輯可用區域)。

        1. 在 **Add and Remove Subnets** (新增和移除子網路) 頁面上，對於 **Available subnets** (可用的子網路)，使用刪除 (-) 圖示以移除該子網路。子網路移至 **Available subnets** (可用的子網路) 下。

   1. 選擇**儲存**。

# 從 Auto Scaling 群組分離目標群組或 Classic Load Balancer
<a name="as-remove-load-balancer"></a>

如果不再需要負載平衡器，請按照下列步驟從 Auto Scaling 群組分開它。

**將負載平衡器從群組中分開**

1. 前往網址 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) 開啟 Amazon EC2 主控台，然後從導覽窗格中選擇 **Auto Scaling 群組**。

1. 選取現有群組旁邊的核取方塊。

   **Auto Scaling groups** (Auto Scaling 群組) 頁面底部會開啟一個分割窗格。

1. 在 **Details** (詳細資訊) 索引標籤上，選擇 **Load balancing** (負載平衡)、**Edit** (編輯)。

1. 在 **Load balancing** (負載平衡) 下方，執行下列其中一項操作：

   1. 針對 **Application, Network or Gateway Load Balancer target groups** (Application、Network 或 Gateway Load Balancer 目標群組)，選擇目標群組旁的刪除圖示 (X)。

   1. 針對 **Classic Load Balancer**，選擇負載平衡器旁的刪除圖示 (X)。

1. 選擇**更新**。

當您完成分離目標群組時，您可以關閉 Elastic Load Balancing 運作狀態檢查。

**關閉 Elastic Load Balancing 運作狀態檢查**

1. 在 **Details** (詳細資訊) 索引標籤上，選擇 **Health checks** (運作狀態檢查)、**Edit** (編輯)。

1. 對於**運作狀態檢查**、**其他運作狀態檢查類型**，取消選取**開啟 Elastic Load Balancing 運作狀態檢查**。

1. 選擇**更新**。

# 使用 使用 Elastic Load Balancing 的範例 AWS CLI
<a name="examples-elastic-load-balancing-aws-cli"></a>

使用 AWS Command Line Interface (AWS CLI) 來連接、分離和描述負載平衡器和目標群組、新增和移除 Elastic Load Balancing 運作狀態檢查，以及變更已啟用的可用區域。

本主題顯示執行 Amazon EC2 Auto Scaling 常見任務的 AWS CLI 命令範例。

**重要**  
如需其他命令範例，請參閱 *AWS CLI 命令參考*中的 [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/elbv2/index.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/elbv2/index.html) 和 [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/elb/index.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/elb/index.html)。

**Topics**
+ [連接您的目標群組或 Classic Load Balancer](#example-attach-traffic-sources)
+ [描述您的目標群組或 Classic Load Balancer](#example-describe-traffic-sources)
+ [新增 Elastic Load Balancing 運作狀態檢查](#example-add-elb-healthcheck)
+ [變更您的可用區域](#example-specify-availability-zones)
+ [分離您的目標群組或 Classic Load Balancer](#example-detach-traffic-sources)
+ [移除 Elastic Load Balancing 運作狀態檢查](#example-remove-elb-healthcheck)
+ [舊版命令](#legacy-commands)

## 連接您的目標群組或 Classic Load Balancer
<a name="example-attach-traffic-sources"></a>

使用下列 [create-auto-scaling-group](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/create-auto-scaling-group.html) 命令建立 Auto Scaling 群組，同時透過指定其 Amazon Resource Name (ARN) 來連接目標群組。目標群組可與 Application Load Balancer、Network Load Balancer 或 Gateway Load Balancer 關聯。

取代 `--auto-scaling-group-name`、`--vpc-zone-identifier`、`--min-size` 和 `--max-size` 的範例值。對於 `--launch-template` 選項，請使用 Auto Scaling 群組的啟動範本名稱和版本取代 `my-launch-template` 和 `1`。對於 `--traffic-sources` 選項，請用 Application Load Balancer、Network Load Balancer 或 Gateway Load Balancer 目標群組的 ARN 取代範例 ARN。

```
aws autoscaling create-auto-scaling-group --auto-scaling-group-name my-asg \
  --launch-template LaunchTemplateName=my-launch-template,Version='1' \
  --vpc-zone-identifier "subnet-5ea0c127,subnet-6194ea3b,subnet-c934b782" \
  --min-size 1 --max-size 5 \
  --traffic-sources "Identifier=arn:aws:elasticloadbalancing:region:account-id:targetgroup/my-targets/12345678EXAMPLE1"
```

建立 Auto Scaling 群組後，使用 [attach-traffic-sources](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/attach-traffic-sources.html) 命令，將額外的目標群組連接至該 Auto Scaling 群組。

下列命令可將另一個目標群組新增至同一群組。

```
aws autoscaling attach-traffic-sources --auto-scaling-group-name my-asg \
  --traffic-sources "Identifier=arn:aws:elasticloadbalancing:region:account-id:targetgroup/my-targets/12345678EXAMPLE2"
```

或者，若要將 Classic Load Balancer 連接至您的群組，請在使用 **create-auto-scaling-group** 或 **attach-traffic-sources** 時指定 `--traffic-sources` 和 `--type` 選項，如下列範例中所示。將 `my-classic-load-balancer` 取代為 Classic Load Balancer 的名稱。對於 `--type` 選項，請指定值為 `elb`。

```
--traffic-sources "Identifier=my-classic-load-balancer" --type elb
```

## 描述您的目標群組或 Classic Load Balancer
<a name="example-describe-traffic-sources"></a>

若要描述連結至 Auto Scaling 群組的負載平衡器或目標群組，請使用下列 [describe-traffic-sources](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/describe-traffic-sources.html) 命令。用您的群組名稱取代 `my-asg`。

```
aws autoscaling describe-traffic-sources --auto-scaling-group-name my-asg
```

此範例會傳回您連接至 Auto Scaling 群組的 Elastic Load Balancing 目標群組的 ARN。

```
{
    "TrafficSources": [
        {
            "Identifier": "arn:aws:elasticloadbalancing:region:account-id:targetgroup/my-targets/12345678EXAMPLE1",
            "State": "InService",
            "Type": "elbv2"
        },
        {
            "Identifier": "arn:aws:elasticloadbalancing:region:account-id:targetgroup/my-targets/12345678EXAMPLE2",
            "State": "InService",
            "Type": "elbv2"
        }
    ]
}
```

如需 `State` 輸出中欄位的說明，請參閱 [確認負載平衡器的連接狀態](load-balancer-status.md)。

## 新增 Elastic Load Balancing 運作狀態檢查
<a name="example-add-elb-healthcheck"></a>

若要將 Elastic Load Balancing 運作狀態檢查新增至 Auto Scaling 群組對執行個體執行的運作狀態檢查，請使用下列 [update-auto-scaling-group](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/update-auto-scaling-group.html) 命令並指定 `ELB` 作為 `--health-check-type` 選項的值。用您的群組名稱取代 `my-asg`。

```
aws autoscaling update-auto-scaling-group --auto-scaling-group-name my-asg \
  --health-check-type "ELB"
```

新執行個體通常需要時間進行短暫暖機，才能通過運作狀態檢查。如果寬限期未提供足夠的暖機時間，則執行個體可能無法準備好提供流量。Amazon EC2 Auto Scaling 可能會認為這些執行個體運作狀態不佳並加以替換。

若要更新運作狀態檢查寬限期，請在使用 **update-auto-scaling-group** 時選用 `--health-check-grace-period` 選項，如下列範例中所示。如果發現新執行個體的運作狀態不佳，請將 *300* 取代為將新執行個體終止之前保持其服務狀態的秒數。

```
--health-check-grace-period 300
```

如需詳細資訊，請參閱[Auto Scaling 群組中的執行個體運作狀態檢查](ec2-auto-scaling-health-checks.md)。

## 變更您的可用區域
<a name="example-specify-availability-zones"></a>

變更您的可用區域時，您應留意一些限制。如需詳細資訊，請參閱[新增可用區域移除可用區域](as-add-az-console.md)。

**變更 Application Load Balancer 或 Network Load Balancer 的可用區域**

1. 在您變更負載平衡器的可用區域之前，最好先更新 Auto Scaling 群組的可用區域，以確認指定區域中的執行個體類型是否可用。

   若要更新 Auto Scaling 群組的可用區域，請使用下列 [update-auto-scaling-group](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/update-auto-scaling-group.html) 命令。使用要啟用的可用區域中的子網路 ID 取代範例子網路 ID。指定的子網路會取代先前啟用的子網路。用您的群組名稱取代 `my-asg`。

   ```
   aws autoscaling update-auto-scaling-group --auto-scaling-group-name my-asg \
     --vpc-zone-identifier "subnet-41767929,subnet-cb663da2,subnet-8360a9e7"
   ```

1. 請使用以下 [describe-auto-scaling-groups](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/describe-auto-scaling-groups.html) 命令以驗證新子網路中的執行個體已啟動。如果執行個體已啟動，則您會看到執行個體及其狀態的清單。用您的群組名稱取代 `my-asg`。

   ```
   aws autoscaling describe-auto-scaling-groups --auto-scaling-group-name my-asg
   ```

1. 使用下列 [set-subnets](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/elbv2/set-subnets.html) 命令來指定負載平衡器的子網路。使用要啟用的可用區域中的子網路 ID 取代範例子網路 ID。每個可用區域只能指定一個子網路。指定的子網路會取代先前啟用的子網路。使用負載平衡器的 ARN 取代 `my-lb-arn`。

   ```
   aws elbv2 set-subnets --load-balancer-arn my-lb-arn \
     --subnets subnet-41767929 subnet-cb663da2 subnet-8360a9e7
   ```

**變更 Classic Load Balancer 的可用區域**

1. 在您變更負載平衡器的可用區域之前，最好先更新 Auto Scaling 群組的可用區域，以確認指定區域中的執行個體類型是否可用。

   若要更新 Auto Scaling 群組的可用區域，請使用下列 [update-auto-scaling-group](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/update-auto-scaling-group.html) 命令。使用要啟用的可用區域中的子網路 ID 取代範例子網路 ID。指定的子網路會取代先前啟用的子網路。用您的群組名稱取代 `my-asg`。

   ```
   aws autoscaling update-auto-scaling-group --auto-scaling-group-name my-asg \
     --vpc-zone-identifier "subnet-41767929,subnet-cb663da2"
   ```

1. 請使用以下 [describe-auto-scaling-groups](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/describe-auto-scaling-groups.html) 命令以驗證新子網路中的執行個體已啟動。如果執行個體已啟動，則您會看到執行個體及其狀態的清單。用您的群組名稱取代 `my-asg`。

   ```
   aws autoscaling describe-auto-scaling-groups --auto-scaling-group-name my-asg
   ```

1. 使用以下 [attach-load-balancer-to-subnets](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/elb/attach-load-balancer-to-subnets.html) 命令來啟用 Classic Load Balancer 的新可用區域。使用要啟用的可用區域中的子網路 ID 取代範例子網路 ID。使用負載平衡器的名稱取代 `my-lb`。

   ```
   aws elb attach-load-balancer-to-subnets --load-balancer-name my-lb \
     --subnets subnet-cb663da2
   ```

   若要停用可用區域，請執行下列 [detach-load-balancer-from-subnets](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/elb/detach-load-balancer-from-subnets.html) 命令。使用要停用的可用區域中的子網路 ID 取代範例子網路 ID。使用負載平衡器的名稱取代 `my-lb`。

   ```
   aws elb detach-load-balancer-from-subnets --load-balancer-name my-lb \
     --subnets subnet-8360a9e7
   ```

## 分離您的目標群組或 Classic Load Balancer
<a name="example-detach-traffic-sources"></a>

如果不再需要目標群組，請使用以下 [detach-load-balancer-target-groups](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/detach-traffic-sources.html) 命令從您的 Auto Scaling 群組分離該目標群組。

對於 `--auto-scaling-group-name` 選項，請用您的群組名稱取代 `my-asg`。對於 `--traffic-sources` 選項，請用 Application Load Balancer、Network Load Balancer 或 Gateway Load Balancer 目標群組的 ARN 取代範例 ARN。

```
aws autoscaling detach-traffic-sources --auto-scaling-group-name my-asg \
  --traffic-sources "Identifier=arn:aws:elasticloadbalancing:region:account-id:targetgroup/my-targets/1234567890123456"
```

若要從群組中分離 Classic Load Balancer，請指定 `--traffic-sources` 和 `--type` 選項，如下列範例所示。將 `my-classic-load-balancer` 取代為 Classic Load Balancer 的名稱。對於 `--type` 選項，請指定值為 `elb`。

```
--traffic-sources "Identifier=my-classic-load-balancer" --type elb
```

## 移除 Elastic Load Balancing 運作狀態檢查
<a name="example-remove-elb-healthcheck"></a>

若要將 Elastic Load Balancing 運作狀態檢查從 Auto Scaling 群組中移除，請使用下列 [update-auto-scaling-group](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/update-auto-scaling-group.html) 命令並指定 `EC2` 作為 `--health-check-type` 選項的值。用您的群組名稱取代 `my-asg`。

```
aws autoscaling update-auto-scaling-group --auto-scaling-group-name my-asg \
  --health-check-type "EC2"
```

如需詳細資訊，請參閱[Auto Scaling 群組中的執行個體運作狀態檢查](ec2-auto-scaling-health-checks.md)。

## 舊版命令
<a name="legacy-commands"></a>

下列範例顯示如何使用舊版 CLI 命令連接、分離以及描述負載平衡器和目標群組。它們仍保留在本文件中，供任何想要使用的客戶做參考。我們會繼續支援舊版 CLI 命令，但建議您使用新的「流量來源」CLI 命令，該命令可以連接和分離多种流量來源類型。您可以在同一個 Auto Scaling 群組上同時使用舊版 CLI 命令和「流量來源」CLI 命令。

### 連接您的目標群組或 Classic Load Balancer (舊版)
<a name="example-attach-load-balancer-target-group"></a>

**連接目標群組**  
使用以下 [create-auto-scaling-group](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/create-auto-scaling-group.html) 命令建立已連接目標群組的 Auto Scaling 群組。指定 Application Load Balancer、Network Load Balancer 或 Gateway Load Balancer 目標群組的 Amazon Resource Name (ARN)。

```
aws autoscaling create-auto-scaling-group --auto-scaling-group-name my-asg \
  --launch-template LaunchTemplateName=my-launch-template,Version='1' \
  --vpc-zone-identifier "subnet-5ea0c127,subnet-6194ea3b,subnet-c934b782" \
  --target-group-arns "arn:aws:elasticloadbalancing:region:account-id:targetgroup/my-targets/1234567890123456" \
  --min-size 1 --max-size 5
```

下列 [attach-load-balancer-target-groups](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/attach-load-balancer-target-groups.html) 命令會將目標群組連接到現有 Auto Scaling 群組。

```
aws autoscaling attach-load-balancer-target-groups --auto-scaling-group-name my-asg \
  --target-group-arns "arn:aws:elasticloadbalancing:region:account-id:targetgroup/my-targets/1234567890123456"
```

**連接 Classic Load Balancer**  
使用以下 [create-auto-scaling-group](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/create-auto-scaling-group.html) 命令建立已連接 Classic Load Balancer 的 Auto Scaling 群組。

```
aws autoscaling create-auto-scaling-group --auto-scaling-group-name my-asg \
  --launch-configuration-name my-launch-config \
  --vpc-zone-identifier "subnet-5ea0c127,subnet-6194ea3b,subnet-c934b782" \
  --load-balancer-names "my-load-balancer" \
  --min-size 1 --max-size 5
```

以下 [attach-load-balancers](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/attach-load-balancers.html) 命令會將指定的 Classic Load Balancer 連接到現有 Auto Scaling 群組。

```
aws autoscaling attach-load-balancers --auto-scaling-group-name my-asg \
  --load-balancer-names my-lb
```

### 描述您的目標群組或 Classic Load Balancer (舊版)
<a name="example-describe-load-balancer-target-groups"></a>

**描述目標群組**  
若要描述與 Auto Scaling 群組相關聯的目標群組，請使用 [describe-load-balancer-target-groups](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/describe-load-balancer-target-groups.html) 命令。下列範例列出 *my-asg* 的目標群組。

```
aws autoscaling describe-load-balancer-target-groups --auto-scaling-group-name my-asg
```

**描述 Classic Load Balancer**  
若要描述與 Auto Scaling 群組相關聯的 Classic Load Balancer，請使用 [describe-load-balancers](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/describe-load-balancers.html) 命令。下列範例會列出 *my-asg* 的 Classic Load Balancer。

```
aws autoscaling describe-load-balancers --auto-scaling-group-name my-asg
```

### 分離您的目標群組或 Classic Load Balancer (舊版)
<a name="example-detach-load-balancer-target-group"></a>

**分離目標群組**  
如果不再需要目標群組，請使用以下 [detach-load-balancer-target-groups](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/detach-load-balancer-target-groups.html) 命令從您的 Auto Scaling 群組分開該目標群組。

```
aws autoscaling detach-load-balancer-target-groups --auto-scaling-group-name my-asg \
  --target-group-arns "arn:aws:elasticloadbalancing:region:account-id:targetgroup/my-targets/1234567890123456"
```

**分離 Classic Load Balancer**  
如果不再需要 Classic Load Balancer，則可使用以下 [detach-load-balancers](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/detach-load-balancers.html) 命令將其從您的 Auto Scaling 群組分開。

```
aws autoscaling detach-load-balancers --auto-scaling-group-name my-asg \
  --load-balancer-names my-lb
```

# 使用 VPC Lattice 目標群組管理流量流程
<a name="ec2-auto-scaling-vpc-lattice"></a>

您可以使用 Amazon VPC Lattice 管理在不同資源 (例如 Auto Scaling 群組 或 Lambda 函數) 上執行的應用程式與服務之間的流量和 API 呼叫流程。VPC Lattice 是一項應用程式聯網服務，可讓您連接、保護和監控跨多個帳戶和虛擬私有雲端 (VPC) 的所有服務。若要進一步了解 VPC Lattice，請參閱《[什麼是 VPC Lattice？](https://docs.aws.amazon.com/vpc-lattice/latest/ug/)》

若要開始使用 VPC Lattice，請先建立所需的 VPC Lattice 資源，使與服務網路相關聯的 VPC 資源能夠互相連結。這些資源包括服務、接聽程式、接聽程式規則和目標群組。

若要將 Auto Scaling 群組與 VPC Lattice 服務建立關聯，請為將請求路由至執行個體 ID 註冊的執行個體之服務建立目標群組，並且為服務加入接聽程式以傳送請求至目標群組。然後，將目標群組連接到 Auto Scaling 群組。Amazon EC2 Auto Scaling 會自動將 EC2 執行個體註冊為目標群組的目標。稍後，當 Amazon EC2 Auto Scaling 需要終止執行個體時，它會在終止前自動從目標群組取消註冊執行個體。

連接目標群組之後，這裡成為所有傳入請求連接至 Auto Scaling 群組的進入點。如下圖中的範例所示，接著便可以使用 VPC Lattice 服務指定的接聽程式規則，將傳入請求路由至適當的目標群組。

![\[VPC Lattice 會使用以路徑型路由，將流量路由到兩個 Auto Scaling 群組中的已註冊目標。\]](http://docs.aws.amazon.com/zh_tw/autoscaling/ec2/userguide/images/vpc-lattice-diagram-auto-scaling-groups.png)


當流量透過 VPC Lattice 路由到 Auto Scaling 群組時，VPC Lattice 會使用循環配置負載平衡來平衡群組中執行個體之間的請求。VPC Lattice 還可監控其註冊執行個體的運作狀態，而且只會將流量路由到正常運作的執行個體。

若要確保您的執行個體可用於傳入的請求，您可以選擇將 VPC Lattice 運作狀態檢查新增至 Auto Scaling 群組。如此一來，若其中一個 EC2 執行個體發生失敗，Auto Scaling 群組會自動啟動新的執行個體將其取代。VPC Lattice 運作狀態檢查的行為類似於 Elastic Load Balancing 運作狀態檢查的行為。Auto Scaling 群組的預設運作狀態檢查只進行 EC2 運作狀態檢查。

若要進一步了解 VPC Lattice，請參閱 AWS 部落格上的[使用 Amazon VPC Lattice 簡化Service-to-Service連線、安全性和監控 – 現在已全面推出](https://aws.amazon.com/blogs/aws/simplify-service-to-service-connectivity-security-and-monitoring-with-amazon-vpc-lattice-now-generally-available/)。

**Topics**
+ [準備連接目標群組](getting-started-vpc-lattice.md)
+ [連接 VPC Lattice 目標群組](attach-vpc-lattice-target-group-asg.md)
+ [確認連接狀態](verify-target-group-attachment-status.md)

# 準備將 VPC Lattice 目標群組連接到 Auto Scaling 群組
<a name="getting-started-vpc-lattice"></a>

將 VPC Lattice 目標群組連接到 Auto Scaling 群組之前，您必須完成以下先決條件：
+ 您必須已經建立 VPC Lattice 服務網路、服務、接聽程式和目標群組。如需詳細資訊，請參閱《*VPC Lattice 使用者指南*》中的下列主題：
  + [服務網路](https://docs.aws.amazon.com/vpc-lattice/latest/ug/service-networks.html)
  + [服務](https://docs.aws.amazon.com/vpc-lattice/latest/ug/services.html)
  + [接聽程式](https://docs.aws.amazon.com/vpc-lattice/latest/ug/listeners.html)
  + [目標群組](https://docs.aws.amazon.com/vpc-lattice/latest/ug/target-groups.html)
+ 目標群組必須與 Auto Scaling 群組位於相同的 AWS 帳戶 VPC 和區域。
+ 目標群組必須指定 `instance` 的目標類型。在使用 Auto Scaling 群組時，您無法指定 `ip` 的目標類型。
+ 您必須擁有足夠的 IAM 許可才能將目標群組連接到 Auto Scaling 群組。下列範例政策顯示連結和分離目標群組所需的最低必要許可。

------
#### [ JSON ]

****  

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
          {
              "Effect": "Allow",
              "Action": [
                  "autoscaling:AttachTrafficSources",
                  "autoscaling:DetachTrafficSources",
                  "autoscaling:DescribeTrafficSources",
                  "vpc-lattice:RegisterTargets",
                  "vpc-lattice:DeregisterTargets"
              ],
              "Resource": "*"
          }
      ]
  }
  ```

------
+ 如果 Auto Scaling 群組的啟動範本未包含 VPC Lattice 的正確設定 (例如相容的安全群組)，您必須更新啟動範本。修改啟動範本時，現有執行個體不會使用新的設定進行更新。若要更新現有的執行個體，您可以啟動執行個體重新整理以取代執行個體。如需詳細資訊，請參閱[使用執行個體重新整理來更新 Auto Scaling 群組中的執行個體](asg-instance-refresh.md)。
+ 在您的 Auto Scaling 群組上啟用 VPC Lattice 運作狀態檢查之前，您可以設定應用程式型運作狀態檢查，以確認應用程式是否按預期回應。如需詳細資訊，請參閱《*VPC Lattice 使用者指南*》中的[目標群組的運作狀態檢查](https://docs.aws.amazon.com/vpc-lattice/latest/ug/target-group-health-checks.html)一節。

## 安全群組：傳入和傳出規則
<a name="vpc-lattice-security-groups"></a>

安全群組就像是防火牆，用於關聯的 EC2 執行個體，可在執行個體層級控制傳入及傳出流量。

**注意**  
網路組態相當複雜，我們強烈建議您建立新的安全群組與 VPC Lattice 搭配使用。如果您需要聯絡他們 支援 ，也可讓您更輕鬆地提供協助。以下幾節的內容是假設您遵循此建議而撰寫。  
若要深入了解如何為 VPC Lattice 建立可與 Auto Scaling 群組搭配使用的安全群組，請參閱《*VPC Lattice 使用者指南*》中的[使用安全群組控制流量](https://docs.aws.amazon.com/vpc-lattice/latest/ug/security-groups.html)一節。若要對流量問題進行疑難排解，請參閱《*VPC Lattice 使用者指南*》以取得更多資訊。

如需有關如何建立安全群組的資訊，請參閱《*Amazon EC2 使用者指南*》中的[建立安全群組](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/creating-security-group.html)，並使用下表來決定要選取的選項。


| 選項 | Value | 
| --- | --- | 
| 名稱  | 您容易記住的名稱。 | 
| Description | 協助您識別安全群組的描述。 | 
| VPC | 與 Auto Scaling 群組相同的 VPC。 | 

### 傳入規則
<a name="vpc-lattice-inbound-rules"></a>

當您建立安全群組時，它沒有傳入規則。將規則傳入安全群組之前，來自 VPC Lattice 服務網路內用戶端的流量都無法傳入您的執行個體。

若要允許 VPC Lattice 服務網路中的用戶端連結到 Auto Scaling 群組中的執行個體，您必須正確設定 Auto Scaling 群組的安全群組。在此情況下，請為其提供傳入規則，以允許來自 VPC Lattice AWS 受管字首清單名稱的流量，而非特定 IP 地址。VPC Lattice 字首清單是 VPC Lattice 使用 CIDR 標記法表示的 IP 地址範圍。如需詳細資訊，請參閱《*Amazon VPC 使用者指南*》中的[使用 AWS受管字首清單](https://docs.aws.amazon.com/vpc/latest/userguide/working-with-aws-managed-prefix-lists.html)。

如需有關如何將規則新增至安全群組的資訊，請參閱《*Amazon VPC 使用者指南*》中的[設定安全群組規則](https://docs.aws.amazon.com/vpc/latest/userguide/working-with-security-group-rules.html)，並使用下表來決定要選取的選項。


| 選項 | Value | 
| --- | --- | 
|  HTTP 規則  | 類型：HTTP 來源：com.amazonaws.*region*.vpc-lattice  | 
|  HTTPS 規則  | Type (類型)：HTTPS 來源：com.amazonaws.*region*.vpc-lattice  | 

安全群組具有狀態：它允許從 VPC Lattice 服務網路內的用戶端流量傳送回 Auto Scaling 群組中的執行個體，然後將回應傳回先前離開的用戶端。

### 傳出規則
<a name="vpc-lattice-outbound-rules"></a>

根據預設，安全群組會包含允許所有傳出流量的規則。您可以選擇移除此預設規則，並新增傳出規則以符合特定的安全需求。

## 限制
<a name="vpc-lattice-target-group-limitations"></a>
+ 支援[混合執行個體群組](ec2-auto-scaling-mixed-instances-groups.md)。如果您將 VPC Lattice 目標群組連接到具有混合執行個體政策的 Auto Scaling 群組，負載平衡演算法會將負載平均分配到所有可用資源，並假設執行個體的相似度足以處理相等的負載。

# 將 VPC Lattice 目標群組連接到 Auto Scaling 群組
<a name="attach-vpc-lattice-target-group-asg"></a>

本主題說明如何將 VPC Lattice 目標群組連接到 Auto Scaling 群組。同時也說明如何開啟 VPC Lattice 運作狀態檢查，讓 Amazon EC2 Auto Scaling 取代 VPC Lattice 報告為運作狀態不佳的執行個體。

預設情況下，Amazon EC2 Auto Scaling 只會根據 Amazon EC2 運作狀態檢查來取代運作狀態不佳或無法連接的執行個體。如果您開啟 VPC Lattice 運作狀態檢查，當您所連接之 Auto Scaling 群組有任何 VPC Lattice 目標群組報告為運作狀態不佳時，Amazon EC2 Auto Scaling 就可以取代執行中的執行個體。如需詳細資訊，請參閱[Auto Scaling 群組中的執行個體運作狀態檢查](ec2-auto-scaling-health-checks.md)。

**重要**  
繼續操作之前，請先完成上一節中的所有[先決條件](getting-started-vpc-lattice.md)。

## 連接 VPC Lattice 目標群組
<a name="attach-vpc-lattice-target-group"></a>

建立或更新群組時，您可以將一或多個目標群組連接至 Auto Scaling 群組。

------
#### [ Console ]

請依照本節中的步驟，使用主控台執行下列操作：
+ 將 VPC Lattice 目標群組連接到 Auto Scaling 群組
+ 開啟 VPC Lattice 的運作狀態檢查

**將 VPC Lattice 目標群組連接到新的 Auto Scaling 群組**

1. 前往網址 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) 開啟 Amazon EC2 主控台，然後從導覽窗格中選擇 **Auto Scaling 群組**。

1. 在螢幕上方的導覽列中，選擇您建立目標群組所在的 AWS 區域 。

1. 選擇 **Create Auto Scaling group** (建立 Auto Scaling 群組)。

1.  在步驟 1 和步驟 2 中，選擇所需選項，然後繼續進行**步驟 3：設定進階選項**。

1. 針對 **VPC Lattice 整合選項**，選擇**連接至 VPC Lattice 服務**。

1. 在**選擇 VPC Lattice 目標群組**下，選擇您的目標群組。

1. (選用) 針對**運作狀態檢查**、**其他運作狀態檢查類型**，選取**開啟 VPC Lattice 運作狀態檢查**。

1. (選用) 針對**運作狀態檢查寬限期**，輸入時長，以秒為單位。此時間量是 Amazon EC2 Auto Scaling 在進入 `InService` 狀態後檢查執行個體的運作狀態所需的等待時間。如需詳細資訊，請參閱[設定 Auto Scaling 群組的運作狀態檢查寬限期。](health-check-grace-period.md)。

1. 繼續建立 Auto Scaling 群組。建立 Auto Scaling 群組之後，您的執行個體會自動註冊到 VPC Lattice 目標群組。

**將 VPC Lattice 目標群組連接到現有的 Auto Scaling 群組**

請按照下列步驟將服務的目標群組連接到現有 Auto Scaling 群組。

1. 前往網址 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) 開啟 Amazon EC2 主控台，然後從導覽窗格中選擇 **Auto Scaling 群組**。

1. 選取 Auto Scaling 群組旁的核取方塊。

   頁面底部會開啟一個分割窗格。

1. 在**詳細資訊**索引標籤上，選擇 **VPC Lattice 整合選項**、**編輯**。

1. 在 **VPC Lattice 整合選項**下，選擇**連接至 VPC Lattice 服務**。

1. 在**選擇 VPC Lattice 目標群組**下，選擇您的目標群組。

1. 選擇**更新**。

連接目標群組後，您可以選擇開啟並使用運作狀態檢查。

**開啟 VPC Lattice 運作狀態檢查**

1. 在 **Details** (詳細資訊) 索引標籤上，選擇 **Health checks** (運作狀態檢查)、**Edit** (編輯)。

1. 針對**運作狀態檢查**、**其他運作狀態檢查類型**，選取**開啟 VPC Lattice 運作狀態檢查**。

1. 針對**運作狀態檢查寬限期**，輸入時間量，以秒為單位。此時間量是 Amazon EC2 Auto Scaling 在進入 `InService` 狀態後檢查執行個體的運作狀態所需的等待時間。如需詳細資訊，請參閱[設定 Auto Scaling 群組的運作狀態檢查寬限期。](health-check-grace-period.md)。

1. 選擇**更新**。

------
#### [ AWS CLI ]

請依照本節中的步驟使用 AWS CLI 來：
+ 將 VPC Lattice 目標群組連接到 Auto Scaling 群組
+ 開啟 VPC Lattice 的運作狀態檢查

**將 VPC Lattice 目標群組連接到 Auto Scaling 群組**

使用下列 [create-auto-scaling-group](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/create-auto-scaling-group.html) 命令建立 Auto Scaling 群組，同時透過指定其 Amazon Resource Name (ARN) 來連接 VPC Lattice 目標群組。

取代 `--auto-scaling-group-name`、`--vpc-zone-identifier`、`--min-size` 和 `--max-size` 的範例值。在 `--launch-template` 選項中，使用您為註冊到 VPC Lattice 目標群組的執行個體所建立的啟動範本名稱和版本來取代 `my-launch-template` 和 `1`。在 `--traffic-sources` 選項中，使用 VPC Lattice 目標群組的 ARN 來取代範例 ARN。

```
aws autoscaling create-auto-scaling-group --auto-scaling-group-name my-asg \
  --launch-template LaunchTemplateName=my-launch-template,Version='1' \
  --vpc-zone-identifier "subnet-5ea0c127,subnet-6194ea3b,subnet-c934b782" \
  --min-size 1 --max-size 5 \
  --traffic-sources "Identifier=arn:aws:vpc-lattice:region:account-id:targetgroup/tg-0e2f2665eEXAMPLE"
```

建立 Auto Scaling 群組後，使用以下 [attach-traffic-sources](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/attach-traffic-sources.html) 命令，將 VPC Lattice 目標群組連接至該 Auto Scaling 群組。

```
aws autoscaling attach-traffic-sources --auto-scaling-group-name my-asg \
  --traffic-sources "Identifier=arn:aws:vpc-lattice:region:account-id:targetgroup/tg-0e2f2665eEXAMPLE"
```

**開啟 VPC Lattice 運作狀態檢查**

如果您已為 **VPC Lattice** 目標群組設定應用程式型運作狀態檢查，則可以開啟這些運作狀態檢查。使用包含 `--health-check-type` 選項和 `VPC_LATTICE` 的值的 [create-auto-scaling-group](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/create-auto-scaling-group.html) 或 [update-auto-scaling-group](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/update-auto-scaling-group.html) 命令。若要指定 Auto Scaling 群組執行運作狀態檢查寬限期，請加入 `--health-check-grace-period` 選項並提供以秒為單位的值。

```
--health-check-type "VPC_LATTICE" --health-check-grace-period 60
```

------

## 分離 VPC Lattice 目標群組
<a name="detach-vpc-lattice-target-group"></a>

如果不再需要使用 VPC Lattice，請按照下列步驟將目標群組從 Auto Scaling 群組分離。

------
#### [ Console ]

請依照本節中的步驟，使用主控台執行下列操作：
+ 將 VPC Lattice 目標群組從 Auto Scaling 群組分離
+ 關閉 VPC Lattice 運作狀態檢查

**將 VPC Lattice 目標群組從 Auto Scaling 群組分離**

1. 前往網址 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) 開啟 Amazon EC2 主控台，然後從導覽窗格中選擇 **Auto Scaling 群組**。

1. 選取現有群組旁邊的核取方塊。

   頁面底部會開啟一個分割窗格。

1. 在**詳細資訊**索引標籤上，選擇 **VPC Lattice 整合選項**、**編輯**。

1. 在 **VPC Lattice 整合選項**下，選擇目標群組旁的刪除 (X) 圖示。

1. 選擇**更新**。

分離目標群組後，您便可以關閉 VPC Lattice 運作狀態檢查。

**關閉 VPC Lattice 運作狀態檢查**

1. 在 **Details** (詳細資訊) 索引標籤上，選擇 **Health checks** (運作狀態檢查)、**Edit** (編輯)。

1. 針對**運作狀態檢查**、**其他運作狀態檢查類型**，取消選取**開啟 VPC Lattice 運作狀態檢查**。

1. 選擇**更新**。

------
#### [ AWS CLI ]

請依照本節中的步驟使用 AWS CLI 來：
+ 將 VPC Lattice 目標群組從 Auto Scaling 群組分離
+ 關閉 VPC Lattice 運作狀態檢查

如果不再需要目標群組，請使用 [detach-traffic-sources](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/detach-traffic-sources.html) 命令將目標群組從 Auto Scaling 群組分離。

```
aws autoscaling detach-traffic-sources --auto-scaling-group-name my-asg \
  --traffic-sources "Identifier=arn:aws:vpc-lattice:region:account-id:targetgroup/tg-0e2f2665eEXAMPLE"
```

若要更新 Auto Scaling 群組的運作狀態檢查，使其不再使用 VPC Lattice 運作狀態檢查，請使用 [update-auto-scaling-group](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/update-auto-scaling-group.html) 命令。包含 `--health-check-type` 選項和 `EC2` 的值。

```
aws autoscaling update-auto-scaling-group --auto-scaling-group-name my-asg \
  --health-check-type "EC2"
```

------

# 確認 VPC Lattice 目標群組的連接狀態
<a name="verify-target-group-attachment-status"></a>

將 VPC Lattice 目標群組連接至 Auto Scaling 群組後，該群組將進入 `Adding` 狀態並在群組內註冊執行個體。群組內所有執行個體都完成註冊後，它會進入 `Added` 狀態。在至少有一個註冊的執行個體通過運作狀態檢查後，它就會進入 `InService` 狀態。當目標群組進入 `InService` 狀態後，Amazon EC2 Auto Scaling 可以終止和取代任何報告為運作狀態不佳的執行個體。如果沒有註冊的執行個體通過運作狀態檢查 (例如，因為運作狀態檢查的設定錯誤)，目標群組就不會進入 `InService` 狀態。Amazon EC2 Auto Scaling 不會終止和替換執行個體。

當您分離服務的目標群組後，它會進入 `Removing` 狀態，同時取消在群組中註冊執行個體。取消註冊後的執行個體仍繼續執行作業。連接耗盡 (取消註冊延遲) 預設為啟用。如果啟用了連接耗盡，則 VPC Lattice 會等待傳輸中請求完成或最大逾時過期 (以先發生者為準)，再取消註冊執行個體。

您可以使用 AWS Command Line Interface (AWS CLI) AWS SDKs來驗證連接狀態。您無法從主控台確認連接狀態。

**使用 AWS CLI 驗證連接狀態**  
以下 [describe-traffic-sources](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/describe-traffic-sources.html) 命令會傳回指定 Auto Scaling 群組之所有流量來源的連接狀態。

```
aws autoscaling describe-traffic-sources --auto-scaling-group-name my-asg
```

此範例會傳回連接至 Auto Scaling 群組的 VPC Lattice 目標群組的 ARN，以及 `State` 元素中目標群組的連接狀態。

```
{
    "TrafficSources": [
        {
            "Identifier": "arn:aws:vpc-lattice:region:account-id:targetgroup/tg-0e2f2665eEXAMPLE",
            "State": "InService",
            "Type": "vpc-lattice"
        }
    ]
}
```

# 使用 EventBridge 處理 Auto Scaling 事件
<a name="automating-ec2-auto-scaling-with-eventbridge"></a>

先前稱為 CloudWatch Events 的 Amazon EventBridge 可協助您設定事件驅動規則，以監控資源並啟動使用其他服務的目標動作 AWS 。

Amazon EC2 Auto Scaling 的事件會以接近即時的方式傳送到 EventBridge。您可建立 EventBridge 規則來叫用程式設計動作和通知，以便回應這些事件。例如，當執行個體正在啟動或終止時，您可以叫用 AWS Lambda 函數來執行預先設定的任務。

EventBridge 規則的目標可以包含 AWS Lambda 函數、Amazon SNS 主題、API 目的地、其他事件匯流排 AWS 帳戶等。如需有關支援目標的資訊，請參閱《Amazon EventBridge 使用者指南》**中的 [Amazon EventBridge 目標](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-targets.html)。

首先請以使用 Amazon SNS 主題和 EventBridge 規則的範例來建立 EventBridge 規則。然後，當使用者啟動執行個體重新整理時，只要到達檢查點，Amazon SNS 就會透過電子郵件通知您。如需詳細資訊，請參閱[針對執行個體重新整理事件建立 EventBridge 規則](monitor-events-eventbridge-sns.md)。

**Topics**
+ [Amazon EC2 Auto Scaling 事件參考](ec2-auto-scaling-event-reference.md)
+ [執行個體重新整理範例事件和模式](instance-refresh-eventbridge-events.md)
+ [暖集區範例事件和模式](warm-pools-eventbridge-events.md)
+ [使用 Amazon EventBridge 規則來自動化動作](create-eventbridge-rules.md)

# Amazon EC2 Auto Scaling 事件參考
<a name="ec2-auto-scaling-event-reference"></a>

使用 Amazon EventBridge，您可以建立符合傳入*事件*的*規則*，並將其路由到*目標*以進行處理。

**Topics**
+ [生命週期動作事件](#ec2-auto-scaling-lifecycle-action-events)
+ [成功的擴展事件](#ec2-auto-scaling-successful-scaling-events)
+ [不成功的擴展事件](#ec2-auto-scaling-unsuccessful-scaling-events)

## 生命週期動作事件
<a name="ec2-auto-scaling-lifecycle-action-events"></a>

在將生命週期關聯新增至 Auto Scaling 群組時，Amazon EC2 Auto Scaling 會在執行個體轉換到等待狀態時，將事件傳送至 EventBridge。盡可能產生事件。

**Topics**
+ [橫向擴展生命週期動作](#launch-lifecycle-action)
+ [縮減生命週期動作](#terminate-lifecycle-action)

### 橫向擴展生命週期動作
<a name="launch-lifecycle-action"></a>

下列範例事件說明了由於啟動 lifecycle hook，Amazon EC2 Auto Scaling 已將執行個體移至 `Pending:Wait` 狀態。

```
{
  "version": "0",
  "id": "12345678-1234-1234-1234-123456789012",
  "detail-type": "EC2 Instance-launch Lifecycle Action",
  "source": "aws.autoscaling",
  "account": "123456789012",
  "time": "yyyy-mm-ddThh:mm:ssZ",
  "region": "us-west-2",
  "resources": [
    "auto-scaling-group-arn"
  ],
  "detail": { 
    "LifecycleActionToken": "87654321-4321-4321-4321-210987654321", 
    "AutoScalingGroupName": "my-asg", 
    "LifecycleHookName": "my-lifecycle-hook", 
    "EC2InstanceId": "i-1234567890abcdef0", 
    "LifecycleTransition": "autoscaling:EC2_INSTANCE_LAUNCHING",
    "NotificationMetadata": "additional-info",
    "Origin": "EC2",
    "Destination": "AutoScalingGroup"
  } 
}
```

### 縮減生命週期動作
<a name="terminate-lifecycle-action"></a>

下列範例事件說明了由於終止 lifecycle hook，Amazon EC2 Auto Scaling 已將執行個體移至 `Terminating:Wait` 狀態。

**重要**  
當 Auto Scaling 群組在縮減時將執行個體傳回暖集區時，執行個體傳回暖集區也可能會產生 `EC2 Instance-terminate Lifecycle Action` 事件。在縮減時將執行個體移至等待狀態時，交付的事件會以 `WarmPool` 作為 `Destination` 的值。如需詳細資訊，請參閱[Instance reuse policy](ec2-auto-scaling-warm-pools.md#instance-reuse-policy)。

```
{
  "version": "0",
  "id": "12345678-1234-1234-1234-123456789012",
  "detail-type": "EC2 Instance-terminate Lifecycle Action",
  "source": "aws.autoscaling",
  "account": "123456789012",
  "time": "yyyy-mm-ddThh:mm:ssZ",
  "region": "us-west-2",
  "resources": [
    "auto-scaling-group-arn"
  ],
  "detail": { 
    "LifecycleActionToken":"87654321-4321-4321-4321-210987654321", 
    "AutoScalingGroupName":"my-asg", 
    "LifecycleHookName":"my-lifecycle-hook", 
    "EC2InstanceId":"i-1234567890abcdef0", 
    "LifecycleTransition":"autoscaling:EC2_INSTANCE_TERMINATING", 
    "NotificationMetadata":"additional-info",
    "Origin": "AutoScalingGroup",
    "Destination": "EC2"
  } 
}
```

## 成功的擴展事件
<a name="ec2-auto-scaling-successful-scaling-events"></a>

下列範例顯示成功的擴展事件的事件類型。盡可能產生事件。

**Topics**
+ [成功的橫向擴展事件](#launch-successful)
+ [成功的縮減事件](#terminate-successful)

### 成功的橫向擴展事件
<a name="launch-successful"></a>

下列範例事件說明 Amazon EC2 Auto Scaling 成功啟動執行個體。

```
{
  "version": "0",
  "id": "12345678-1234-1234-1234-123456789012",
  "detail-type": "EC2 Instance Launch Successful",
  "source": "aws.autoscaling",
  "account": "123456789012",
  "time": "yyyy-mm-ddThh:mm:ssZ",
  "region": "us-west-2",
  "resources": [
    "auto-scaling-group-arn",
    "instance-arn"
  ],
  "detail": {
    "StatusCode": "InProgress",
    "Description": "Launching a new EC2 instance: i-12345678",
    "AutoScalingGroupName": "my-asg",
    "ActivityId": "87654321-4321-4321-4321-210987654321",
    "Details": {
      "Availability Zone": "us-west-2b",
      "Subnet ID": "subnet-12345678"
    },
    "RequestId": "12345678-1234-1234-1234-123456789012",
    "StatusMessage": "",
    "EndTime": "yyyy-mm-ddThh:mm:ssZ",
    "EC2InstanceId": "i-1234567890abcdef0",
    "StartTime": "yyyy-mm-ddThh:mm:ssZ",
    "Cause": "description-text",
    "Origin": "EC2",
    "Destination": "AutoScalingGroup"
  }
}
```

### 成功的縮減事件
<a name="terminate-successful"></a>

下列範例事件說明 Amazon EC2 Auto Scaling 成功終止執行個體。

**重要**  
當 Auto Scaling 群組在縮減時將執行個體傳回暖集區時，將執行個體傳回暖集區也可能會產生 `EC2 Instance Terminate Successful` 事件。執行個體成功傳回暖集區時，交付的事件會以 `WarmPool` 作為 `Destination` 的值。如需詳細資訊，請參閱[Instance reuse policy](ec2-auto-scaling-warm-pools.md#instance-reuse-policy)。

```
{
  "version": "0",
  "id": "12345678-1234-1234-1234-123456789012",
  "detail-type": "EC2 Instance Terminate Successful",
  "source": "aws.autoscaling",
  "account": "123456789012",
  "time": "yyyy-mm-ddThh:mm:ssZ",
  "region": "us-west-2",
  "resources": [
    "auto-scaling-group-arn",
    "instance-arn"
  ],
  "detail": {
    "StatusCode": "InProgress",
    "Description": "Terminating EC2 instance: i-12345678",
    "AutoScalingGroupName": "my-asg",
    "ActivityId": "87654321-4321-4321-4321-210987654321",
    "Details": {
      "Availability Zone": "us-west-2b",
      "Subnet ID": "subnet-12345678"
    },
    "RequestId": "12345678-1234-1234-1234-123456789012",
    "StatusMessage": "",
    "EndTime": "yyyy-mm-ddThh:mm:ssZ",
    "EC2InstanceId": "i-1234567890abcdef0",
    "StartTime": "yyyy-mm-ddThh:mm:ssZ",
    "Cause": "description-text",
    "Origin": "AutoScalingGroup",
    "Destination": "EC2"
  }
}
```

## 不成功的擴展事件
<a name="ec2-auto-scaling-unsuccessful-scaling-events"></a>

下列範例顯示不成功的擴展事件的事件類型。盡可能產生事件。

**Topics**
+ [不成功的橫向擴展事件](#launch-unsuccessful)
+ [不成功的縮減事件](#terminate-unsuccessful)

### 不成功的橫向擴展事件
<a name="launch-unsuccessful"></a>

下列範例事件說明 Amazon EC2 Auto Scaling 無法啟動執行個體。

```
{
  "version": "0",
  "id": "12345678-1234-1234-1234-123456789012",
  "detail-type": "EC2 Instance Launch Unsuccessful",
  "source": "aws.autoscaling",
  "account": "123456789012",
  "time": "yyyy-mm-ddThh:mm:ssZ",
  "region": "us-west-2",
  "resources": [
    "auto-scaling-group-arn",
    "instance-arn"
  ],
  "detail": {
    "StatusCode": "Failed",
    "AutoScalingGroupName": "my-asg",
    "ActivityId": "87654321-4321-4321-4321-210987654321",
    "Details": {
      "Availability Zone": "us-west-2b",
      "Subnet ID": "subnet-12345678"
    },
    "RequestId": "12345678-1234-1234-1234-123456789012",
    "StatusMessage": "message-text",
    "EndTime": "yyyy-mm-ddThh:mm:ssZ",
    "EC2InstanceId": "i-1234567890abcdef0",
    "StartTime": "yyyy-mm-ddThh:mm:ssZ",
    "Cause": "description-text",
    "Origin": "EC2",
    "Destination": "AutoScalingGroup"
  }
}
```

### 不成功的縮減事件
<a name="terminate-unsuccessful"></a>

下列範例事件說明 Amazon EC2 Auto Scaling 無法終止執行個體。

**重要**  
當 Auto Scaling 群組在縮減時將執行個體傳回暖集區時，無法將執行個體傳回暖集區也可能會產生 `EC2 Instance Terminate Unsuccessful` 事件。執行個體無法傳回暖集區時，交付的事件會以 `WarmPool` 作為 `Destination` 的值。如需詳細資訊，請參閱[Instance reuse policy](ec2-auto-scaling-warm-pools.md#instance-reuse-policy)。

```
{
  "version": "0",
  "id": "12345678-1234-1234-1234-123456789012",
  "detail-type": "EC2 Instance Terminate Unsuccessful",
  "source": "aws.autoscaling",
  "account": "123456789012",
  "time": "yyyy-mm-ddThh:mm:ssZ",
  "region": "us-west-2",
  "resources": [
    "auto-scaling-group-arn",
    "instance-arn"
  ],
  "detail": {
    "StatusCode": "Failed",
    "AutoScalingGroupName": "my-asg",
    "ActivityId": "87654321-4321-4321-4321-210987654321",
    "Details": {
      "Availability Zone": "us-west-2b",
      "Subnet ID": "subnet-12345678"
    },
    "RequestId": "12345678-1234-1234-1234-123456789012",
    "StatusMessage": "message-text",
    "EndTime": "yyyy-mm-ddThh:mm:ssZ",
    "EC2InstanceId": "i-1234567890abcdef0",
    "StartTime": "yyyy-mm-ddThh:mm:ssZ",
    "Cause": "description-text",
    "Origin": "AutoScalingGroup",
    "Destination": "EC2"
  }
}
```

# 執行個體重新整理範例事件和模式
<a name="instance-refresh-eventbridge-events"></a>

使用 Amazon EventBridge，您可以建立符合傳入*事件*的*規則*，並將其路由到*目標*以進行處理。

**Topics**
+ [執行個體重新整理事件](#instance-refresh-events)
+ [執行個體重新整理取代根磁碟區生命週期事件](#instance-refresh-rvr-lifecycle-events)

## 執行個體重新整理事件
<a name="instance-refresh-events"></a>

下列範例顯示執行個體重新整理功能的事件。盡可能產生事件。

**Topics**
+ [達到檢查點](#instance-refresh-checkpoint-reached)
+ [已啟動執行個體重新整理](#instance-refresh-started)
+ [執行個體重新整理已成功](#instance-refresh-succeeded)
+ [執行個體重新整理失敗](#instance-refresh-failed)
+ [已取消執行個體重新整理](#instance-refresh-cancelled)
+ [執行個體重新整理復原已啟動](#instance-refresh-rollback-started)
+ [執行個體重新整理復原成功](#instance-refresh-rollback-succeeded)
+ [執行個體重新整理復原失敗](#instance-refresh-rollback-failed)

### 達到檢查點
<a name="instance-refresh-checkpoint-reached"></a>

當已取代的執行個體數目達到針對檢查點定義的百分比閾值時，Amazon EC2 Auto Scaling 會傳送以下事件。

```
{
  "version": "0",
  "id": "12345678-1234-1234-1234-123456789012",
  "detail-type": "EC2 Auto Scaling Instance Refresh Checkpoint Reached",
  "source": "aws.autoscaling",
  "account": "123456789012",
  "time": "yyyy-mm-ddThh:mm:ssZ",
  "region": "us-west-2",
  "resources": [
    "auto-scaling-group-arn"
  ],
  "detail": {
    "InstanceRefreshId": "ab00cf8f-9126-4f3c-8010-dbb8cad6fb86",
    "AutoScalingGroupName": "my-asg",
    "CheckpointPercentage": "50",
    "CheckpointDelay": "300"
  }
}
```

### 已啟動執行個體重新整理
<a name="instance-refresh-started"></a>

在執行個體重新整理的狀態變更為 `InProgress` 時，Amazon EC2 Auto Scaling 會傳送以下事件。

```
{
  "version": "0",
  "id": "12345678-1234-1234-1234-123456789012",
  "detail-type": "EC2 Auto Scaling Instance Refresh Started",
  "source": "aws.autoscaling",
  "account": "123456789012",
  "time": "yyyy-mm-ddThh:mm:ssZ",
  "region": "us-west-2",
  "resources": [
    "auto-scaling-group-arn"
  ],
  "detail": {
    "InstanceRefreshId": "c613620e-07e2-4ed2-a9e2-ef8258911ade",
    "AutoScalingGroupName": "my-asg"
  }
}
```

### 執行個體重新整理已成功
<a name="instance-refresh-succeeded"></a>

在執行個體重新整理的狀態變更為 `Successful` 時，Amazon EC2 Auto Scaling 會傳送以下事件。

```
{
  "version": "0",
  "id": "12345678-1234-1234-1234-123456789012",
  "detail-type": "EC2 Auto Scaling Instance Refresh Succeeded",
  "source": "aws.autoscaling",
  "account": "123456789012",
  "time": "yyyy-mm-ddThh:mm:ssZ",
  "region": "us-west-2",
  "resources": [
    "auto-scaling-group-arn"
  ],
  "detail": {
    "InstanceRefreshId": "c613620e-07e2-4ed2-a9e2-ef8258911ade",
    "AutoScalingGroupName": "my-asg"
  }
}
```

### 執行個體重新整理失敗
<a name="instance-refresh-failed"></a>

在執行個體重新整理的狀態變更為 `Failed` 時，Amazon EC2 Auto Scaling 會傳送以下事件。

```
{
  "version": "0",
  "id": "12345678-1234-1234-1234-123456789012",
  "detail-type": "EC2 Auto Scaling Instance Refresh Failed",
  "source": "aws.autoscaling",
  "account": "123456789012",
  "time": "yyyy-mm-ddThh:mm:ssZ",
  "region": "us-west-2",
  "resources": [
    "auto-scaling-group-arn"
  ],
  "detail": {
    "InstanceRefreshId": "c613620e-07e2-4ed2-a9e2-ef8258911ade",
    "AutoScalingGroupName": "my-asg"
  }
}
```

### 已取消執行個體重新整理
<a name="instance-refresh-cancelled"></a>

在執行個體重新整理的狀態變更為 `Cancelled` 時，Amazon EC2 Auto Scaling 會傳送以下事件。

```
{
  "version": "0",
  "id": "12345678-1234-1234-1234-123456789012",
  "detail-type": "EC2 Auto Scaling Instance Refresh Cancelled",
  "source": "aws.autoscaling",
  "account": "123456789012",
  "time": "yyyy-mm-ddThh:mm:ssZ",
  "region": "us-west-2",
  "resources": [
    "auto-scaling-group-arn"
  ],
  "detail": {
    "InstanceRefreshId": "c613620e-07e2-4ed2-a9e2-ef8258911ade",
    "AutoScalingGroupName": "my-asg"
  }
}
```

### 執行個體重新整理復原已啟動
<a name="instance-refresh-rollback-started"></a>

在執行個體重新整理的狀態變更為 `RollbackInProgress` 時，Amazon EC2 Auto Scaling 會傳送以下事件。

```
{
  "version": "0",
  "id": "12345678-1234-1234-1234-123456789012",
  "detail-type": "EC2 Auto Scaling Instance Refresh Rollback Started",
  "source": "aws.autoscaling",
  "account": "123456789012",
  "time": "yyyy-mm-ddThh:mm:ssZ",
  "region": "us-west-2",
  "resources": [
    "auto-scaling-group-arn"
  ],
  "detail": {
    "InstanceRefreshId": "c613620e-07e2-4ed2-a9e2-ef8258911ade",
    "AutoScalingGroupName": "my-asg"
  }
}
```

### 執行個體重新整理復原成功
<a name="instance-refresh-rollback-succeeded"></a>

在執行個體重新整理的狀態變更為 `RollbackSuccessful` 時，Amazon EC2 Auto Scaling 會傳送以下事件。

```
{
  "version": "0",
  "id": "12345678-1234-1234-1234-123456789012",
  "detail-type": "EC2 Auto Scaling Instance Refresh Rollback Succeeded",
  "source": "aws.autoscaling",
  "account": "123456789012",
  "time": "yyyy-mm-ddThh:mm:ssZ",
  "region": "us-west-2",
  "resources": [
    "auto-scaling-group-arn"
  ],
  "detail": {
    "InstanceRefreshId": "c613620e-07e2-4ed2-a9e2-ef8258911ade",
    "AutoScalingGroupName": "my-asg"
  }
}
```

### 執行個體重新整理復原失敗
<a name="instance-refresh-rollback-failed"></a>

在執行個體重新整理的狀態變更為 `Failed` 時，Amazon EC2 Auto Scaling 會傳送以下事件。

```
{
  "version": "0",
  "id": "12345678-1234-1234-1234-123456789012",
  "detail-type": "EC2 Auto Scaling Instance Refresh Rollback Failed",
  "source": "aws.autoscaling",
  "account": "123456789012",
  "time": "yyyy-mm-ddThh:mm:ssZ",
  "region": "us-west-2",
  "resources": [
    "auto-scaling-group-arn"
  ],
  "detail": {
    "InstanceRefreshId": "c613620e-07e2-4ed2-a9e2-ef8258911ade",
    "AutoScalingGroupName": "my-asg"
  }
}
```

## 執行個體重新整理取代根磁碟區生命週期事件
<a name="instance-refresh-rvr-lifecycle-events"></a>

在將生命週期關聯新增至 Auto Scaling 群組時，Amazon EC2 Auto Scaling 會在執行個體轉換到等待狀態時，將事件傳送至 EventBridge。如需詳細資訊，請參閱[使用生命週期掛鉤取代根磁碟區](replace-root-volume.md#replace-root-volume-lifecycle-hooks)。

下列範例顯示當 Auto Scaling 群組的執行個體在執行個體重新整理期間正在進行根磁碟區取代時的事件。盡可能發出事件。

**Topics**
+ [開始取代根磁碟區生命週期動作](#rvr-start-lifecycle-action)
+ [結束取代根磁碟區生命週期動作](#rvr-end-lifecycle-action)
+ [事件模式範例](#rvr-event-patterns)

### 開始取代根磁碟區生命週期動作
<a name="rvr-start-lifecycle-action"></a>

在執行個體重新整理期間選取執行個體進行根磁碟區取代時，其狀態會變更為 `ReplacingRootVolume:Wait`。

```
{
  "version": "0",
  "id": "12345678-1234-1234-1234-123456789012",
  "detail-type": "EC2 Instance-terminate Lifecycle Action",
  "source": "aws.autoscaling",
  "account": "123456789012",
  "time": "2021-01-13T00:12:37.214Z",
  "region": "us-west-2",
  "resources": [
    "auto-scaling-group-arn"
  ],
  "detail": {
    "LifecycleActionToken": "71514b9d-6a40-4b26-8523-05e7eEXAMPLE",
    "AutoScalingGroupName": "my-asg",
    "LifecycleHookName": "my-terminate-lifecycle-hook",
    "EC2InstanceId": "i-1234567890abcdef0",
    "LifecycleTransition": "autoscaling:EC2_INSTANCE_TERMINATING",
    "NotificationMetadata": "additional-info",
    "Origin": "AutoScalingGroup",
    "Destination": "AutoScalingGroup",
    "Action": "ReplaceRootVolume"
  }
}
```

### 結束取代根磁碟區生命週期動作
<a name="rvr-end-lifecycle-action"></a>

當執行個體完成根磁碟區取代，且其狀態變更為 時`Pending:Wait`。

```
{
  "version": "0",
  "id": "12345678-1234-1234-1234-123456789012",
  "detail-type": "EC2 Instance-launch Lifecycle Action",
  "source": "aws.autoscaling",
  "account": "123456789012",
  "time": "2021-01-13T00:12:37.214Z",
  "region": "us-west-2",
  "resources": [
    "auto-scaling-group-arn"
  ],
  "detail": {
    "LifecycleActionToken": "71514b9d-6a40-4b26-8523-05e7eEXAMPLE",
    "AutoScalingGroupName": "my-asg",
    "LifecycleHookName": "my-launch-lifecycle-hook",
    "EC2InstanceId": "i-1234567890abcdef0",
    "LifecycleTransition": "autoscaling:EC2_INSTANCE_LAUNCHING",
    "NotificationMetadata": "additional-info",
    "Origin": "AutoScalingGroup",
    "Destination": "AutoScalingGroup",
    "Action": "ReplaceRootVolume"
  }
}
```

### 事件模式範例
<a name="rvr-event-patterns"></a>

上一節提供 Amazon EC2 Auto Scaling 在執行個體重新整理期間以取代根磁碟區策略發出的範例事件。EventBridge 事件模式擁有與其相符事件相同的結構。該模式引用您欲比對的欄位，並提供您正在尋找的數值。事件中的下列欄位會形成規則中定義的事件模式，以呼叫動作：

`"source": "aws.autoscaling"`  
識別該事件是來自 Amazon EC2 Auto Scaling。

`"detail-type": "EC2 Instance-launch Lifecycle Action"`  
識別事件類型。

`"Action": "ReplaceRootVolume"`  
識別在執行個體上執行的動作。

使用下列範例事件模式，擷取與準備取代其根磁碟區之執行個體相關聯的所有事件：

```
{
  "source": [ "aws.autoscaling" ],
  "detail-type": [ "EC2 Instance-terminate Lifecycle Action" ],
  "detail": {
      "Action": [ "ReplaceRootVolume" ]
   }
}
```

使用下列範例事件模式，擷取在完成根磁碟區取代後，與返回服務的執行個體相關聯的所有事件：

```
{
  "source": [ "aws.autoscaling" ],
  "detail-type": [ "EC2 Instance-launch Lifecycle Action" ],
  "detail": {
      "Action": [ "ReplaceRootVolume" ]
   }
}
```

# 暖集區範例事件和模式
<a name="warm-pools-eventbridge-events"></a>

Amazon EC2 Auto Scaling 支援 Amazon EventBridge 中的多種預先定義模式。這簡化了事件模式的建立方式。您在表單上選取欄位值，EventBridge 就會為您產生模式。目前，Amazon EC2 Auto Scaling 不支援由具有暖集區的 Auto Scaling 群組發出之任何事件的預先定義模式。您輸入的模式必須以 JSON 物件的形式呈現。本節和 [為暖集區事件建立 EventBridge 規則](warm-pool-events-eventbridge-rules.md) 主題向您示範如何使用事件模式來選取事件並將其傳送到目標。

若要建立可篩選 Amazon EC2 Auto Scaling 傳送至 EventBridge 的暖集區相關事件的 EventBridge 規則，請加入來自事件 `detail` 區段的 `Origin` 和 `Destination` 欄位。

`Origin` 和 `Destination` 的值可為以下項目：

`EC2` \$1 `AutoScalingGroup` \$1 `WarmPool`

**Topics**
+ [範例事件](#warm-pool-events)
+ [事件模式範例](#warm-pools-eventbridge-patterns)

## 範例事件
<a name="warm-pool-events"></a>

在將生命週期關聯新增至 Auto Scaling 群組時，Amazon EC2 Auto Scaling 會在執行個體轉換到等待狀態時，將事件傳送至 EventBridge。如需詳細資訊，請參閱[在 Auto Scaling 群組中使用具有暖集區的生命週期掛鉤](warm-pool-instance-lifecycle.md)。

本節包括 Auto Scaling 群組具有暖集區時這些事件的範例。盡可能發出事件。

**注意**  
如需 Amazon EC2 Auto Scaling 在擴展成功時傳送至 EventBridge 的事件，請參閱 [成功的擴展事件](ec2-auto-scaling-event-reference.md#ec2-auto-scaling-successful-scaling-events)。如需擴展不成功的事件，請參閱 [不成功的擴展事件](ec2-auto-scaling-event-reference.md#ec2-auto-scaling-unsuccessful-scaling-events)。

**Topics**
+ [橫向擴展生命週期動作](#warm-pool-scale-out-events)
+ [縮減生命週期動作](#warm-pool-scale-in-events)

### 橫向擴展生命週期動作
<a name="warm-pool-scale-out-events"></a>

在橫向擴展時將執行個體轉換到等待狀態時，交付的事件會以 `EC2 Instance-launch Lifecycle Action` 作為 `detail-type` 的值。在 `detail` 物件中，`Origin` 和 `Destination` 屬性的值顯示執行個體的來源和目的地。

在此範例橫向擴展事件中，新執行個體會啟動，且由於已新增至暖集區，因此其狀態會變更為 `Warmed:Pending:Wait`。如需詳細資訊，請參閱[暖集區中的執行個體生命週期狀態轉換](warm-pool-instance-lifecycle.md#lifecycle-state-transitions)。

```
{
  "version": "0",
  "id": "12345678-1234-1234-1234-123456789012",
  "detail-type": "EC2 Instance-launch Lifecycle Action",
  "source": "aws.autoscaling",
  "account": "123456789012",
  "time": "2021-01-13T00:12:37.214Z",
  "region": "us-west-2",
  "resources": [
    "auto-scaling-group-arn"
  ],
  "detail": { 
    "LifecycleActionToken": "71514b9d-6a40-4b26-8523-05e7eEXAMPLE", 
    "AutoScalingGroupName": "my-asg",
    "LifecycleHookName": "my-launch-lifecycle-hook", 
    "EC2InstanceId": "i-1234567890abcdef0", 
    "LifecycleTransition": "autoscaling:EC2_INSTANCE_LAUNCHING",
    "NotificationMetadata": "additional-info",
    "Origin": "EC2",
    "Destination": "WarmPool"
  } 
}
```

在此範例橫向擴展事件中，由於執行個體已從暖集區新增至 Auto Scaling 群組，因此其狀態會變更為 `Pending:Wait`。如需詳細資訊，請參閱[暖集區中的執行個體生命週期狀態轉換](warm-pool-instance-lifecycle.md#lifecycle-state-transitions)。

```
{
  "version": "0",
  "id": "12345678-1234-1234-1234-123456789012",
  "detail-type": "EC2 Instance-launch Lifecycle Action",
  "source": "aws.autoscaling",
  "account": "123456789012",
  "time": "2021-01-19T00:35:52.359Z",
  "region": "us-west-2",
  "resources": [
    "auto-scaling-group-arn"
  ],
  "detail": { 
    "LifecycleActionToken": "19cc4d4a-e450-4d1c-b448-0de67EXAMPLE", 
    "AutoScalingGroupName": "my-asg",
    "LifecycleHookName": "my-launch-lifecycle-hook", 
    "EC2InstanceId": "i-1234567890abcdef0", 
    "LifecycleTransition": "autoscaling:EC2_INSTANCE_LAUNCHING",
    "NotificationMetadata": "additional-info",
    "Origin": "WarmPool",
    "Destination": "AutoScalingGroup"
  } 
}
```

### 縮減生命週期動作
<a name="warm-pool-scale-in-events"></a>

在縮減時將執行個體轉換到等待狀態時，交付的事件會以 `EC2 Instance-terminate Lifecycle Action` 作為 `detail-type` 的值。在 `detail` 物件中，`Origin` 和 `Destination` 屬性的值顯示執行個體的來源和目的地。

在此範例縮減事件中，由於執行個體已傳回至暖集區，因此其狀態會變更為 `Warmed:Pending:Wait`。如需詳細資訊，請參閱[暖集區中的執行個體生命週期狀態轉換](warm-pool-instance-lifecycle.md#lifecycle-state-transitions)。

```
{
  "version": "0",
  "id": "12345678-1234-1234-1234-123456789012",
  "detail-type": "EC2 Instance-terminate Lifecycle Action",
  "source": "aws.autoscaling",
  "account": "123456789012",
  "time": "2022-03-28T00:12:37.214Z",
  "region": "us-west-2",
  "resources": [
    "auto-scaling-group-arn"
  ],
  "detail": { 
    "LifecycleActionToken": "42694b3d-4b70-6a62-8523-09a1eEXAMPLE", 
    "AutoScalingGroupName": "my-asg", 
    "LifecycleHookName": "my-termination-lifecycle-hook", 
    "EC2InstanceId": "i-1234567890abcdef0", 
    "LifecycleTransition": "autoscaling:EC2_INSTANCE_TERMINATING",
    "NotificationMetadata": "additional-info",
    "Origin": "AutoScalingGroup",
    "Destination": "WarmPool"
  } 
}
```

## 事件模式範例
<a name="warm-pools-eventbridge-patterns"></a>

前一節提供了由 Amazon EC2 Auto Scaling 發出的範例事件。

EventBridge 事件模式擁有與其相符事件相同的結構。該模式引用您欲比對的欄位，並提供您正在尋找的數值。

事件中的下列欄位會形成規則中定義的事件模式，以呼叫動作：

`"source": "aws.autoscaling"`  
識別該事件是來自 Amazon EC2 Auto Scaling。

`"detail-type": "EC2 Instance-launch Lifecycle Action"`  
識別事件類型。

`"Origin": "EC2"`  
識別執行個體的來源。

`"Destination": "WarmPool"`  
識別執行個體的目的地。

使用下列範例事件模式來擷取與進入暖集區的執行個體相關聯的所有 `EC2 Instance-launch Lifecycle Action` 事件。

```
{
  "source": [ "aws.autoscaling" ],
  "detail-type": [ "EC2 Instance-launch Lifecycle Action" ],
  "detail": {
      "Origin": [ "EC2" ],
      "Destination": [ "WarmPool" ]
   }
}
```

使用下列範例事件模式來擷取與因橫向擴展事件而離開暖集區的執行個體相關聯的所有 `EC2 Instance-launch Lifecycle Action` 事件。

```
{
  "source": [ "aws.autoscaling" ],
  "detail-type": [ "EC2 Instance-launch Lifecycle Action" ],
  "detail": {
      "Origin": [ "WarmPool" ],
      "Destination": [ "AutoScalingGroup" ]
   }
}
```

使用下列範例事件模式來擷取與直接啟動至 Auto Scaling 群組的執行個體相關聯的所有 `EC2 Instance-launch Lifecycle Action` 事件。

```
{
  "source": [ "aws.autoscaling" ],
  "detail-type": [ "EC2 Instance-launch Lifecycle Action" ],
  "detail": {
      "Origin": [ "EC2" ],
      "Destination": [ "AutoScalingGroup" ]
   }
}
```

使用下列範例事件模式來擷取與在縮減時將執行個體傳回至暖集區相關聯的所有 `EC2 Instance-terminate Lifecycle Action` 事件。

```
{
  "source": [ "aws.autoscaling" ],
  "detail-type": [ "EC2 Instance-terminate Lifecycle Action" ],
  "detail": {
      "Origin": [ "AutoScalingGroup" ],
      "Destination": [ "WarmPool" ]
   }
}
```

使用下列範例事件模式擷取與 `EC2 Instance-launch Lifecycle Action` 相關聯的所有事件，無論原始伺服器或目的地為何。

```
{
  "source": [ "aws.autoscaling" ],
  "detail-type": [ "EC2 Instance-launch Lifecycle Action" ]
}
```

# 使用 Amazon EventBridge 規則來自動化動作
<a name="create-eventbridge-rules"></a>

當 Amazon EC2 Auto Scaling 發出事件時，事件通知會以 JSON 文件形式傳送至 Amazon EventBridge。您可以寫入 EventBridge 規則，以在事件模式符合規則時自動化要採取的動作。如果 EventBridge 偵測到事件模式符合規則中定義的模式，EventBridge 會叫用規則中指定的目標 (或多個目標)。

您可以使用本節中的範例程序做為起點。

下列文件可能也會提供您所需的協助。
+ 若要使用 Lambda 函數在執行個體啟動或終止前對其執行自訂動作，請參閱 [教學課程：設定叫用 Lambda 函數的 lifecycle hook](tutorial-lifecycle-hook-lambda.md)。
+ 若要在使用 CloudTrail 記錄的 API 呼叫叫用 Lambda 函數，請參閱《*Amazon EventBridge 使用者指南*》中的[教學課程：使用 EventBridge 記錄 AWS API 呼叫](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-log-api-call.html)。
+ 如需有關建立事件規則的詳細資訊，請參閱《*Amazon EventBridge 使用者指南*》中的「[建立對事件做出反應的 Amazon EventBridge 規則](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-create-rule.html)」。

**Topics**
+ [針對執行個體重新整理事件建立 EventBridge 規則](monitor-events-eventbridge-sns.md)
+ [為暖集區事件建立 EventBridge 規則](warm-pool-events-eventbridge-rules.md)

# 針對執行個體重新整理事件建立 EventBridge 規則
<a name="monitor-events-eventbridge-sns"></a>

下列範例建立傳送電子郵件通知的 EventBridge 規則。當執行個體重新整理期間到達檢查點時，系統會在 Auto Scaling 群組發出事件時執行此操作。其中包含使用 Amazon SNS 設定電子郵件通知的步驟。若要使用 Amazon SNS 傳送電子郵件通知，您必須先建立*主題*，然後以您的電子郵件地址訂閱此主題。

如需執行個體重新整理功能的詳細資訊，請參閱 [使用執行個體重新整理來更新 Auto Scaling 群組中的執行個體](asg-instance-refresh.md)。

## 建立 Amazon SNS 主題
<a name="eventbridge-sns-create-topic"></a>

SNS 主題是一種邏輯存取點，也是 Auto Scaling 群組用來傳送通知的通訊管道。您可以為您所建立的主題指定名稱。

主題名稱必須符合下列需求：
+ 具有 1 到 256 個字元。
+ 包含大小寫 ASCII 字母、數字、底線或連字號 

如需詳細資訊，請參閱《Amazon Simple Notification Service 開發人員指南》**中的[建立 Amazon SNS 主題](https://docs.aws.amazon.com/sns/latest/dg/sns-create-topic.html)。

## 訂閱 Amazon SNS 主題
<a name="eventbridge-sns-subscribe-topic"></a>

若要收到 Auto Scaling 群組傳送到該主題的通知，您必須訂閱連結至主題的端點。在此過程中，請於 **Endpoint** (端點) 指定要用來接收 Amazon EC2 Auto Scaling 通知的電子郵件地址。

如需詳細資訊，請參閱《Amazon Simple Notification Service 開發人員指南》**中的[訂閱 Amazon SNS 主題](https://docs.aws.amazon.com/sns/latest/dg/sns-create-subscribe-endpoint-to-topic.html)。

## 確認 Amazon SNS 訂閱
<a name="eventbridge-sns-confirm-subscription"></a>

Amazon SNS 會將確認電子郵件傳送到您在先前步驟中所指定的電子郵件地址。

請務必從 AWS 通知開啟電子郵件，然後選擇連結以確認訂閱，然後再繼續下一個步驟。

您會收到來自 的確認訊息 AWS。Amazon SNS 現在已設定為採用您指定的電子郵件地址，以電子郵件方式接收和傳送通知。

## 將事件路由到 Amazon SNS 主題
<a name="eventbridge-sns-create-rule"></a>

建立符合所選事件的規則，並將其路由到 Amazon SNS 主題，以便通知訂閱的電子郵件地址。

**若要建立向您的 Amazon SNS 主題傳送通知的規則**

1. 前往 [https://console.aws.amazon.com/events/](https://console.aws.amazon.com/events/) 開啟 Amazon EventBridge 主控台。

1. 在導覽窗格中，選擇**規則**。

1. 選擇**建立規則**。

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

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

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

   1. 針對**事件匯流排**選擇**預設值**。當您帳戶中 AWS 的服務產生事件時，一律會前往您帳戶的預設事件匯流排。

   1. 針對**規則類型**，選擇**具有事件模式的規則**。

   1. 選擇**下一步**。

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

   1. 在 **Event source** (事件來源) 欄位中，選擇 **AWS events or EventBridge partner events** (事件或 EventBridge 合作夥伴事件)。

   1. 針對 **Event pattern** (事件模式)，請執行下列動作：

      1. 在 **Event source (事件來源)**，選擇 **AWS 服務**。

      1. 對於 **AWS 服務**，選擇 **Auto Scaling**。

      1. 對於 **Event type** (事件類型)，請選擇 **Instance Refresh** (執行個體重新整理)。

      1. 在預設情況下，規則符合任何執行個體重新整理事件。若要建立規則，以便在執行個體重新整理期間到達檢查點時通知您，請選擇 **Specific instance event(s)** (特定執行個體事件)，然後選取 **EC2 Auto Scaling Instance Refresh Checkpoint Reached** (到達的 EC2 Auto Scaling 執行個體重新整理檢查點)。

      1. 在預設情況下，規則符合區域中的任何 Auto Scaling 群組。為了讓規則符合特定 Auto Scaling 群組，請選擇 **Specific group name(s)** (特定群組名稱)，然後選取一或多個 Auto Scaling 群組。

      1. 選擇**下一步**。

1. 針對 **Select target(s)** (選取目標) 執行下列動作：

   1. 對於 **Target types** (目標類型)，選擇 **AWS 服務**。

   1. 對於 **Select a target** (選取目標)，選擇 **SNS topic** (SNS 主題)。

   1. 對於 **Topic** (主題)，請選擇您的 Amazon SNS 主題。

   1. (選用) 在 **Additional settings** (其他設定) 下，您可以選擇性地設定其他設定。如需詳細資訊，請參閱*「Amazon EventBridge 使用者指南」*中的[建立對事件做出反應的 Amazon EventBridge 規則](https://docs.aws.amazon.com//eventbridge/latest/userguide/eb-create-rule.html)。

   1. 選擇**下一步**。

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

1. 對於 **Review and create** (檢閱與建立)，請檢閱規則的詳細資訊，然後視需要來修改。然後，選擇 **Create role** (建立角色)。

# 為暖集區事件建立 EventBridge 規則
<a name="warm-pool-events-eventbridge-rules"></a>

以下範例建立了 EventBridge 規則來呼叫程式設計動作。當新執行個體新增至暖集區時，系統會在 Auto Scaling 群組發出事件時執行此操作。

建立規則之前，請建立您希望規則用作目標的 AWS Lambda 函數。您必須將此函數指定為規則的目標。以下程序僅提供建立 EventBridge 規則 (這些規則會在新的執行個體進入暖集區時做出反應) 的步驟 。如需說明如何建立簡單 Lambda 函數以便於傳入事件符合規則時叫用的簡介教學課程，請參閱 [教學課程：設定叫用 Lambda 函數的 lifecycle hook](tutorial-lifecycle-hook-lambda.md)。

如需如何建立與使用暖集區的詳細資訊，請參閱 [使用暖集區縮短開機時間的應用程式延遲](ec2-auto-scaling-warm-pools.md)。

**建立叫用 Lambda 函數的事件規則**

1. 前往 [https://console.aws.amazon.com/events/](https://console.aws.amazon.com/events/) 開啟 Amazon EventBridge 主控台。

1. 在導覽窗格中，選擇**規則**。

1. 選擇**建立規則**。

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

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

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

   1. 針對**事件匯流排**選擇**預設值**。當您 AWS 服務 帳戶中的 產生事件時，一律會前往您帳戶的預設事件匯流排。

   1. 針對**規則類型**，選擇**具有事件模式的規則**。

   1. 選擇**下一步**。

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

   1. 在 **Event source** (事件來源) 欄位中，選擇 **AWS events or EventBridge partner events** (事件或 EventBridge 合作夥伴事件)。

   1. 對於 **Event pattern** (事件模式)，選擇 **Custom pattern (JSON editor)** (自訂模式 (JSON 編輯器))，並將下列模式貼入 **Event pattern** (事件模式) 方塊，把**斜體**顯示文字取代為您的 Auto Scaling 群組名稱。

      ```
      {
        "source": [ "aws.autoscaling" ],
        "detail-type": [ "EC2 Instance-launch Lifecycle Action" ],
        "detail": {
            "AutoScalingGroupName": [ "my-asg" ],
            "Origin": [ "EC2" ],
            "Destination": [ "WarmPool" ]
         }
      }
      ```

      若要建立符合其他事件的規則，請修改事件模式。如需詳細資訊，請參閱[事件模式範例](warm-pools-eventbridge-events.md#warm-pools-eventbridge-patterns)。

   1. 選擇**下一步**。

1. 針對 **Select target(s)** (選取目標) 執行下列動作：

   1. 對於 **Target types** (目標類型)，選擇 **AWS 服務**。

   1. 對於 **Select a target** (選取目標)，選擇 **Lambda function** (Lambda 函數)。

   1. 在 **Function** (函數) 欄位中，請選擇您要將事件傳送至哪個函數。

   1. （選用）對於 **Configure version/alias** (設定版本/別名)，輸入目標 Lambda 函數的版本和別名設定。

   1. （選用）對於 **Additional settings** (其他設定)，輸入適合您應用程式的其他設定。如需詳細資訊，請參閱*「Amazon EventBridge 使用者指南」*中的[建立對事件做出反應的 Amazon EventBridge 規則](https://docs.aws.amazon.com//eventbridge/latest/userguide/eb-create-rule.html)。

   1. 選擇**下一步**。

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

1. 對於 **Review and create** (檢閱與建立)，請檢閱規則的詳細資訊，然後視需要來修改。然後，選擇 **Create role** (建立角色)。

# 使用 Amazon VPC 為您的 Auto Scaling 執行個體提供網際網路連線
<a name="asg-in-vpc"></a>

Amazon Virtual Private Cloud (Amazon VPC) 是一項服務，可讓您在您定義的邏輯隔離虛擬網路中啟動 AWS 資源，例如 Auto Scaling 群組。

在 Amazon VPC 中的子網路是由 VPC IP 地址範圍內的某個區段所定義的可用區域內的分支。使用子網路時，您可以根據安全性和操作需求分組執行個體。子網路整個在所建立的可用區域內。您在子網路中啟動 Auto Scaling 執行個體。

若要啟用子網路中的網際網路和執行個體之間的通訊，您必須建立網際網路閘道，並將它連接到您的 VPC。網際網路閘道可讓子網路內的資源透過 Amazon EC2 網路節點連線至網際網路。若子網路的流量路由至網際網路閘道，則該子網路便稱為*公有*子網路。若子網路的流量未路由至網際網路閘道，則該子網路便稱為*私有*子網路。針對必須連結至網際網路的資源使用公有子網路，並針對不需連結至網際網路的資源使用私有子網路。如需有關在 VPC 中對執行個體授予網際網路存取權的詳細資訊，請參閱*《Amazon VPC 使用者指南》*中的[存取網際網路](https://docs.aws.amazon.com/vpc/latest/userguide/how-it-works.html#what-is-connectivity)。

**Topics**
+ [預設 VPC](#as-defaultVPC)
+ [非預設 VPC](#as-nondefaultVPC)
+ [選擇 VPC 子網路時的注意事項](#as-vpc-considerations)
+ [VPC 中的 IP 地址指定](#as-vpc-ipaddress)
+ [VPC 中的網路介面](#as-vpc-network-interfaces)
+ [執行個體安置租用](#as-vpc-tenancy)
+ [AWS Outposts](#auto-scaling-outposts)
+ [了解 VPC 的更多資源](#auto-scaling-resources-about-vpcs)

## 預設 VPC
<a name="as-defaultVPC"></a>

如果您在 2013 年 12 月 4 日 AWS 帳戶 之後建立 ，或者您正在新的 中建立 Auto Scaling 群組 AWS 區域，我們會為您建立預設 VPC。您的預設 VPC 隨附在每個可用區域的預設子網路中。如果已有預設 VPC，您的 Auto Scaling 群組依預設會建立在預設的 VPC 中。

您可以在 Amazon VPC 主控台的[您的 VPC 頁面](https://console.aws.amazon.com/vpc/home?/#vpcs)上檢視您的 VPC。

如需預設 VPC 的詳細資訊，請參閱*《Amazon VPC 使用者指南》*中的[預設 VPC](https://docs.aws.amazon.com/vpc/latest/userguide/default-vpc.html)。

## 非預設 VPC
<a name="as-nondefaultVPC"></a>

您可以選擇建立其他 VPC，方法是前往 AWS 管理主控台 中的 [VPC 儀表板頁面](https://console.aws.amazon.com/vpc/home?/#vpcs)，然後選取 **Create VPC** (建立 VPC)。

如需詳細資訊，請參閱《[Amazon VPC 使用者指南](https://docs.aws.amazon.com/vpc/latest/userguide/)》**。

**注意**  
VPC 遍及整個 AWS 區域內的所有可用區域。向 VPC 新增子網時，請選擇多個可用區域，以確保這些子網中託管的應用程式具有高可用性。可用區域是一個或多個獨立的資料中心，具備 AWS 區域中的備援電源、聯網和連線能力。可用區域會協助您使生產應用程式具備高可用性、容錯能力和可擴展性。

## 選擇 VPC 子網路時的注意事項
<a name="as-vpc-considerations"></a>

為 Auto Scaling 群組選擇 VPC 子網時請注意以下事項：
+ 若要將 Elastic Load Balancing 負載平衡器連接到 Auto Scaling 群組，則可將執行個體啟動到公有或私有子網路中。不過，負載平衡器只能在公有子網路中建立以支援 DNS 解析。
+ 如果直接透過 SSH 存取 Auto Scaling 執行個體，則只能將執行個體啟動到公有子網路中。
+ 如果您使用 AWS Systems Manager Session Manager 存取無輸入 Auto Scaling 執行個體，則可以在公有或私有子網路中啟動執行個體。
+ 如果使用私有子網路，則可以允許 Auto Scaling 執行個體使用公有 NAT 閘道存取網際網路。
+ 依預設，預設 VPC 中的預設子網路為公有子網路。

## VPC 中的 IP 地址指定
<a name="as-vpc-ipaddress"></a>

在 VPC 中啟動 Auto Scaling 執行個體時，會從該執行個體啟動的子網路 CIDR 範圍中自動指派一個私有 IP 地址給您的執行個體。這可以讓您的執行個體與 VPC 中的其他執行個體通訊。

您可以設定啟動範本或啟動組態，以指派公有 IPv4 地址給您的執行個體。將公有 IP 地址指派給您的執行個體，可讓它們與網際網路或其他 AWS 服務通訊。

當您將執行個體啟動到已設定的子網路來自動指派 IPv6 地址時，它們會收到 IPv4 和 IPv6 地址。否則，它們只會收到 IPv4 地址。如需詳細資訊，請參閱《Amazon EC2 使用者指南》**中的 [IPv6 地址](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-instance-addressing.html#ipv6-addressing)。

如需為 VPC 或子網路指定 CIDR 範圍的詳細資訊，請參閱《[Amazon VPC 使用者指南](https://docs.aws.amazon.com/vpc/latest/userguide/)》。

當您使用可指定其他網路介面的啟動範本時，Amazon EC2 Auto Scaling 可以在執行個體啟動時自動指派其他私有 IP 地址。每個網路介面都會指派一個單一私有 IP 地址，而此地址來自該執行個體啟動所在的子網路 CIDR 範圍中。在這種情況下，系統就無法再自動指派公有 IPv4 地址給主要網路介面。除非您將可用彈性 IP 地址與 Auto Scaling 執行個體建立關聯，否則將無法透過公有 IPv4 地址連線至執行個體。

## VPC 中的網路介面
<a name="as-vpc-network-interfaces"></a>

VPC 中的每個執行個體都有預設的網路介面 (主要網路介面)。您無法分離主要網路介面和執行個體。您可以建立額外的網路介面，然後連接到您 VPC 中的任一執行個體。您可連接的網路介面數會隨執行個體類型而不同。

使用啟動範本啟動執行個體時，您可以指定其他網路介面。不過，啟動具有多個網路介面的 Auto Scaling 執行個體，會自動在與執行個體相同的子網路中建立每個介面。這是因為 Amazon EC2 Auto Scaling 會忽略啟動範本中定義的子網路，以便支持 Auto Scaling 群組中指定的子網路。如需詳細資訊，請參閱[建立 Auto Scaling 群組的啟動範本](https://docs.aws.amazon.com/autoscaling/ec2/userguide/create-launch-template.html)。

如果將相同子網路中兩個或以上的網路介面建立到或連接到執行個體，您可能會遇到聯網問題，例如非對稱路由，特別是在使用非 Amazon Linux 變體的執行個體之上。如果需要這種類型的組態，您必須在作業系統內設定次要網路介面。如需範例，請參閱 AWS 知識中心的[如何讓次要網路界面在 Ubuntu EC2 執行個體中運作？](https://repost.aws/knowledge-center/ec2-ubuntu-secondary-network-interface)。

## 執行個體安置租用
<a name="as-vpc-tenancy"></a>

根據預設，VPC 中的所有執行個體都會以共用租用執行個體執行。Amazon EC2 Auto Scaling 也支援專用執行個體和專用主機。如需詳細資訊，請參閱[使用進階設定建立啟動範本](advanced-settings-for-your-launch-template.md)。

## AWS Outposts
<a name="auto-scaling-outposts"></a>

AWS Outposts 使用區域中可存取的 VPC 元件，包括網際網路閘道、虛擬私有閘道、Amazon VPC Transit Gateways 和 VPC 端點，將 Amazon VPC 從 區域擴展 AWS 到 Outpost。Outpost 位於區域中的可用區域，且為該可用區域的延伸，可用於復原。

如需詳細資訊，請參閱[「AWS Outposts 使用者指南」](https://docs.aws.amazon.com/outposts/latest/userguide/)。

如需瞭解如何部署從 Outpost 內 Application Load Balancer 轉發流量的 Auto Scaling 群組，請參閱以下部落格文章[在 AWS Outposts上設定 Application Load Balancer](https://aws.amazon.com/blogs/networking-and-content-delivery/configuring-an-application-load-balancer-on-aws-outposts/)。

## 了解 VPC 的更多資源
<a name="auto-scaling-resources-about-vpcs"></a>

若要進一步了解 VPC 與子網路，請參閱下列主題。
+ 在 VPC 中的私有子網路
  + [範例：在私有子網路和 NAT 具有伺服器的 VPC](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-example-private-subnets-nat.html)
  + [NAT 閘道](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html)
+ 在 VPC 中的公有子網路
  + [範例：測試環境的 VPC](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-example-dev-test.html)
  + [範例：適用於 Web 和資料庫伺服器的 VPC](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-example-web-database-servers.html)
+ Application Load Balancer 的子網路
  + [負載平衡器的子網路](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/application-load-balancers.html#subnets-load-balancer)
+ 一般 VPC 資訊
  + 《[Amazon VPC 使用者指南](https://docs.aws.amazon.com/vpc/latest/userguide/)》
  + [使用 VPC 對等互連來連線 VPC](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-peering.html)
  + [彈性網路介面](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-eni.html)
  + [使用 VPC 端點進行私有連線](ec2-auto-scaling-vpc-endpoints.md)