silar512/silar512-aws-web-server-monitoring-incident-response-lab
GitHub: silar512/silar512-aws-web-server-monitoring-incident-response-lab
该项目演示了如何在 AWS 上部署 Nginx 网站并通过 CloudWatch、SNS 和 Systems Manager 实现监控告警与高 CPU 事件的安全排查和恢复。
Stars: 0 | Forks: 0
# AWS Web 服务器监控与事件响应实验
一个实践性的云支持工程师项目,演示如何使用 AWS 服务来部署、监控、故障排除和恢复一个托管在 EC2 上的 Web 服务器。
## 项目概述
在这个项目中,我在 Amazon EC2 实例上部署了一个小型的 Nginx 网站,并使用 Amazon CloudWatch 和 Amazon SNS 配置了监控和警报。
我还模拟了一次 CPU 使用率过高的事件,接收了警报邮件,通过 AWS Systems Manager Session Manager 安全地调查了实例,并确认环境已成功恢复。
## 架构
```
Internet
|
| HTTP (Port 80)
v
Amazon EC2 Instance
Amazon Linux 2023 + Nginx
|
+-- CloudWatch Metrics and Alarm
+-- SNS Email Alert
+-- Systems Manager Session Manager
```
## 使用的 AWS 服务
- Amazon EC2
- Amazon Linux 2023
- Nginx
- Amazon VPC Security Groups
- Amazon CloudWatch
- Amazon SNS
- AWS Systems Manager Session Manager
- AWS IAM
## 安全配置
- 创建了一个名为 `cloud-support-web-sg` 的安全组
- 允许端口 80 上的入站 HTTP 流量
- 未开放 SSH 端口 22
- 使用 Systems Manager Session Manager 进行安全的实例访问
## 监控配置
创建了一个名为以下名称的 CloudWatch 警报:
```
web-01-high-cpu
```
警报配置:
- 指标:`CPUUtilization`
- 命名空间:`AWS/EC2`
- 阈值:CPU 使用率大于或等于 70%
- 评估周期:5 分钟内的 1 个数据点
- 通知:Amazon SNS 电子邮件警报
## 事件场景:CPU 使用率过高
在 EC2 实例上触发了高 CPU 负载,以模拟真实的运维事件。
### 事件工作流
1. CloudWatch 检测到 CPU 使用率超过 70%。
2. `web-01-high-cpu` 警报状态从 `OK` 变为 `ALARM`。
3. Amazon SNS 发送了电子邮件通知。
4. 我使用 Systems Manager Session Manager 进行了安全连接。
5. 我检查了 Nginx 状态、HTTP 响应、磁盘使用情况和内存使用情况。
6. 我减少或停止了高 CPU 负载。
7. CloudWatch 警报恢复为 `OK` 状态。
## 验证命令
```
sudo systemctl status nginx
curl -I http://localhost
df -h
free -m
top
```
## 结果
- Nginx 服务成功运行。
- 网站返回 `HTTP/1.1 200 OK`。
- CloudWatch 成功检测到 CPU 使用率过高。
- SNS 成功发送了警报电子邮件通知。
- 恢复后警报状态返回 `OK`。
## 项目证明
- [项目报告](docs/AWS_Web_Server_Monitoring.pdf)
- [网站演示视频](videos/website-demo.mp4)
- [CloudWatch 事件演示视频](videos/cloudwatch-alert-demo.mp4)
## 展示的核心技能
- EC2 实例部署与配置
- Linux 和 Nginx 故障排除
- CloudWatch 监控与警报配置
- SNS 电子邮件通知设置
- 使用 Systems Manager Session Manager 进行安全访问
- 事件检测、调查、缓解和恢复
- 云安全最佳实践
## 清理
为避免产生意外的 AWS 费用,完成实验后应删除以下资源:
- EC2 实例
- CloudWatch 警报和仪表盘
- SNS 主题和订阅
- 安全组(在不再附加到资源之后)
## 作者
Shaik Silar
有志成为云支持工程师
标签:AWS, CloudWatch, DPI, EC2, IaC, Nginx, 运维监控