教學課程:設定擴展和負載平衡應用程式 - Amazon EC2 Auto Scaling

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

教學課程:設定擴展和負載平衡應用程式

重要

在探索本教學課程之前,我們建議您先檢閱下列簡介教學課程:建立第一個 Auto Scaling 群組

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

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

具有 Application Load Balancer 的 Auto Scaling 群組。

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

如需關於將負載平衡器引入架構的詳細資訊,請參閱 使用 Elastic Load Balancing 在 Auto Scaling 群組中分配傳入應用程式流量

必要條件

  • 負載平衡器和目標群組。務必為計劃用於 Auto Scaling 群組的負載平衡器選擇相同的可用區域。如需詳細資訊,請參閱《Elastic Load Balancing 使用者指南》中的 Elastic Load Balancing 入門

  • 啟動範本或啟動組態的安全群組。安全群組必須允許從接聽程式連接埠 (通常是HTTP流量的連接埠 80) 和您希望 Elastic Load Balancing 用於運作狀態檢查的連接埠上的負載平衡器存取 。如需詳細資訊,請參閱適用的文件:

    或者,如果您的執行個體具有公有 IP 地址,您可以允許SSH流量連接到執行個體。

  • (選用) 授予應用程式存取權IAM的角色 AWS。

  • (選用) Amazon Machine Image (AMI),定義為 Amazon EC2執行個體的來源範本。若要立即建立,請啟動執行個體。接著,您必須指定 IAM 角色 (如有建立的話) 和需要做為使用者資料的任何組態指令碼。連線到執行個體並加以自訂。例如,您可以安裝軟體和應用程式、複製資料和連接其他磁碟EBS區。在您的執行個體上測試應用程式,確保設定正確無誤。將此更新的組態儲存為自訂 AMI。如果之後不需要執行個體,您可以終止執行個體。從此新自訂啟動的執行個體AMI包含您在建立 時所做的自訂AMI。

  • 虛擬私有雲端 (VPC)。本教學課程參考預設 VPC,但您可以使用自己的 。如果使用您自己的 VPC,請確定其子網路已對應至您正在工作之區域的每個可用區域。必須至少有兩個可用的公有子網路,您才能建立負載平衡器。也必須具有兩個私有子網路或兩個公有子網路,您才能建立 Auto Scaling 群組並使用負載平衡器註冊。

步驟 1:設定啟動範本或啟動組態

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

選取或建立啟動範本

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

選擇現有的啟動範本
  1. 開啟 Amazon EC2主控台的啟動範本頁面

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

  3. 選擇啟動範本。

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

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

建立啟動範本
  1. 開啟 Amazon EC2主控台的啟動範本頁面

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

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

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

  5. 針對應用程式和作業系統映像 (Amazon Machine Image),選擇AMI執行個體的 ID。您可以搜尋所有可用的 AMIs,或從AMI最近快速入門清單中選取 。如果您沒有看到所需的 AMI ,請選擇瀏覽更多AMIs以瀏覽完整AMI目錄。

  6. 針對執行個體類型,為與您AMI指定的 相容的執行個體選取硬體組態。

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

  8. 針對 Network settings (網路設定),展開 Advanced network configuration (進階網路組態),並執行下列動作:

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

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

    3. 針對安全群組 ID,請從與負載平衡器VPC相同的 為您的執行個體指定安全群組。

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

  9. (選用) 若要將登入資料安全地分發到您的執行個體,如需進階詳細資訊IAM執行個體設定檔,請輸入IAM角色的 Amazon Resource Name (ARN)。

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

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

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

選擇或建立啟動組態

注意

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

選擇現有的啟動組態
  1. 開啟 Amazon EC2主控台的啟動組態頁面

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

  3. 選擇啟動組態。

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

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

建立啟動組態
  1. 開啟 Amazon EC2主控台的啟動組態頁面。出現確認提示時,請選擇檢視啟動組態,以確認您要檢視啟動組態頁面。

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

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

  4. 針對 Amazon Machine Image (AMI),輸入執行個體AMI的 ID 做為搜尋條件。

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

  6. Additional configuration (其他組態) 下,請注意下列欄位:

    1. (選用) 若要將登入資料安全地分發到您的EC2執行個體,例如IAM執行個體設定檔,請選取您的IAM角色。如需詳細資訊,請參閱在 Amazon IAM 執行個體上執行的應用程式的 EC2 角色

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

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

  7. 對於安全群組,從與負載平衡器VPC相同的 中選擇現有的安全群組。如果您保持選取建立新的安全群組選項,則會為執行 Linux 的 Amazon EC2執行個體設定預設SSH規則。系統會為執行 Windows 的 Amazon EC2執行個體設定預設RDP規則。

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

    如果您已設定 Amazon EC2執行個體金鑰對,您可以在這裡選擇。

    如果您還沒有 Amazon EC2執行個體金鑰對,請選擇建立新的金鑰對,並為其提供可辨識的名稱。選擇 Download Key Pair (下載金鑰對),將金鑰對下載至電腦。

    重要

    如果您需要連線到執行個體,請勿選取 Proceed without a key pair (沒有金鑰對仍繼續作業)。

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

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

