25-5-23-云计算作业2操作指南

当然可以!以下是为 **COMP5349 Assignment 2** 精心设计的**完整操作流程指南**,包括部署步骤、资源配置、测试、截图、报告与视频录制。你可以按此流程逐步操作,确保完整性与高分完成。

------

# 🛠️ COMP5349 Assignment 2 操作流程指南(完整步骤)

------

## 📍 一、准备工作(Day 1)

### ✅ 步骤 1:登录 AWS Learner Lab 控制台

- 登录方式:使用 UoS 提供的 Learner Lab 入口
- 检查是否有 $50 学生额度
- 确认资源配额,例如:
- Lambda 并发数限制(10)
- EC2 实例数限制
- RDS 实例数限制

### ✅ 步骤 2:绘制架构图(初版)

- 工具推荐:draw.io / Lucidchart / PowerPoint
- 绘制两个架构图:
1. Web 应用架构(EC2 + ALB + S3 + RDS)
2. Serverless 架构(Lambda + S3 + RDS + Gemini API)
- 标注各组件之间的 **触发机制** 和 **权限依赖**

------

## 🌐 二、Web 应用部署(Day 2)

### ✅ 步骤 3:配置基础网络(如使用自建 VPC)

- 创建 VPC、子网、路由表、安全组(如非使用默认 VPC)
- 开放端口:
- EC2 安全组:开放 22(SSH)、80(HTTP)
- RDS 安全组:开放 3306(给 EC2)

### ✅ 步骤 4:启动 EC2 实例

- 实例类型:`t3.micro`

- 安装环境(例如 Ubuntu):

```bash
sudo apt update
sudo apt install python3-pip apache2 mysql-client -y
```

- 上传并部署 Web 应用:

- 上传 Assignment 1 的代码
- 添加图片上传功能 + 显示功能
- 修改代码将图片上传到 S3,将元数据写入 RDS

### ✅ 步骤 5:创建 S3 桶

- 创建一个桶,例如:`comp5349-image-bucket`
- 配置公共读取权限(或通过预签名 URL)
- 配置事件触发器(后续用于触发 Lambda)

### ✅ 步骤 6:创建 RDS 实例(MySQL)

- 实例类型:`db.t3.micro`
- 设置用户名、密码
- 创建数据库与表(建议使用 `images` 表,包含 filename, timestamp, caption 等字段)
- 给 EC2 安全组授权访问

------

## ⚙️ 三、Lambda 配置(Day 3)

### ✅ 步骤 7:编写 Lambda 函数

#### 注释函数(Annotation Function)

- 功能:从 S3 获取图像,调用 Gemini API,写入 RDS
- 配置环境变量:
- `DB_HOST`, `DB_USER`, `DB_PASSWORD`, `BUCKET_NAME`, `GEMINI_API_KEY`

#### 缩略图函数(Thumbnail Generator)

- 功能:从 S3 获取图像,生成缩略图,上传到 `thumbnails/` 目录

### ✅ 步骤 8:创建 Lambda 函数

- 使用 ZIP 上传或直接在控制台编写
- 运行环境:Python 3.9
- 配置 IAM 角色:
- 允许访问 S3、RDS、CloudWatch Logs
- 设置触发器:
- S3 `ObjectCreated:*` 事件(添加前缀过滤器,例如 `uploads/`)

------

## 📶 四、Auto Scaling + ALB 设置(Day 4)

### ✅ 步骤 9:创建 Launch Template

- 配置启动脚本(User Data)自动部署 Web 应用

- 示例:

```bash
#!/bin/bash
apt update
apt install apache2 -y
# 拉取代码并启动服务(根据你的项目)
```

### ✅ 步骤 10:配置 Auto Scaling Group

- 最小实例数:1
- 最大实例数:3
- 触发条件:CPU 使用率 > 50% 扩容,< 20% 缩容

### ✅ 步骤 11:配置 ALB

- 创建 Application Load Balancer
- 监听端口 80
- 创建目标组:将 ASG 实例注册到目标组
- 设置健康检查路径:`/health` 或主页

------

## 🔍 五、功能测试与截图(Day 5)

### ✅ 步骤 12:测试上传功能

- 访问 ALB DNS 地址,上传图像
- 检查:
- S3 是否收到图像
- S3 `thumbnails/` 是否生成缩略图
- RDS 是否生成注释记录

### ✅ 步骤 13:测试 Auto Scaling 行为

- 使用 ApacheBench:

```bash
ab -n 1000 -c 50 http:///image-list
```

- 观察 EC2 控制台、CloudWatch:

- 实例数量变化(截图)
- CPU 使用率变化(截图)
- ALB 请求分发(截图)

------

## 📑 六、报告撰写(Day 6)

### ✅ 步骤 14:撰写部署报告

按照评分标准撰写以下部分:

| 报告部分 | 内容 |
| ----------------- | ---------------------------------- |
| 简介 | 项目背景、目的 |
| 架构图 | 插入两张图 |
| Web 应用部署 | 网络、EC2、RDS、S3、ALB 配置说明 |
| Lambda 部署 | 函数功能、触发器、权限、Gemini API |
| Auto Scaling 测试 | 测试方法、截图、分析 |
| 总结与反思 | 面临挑战与解决方案 |
| 报告格式 | 图表编号、术语统一、排版专业 |

------

## 🎬 七、视频录制与提交(Day 7)

### ✅ 步骤 15:录制演示视频(≤10 分钟)

**建议内容结构:**

1. 简介 + 学生证展示
2. 上传图像演示
3. 展示图像 + 注释 + 缩略图
4. S3 桶 + Lambda 日志
5. ALB + ASG 配置
6. RDS 配置
7. 总结与退出

> 工具推荐:OBS Studio、Loom、QuickTime Player

### ✅ 步骤 16:提交作业

- 提交内容:
- 📄 报告 PDF
- 🎥 视频 MP4
- 命名规范:`SID_COMP5349_Assignment2_Report.pdf`、`SID_COMP5349_Assignment2_Demo.mp4`

------

## 🧹 八、资源清理(可选)

| 资源 | 是否删除 |
| --------------------- | --------------- |
| EC2 实例 | ✅ |
| RDS 实例 | ✅ |
| S3 桶 | ❌(仅清空内容) |
| ALB | ✅ |
| ASG + Launch Template | ✅ |
| Lambda 函数 | ✅ |
| CloudWatch Logs | ✅(设置保留期) |

------

## ✅ 附件(可选)

如你需要,我可以为你生成以下内容:

- ✅ 示例代码(Lambda、上传页面)
- ✅ 报告模板(Word / Markdown)
- ✅ 架构图模板(draw.io)
- ✅ 负载测试脚本(Python)

只需告诉我即可 😊

是否现在就开始为你生成这些内容?

~  ~  The   End  ~  ~


 赏 
感谢您的支持,我会继续努力哒!
支付宝收款码
tips
(*) 2 + 5 =
快来做第一个评论的人吧~