# AWS云计算入门指南: EC2、S3、RDS基础架构搭建
## 一、AWS核心服务架构概述
### 1.1 云计算基础与AWS服务矩阵
亚马逊云科技(Amazon Web Services)作为全球领先的云计算平台,其弹性计算云EC2(Elastic Compute Cloud)、简单存储服务S3(Simple Storage Service)和关系数据库服务RDS(Relational Database Service)构成了现代云原生应用的三大支柱。根据2023年Flexera云状态报告,超过76%的企业将EC2作为其核心计算基础设施。
AWS全球基础设施目前覆盖31个地理区域和99个可用区(Availability Zones),这种分布式架构为业务连续性提供了坚实保障。我们的基础架构设计将遵循以下技术栈组合:
- 计算层:EC2 t3.micro实例(适合开发环境)
- 存储层:S3标准存储类(Standard)
- 数据库层:RDS MySQL 8.0引擎
## 二、EC2实例部署与配置实战
### 2.1 创建安全计算实例
通过AWS管理控制台创建EC2实例时,我们需要特别关注以下核心参数:
```terraform
# Terraform EC2配置示例
resource "aws_instance" "web_server" {
ami = "ami-0c55b159cbfafe1f0" # Amazon Linux 2 AMI
instance_type = "t3.micro"
vpc_security_group_ids = [aws_security_group.allow_ssh.id]
tags = {
Name = "Production-WebServer"
}
}
```
说明:使用HCL语言定义t3.micro实例,关联安全组并添加资源标签
安全组(Security Group)配置建议遵循最小权限原则,生产环境应限制SSH(22端口)访问源IP。AWS官方数据显示,合理配置的安全组可阻止98%的暴力破解攻击。
### 2.2 系统连接与运维管理
推荐使用SSH证书登录方式,避免密码认证的安全风险:
```bash
ssh -i "your-key.pem" ec2-user@ec2-12-34-56-78.compute-1.amazonaws.com
```
注意:需提前使用chmod 400修改密钥文件权限
对于Windows实例,可通过RDP协议连接并启用Session Manager进行管理。建议启用CloudWatch监控,设置CPU使用率超过80%时触发警报。
## 三、S3存储服务深度解析
### 3.1 对象存储架构设计
S3存储桶(Bucket)的命名需遵循全局唯一性原则。以下Python代码演示如何通过Boto3 SDK上传文件:
```python
import boto3
s3 = boto3.client('s3',
aws_access_key_id='AKIAEXAMPLE',
aws_secret_access_key='secretkey')
# 上传文件并设置ACL
s3.upload_file('local_file.txt', 'my-unique-bucket',
'remote_file.txt',
ExtraArgs={'ACL': 'private'})
```
关键参数:存储类(StorageClass)支持STANDARD/GLACIER等6种类型
S3的数据持久性达到99.999999999%(11个9),年故障率仅0.0000001%。建议启用版本控制(Versioning)和跨区域复制(CRR)以提升数据可靠性。
### 3.2 访问控制与生命周期管理
使用Bucket Policy实现精细化权限控制:
```json
{
"Version": "2012-10-17",
"Statement": [{
"Effect": "Allow",
"Principal": {"AWS": "arn:aws:iam::123456789012:user/Alice"},
"Action": ["s3:GetObject"],
"Resource": "arn:aws:s3:::my-bucket/*"
}]
}
```
策略说明:仅允许指定IAM用户读取存储桶对象
配置生命周期规则自动转换存储类别,可降低40%-60%的存储成本。例如将30天前的日志文件转为STANDARD_IA(低频访问)类。
## 四、RDS关系型数据库服务
### 4.1 数据库实例创建与优化
创建MySQL数据库实例时,需重点配置以下参数:
```terraform
resource "aws_db_instance" "main_db" {
allocated_storage = 20
engine = "mysql"
instance_class = "db.t3.micro"
username = "admin"
password = "securepassword123"
parameter_group_name = "default.mysql8.0"
skip_final_snapshot = true
}
```
注意:生产环境必须设置备份保留期和故障转移副本
AWS提供包括Aurora、PostgreSQL等6种数据库引擎。通过多可用区部署(Multi-AZ)可将故障恢复时间从数小时缩短至1-2分钟。
### 4.2 数据库连接与性能监控
典型JDBC连接字符串配置:
```
jdbc:mysql://main-db.123456789012.us-east-1.rds.amazonaws.com:3306/mydb
```
建议启用Enhanced Monitoring功能,以1秒粒度监控数据库负载。通过Performance Insights可识别TOP SQL查询,优化后通常能提升30%以上的执行效率。
## 五、综合架构实践案例
### 5.1 三服务联动部署方案
构建典型Web应用架构:
1. EC2运行业务应用代码
2. S3存储静态资源和日志文件
3. RDS支撑结构化数据存储
架构流量路径:
用户请求 → ELB → EC2 → RDS读写 → S3资源加载
### 5.2 自动化部署示例
使用CloudFormation模板一键部署环境:
```yaml
Resources:
WebServer:
Type: AWS::EC2::Instance
Properties:
ImageId: ami-0abcdef1234567890
InstanceType: t3.micro
AppDatabase:
Type: AWS::RDS::DBInstance
Properties:
Engine: MySQL
DBInstanceClass: db.t3.small
UserUploadsBucket:
Type: AWS::S3::Bucket
Properties:
AccessControl: Private
```
该模板创建了包含三个核心服务的完整环境
## 六、成本优化与安全实践
- 使用EC2 Spot实例可节省最高90%的计算成本
- S3 Intelligent-Tiering自动优化存储费用
- 启用RDS自动备份和加密存储
- 通过IAM角色实现最小权限访问
技术标签:AWS, EC2, S3, RDS, 云计算, 基础架构, Terraform, 云安全