开始使用AWS EC2自动扩展

運行網站或應用程序並不需要花費太多。事實上,還有一些方法可以節省資源成本,同時為用戶提供出色的體驗。一個例子就是通過 AWS EC2 Autoscaling。

EC2 Auto Scaling 是一個可以根據您定義的條件自動調整 Amazon EC2 容量的服務。在這篇教程中,您將學習如何在 AWS 上設置和應用基本的 EC2 Auto Scaling 配置到您的應用程序中。

繼續閱讀,確保您的應用程序始終具備所需的資源,同時不超出預算!

先決條件

本教程包含實際操作演示。為了跟隨操作,您需要一個 AWS 帳戶,並且一個免費層級帳戶即可。

創建一個啟動模板

在開始使用 AWS EC2 Auto Scaling 之前,您首先需要一種啟動 EC2 實例的方法,即啟動模板(類似於啟動配置)。啟動模板包含啟動 EC2 實例所需的所有信息,例如實例類型、子網和安全組。

AWS 建議使用啟動模板,因為它提供比啟動配置更靈活和更高級的功能。EC2 Auto Scaling 在進行擴展時使用啟動模板來啟動新的實例。

創建啟動模板的步驟:

1. 打開您喜歡的網頁瀏覽器,並登錄到AWS 管理控制台

2. 在搜尋欄中搜索 EC2 啟動模板,並從結果中選擇「啟動模板」。這樣會打開EC2啟動模板頁面。

Opening the launch templates page

3. 接下來,從下拉列表(右上角)中選擇一個區域,然後點擊「創建啟動模板」來開始創建啟動模板。

您可以在支援 EC2 自動縮放的任何區域使用自動縮放,但本教程使用美國東部(北維珍尼亞州)為例。

Initiating creating a launch template

4. 現在,使用以下方式配置新的啟動模板名稱和描述:

  • 啟動模板名稱 – 必填 – 為您的啟動模板提供一個名稱(ec2-autoscaling-template-demo)。名稱必須在該區域內是唯一的,不超過 128 個字符,並且不包含除了連字符(-)、下劃線(_)和句點(.)以外的特殊字符。
  • 模板版本描述 – 輸入您的啟動模板描述(ec2 autoscaling template demo),長度不超過 255 個字符。
  • 自動縮放指南 – 選擇 提供指導,以幫助我設置可與 EC2 自動縮放一起使用的模板 選項以啟用自動縮放指南。此選項使創建與 EC2 自動縮放兼容的啟動模板更加容易。
Configuring a launch template

5. 捲動到 啟動模板內容 部分,並使用以下選項為您的啟動模板選擇應用程序和操作系統映像:

  • 應用程序和操作系統映像(Amazon Machine Image) – 選擇模板的引導映像,但本教程使用 Amazon Linux 2 AMI。您的 EC2 實例將基於所選的引導映像啟動。

您可以選擇任何您喜歡的引導映像,但建議使用 Amazon Linux 2 AMI,因為它符合免費層資格。

  • 架構 – 選擇模板的架構,但本教程使用 x86-64(64 位元)。
Providing launch template contents

6. 接下來,按照以下方式設置您的啟動模板的實例類型和金鑰對(登錄):

  • 實例類型 – 選擇模板的實例類型。但本教程的選擇是 t2.micro,因為它符合免費層資格。

在選擇實例類型時,考慮其他因素,如 CPU 和記憶體需求,因為某些實例類型的成本比其他更高。

  • 金鑰對登錄) – 選擇 不包括在啟動模板中,因為這對於自動縮放不需要。

當指定金鑰對時,EC2 自動縮放將使用該金鑰對啟動您的實例。

Selecting an Instance type, and Key par (login)

7. 在網路設定中,選擇選取現有安全性群組選項,並為您的 EC2 實例指定安全性群組設定。這樣做可以使 EC2 自動擴展使用此安全性群組啟動您的實例。

請注意,如果您希望為您的 EC2 實例創建新的安全性群組,則可以選擇創建安全性群組選項。

Selecting an existing security groups

8. 保留其他預設設定,並在摘要切換清單下方點擊「創建啟動模板」(右下角)以創建您的啟動模板。

Creating the new launch template

9. 最後,在「從模板創建 Auto Scaling 群組」部分下面點擊「創建 Auto Scaling 群組」以繼續。

請不要關閉啟動模板頁面,因為您將在下一節中依次創建您的 Auto Scaling 群組。

Initiating creating an Auto Scaling group

創建 AWS EC2 自動擴展群組

現在您已經擁有了一個 EC2 啟動模板,您需要創建一個 AWS EC2 自動擴展群組來容納您的 EC2 實例。 AWS EC2 自動擴展具有讓您使用健康檢查替換和擴展政策的功能。

如果您喜歡,您可以創建包含多個實例的自動擴展群組。 但是在本教程中,您將創建一個單個實例的自動擴展群組,以演示自動擴展的工作原理。

1. 在「創建啟動模板」頁面上,請配置 Auto Scaling 群組如下:

  • 自動縮放群組名稱 – 輸入您的自動縮放群組名稱(ec2-autoscaling-group-demo)。名稱在您的AWS區域內必須是唯一的,並且長度不得超過255個字符。
  • 啟動模板 – 從下拉列表中選擇您的EC2啟動模板(ec2-autoscaling-template-demo)。
  • 點擊 下一步 繼續。
