25-5-23-云计算作业2操作指南
本文最后由方少年更新于2025 年 11 月 10 日,已超过20天没有更新。如果文章内容或图片资源失效,请留言反馈,将会及时处理,谢谢!
当然可以!以下是为 **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://
```
- 观察 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)
只需告诉我即可 😊
是否现在就开始为你生成这些内容?
文章标题:25-5-23-云计算作业2操作指南
文章链接:https://www.fangshaonian.cn/archives/85/
最后编辑:2025 年 11 月 10 日 18:31 By 方少年
许可协议: 署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)