跳到主要内容

云计算速查表

本章汇总云计算常用术语、命令和最佳实践,方便快速查阅。

云计算基础术语​

术语英文解释
云计算Cloud Computing通过互联网按需提供计算资源的模式
公有云Public Cloud由云服务商运营,多用户共享的云平台
私有云Private Cloud专为单个组织构建的云平台
混合云Hybrid Cloud公有云和私有云的结合
多云Multi-Cloud同时使用多个云服务商的服务
IaaSInfrastructure as a Service基础设施即服务
PaaSPlatform as a Service平台即服务
SaaSSoftware as a Service软件即服务
FaaSFunction as a Service函数即服务
VPCVirtual Private Cloud虚拟私有云
弹性伸缩Auto Scaling根据负载自动调整资源
高可用High Availability系统持续可用的能力
云原生Cloud Native充分利用云计算优势构建应用的方法
容器Container轻量级虚拟化技术,封装应用及其依赖
微服务Microservices将应用拆分为独立小服务的架构模式
IaCInfrastructure as Code用代码管理基础设施
DevOpsDevelopment & Operations开发运维一体化实践
CI/CDContinuous Integration/Delivery持续集成和持续交付
零信任Zero Trust永不信任,始终验证的安全理念

云原生核心概念​

概念解释
PodKubernetes最小部署单元,包含一个或多个容器
Deployment管理Pod副本数量和更新策略的控制器
Service为Pod提供稳定访问入口的抽象
ConfigMap存储配置数据的资源
Secret存储敏感信息的资源
Namespace资源隔离的机制
HelmKubernetes包管理工具
Istio服务网格实现,管理服务间通信

云服务商对照表​

计算服务​

服务类型AWSAzureGCP阿里云
虚拟机EC2Virtual MachinesCompute EngineECS
容器服务ECS/EKSAKSGKEACK
无服务器LambdaFunctionsCloud Functions函数计算
批处理BatchBatchBatch批量计算

存储服务​

服务类型AWSAzureGCP阿里云
对象存储S3Blob StorageCloud StorageOSS
块存储EBSDisk StoragePersistent Disk云盘
文件存储EFSFilesFilestoreNAS
归档存储GlacierArchive StorageArchive Storage归档存储

数据库服务​

服务类型AWSAzureGCP阿里云
关系型数据库RDS/AuroraSQL DatabaseCloud SQLRDS
NoSQL数据库DynamoDBCosmos DBFirestore表格存储
缓存ElastiCacheRedis CacheMemorystoreRedis
数据仓库RedshiftSynapseBigQueryMaxCompute

网络服务​

服务类型AWSAzureGCP阿里云
负载均衡ALB/NLBLoad BalancerCloud Load BalancingSLB
CDNCloudFrontCDNCloud CDNCDN
DNSRoute 53DNSCloud DNS云解析
专线Direct ConnectExpressRouteInterconnect物理专线

Kubernetes常用命令​

# 集群信息
kubectl cluster-info # 查看集群信息
kubectl get nodes # 查看节点状态
kubectl describe node <node-name> # 查看节点详情

# 资源查看
kubectl get pods # 查看Pod
kubectl get pods -o wide # 查看Pod详细信息
kubectl get deployments # 查看Deployment
kubectl get services # 查看Service
kubectl get all # 查看所有资源
kubectl get configmaps # 查看ConfigMap
kubectl get secrets # 查看Secret

# 详情和日志
kubectl describe pod <pod-name> # 查看Pod详情
kubectl logs <pod-name> # 查看Pod日志
kubectl logs -f <pod-name> # 实时查看日志
kubectl logs <pod-name> -c <container> # 多容器Pod指定容器

# 创建和更新
kubectl apply -f deployment.yaml # 应用配置文件
kubectl create deployment nginx --image=nginx # 创建Deployment
kubectl expose deployment nginx --port=80 --type=NodePort # 暴露服务

# 扩缩容
kubectl scale deployment web --replicas=5 # 扩容
kubectl autoscale deployment web --min=2 --max=10 --cpu-percent=80 # 自动伸缩

# 交互操作
kubectl exec -it <pod-name> -- /bin/bash # 进入容器
kubectl port-forward pod/<pod-name> 8080:80 # 端口转发
kubectl cp <pod-name>:/path/file ./local-file # 复制文件

# 删除资源
kubectl delete pod <pod-name> # 删除Pod
kubectl delete deployment <name> # 删除Deployment
kubectl delete -f deployment.yaml # 删除配置文件定义的资源

Terraform常用命令​