步驟 2:建立 Auto Scaling 群組

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

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

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

  3. 選擇 Next (下一步)

    選擇執行個體啟動選項頁面隨即出現,可讓您選擇您希望 Auto Scaling 群組使用VPC的網路設定,並提供啟動隨需執行個體和 Spot 執行個體的選項 (如果您選擇啟動範本)。

  4. 網路區段中,針對 VPC,選擇您用於負載平衡器VPC的 。如果您選擇預設 VPC,系統會自動將其設定為提供執行個體的網際網路連線。這包括區域中每個可用區域中的公VPC有子網路。

  5. 對於 Availability Zones and subnets (可用區域和子網路),根據負載平衡器所在的可用區域,從要包含的每個可用區域中選擇一或多個子網路。如需詳細資訊,請參閱選擇 VPC 子網路時的考量

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

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

  8. 要將群組連接至現有負載平衡器,請在 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 的名稱。

  9. (選用) 在運作狀態檢查其他運作狀態檢查類型上,選取開啟 Elastic Load Balancing 運作狀態檢查

  10. (選用) 針對運作狀態檢查寬限期,輸入時長,以秒為單位。此時間量是 Amazon EC2 Auto Scaling 在進入 InService 狀態後檢查執行個體的運作狀態之前,需要等待多久。如需詳細資訊,請參閱設定 Auto Scaling 群組的運作狀態檢查寬限期。

  11. 當您完成對 Auto Scaling 群組的設定後,請選擇 Skip to review (跳過以進行檢閱)。

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

在您將負載平衡器連接到建立的 Auto Scaling 群組後,該負載平衡器即會在新執行個體上線時自動為其註冊。您目前只有一個執行個體,因此沒有太多註冊作業需要進行。不過,您能夠更新群組所需的容量,以新增其他執行個體。如需 step-by-step說明,請參閱 更改您的 Auto Scaling 群組的所需容量

步驟 3:驗證負載平衡器是否已連接

驗證負載平衡器是否已連接
  1. 從 Amazon EC2主控台的 Auto Scaling 群組頁面,選取 Auto Scaling 群組旁的核取方塊。

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

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

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

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

步驟 4:後續步驟

現在您已經完成此教學課程,您可以進一步了解:

  • Amazon EC2 Auto Scaling 會根據 Auto Scaling 群組使用的運作狀態檢查狀態,來判斷執行個體是否正常運作。如果您啟用負載平衡器運作狀態檢查,且執行個體未通過運作狀態檢查,則 Auto Scaling 群組會將執行個體視為運作狀態不佳,並予以取代。如需詳細資訊,請參閱運作狀態檢查

  • 您可將應用程式擴展到相同區域的另一個可用區域,藉此提高容錯能力以因應服務中斷情況。如需詳細資訊,請參閱新增可用區域

  • 您可以將 Auto Scaling 群組設定為使用目標追蹤擴展政策。這會在執行個體需求變更時自動增加或減少執行個體數目。這可讓群組處理應用程式接收的流量變更。如需詳細資訊,請參閱目標追蹤擴展政策

步驟 5:清除

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

若要刪除 Auto Scaling 群組
  1. 開啟 Amazon EC2主控台的 Auto Scaling 群組頁面

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

  3. 選擇 刪除

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

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

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

刪除您的啟動範本
  1. 開啟 Amazon EC2主控台的啟動範本頁面

  2. 選擇啟動範本。

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

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

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

刪除您的啟動組態
  1. 開啟 Amazon EC2主控台的啟動組態頁面

  2. 選取啟動組態。

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

  4. 出現確認提示時,請選擇刪除

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

刪除負載平衡器
  1. 開啟 Amazon EC2主控台的負載平衡器頁面

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

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

若要刪除您的目標群組
  1. 開啟 Amazon EC2主控台的目標群組頁面

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

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

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

如需示範如何使用堆疊範本來佈建 Auto Scaling 群組和 Application Load Balancer,請參閱《AWS CloudFormation 使用者指南》中的演練:建立可擴展且負載平衡的應用程式。使用此演練和範例範本作為建立類似範本的起點,以符合您的需求。