这个 Task 非常重要。AWS Academy 有额度限制,如果不清理资源,RDS、EC2、Load Balancer 都可能继续消耗 credit。
需要清理:
Auto Scaling Group
Launch Template
Load Balancer
Target Group
EC2 Instances
RDS Database
不再需要的 Security Group rules
Step 4.1:删除 Auto Scaling Group
进入:
选择:
删除前建议先把容量改成:
等待 ASG 管理的 instances 被 terminate 后,再删除 ASG。
这一步在做什么:
防止你手动 terminate instance 后,ASG 又自动创建新的 instance
Auto Scaling Group 的职责就是维持实例数量,所以要先处理 ASG
Step 4.2:删除 Load Balancer
进入:
选择:
点击删除。
这一步在做什么:
停止 ALB 继续运行
避免 Load Balancer 继续消耗资源
Step 4.3:删除 Target Group
进入:
选择:
点击删除。
注意:
要先删除 Load Balancer
否则 Target Group 可能因为仍被 ALB 使用而无法删除
Step 4.4:Terminate EC2 Instances
进入:
选择本 Lab 创建的所有 EC2,例如:
点击:
注意:
不要误删其他课程或其他 Lab 需要的实例
只删除本次 Lab 创建的资源
Step 4.5:删除 RDS Database
进入:
选择:
点击:
如果出现选项:
Lab 环境通常可以选择不创建 final snapshot。
如果要求输入确认文字,按页面提示输入。
这一步在做什么:
删除 RDS MySQL instance
RDS 是持续计费资源,一定要清理
Summary
本周 Lab 的核心不是单独学习某一个 AWS 按钮,而是把几个真实云架构组件串起来:
然后进一步加入 Auto Scaling:
这周真正要理解的是:
RDS 是托管数据库,不需要自己在 EC2 上安装 MySQL server
EC2 可以作为 client 连接 RDS
Security Group 决定谁能访问谁
ALB 不直接运行应用,它负责接收请求并分发给后端 targets
Target Group 是 ALB 后端实例的集合
Health Check 决定哪些实例可以接收流量
ASG 负责自动维持或调整 EC2 数量
Launch Template 决定 ASG 创建的新 EC2 如何配置
多 AZ 部署可以提升可用性
实验结束必须清理资源,尤其是 RDS、ALB 和 EC2
本周必须理解的知识点
1. RDS 是什么
RDS 是 AWS 提供的托管关系型数据库服务。
它可以运行:
MySQL
PostgreSQL
MariaDB
Oracle
SQL Server
Amazon Aurora
本 Lab 使用的是:
RDS 帮你处理很多数据库运维工作,例如:
创建数据库实例
管理存储
备份
监控
扩容
部分维护任务
你不需要像在 EC2 上那样自己安装 MySQL server。
2. Public Access 和 Security Group 的区别
Public access: Yes 的意思是:
但这不代表任何人都能连上。
真正控制访问的是:
所以连接 RDS 需要同时满足:
3. ALB、Listener、Target Group 的关系
可以这样理解:
请求路径是:
4. Health Check 是什么
Health Check 用来判断后端服务器是否可用。
例如 ALB 会定期访问后端 EC2 的 HTTP 80。
如果服务器正常响应:
如果服务器停止、Apache 挂了、端口不通:
ALB 只会把流量发给 healthy targets。
5. Auto Scaling Group 是什么
Auto Scaling Group 负责自动管理 EC2 数量。
它可以:
保持固定数量实例
根据流量增加实例
根据低负载减少实例
替换不健康实例
本 Lab 中 ASG 的配置是:
含义:
默认希望保持 2 台
最少 1 台
最多 3 台
6. Launch Template 是什么
Launch Template 是 ASG 创建新 EC2 时使用的模板。
它通常包含:
AMI
Instance type
Key pair
Security group
User data
Storage settings
简单说:
关键概念对比
RDS vs 在 EC2 上自己装 MySQL
对比项
RDS
EC2 自装 MySQL
管理方式
AWS 托管
自己管理
安装 MySQL
不需要
需要
备份
AWS 提供选项
自己配置
扩容
控制台配置
自己迁移或调整
运维成本
较低
较高
灵活性
有一定限制
更自由
ALB vs Target Group
概念
作用
ALB
接收用户请求的入口
Listener
定义 ALB 监听哪个协议和端口
Target Group
后端服务器集合
Target
具体 EC2 instance
Health Check
判断 target 是否健康
Desired / Minimum / Maximum Capacity
配置
含义
Desired capacity
ASG 当前希望维持的实例数
Minimum capacity
ASG 最少保留的实例数
Maximum capacity
ASG 最多允许扩容到的实例数
Scale Up / Scale Out / Scale Down / Scale In
概念
含义
例子
Scale up
增强单台机器配置
t2.micro 改成 t3.large
Scale down
降低单台机器配置
t3.large 改成 t2.micro
Scale out
增加机器数量
2 台 EC2 增加到 4 台
Scale in
减少机器数量
4 台 EC2 减少到 2 台
plain text
us-east-1
plain text
Aurora and RDS
plain text
Databases
plain text
Create database
plain text
Full configuration
plain text
Engine type: MySQL
Database creation method: Full configuration
Edition: MySQL Community
Template: Sandbox
Availability and durability: Single-AZ DB instance deployment
Engine version: MySQL 8.4.8 或页面默认版本
Actions -> Image and templates -> Create template from instance
plain text
Launch template name: MyTemplate
Description: Launch template for Lab08 Auto Scaling web servers
AMI: Ubuntu 24.04,已显示具体 AMI,不再是空的
Instance type: t3.micro
Key pair: Lab08
Subnet: Don't include in launch template,正确
Availability Zone: Don't include in launch template,正确
Security group: launch-wizard-2
Storage: 8 GiB
User data: 已填写,会自动安装并启动 Apache,写入 Auto Scaling Web Server 页面
plain text
EC2 -> Auto Scaling -> Auto Scaling Groups
plain text
Create Auto Scaling group
plain text
Auto Scaling group name: MyASG
Launch template: MyTemplate
Version: Default
plain text
VPC: default VPC
Availability Zones and subnets: 选择和 ALB 相同的两个 public subnets
plain text
us-east-1a public subnet
us-east-1c public subnet
plain text
Attach to an existing load balancer
plain text
Choose from your load balancer target groups
plain text
MyFirstTG | HTTP
plain text
Turn on Elastic Load Balancing health checks
plain text
Desired capacity: 2
plain text
Minimum desired capacity: 1
Maximum desired capacity: 3
Desired capacity: 0
Minimum capacity: 0
Maximum capacity: 0
plain text
EC2 -> Load Balancing -> Load Balancers
plain text
MYALB
plain text
EC2 -> Load Balancing -> Target Groups
plain text
MyFirstTG
plain text
EC2 -> Instances
plain text
WebServer01
WebServer02
ASG-created instances
plain text
Instance state -> Terminate instance
plain text
Aurora and RDS -> Databases
plain text
lab08-mysql-db
plain text
Actions -> Delete
plain text
Create final snapshot?
plain text
User Browser
↓
Application Load Balancer
↓
Target Group
↓
EC2 Web Servers
↓
RDS MySQL Database
plain text
Traffic increases
↓
ALB request count per target increases
↓
Auto Scaling policy triggers
↓
ASG creates more EC2 instances
↓
New instances register into Target Group
↓
ALB sends traffic to healthy instances
plain text
MySQL on RDS
plain text
RDS 可以拥有公网可访问的 endpoint
plain text
Security Group inbound rules
plain text
RDS 有 endpoint
RDS 状态是 Available
RDS security group 允许 3306
用户名密码正确
网络路径可达
cd /var/www/html/ sudo mv index.html index2.html sudo bash -c 'echo "<html><h1>Hello FIT5225 from Web Server 1!</h1></html>" > /var/www/html/index.html'
bash
curl http://localhost
html
<html><h1>Hello FIT5225 from Web Server 1!</h1></html>
bash
cd /var/www/html/ sudo mv index.html index2.html sudo bash -c "echo '<html><h1>Hello FIT5225 from Web Server 2!</h1></html>' > index.html"
bash
curl http://localhost
html
<html><h1>Hello FIT5225 from Web Server 2!</h1></html>
bash
Target type: Instances Target group name: MyFirstTG Protocol: HTTP Port: 80 IP address type: IPv4 VPC: default VPC Health checks: default
bash
#!/bin/bash apt-get update -y apt-get install apache2 -y systemctl enable apache2 systemctl start apache2 echo '<html><h1>Hello FIT5225 from Auto Scaling Web Server!</h1></html>' > /var/www/html/index.html
bash
while true; do curl http://<YOUR_LOAD_BALANCER_DNS_NAME>; done
bash
while true; do curl http://MYALB-123456789.us-east-1.elb.amazonaws.com; done