使用 AWS EC2 和 Application Load Balancer 部署 Web 应用程序 – 实践项目
Source: Dev.to
项目概述
在本项目中,我创建了一个简单的 Web 应用,并使用 AWS 基础设施进行部署。该应用由多个 EC2 实例提供服务,流量通过应用负载均衡器(ALB)进行分配。此设置确保当某台服务器出现故障时,应用能够通过其他服务器平稳运行。
架构
User
↓
Application Load Balancer
↓
Target Group
↓
EC2 Instances running Nginx Web Server负载均衡器将传入请求分配到多个 EC2 实例,以实现更好的性能和高可用性。
使用技术
- AWS EC2
- AWS 应用负载均衡器(Application Load Balancer)
- AWS 目标组(Target Groups)
- Nginx Web 服务器
- HTML 与 CSS
- GitHub Pages
步骤实现
启动 EC2 实例
使用 AWS 免费套餐创建了两台 EC2 实例。通过 EC2 User Data 配置了 Nginx,使网站在实例启动时自动部署。
在实例上部署网站
网站包含:
- 欢迎页面
- 用户登录表单
- 建议输入框
- 项目描述部分
配置目标组
在 AWS 中创建了目标组,并将 EC2 实例注册为目标,使负载均衡器能够监控它们的健康状态并分配流量。
创建应用负载均衡器
设置了 ALB 来处理传入流量。ALB 将请求转发到目标组,目标组再将请求路由到可用的 EC2 实例,从而实现流量分配和可靠性提升。
配置安全组
配置安全组以允许:
- 端口 80 的 HTTP 流量
- 用于实例管理的 SSH 访问
GitHub 部署
将网站代码上传至 GitHub,并使用 GitHub Pages 托管静态版本。
- 实时网站:
- GitHub 仓库:
关键收获
- 启动和配置 EC2 实例
- AWS 应用负载均衡器如何分配流量
- 使用目标组管理后端服务器
- 使用 GitHub Pages 部署静态网站
- 通过云基础设施实现高可用性
结论
该项目提供了使用 AWS 服务部署基于云的 Web 应用的实践经验。了解负载均衡是现代云计算和 DevOps 环境中的关键技能,即使是简单的架构也能展示可伸缩和容错系统的核心原理。