专题总览
专题内容总览和系列博客目录
https://blog.csdn.net/weixin_40815218/article/details/135590291
辅助资料(PDF)
https://download.csdn.net/download/weixin_40815218/88741566
1. IAM 服务
IAM:Users & Groups
用户区别于创建 aws 账号时新建的根用户,代表在你的组织中的成员,他们可以根据不同角色被分组,但分组不是必要的,一个用户也可以在多个组中。
IAM 策略
格式说明和举例:
实际场景:
- 根用户在IAM管理界面删除一个admin组(有所有管理员策略)的用户x,然后尝试登录该用户x,发现提示权限不足。
- 给用户添加权限可以通过两种方式:
1)在admin组重新添加该用户x;
2)对用户直接附加指定策略(当前场景需要的策略是IAM ReadOnlyAccess);
IAM 密码策略
- 自动要求重置密码
- 禁止使用旧密码
- MFA
用户访问AWS
- aws management console (ui)
- aws cli (command, 基于python版本的aws sdk实现)
- aws sdk (code)
AWS CLI
https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html
brew install awscli
aws --version
aws configure
aws iam list-users
AWS CloudShell
AWS Roles
Create Role:
- Select trust entity
- Trusted entity type (AWS Service …)
- Use case (EC2、Lambda …)
- Add Permissions
- Name, review and create
IAM Security Tools
- IAM Credentials Report (account level)
- IAM Access Advisor (user level)
2. EC2 服务 (Elastic Compute Cloud)
- 账户计费设置
- 创建预算检测
EC2 基础
Amazon EC2 服务主要包含以下能力:
- Renting virtual machines (EC2)
- Storing data on virtual drives (EBS)
- Distribute load across machines (ELB)
- Scaling the services using an auto-scaling group (ASG)
实例和 AMI
Amazon Machine Image (AMI) 是一种包含软件配置 (例如,操作系统、应用程序服务器和应用程序) 的模板。通过 AMI,您可以启动_实例_,实例是作为云中虚拟服务器运行的 AMI 的副本。您可以启动多个 AMI 实例,如下图所示。
实例的存储
实例的根设备包含用于启动实例的映像。根设备卷是一个** Amazon Elastic Block Store (EBS) 卷或是实例存储卷**。有关更多信息,请参阅Amazon EC2 实例根设备卷。
实例可能包括本地存储卷 (称为实例存储卷),这些卷最好用于临时数据。
为保证重要数据的安全,应该对多个实例使用复制策略,或将持久性数据存储在 S3 或 EBS 卷中。
安全最佳实践
- 使用 IAM 控制对 AW资源的访问。
- 通过仅允许受信任主机或网络访问实例的端口来限制访问(安全组)。
- 定期审查安全组中的规则,并确保应用 _**最小权限 **_原则 — 即仅开启您需要的权限。可以创建不同的安全组来处理具有不同安全要求的实例。也可以考虑创建一个可允许外部登录的堡垒安全组。
- 对于从 AMI 启用的实例,禁用基于密码的登录。
EC2 实例类型
- 通用实例 —— 提供计算、内存和联网资源三方面的平衡,可用于各种不同的工作负载。这些实例非常适合于以相同比例使用这些资源的应用程序,如 Web 服务器和代码存储库。
- 计算优化型实例 —— 非常适用于从高性能处理器获取的受计算限制的应用程序。 属于此类别的实例非常适用于批处理工作负载、媒体转码、高性能 Web 服务器、高性能计算 (HPC)、科学建模、专用游戏服务器和广告服务器引擎、机器学习推理和其他计算密集型应用程序。
- 加速计算实例 —— 使用硬件加速器或协同处理器来执行浮点数计算、图形处理或数据模式匹配等功能,比使用在 CPU 上运行的软件更高效。
- 存储优化型实例 —— 旨在用于需要对本地存储上的大型数据集进行高速连续读写访问的工作负载。它们经过了优化,每秒可以向应用程序交付数以万计的低延迟、随机 I/O 操作 (IOPS)。
- 高性能计算(HPC)实例 —— 专为在 AWS 上大规模运行 HPC 工作负载提供最佳性价比而构建。HPC 实例特别适用于从高性能处理器(如大型复杂模拟和深度学习工作负载)中受益的应用程序。
实例特征
- 具爆发能力的实例(T.x)
- 多存储选项(EBS、实力存储、S3)
- EBS 优化实例
- 群集联网
- Intel 处理器功能
创建免费的 EC2 实例
展开高级选项,在 EC2 User Data 填写以下脚本:
#!/bin/bash
# Use this for your user data (script from top to bottom)
# install httpd (Linux 2 version)
yum update -y
yum install -y httpd
systemctl start httpd
systemctl enable httpd
echo "<h1>Hello World from $(hostname -f)</h1>" > /var/www/html/index.html
EC2 和 IAM
IAM 允许您执行以下操作:
- 在 AWS 账户 下创建用户和组
- 为 AWS 账户 下的每个用户分配唯一的安全凭证
- 控制每个用户使用 AWS 资源执行任务的权限
- 允许另一 AWS 账户 中的用户共享 AWS 资源
- 为 AWS 账户 创建角色并定义可以担任这些角色的用户或服务
- 借助企业的现有身份,授予使用 AWS 资源执行任务的权限
Security Group
AWS的云安全性的优先级最高。安全性是 AWS 和您的共同责任。责任共担模式将其描述为云的安全性和云中的安全性。
- 安全组是 AWS 中网络安全的基础。
- 它们控制如何允许流量进出 EC2 实例。
- 安全组只包含规则。安全组规则可以通过IP或安全组引用。
安全组起着防火墙的作用,可用于控制允许达到一个或多个实例的流量。具体规定以下几点:
- 访问端口
- 授权的 IP 范围 – IPv4 和 IPv6
- 入站网络控制(从其他到实例)
- 出站网络控制(从实例到其他)
Good To Know
- 可以附加到多个实例
- 通常绑定一个 region 或 VPC 组合
- 存在于 EC2“外部”—— EC2 实例感知不到被阻止的访问流量
- 最好为 SSH 访问维护一个单独的安全组
- 如果应用程序不可访问(超时),则为安全组问题;如果应用程序出现“连接被拒绝”错误,就可能是应用程序错误或未启动
- 默认情况下阻止所有入站流量,授权所有出站流量
常用协议端口
端口 | 协议 | 描述 |
---|---|---|
22 | SSH(安全 Shell) | 登录到 Linux 实例 |
21 | FTP(文件传输协议) | 将文件上传到文件共享 |
22 | SFTP(安全文件传输协议) | 使用 SSH 上传文件 |
80 | HTTP – 不安全网站访问 | |
443 | HTTPS – 安全网站访问 | |
3389 | RDP(远程桌面协议) | 登录 Windows 实例 |
EC2 instance 远程连接方式:
SSH 或 Putty 或 EC2 Instance Connect
SSH 连接到 EC2 实例
前提:本地配置好了openssh 配置文件 ~/.ssh/config
- 首先下载对应 ec2 实例的 pem 文件到本地
- 修改文件访问权限
chmod 400 xxx.pem
- 然后获取 ec2 实例的公网 IP
- 确认 ec2 实例的安全组是否开放了22端口的入站规则
- 然后在本地 shell 窗口输入:
ssh -i /path/xxx.pem ec2-user@public-ip
EC2 Instance Connect
在浏览器中连接到您的 EC2 实例
- 临时密钥由 AWS 上传到 EC2(无需下载密钥文件)
- 仅适用于开箱即用的Amazon Linux 2
- 也需要确保 22 端口处于打开状态
EC2 实例购买选项
- 按需型实例(On-Demand) – 工作负载短、定价可预测、按秒付费
- 预留实例(Reserved Instances)(1 年 和 3 年)
- 预留实例——长时间工作负载
- 可转换预留实例——具有灵活实例的长期工作负载
- Savings Plans(1 年 和 3 年)——承诺一定的使用量,长期工作负载
- 竞价型实例(Spot Instances)——短期工作负载,便宜,可能会丢失实例(不太可靠)
- 专用主机(Dedicated Hosts)——预订整个物理服务器,控制实例放置
- 专用实例(Dedicated Instances)——其他客户不会共享您的硬件
- 按需容量预留实例(On-Demand Capacity Reservations)——在特定可用区中保留任何时间的容量
按需型实例
- 按使用付费:
- Linux 或 Windows - 在第一分钟后按秒计费
- 所有其他操作系统 - 按小时计费
- 成本最高但没有预付款
- 无长期承诺
- 推荐用于短期和不间断的工作负载,在这些工作负载中您无法预测应用程序的行为方式
预留实例
- 与按需相比最高可享受 72% 的折扣
- 保留特定的实例属性(实例类型、地区、租期、操作系统)
- 保留期 – 1 年(+折扣)或 3 年(+++更多折扣)
- 支付选项 – 无预付 (+)、部分预付 (++)、全部预付 (+++)
- 预留实例的范围 – 区域或分区(可用区中的预留容量)
- 推荐用于稳态使用应用程序(思考数据库)
- 可以在预留实例市场买卖
- 可转换预留实例
- 可以更改 EC2 实例类型、实例系列、操作系统、范围和租赁
- 高达 66% 的折扣
Savings Plans
- 根据长期使用情况获得折扣(高达 72% - 与 RI 相同)
- 承诺使用某种类型的产品(1 年或 3 年 10 美元/小时)
- 超出 EC2 Savings Plans 的使用按按需价格计费
- 锁定到特定实例系列和 AWS 区域(例如 us-east-1 中的 M5)
- 灵活:
- 实例大小(例如 m5.xlarge、m5.2xlarge)
- 操作系统(例如 Linux、Windows)
- 租赁(主机、专用、默认)
竞价型实例
- 与按需相比,可以获得高达 90% 的折扣
- 如果最高价格低于当前现货价格,您随时可能“失去”的实例
- AWS 中最具成本效益的实例
- 适用于对故障具有弹性的工作负载
- 批处理作业
- 数据分析
- 图像处理
- 任何分布式工作负载
- 具有灵活开始和结束时间的工作负载
- 不适合关键工作或数据库
Spot 实例请求
- 与按需相比,可以获得高达 90% 的折扣
- 定义最高竞价价格并在当前竞价 < 最高时获取实例
- 每小时竞价价格因报价和容量而异
- 如果当前竞价价格> 您的最高价格,您可以选择以 2 分钟的宽限期停止或终止您的实例。
- 其他策略:Spot Block
- 在指定时间范围内(1 ~ 6 h)不间断地“阻止”实例竞价
- 在极少数情况下,实例可能会被回收
- 用于批处理作业、数据分析或对故障具有弹性的工作负载。
- 不适用于关键作业或数据库
终止实例请求
用户只能取消打开、活动或禁用的 Spot 实例请求。
取消 Spot 请求不会终止实例,必须先取消 Spot 请求,然后终止关联的 Spot 实例。
Spot 队列(Spot Fleets)
- Spot 队列 = 一组 Spot 实例 +(可选)按需实例
- Spot 队列将尝试在价格约束下满足目标容量
- 定义可能的启动池:实例类型 (m5.large)、操作系统、可用区
- 可以有多个 Launch 池,让队列可以选择
- Spot 队列在达到容量或最大成本时停止启动实例
- 分配 Spot 实例的策略:
- lowestPrice:来自价格最低的池(成本优化,工作量小)
- diversified(多元化):分布在所有池中(非常适合可用性、长期工作负载)
- capacityOptimized:具有针对实例数量的最佳容量的池
- Spot 队列使我们能够以最低价格自动请求 Spot 实例
专用主机
- 具有完全专供您使用的 EC2 实例容量的物理服务器
- 允许您满足合规性要求并使用现有的服务器绑定软件许可证(按插槽、按内核、pe-VM 软件许可证)
- 采购选项:
- 按需——为活跃的专用主机按秒付费
- 预留 - 1 年 或 3 年(无预付、部分预付、全部预付)
- 最昂贵的选择
- 适用于具有复杂许可模式的软件(BYOL – 自带许可)
- 或者对于具有强烈监管或合规需求的公司
专用实例
- 实例在专供您使用的硬件上运行
- 可以与同一帐户中的其他实例共享硬件
- 无法控制实例放置(可以在停止/启动后移动硬件)
容量预留
- 在任何持续时间内在特定 AZ 中预留按需实例容量
- 您始终可以在需要时访问 EC2 容量
- 无时间承诺(随时创建/取消),无计费折扣
- 结合区域预留实例和 Savings Plans 以享受账单折扣
- 无论您是否运行实例,您都将按按需费率付费
- 适用于需要在特定 AZ 中的短期、不间断工作负载
如何选择(举例)
按需:我们愿意随时入住度假村,我们支付全价
预留:喜欢提前计划,如果我们打算长期停留,我们可能会得到很好的折扣。
Savings Plans:在一定时期内每小时支付一定金额并入住任何房型(例如特大号床、套房、海景……)
Spot 竞价型实例:酒店允许人们竞标空房间,出价最高的人保留房间。您随时可能被踢出
专用主机:预订整栋度假村
容量预留:全价预订一段时间的房间,即使您不住在里面
EC2 总结
- EC2 实例:AMI (OS) + 实例大小(CPU + RAM)+ 存储 + 安全组 + EC2 用户数据
- 安全组:附加到 EC2 实例的防火墙
- EC2 用户数据:实例首次启动时启动的脚本
- SSH:启动终端进入我们的 EC2 实例(端口 22)
- EC2 实例角色:链接到 IAM 角色
- 购买选项:按需、竞价、预留(标准+可转换+计划)、专用主机、专用实例