Naming the AWS EC2 Auto Scaling group

2. 接下來,保留所有默認設置,但為您的自動縮放群組選擇現有的VPC和子網,然後點擊下一步繼續。

指定這些設置使您的自動縮放群組知道在哪裡啟動您的EC2實例。

Selecting an existing VPC and subnet for your Auto Scaling group

3. 保留默認設置,然後點擊下一步繼續。

Leaving other default settings

4. 現在,使用以下配置自動縮放群組的組大小:

Capacity Limit Details
Desired 1 Set the number of instances you want in your Auto Scaling group. The desired capacity must be greater than or equal to the minimum capacity and less than or equal to the maximum capacity.
Minimum 1 Set the minimum number of instances in your Auto Scaling group. The value must be greater than or equal to 1 and less than or equal to the maximum capacity.
Maximum 1 Set the maximum number of instances you want in your Auto Scaling group.
Specifying the Auto Scaling group’s capacity

5. 向下滾動,保留默認設置,然後點擊 跳過檢閱 繼續。

  • 縮放策略 – 保持選擇 “None”,因為您將使用簡單的縮放策略。該策略在群組中的較舊實例終止時,將您的自動縮放群組的期望容量增加一個EC2實例。
  • 實例縮小保護 – 保持此選項禁用,因為在本教程中您不需要它。啟用此選項可以控制您的自動縮放群組在縮小時是否能終止您的實例。
Keeping details settings for scaling policies and instance scale-in protection

6. 最後,檢閱您的自動縮放群組設置,然後點擊創建自動縮放群組(右下方)以創建您的自動縮放群組。

Creating the Auto Scaling group

一旦创建,您将会看到列表中列出了您的自动缩放组,如下所示。

Verifying the newly-created Auto Scaling group

测试 AWS EC2 自动缩放组

太棒了!您已成功创建了一个 AWS EC2 自动缩放组来容纳您的 EC2 实例。但是,您如何确定您的自动缩放组是否正常工作呢?

您将验证您的 AWS EC2 自动缩放组是否已启动一个 EC2 实例。此实例是您在“创建 AWS EC2 自动缩放组”部分的第四步中指定的(期望容量)。

1. 在您新创建的自动缩放组旁边选中复选框,并单击“活动”选项卡,以查看自动缩放组中的所有活动。

在底部的“活动历史”部分,您将看到自动缩放组中最近事件的描述。在这种情况下,描述显示为“正在启动新的 EC2 实例”,状态为“成功”,实例 ID 为(i-09b699064f6e06070)。

复制实例 ID,因为您将在下一步中需要验证您的实例。

Viewing your activity history.

2. 转到 EC2 仪表板,并将您在第一步中复制的实例 ID 与任何正在运行的实例进行比较。

看到两个实例 ID 匹配表示您的自动缩放组已成功启动一个 EC2 实例。

Comparing the instance ID

3. 回到自动缩放组页面,单击实例管理选项卡,您将在一个地方看到有关您的 EC2 实例的所有信息。此选项卡上最重要的信息是:

  • 生命周期列 – 您可以看到您的Auto Scaling组中的EC2实例处于InService状态,这表示该实例可以处理请求。
  • 健康状态列 – 您可以看到您的EC2实例的健康检查状态为Healthy,这表示该实例通过了所有健康检查。the实例通过了所有健康检查。

终止EC2实例

既然您已经验证了Auto Scaling组的工作原理,您可以通过终止其中的EC2实例来进一步测试Auto Scaling组。请记住,在组中终止实例会导致Auto Scaling组自动启动新的EC2实例作为替代。

在现实生活中,您可以根据自动更改的情况使用Auto Scaling组自动扩展。什么时候?例如,您的一个NGINX Web服务器由于请求过载而处于即将崩溃的危险中。

但现在,您将通过手动终止EC2实例来测试Auto Scaling组,以模拟如果实例失败会发生什么。

1.导航到您的实例,并在实例旁边的复选框中选中它。

选定后,单击实例状态下拉菜单→终止实例以终止所选实例。

Terminating an EC2 instance

2.接下来,在提示时单击终止以确认终止实例。

Confirming instance termination.

以下是一条消息,表明 EC2 实例已成功终止。

自动缩放组的默认冷却期为300秒(5分钟),这意味着在终止旧实例后,自动缩放组至少需要五分钟才能启动一个新实例。

Verifying successful instance termination

3. 最后,在等待新实例启动时,请检查自动缩放组的活动历史记录。

如下所示,您将看到一个新的 EC2 实例已自动启动。此输出确认您的自动缩放组正在按预期工作。

Checking a new EC2 instance is launched automatically

结论

处理应用程序的负载是保持其顺利运行的重要组成部分。幸运的是,借助 AWS EC2 自动缩放,您可以确保应用程序始终具有处理不断变化的流量模式所需的资源。

在本教程中,您已经学会了如何创建自动缩放组、将实例启动到组中,并根据变化的条件扩展组。在此时,您现在可以自信地为您的应用程序创建 AWS EC2 自动缩放组。

有了这些新的知识,为什么不使用 AWS CloudFormation 创建自动缩放组,以获得更多的便利呢?当负载增加时,您将感谢自己不再需要手动提供更多资源!创建自动缩放组与 AWS CloudFormation

Source:
https://adamtheautomator.com/ec2-autoscaling/