# 初始化
terraform init # 初始化工作目录
terraform init -upgrade # 升级Provider版本

# 验证和规划
terraform fmt # 格式化配置文件
terraform validate # 验证配置语法
terraform plan # 生成执行计划
terraform plan -out=tfplan # 保存计划到文件

# 应用变更
terraform apply # 应用变更(需确认)
terraform apply -auto-approve # 自动确认应用变更
terraform apply tfplan # 应用保存的计划文件

# 状态管理
terraform show # 查看当前状态
terraform state list # 列出所有资源
terraform state show <resource> # 查看特定资源状态
terraform import <resource> <id> # 导入已存在资源
terraform state rm <resource> # 从状态中移除资源

# 工作空间
terraform workspace list # 列出工作空间
terraform workspace new dev # 创建新工作空间
terraform workspace select dev # 切换工作空间

# 销毁
terraform destroy # 销毁所有资源
terraform destroy -target=<resource> # 销毁特定资源

# 输出
terraform output # 显示所有输出
terraform output <name> # 显示特定输出值

AWS CLI常用命令​

EC2​

# 列出实例
aws ec2 describe-instances

# 启动实例
aws ec2 start-instances --instance-ids i-12345678

# 停止实例
aws ec2 stop-instances --instance-ids i-12345678

# 创建实例
aws ec2 run-instances \
--image-id ami-12345678 \
--instance-type t3.micro \
--key-name my-key

# 创建安全组
aws ec2 create-security-group \
--group-name my-sg \
--description "My security group"

S3​

# 列出存储桶
aws s3 ls

# 创建存储桶
aws s3 mb s3://my-bucket

# 上传文件
aws s3 cp file.txt s3://my-bucket/

# 下载文件
aws s3 cp s3://my-bucket/file.txt ./

# 同步目录
aws s3 sync ./local s3://my-bucket/remote

# 删除存储桶
aws s3 rb s3://my-bucket --force

Lambda​

# 列出函数
aws lambda list-functions

# 创建函数
aws lambda create-function \
--function-name my-function \
--runtime python3.9 \
--handler index.handler \
--zip-file fileb://function.zip \
--role arn:aws:iam::123456789:role/lambda-role

# 调用函数
aws lambda invoke --function-name my-function output.json

# 更新函数代码
aws lambda update-function-code \
--function-name my-function \
--zip-file fileb://function.zip

RDS​

# 列出数据库实例
aws rds describe-db-instances

# 创建数据库实例
aws rds create-db-instance \
--db-instance-identifier my-db \
--db-instance-class db.t3.micro \
--engine mysql \
--master-username admin \
--master-user-password password

# 创建快照
aws rds create-db-snapshot \
--db-instance-identifier my-db \
--db-snapshot-identifier my-snapshot

云计算最佳实践速查​

安全最佳实践​

实践说明
最小权限原则只授予完成任务所需的最小权限
启用MFA为所有用户启用多因素认证
加密数据静态和传输中的数据都要加密
网络隔离使用VPC和安全组隔离资源
定期审计定期审查权限和配置

成本优化最佳实践​

实践说明
使用预留实例稳定负载使用预留实例节省成本
自动伸缩根据负载自动调整资源
清理未使用资源定期清理未使用的存储、实例等
选择合适存储层级根据访问频率选择存储层级
设置预算告警监控成本,及时发现异常

高可用最佳实践​

实践说明
多可用区部署在多个可用区部署应用
自动故障转移配置数据库和服务的自动故障转移
负载均衡使用负载均衡分发流量
健康检查配置健康检查及时发现故障
灾备方案制定灾备计划并定期演练

性能优化最佳实践​

实践说明
使用CDN加速静态内容分发
缓存热点数据使用Redis等缓存减少数据库访问
读写分离将读请求分发到只读副本
优化查询优化SQL查询和索引
资源监控监控资源使用,及时发现瓶颈

常用端口号​

服务端口说明
SSH22远程登录
HTTP80Web服务
HTTPS443安全Web服务
MySQL3306MySQL数据库
PostgreSQL5432PostgreSQL数据库
Redis6379Redis缓存
MongoDB27017MongoDB数据库

单位换算​

单位值
1 KB1024 Bytes
1 MB1024 KB
1 GB1024 MB
1 TB1024 GB
1 PB1024 TB

SLA可用性对照​

SLA年停机时间月停机时间
99%3.65天7.31小时
99.9%8.77小时43.83分钟
99.99%52.6分钟4.38分钟
99.999%5.26分钟26.3秒