跳到主要内容

云计算服务

计算服务对比

服务类型代表管理粒度适用场景
虚拟机EC2、ECSOS 级传统应用、数据库
容器服务EKS、ACK容器级微服务、CI/CD
Serverless 容器Fargate、ACI容器级(无节点)不想管节点
函数计算Lambda、FC函数级事件驱动、轻量 API

弹性伸缩(Auto Scaling)

ASG 配置(Terraform)

asg.tf
resource "aws_autoscaling_group" "web" {
name = "web-asg"
min_size = 2
max_size = 10
desired_capacity = 2
vpc_zone_identifier = aws_subnet.private[*].id
target_group_arns = [aws_lb_target_group.web.arn]

launch_template {
id = aws_launch_template.web.id
version = "$Latest"
}

tag {
key = "Name"
value = "web-asg"
propagate_at_launch = true
}
}

# 目标追踪策略:保持 CPU 50%
resource "aws_autoscaling_policy" "cpu" {
name = "cpu-target-tracking"
autoscaling_group_name = aws_autoscaling_group.web.name
policy_type = "TargetTrackingScaling"

target_tracking_configuration {
predefined_metric_specification {
predefined_metric_type = "ASGAverageCPUUtilization"
}
target_value = 50.0
}
}

Serverless(Lambda / 云函数)

lambda_function.py
import json
import boto3

def handler(event, context):
# 事件触发:API Gateway / S3 / SQS / 定时器
body = json.loads(event.get('body', '{}'))

# 处理业务逻辑
result = process_order(body)

return {
'statusCode': 200,
'body': json.dumps(result)
}

适用 vs 不适用

✅ 适用❌ 不适用
API 接口(低频)高并发长连接(WebSocket)
定时任务(Cron)需要持久化状态
事件处理(S3/SQS 触发)启动时间敏感(冷启动问题)
数据转换管道大内存 / 长时间计算

成本优化

策略说明节省
预留实例(RI)1-3 年承诺30-60%
Savings Plans承诺每小时消费额20-50%
Spot 实例竞价实例,可被回收60-90%
自动伸缩低峰期缩容按需
合适实例类型定期 right-sizing10-30%

常见面试问题

Q1: Serverless 的优缺点?

答案

优点:无需管理服务器、按用量计费、自动伸缩、免运维

缺点:冷启动延迟(首次调用 100ms-数秒)、执行时间限制(Lambda 15min)、调试困难、厂商锁定

Q2: 什么时候用 Spot 实例?

答案

Spot 实例便宜 60-90%,但会被随时回收(2 分钟通知)。适合:

  • 无状态服务:Web 服务配合 ASG,回收后自动补充
  • 批处理/大数据:Spark/Hadoop Worker 节点
  • CI/CD 构建:构建任务可重试

不适合:数据库(有状态)、单实例服务(无冗余)。

相关链接