

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

# 教學課程：設定擴展和負載平衡應用程式
<a name="tutorial-ec2-auto-scaling-load-balancer"></a>

**重要**  
在探索本教學課程之前，建議您先檢閱下列簡介教學課程：[建立您的第一個 Auto Scaling 群組](create-your-first-auto-scaling-group.md)。

使用 Elastic Load Balancing 負載平衡器註冊 Auto Scaling 群組有助於您設定負載平衡應用程式。Elastic Load Balancing 可搭配 Amazon EC2 Auto Scaling 使用，將傳入流量分配到狀態良好的 Amazon EC2 執行個體。進而提升應用程式的可擴展性與可用性。您可以在多個可用區域內啟用 Elastic Load Balancing，以提高應用程式的容錯能力。

在本教學課程中，我們會詳細說明在建立 Auto Scaling 群組時設定負載平衡應用程式的基本步驟。完成後，您的架構看起來應該會如下圖所示：

![\[具有 Application Load Balancer 的 Auto Scaling 群組。\]](http://docs.aws.amazon.com/zh_tw/autoscaling/ec2/userguide/images/elb-tutorial-architecture-diagram.png)


Elastic Load Balancing 支援多種不同類型的負載平衡器。建議您在本教學課程中使用 Application Load Balancer。

如需關於將負載平衡器引入架構的詳細資訊，請參閱 [使用 Elastic Load Balancing 在 Auto Scaling 群組中分配傳入應用程式流量](autoscaling-load-balancer.md)。

**Topics**
+ [先決條件](#as-register-lbs-prerequisites)
+ [步驟 1：設定啟動範本或啟動組態](#as-register-lbs-create-lt-console)
+ [步驟 2：建立 Auto Scaling 群組](#as-register-lbs-create-asg-console)
+ [步驟 3：驗證負載平衡器是否已連接](#as-register-lbs-verify-console)
+ [步驟 4：後續步驟](#as-lbs-app-next-steps)
+ [步驟 5：清除](#as-lbs-app-clean-up)
+ [相關資源](#tutorial-ec2-auto-scaling-load-balancer-related-resources)

## 先決條件
<a name="as-register-lbs-prerequisites"></a>
+ 負載平衡器和目標群組。務必為計劃用於 Auto Scaling 群組的負載平衡器選擇相同的可用區域。如需詳細資訊，請參閱《Elastic Load Balancing 使用者指南》**中的 [Elastic Load Balancing 入門](https://docs.aws.amazon.com/elasticloadbalancing/latest/userguide/load-balancer-getting-started.html)。
+ 啟動範本或啟動組態的安全群組。安全群組必須允許從接聽程式連接埠 (通常是 HTTP 流量的連接埠 80) 上的負載平衡器存取，以及您要 Elastic Load Balancing 用於運作狀態檢查的連接埠上的負載平衡器存取。如需詳細資訊，請參閱適用的文件：
  + 《Application Load Balancer 使用者指南》**中的[目標安全群組](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/target-group-register-targets.html#target-security-groups)。
  + 《Network Load Balancer 使用者指南》**中的[目標安全群組](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/target-group-register-targets.html#target-security-groups)。

  若您的執行個體將會有公有 IP 地址，您可以允許 SSH 流量連線到執行個體。
+ （選用） 授予應用程式存取權的 IAM 角色 AWS。
+ (選用) 將 Amazon Machine Image (AMI) 定義為 Amazon EC2 執行個體的來源範本。若要立即建立，請啟動執行個體。接著，您必須指定 IAM 角色 (如有建立的話) 和需要作為使用者資料的任何組態指令碼。連線到執行個體並加以自訂。例如，您可以安裝軟體和應用程式，複製資料，以及連接額外的 EBS 磁碟區。在您的執行個體上測試應用程式，確保設定正確無誤。您可以將這個更新過的組態儲存為自訂 AMI。如果之後不需要執行個體，您可以終止執行個體。從這個新自訂 AMI 啟動的執行個體包括您建立 AMI 時所設的自訂。
+ Virtual Private Cloud (VPC)。本教學課程使用的是預設 VPC，但您可以使用自己的 VPC。在使用自己的 VPC 的情況下，請確定您的 VPC 有一個子網路映射到您正在使用之區域的每個可用區域。必須至少有兩個可用的公有子網路，您才能建立負載平衡器。也必須具有兩個私有子網路或兩個公有子網路，您才能建立 Auto Scaling 群組並使用負載平衡器註冊。

## 步驟 1：設定啟動範本或啟動組態
<a name="as-register-lbs-create-lt-console"></a>

使用本教學課程的啟動範本或啟動組態。

**Topics**
+ [選取或建立啟動範本](#as-register-lbs-create-lt-console)
+ [選擇或建立啟動組態](#as-register-lbs-create-lc-console)

### 選取或建立啟動範本
<a name="as-register-lbs-create-lt-console"></a>

如果您已經有偏好使用的啟動範本，則請依照下列操作程序進行選擇。

**選擇現有的啟動範本**

1. 開啟 Amazon EC2 主控台中的[啟動範本頁面](https://console.aws.amazon.com/ec2/v2/#LaunchTemplates)。

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

1. 選擇啟動範本。

1. 選擇 **Actions** (動作)、**Create an Auto Scaling group** (建立 Auto Scaling 群組)。

或者，可依照下列步驟建立新的啟動範本。

**建立啟動範本**

1. 開啟 Amazon EC2 主控台中的[啟動範本頁面](https://console.aws.amazon.com/ec2/v2/#LaunchTemplates)。

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

1. 選擇 **Create launch template** (建立啟動範本)。

1. 為初始版本的啟動範本輸入名稱並提供描述。

1. 對於 **Application and OS Images (Amazon Machine Image)** (應用程式和作業系統映像 (Amazon Machine Image))，為您的執行個體選擇 AMI 的 ID。您可以搜尋所有可用的 AMI，或從 **Recent** (最近) 或 **Quick Start** (快速開始) 清單中選取 AMI。若未看到您需要的 AMI，請選擇 **Browser more AMIs** (瀏覽更多 AMI) 即可瀏覽完整的 AMI 目錄。

1. 針對 **Instance type** (執行個體類型)，選擇可與您指定的 AMI 相容之執行個體硬體組態。

1. (選用) 針對 **Key pair (login)** (金鑰對 (登入))，選擇要在連線執行個體時使用的金鑰對。

1. 針對 **Network settings** (網路設定)，展開 **Advanced network configuration** (進階網路組態)，並執行下列動作：

   1. 選擇 **Add network interface** (新增網路介面) 以設定主要網路介面。

   1. 對於**自動指派公有 IP**，請指定您的執行個體是否接收公有 IPv4 地址。根據預設，如果 EC2 Amazon EC22 會指派公有 IPv4 地址。 IPv4 如果您不需要連線到執行個體，您可以選擇**停用**，以防止群組中的執行個體直接從網際網路接收流量。在此情況下，它們只會從負載平衡器接收流量。

   1. 針對 **Security group ID** (安全群組 ID)，從與負載平衡器相同的 VPC 為執行個體指定安全群組。

   1. 針對 **Delete on termination** (在終止時刪除)，選擇 **Yes** (是)。這會在 Auto Scaling 群組縮減時刪除網路介面，並終止網路介面連接的執行個體。

1. (選用) 若要安全地分配憑證到您的執行個體，針對 **Advanced details (進階詳細資訊)**、**IAM instance profile (IAM 執行個體描述檔)**，輸入 IAM 角色的 Amazon Resource Name (ARN)。

1. (選用) 若要為執行個體指定使用者資料或組態指令碼，請於 **Advanced details** (進階詳細資訊) 與 **User data** (使用者資料) 貼上使用者資料或組態指令碼。

1. 選擇 **Create launch template** (建立啟動範本)。

1. 在確認頁面上，選擇 **Create Auto Scaling group** (建立 Auto Scaling 群組)。

### 選擇或建立啟動組態
<a name="as-register-lbs-create-lc-console"></a>

**注意**  
我們強烈建議在新應用程式中使用啟動組態，因為它是沒有計劃投資的舊版功能。此外，在 2023 年 6 月 1 日當天或之後建立的新帳戶將無法選擇透過主控台建立新的啟動組態。如需詳細資訊，請參閱[Auto Scaling 啟動組態](launch-configurations.md)。

**選擇現有的啟動組態**

1. 開啟 Amazon EC2 主控台中的[啟動組態頁面](https://console.aws.amazon.com/ec2/v2/home?#LaunchConfigurations)。

1. 在頂端導覽列上，選擇建立負載平衡器的區域。

1. 選擇啟動組態。

1. 選擇 **Actions** (動作)、**Create an Auto Scaling group** (建立 Auto Scaling 群組)。

或者，您可以使用下列操作程序來建立新的啟動組態。

**建立啟動組態**

1. 開啟 Amazon EC2 主控台中的[啟動組態頁面](https://console.aws.amazon.com/ec2/v2/home?#LaunchConfigurations)。出現確認提示時，請選擇**檢視啟動組態**，以確認您要檢視**啟動組態**頁面。

1. 在頂端導覽列上，選擇建立負載平衡器的區域。

1. 選擇 **Create launch configuration** (建立啟動組態)，然後輸入啟動組態的名稱。

1. 針對 **Amazon machine image (AMI)**，請將執行個體 AMI 的 ID 輸入為搜尋條件。

1. 針對 **Instance type** (執行個體類型)，為執行個體選取硬體組態。

1. 在 **Additional configuration** (其他組態) 下，請注意下列欄位：

   1. (選用) 若要安全地分配憑證給 EC2 執行個體，請就 **IAM 執行個體描述檔**選擇您的 IAM 角色。如需詳細資訊，請參閱[在 Amazon EC2 執行個體上執行的應用程式的 IAM 角色](us-iam-role.md)。

   1. (選用) 若要為執行個體指定使用者資料或組態指令碼，請於 **Advanced details** (進階詳細資訊) 與 **User data** (使用者資料) 貼上使用者資料或組態指令碼。

   1. (選用) 針對 **Advanced Details** (進階詳細資訊)、**IP address Type ** (IP 地址類型)，請保留預設值。建立 Auto Scaling 群組時，可以使用已啟用公有 IP 地址屬性的子網路 (例如預設 VPC 中的預設子網路)，將公有 IP 地址指派給 Auto Scaling 群組中的執行個體。或者，如果您不需要連線到執行個體，可以選擇 **Do not assign a public IP address to any instances** (不要將公有 IP 地址指派給任何執行個體)，以防止群組中的執行個體直接從網際網路接收流量。在此情況下，它們只會從負載平衡器接收流量。

1. 針對 **Security groups** (安全群組)，請從與負載平衡器相同的 VPC 中選擇現有安全群組。如果選擇 **Create a new security group** (建立新的安全群組) 選項，則會為 Amazon EC2 Linux 執行個體設定預設 SSH 規則。為 Amazon EC2 Windows 執行個體設定預設 RDP 規則。

1. 針對 **Key pair (login)** (金鑰對 (登入))，請選擇 **Key pair options** (金鑰對選項) 下的某個選項。

   若您已經設定 Amazon EC2 執行個體金鑰對，則可以在這裡選擇它。

   如果您還沒有 Amazon EC2 執行個體金鑰對，則請選擇 **Create a new key pair** (建立新的金鑰對)，然後給予可輕鬆辨識的名稱。選擇 **Download Key Pair** (下載金鑰對)，將金鑰對下載至電腦。
**重要**  
如果您需要連線到執行個體，請勿選取 **Proceed without a key pair** (沒有金鑰對仍繼續作業)。

1. 選取確認核取方塊，然後選擇 **Create launch configuration** (建立啟動組態)。

1. 選取新啟動組態名稱旁的核取方塊，然後依序選擇 **Actions** (動作)、**Create Auto Scaling group** (建立 Auto Scaling 群組)。

## 步驟 2：建立 Auto Scaling 群組
<a name="as-register-lbs-create-asg-console"></a>

您可以使用下列操作程序，接續您建立或選取啟動範本或啟動組態後未繼續作業的階段。

**建立 Auto Scaling 群組**

1. 在**選擇啟動範本或組態**頁面上，針對**Auto Scaling 群組名稱**，請輸入 Auto Scaling 群組的名稱。

1. [僅限啟動範本] 針對 **Launch template** (啟動範本)，選擇 Auto Scaling 群組擴增時使用啟動範本的預設、最新或特定版本。

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

   **Choose instance launch options** (選擇執行個體啟動選項) 頁面隨即顯示，可讓您選擇想要 Auto Scaling 群組使用的 VPC 網路設定，並為您提供啟動隨需執行個體和 Spot 執行個體的選項 (如果您選擇啟動範本)。

1. 在 **Network** (網路) 區段中，對於 **VPC**，請選擇您用於負載平衡器的 VPC。如果您選擇預設 VPC，它會自動設定為為您的執行個體提供網際網路連線。此 VPC 包含在區域中每個可用區域的公有子網路。

1. 對於 **Availability Zones and subnets** (可用區域和子網路)，根據負載平衡器所在的可用區域，從要包含的每個可用區域中選擇一或多個子網路。如需詳細資訊，請參閱[選擇 VPC 子網路時的注意事項](asg-in-vpc.md#as-vpc-considerations)。

1. [僅限啟動範本] 在 **Instance type requirements** (執行個體類型需求) 區段中，使用預設的設定簡化此步驟。(請勿覆寫啟動範本。) 在本教程中，您將使用啟動範本中指定的執行個體類型，並且僅啟動隨需執行個體。

1. 選擇 **Next** (下一頁) 前往 **Configure advanced options** (設定進階選項) 頁面。

1. 要將群組連接至現有負載平衡器，請在 **Load balancing** (負載平衡) 區段中，選擇 **Attach to an existing load balancer** (連接至現有負載平衡器)。您可以選擇 **Choose from your load balancer target groups** (從負載平衡器目標群組中選擇) 或者 **Choose from Classic Load Balancers** (從 Classic Load Balancer 選擇)。然後，您可以為您建立的 Application Load Balancer 或 Network 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 群組的設定後，請選擇 **Skip to review** (跳過以進行檢閱)。

1. 詳閱 **Review** (檢閱) 頁面上的 Auto Scaling 群組詳細資訊。您可以選擇 **Edit** (編輯) 來進行變更。完成時，選擇 **Create Auto Scaling group** (建立群組)。

在您將負載平衡器連接到建立的 Auto Scaling 群組後，該負載平衡器即會在新執行個體上線時自動為其註冊。您目前只有一個執行個體，因此沒有太多註冊作業需要進行。不過，您能夠更新群組所需的容量，以新增其他執行個體。如需逐步說明，請參閱 [更改您的 Auto Scaling 群組的所需容量](ec2-auto-scaling-scaling-manually.md#change-desired-capacity)。

## 步驟 3：驗證負載平衡器是否已連接
<a name="as-register-lbs-verify-console"></a>

**驗證負載平衡器是否已連接**

1. 從 Amazon EC2 主控台的 [Auto Scaling groups](https://console.aws.amazon.com/ec2/v2/home?#AutoScalingGroups) (Auto Scaling 群組) 頁面中，選取 Auto Scaling 群組旁的核取方塊。

1. 在 **Details** (詳細資訊) 索引標籤上，**Load balancing** (負載平衡) 會顯示所有已連接的負載平衡器目標群組或 Classic Load Balancer。

1. 在 **Activity** (活動) 索引標籤的 **Activity history** (活動歷史記錄) 中，您可以確認執行個體是否成功啟動。**Status** (狀態) 欄位會顯示 Auto Scaling 群組是否成功地啟動了執行個體。如果執行個體無法啟動，您可以在 [對 Amazon EC2 Auto Scaling 中的問題進行故障診斷](CHAP_Troubleshooting.md) 中找到常見執行個體啟動問題的故障診斷想法。

1. 在 **Instance management** (執行個體管理) 索引標籤的 **Instances** (執行個體) 下，您可以確認執行個體是否準備好接受流量。一開始，您的執行個體會處於 `Pending` 狀態。在執行個體準備好接受流量之後，它的狀態會變成 `InService`。**Health status** (運作狀態) 欄位會顯示執行個體的 Amazon EC2 Auto Scaling 運作狀態檢查結果。雖然執行個體可能標記為狀態良好，但負載平衡器只會將流量傳送到通過負載平衡器運作狀態檢查的執行個體。

1. 確認您的執行個體已在負載平衡器上註冊。開啟 Amazon EC2 主控台中的[目標群組頁面](https://console.aws.amazon.com/ec2/v2/#TargetGroups)。選取您的目標群組，然後選擇 **Targets** (目標) 索引標籤。如果執行個體的狀態為 `initial`，這可能是因為它們仍在註冊過程中，或者它們仍在進行運作狀態檢查。當您執行個體的狀態為 `healthy` 時，表示已準備好可供使用。

## 步驟 4：後續步驟
<a name="as-lbs-app-next-steps"></a>

現在您已經完成此教學課程，您可以進一步了解：
+ Amazon EC2 Auto Scaling 會根據您的 Auto Scaling 群組使用的運作狀態檢查狀態，判斷執行個體是否運作狀態良好。如果您啟用負載平衡器運作狀態檢查，且執行個體未通過運作狀態檢查，Auto Scaling 群組會將執行個體視為運作狀態不佳，並予以取代。如需詳細資訊，請參閱[運作狀態檢查](ec2-auto-scaling-health-checks.md)。
+ 您可將應用程式擴展到相同區域的另一個可用區域，藉此提高容錯能力以因應服務中斷情況。如需詳細資訊，請參閱[新增可用區域移除可用區域](as-add-az-console.md)。
+ 您可以將 Auto Scaling 群組設定為使用目標追蹤擴展政策。這會在執行個體需求變更時自動增加或減少執行個體數目。這可讓群組處理應用程式接收的流量變更。如需詳細資訊，請參閱[目標追蹤擴展政策](as-scaling-target-tracking.md)。

## 步驟 5：清除
<a name="as-lbs-app-clean-up"></a>

在完成為本教學課程建立的資源後，您應該考慮清理這些資源，以避免產生不必要的費用。

**若要刪除 Auto Scaling 群組**

1. 開啟 Amazon EC2 主控台的 [Auto Scaling 群組頁面](https://console.aws.amazon.com/ec2/v2/home?#AutoScalingGroups)。

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

1. 選擇 **刪除**。

1. 出現確認提示時，請輸入 **delete** 來確認刪除特定的 Auto Scaling 群組，然後選擇 **Delete** (刪除)。

   **Name** (名稱) 欄位中的載入圖示會顯示正在刪除 Auto Scaling 群組。刪除過程中，**Desired** (所需)、**Min** (最小) 和 **Max** (最大) 欄位會顯示 Auto Scaling 群組的 `0` 個執行個體。終止執行個體並刪除群組需要幾分鐘的時間。重新整理清單，以查看目前狀態。

若想保留您的啟動範本，請跳過以下程序。

**刪除您的啟動範本**

1. 開啟 Amazon EC2 主控台中的[啟動範本頁面](https://console.aws.amazon.com/ec2/v2/#LaunchTemplates)。

1. 選擇啟動範本。

1. 選擇 **Actions** (動作)、**Delete template** (刪除範本)。

1. 出現確認提示時，請輸入 **Delete** 確認刪除指定的啟動範本，然後選擇 **Delete** (刪除)。

若想保留您的啟動組態，請跳過以下程序。

**刪除您的啟動組態**

1. 開啟 Amazon EC2 主控台中的[啟動組態頁面](https://console.aws.amazon.com/ec2/v2/home?#LaunchConfigurations)。

1. 選取啟動組態。

1. 選擇 **Actions** (動作)、**Delete launch configuration** (刪除啟動組態)。

1. 出現確認提示時，請選擇**刪除**。

若想保留負載平衡器以供日後使用，請略過下列操作程序。

**刪除負載平衡器**

1. 開啟 Amazon EC2 主控台中的[負載平衡器頁面](https://console.aws.amazon.com/ec2/v2/#LoadBalancers)。

1. 選擇負載平衡器，然後選擇 **Actions** (動作)、**Delete** (刪除)。

1. 出現確認提示時，選擇 **Yes, Delete** (是，刪除)。

**若要刪除您的目標群組**

1. 開啟 Amazon EC2 主控台中的[目標群組頁面](https://console.aws.amazon.com/ec2/v2/#TargetGroups)。

1. 選取目標群組，然後依序選擇 **Actions** (動作)、**Delete** (刪除)。

1. 出現確認提示時，選擇 **Yes, Delete** (是，刪除)。

## 相關資源
<a name="tutorial-ec2-auto-scaling-load-balancer-related-resources"></a>

透過 CloudFormation，您可以使用範本檔案以單一單位 (*堆疊*) 的形式建立和刪除資源集合，以可預測且重複的方式建立和佈建 AWS 基礎設施部署。如需詳細資訊，請參閱[「AWS CloudFormation 使用者指南」](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html)。

如需示範如何使用堆疊範本來佈建 Auto Scaling 群組和 Application Load Balancer，請參閱《*AWS CloudFormation 使用者指南*》中的[演練：建立可擴展且負載平衡的應用程式](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/walkthrough-autoscaling.html)。使用此演練和範例範本作為建立類似範本的起點，以符合您的需求。