Amazon Web Services

AWS SAA C02考点梳理

安全组(Security Group)和网络访问控制列表(Network Access Control List)都扮演了类似的防火墙功能。


  • 安全组(Security Group)
  1. 在安全组内只能设置允许的条目,不能设置拒绝的条目
  2. 安全组会关联到EC2实例的ENI(网络接口)上
  3. 你不能使用安全组来禁止某些特定的IP地址访问主机,要达到这个效果需要使用网络访问控制列表(NACL)
  4. 安全组会跟踪ICMP流量,因为无论规则如何,安全组都会跟踪ICMP流量
  • AWS 网络ACL(Network Access Control List)
  1. 网络ACL 没有任何状态.
  2. 网络ACL 是在子网级别运行的.而安全组在实例级别运行.
  3. VPC中每个子网都必须与一个网络ACL 关联 .
  4. 默认网络ACL的内容允许所有的入站和出站流量.
  5. 你可以创建自定义网络ACL 并且将其与子网关联. 默认情况下 ,每个自定义的网络ACL 都拒绝所有的入站和出站流量.直至你添加规则.
  6. 安全组是有状态的,返回的数据流会被自动允许;而网络ACL是无状态的,返回数据流必须被规则明确允许,就是说使用网络ACL配置了允许进站的规则必须要有相应允许出站的规则。
  7. 规则判断的区别,安全组会在决定是否允许数据流前评估所有规则;网络ACL会按照规则的数字,顺序处理所有规则.

AWS存储


  • Amazon Elastic Block Store(EBS)
  1. 亚马逊EBS卷提供了高可用、可靠、持续性的块存储,EBS可以依附到一个正在运行的EC2实例上,不能将EBS挂载到多个EC2实例上,一个EBS只能挂载到1个EC2实例上.
  2. 如果你的EC2实例需要使用数据库或者文件系统,那么建议使用EBS作为首选的存储设备
  3. EBS卷的存活可以脱离EC2实例的存活状态。也就是说在终止一个实例的时候,你可以选择保留该实例所绑定的EBS卷
  4. EBS卷可以依附到同一个可用区(AZ)内的任何实例上
  5. EBS卷可以被加密,如果进行了加密那么它存有的所有已有数据,传输的数据,以及制造的镜像都会被加密
  6. EBS卷可以通过快照(Snapshot)来进行(增量)备份,这个快照会保存在S3 (Simple Storage System)上
  7. 你可以使用任何快照来创建一个基于该快照的EBS卷,并且随时将这个EBS卷应用到该区域的任何实例上
  8. EBS卷创建的时候已经固定了可用区,并且只能给该可用区的实例使用。如果需要在其他可用区使用该EBS,那么可以创建快照,并且使用该快照创建一个在其他可用区的新的EBS卷
    9.快照还可以复制到其他的AWS区域
  9. EBS的不同类型,需要了解不同类型的EBS主要的使用场景
  • 通用型SSD – GP2 (高达10,000 IOPS),适用于启动盘,低延迟的应用程序等
  • 预配置型SSD – IO1 (超过10,000 IOPS),适用于IO密集型的数据库
  • 吞吐量优化型HDD -ST1,适用于数据仓库,日志处理
  • HDD Cold – SC1 – 适合较少使用的冷数据
  1. 根EBS卷默认是不能进行加密的,但可以使用第三方的加密工具(例如BitLocker)对其进行加密,除了根磁盘外的其他卷是可以加密的
  • 实例存储Amazon EC2 Instance Store
  1. 实例存储为EC2实例提供了短暂的块存储设备
  2. 实例存储(Instance Store Volumes)又叫做短暂型存储(Ephemeral Storage)
  3. 实例存储是AWS的宿主机上依附的存储(可以理解为实例存储是真实的物理机上安装的磁盘,而EBS则是专门的另外的存储设备)
  4. 实例存储比较适合存放短暂型、变化很快的数据,比方说缓存、爬虫数据和其他短暂的数据
  5. 实例存储的大小取决于实例的类型
  6. 实例存储的存活与否与实例的状态有关系,实例重启,实例存储的数据将不受影响,一旦实例终止,实例存储将永久消失
  7. 实例存储的实例不能进入停止状态(Stop),只能重启(Reboot)或者终止(Terminate)。
  8. 另外,需要注意的是,并不是所有的实例类型都支持实例存储。在创建实例的时候,你可以在AWS市场上选择支持实例存储的镜像,然后在下一步你只能选择某些特定的实例类型大小;而对于EBS来说,没有那么多限制,你可以选择任意的实例类型大小。
  • EFS (Elastic File System)
  1. Amazon EFS可以简单地理解为是共享盘或NAS存储。
  2. 支持Network File System version 4 (NFSv4)协议
  3. EFS是Block Base Storage,而不是Object Base Storage(例如S3)
  4. 使用EFS,你只需要为你使用的存储空间付费,没有预支费用
  5. 可以有高达PB级别的存储
  6. 同一时间能支持上千个NFS连接
  7. EFS的数据会存储在一个AWS区域的多个可用区内
  8. Read After Write Consistency
  9. Amazon EFS在Windows实例上不受支持基于 NFS4协议 不支持 SMB文件协议
  • Amazon Simple Storage Service (S3)
  1. S3是对象存储,可以在S3上存储各种类型的文件,它不是块存储(EBS是块存储)
  2. S3拥有99.99%(4个9)的可用性(Availability)
  3. S3拥有99.999999999%(11个9)的持久性(Durability)
  4. S3创建的时候可以选择某个AWS区域,一旦选择了就不能更改,如果要在其他区域使用该S3的内容,可以使用跨区域复制
  5. 使用访问控制列表(Access Control Lists)和桶策略(Bucket Policy)可以控制S3的访问安全
  6. 控制存储桶的权限可以使用访问控制列表(ACL)或者桶策略(Bucket Policy)
  7. 版本控制启动后可以使用MFA Delete功能,即在删除一个文件的时候需要另外提供Token信息(软Token或者硬件Token),以此增加文件的安全性,减少误删的概率
  • S3跨区域同步
  1. 启用S3跨区域复制首先需要在源S3存储桶和目标S3存储桶都开启S3版本控制功能
  2. 源S3存储桶和目标S3存储桶不能位于同一个区域
  3. 在开启跨区域复制前的已存在的文件不会被自动同步,开启跨区域复制之后,新增加的文件会被自动同步
  4. 跨区域复制不能叠加,意味着数据不可以从A同步到B,然后再同步到C
  5. 删除文件,文件的某一个版本或者删除删除标记(Delete Marker)是不会被同步的
  • S3加密选项
  1. 传输过程中的加密(In Transit): 使用SSL/TLS加密,即使用HTTPS而不是HTTP来传输从S3到客户端之间的数据。
  2. 使用客户端加密保护数据(Client Side Encryption): 在数据发送到Amazon S3之前使用客户端来对数据进行加密
  3. 使用服务器端加密保护数据(Server Side Encryption,SSE):即在Amazon S3将你的数据写入物理磁盘的时候加密这些数据,并在你需要访问这些数据的时候再对其进行解密
  • Amazon S3 托管密钥的服务器端加密 (SSE-S3) – 使用256位AES-256加密标准进行加密,并且主密钥会定期轮换
  • AWS KMS 托管密钥的服务器端加密 (SSE-KMS) – 使用AWS提供的密钥管理系统,有更多的密钥管理能力
  • 服务器端加密与客户提供的密钥一起使用 (SSE-C) – 你来提供和管理加密密钥,S3负责加密和解密
  • S3 传输加速(Transfer Acceleration)

Amazon S3 Transfer Acceleration 可在客户与 S3 存储桶之间实现快速、轻松、安全的远距离文件传输。Transfer Acceleration 利用 Amazon CloudFront 的全球分布式边缘站点。当数据到达某个边缘站点时,会被经过优化的网络路径路由至 Amazon S3。 在以下情形下你可能就需要考虑使用S3传输加速:

  1. 您位于全球各地的客户需要上传到集中式存储桶
  2. 您定期跨大洲传输数 GB 至数 TB 数据
  3. 您在上传到 Amazon S3 时未充分利用 Internet 上的可用带宽

Storage Gateway


AWS Storage Gateway 是一项混合云存储服务,可让您从本地访问几乎不受限制的云存储。客户使用 Storage Gateway 简化存储管理,降低关键混合云存储用例的成本。 其中包括将备份和存档移动到云、使用云存储支持的本地文件共享,以及为本地应用程序提供对 AWS 中数据的低延迟访问。
为了支持这些用例,该服务提供了三种不同类型的网关:磁带网关、文件网关和卷网关,这些网关将本地应用程序无缝连接到云存储,从而在本地缓冲数据以进行低延迟访问。
  • 文件网关(File Gateway)
  1. 您可以使用行业标准 NFS 和 SMB 文件协议连接直接访问存储在 Amazon S3 或者 Amazon Glacier上的文件 ,并且本地进行缓存 网络中传输的是文件内容 . 您可以将文件网关视为 S3 上的文件系统挂载
  2. 不可以使用文件网关将文件写入 EFS
  3. 即使为存储桶配置 S3 Transfer Acceleration,文件网关也不会使用加速的终端节点。
  • Volume Gateway

使用 iSCSI 作为本地磁盘连接到本地服务器上,让本地服务器可以访问到 Amazon S3 内的文件,其中,Volume Gateway 又分为以下两种

  1. Stored Volumes:所有的数据都将保存到本地,但是会异步地将数据备份到AWS S3上
  2. Cached Volumes:所有的数据都会保存到S3,但是会将最经常访问的数据缓存到本地
  3. AWS Backup 支持缓存卷和存储卷的备份与还原。将 AWS Backup 与卷网关配合使用,您可以集中管理备份、减轻运营负担并满足合规要求
  • Tape Gateway
用来取代传统的磁带备份,通过 Tape Gateway 可以使用NetBackup,Backup Exec或Veeam 等备份软件将文件备份到 Amazon S3 或者 Amazon Glacier .磁带网关使用存储行业标准 iSCSI 协议向备份应用程序提供了一个虚拟磁带库 (VTL),iscsi的block级的协议,网络中传输的是硬件操作命令iscsi适合io操作,比如在iscsi上安装游戏/应用程序,提升IO性能

AMI系统镜像和快照


  • Amazon Machine Image (AMI) 亚马逊AWS提供的系统镜像 考点:
  1. 由实例的操作系统、应用程序和应用程序相关的配置组成的模板
  2. 一个指定的需要在实例启动时附加到实例的卷的信息(比方说定义了使用8 GB的General Purpose SSD卷)
  3. 你可以创建并注册一个AMI,并且可以使用这个AMI来创建一个EC2实例。同时你也可以将这个AMI复制到同一个AWS区域或者不同的AWS区域。你同样也可以注销这个AMI镜像。
  • EBS快照(Snapshot)
  1. 备份的快照将会保存在亚马逊S3 (Simple Storage System)上
  2. EBS快照属于增量备份,即第二次之后的快照只会更新变化了的那一部分数据
  3. 你可以在EC2实例运行的状态下进行EBS的快照操作,但会给EC2的系统带来一定延迟(CPU,内存利用率会变高)
  4. 最佳实践是将EC2实例停止,然后将EBS从EC2上卸载下来,进行快照操作
  5. 你可以基于EBS快照在同一个AWS区域创建新的EBS卷,这个卷可以是任何EBS类型,任何支持的大小
  6. 你也可以将快照复制到其他AWS区域
  7. 你可以将快照共享给其他的AWS用户
  8. 加密的EBS卷在创建快照后,该快照也会被自动加密
  9. 通过加密快照创建的EBS也是自动加密的
  10. 在复制未加密的快照时,你可以在复制过程中对其加密

负载均衡器


  • 传统负载均衡器(Classic Load Balancer)
  1. ELB是最终用户的唯一接触点
  2. 但ELB的弹性不是立马生效的,扩容的过程需要一定的时间(1到7分钟)
  3. 如果有可预料的爆发性流量要发生,AWS可以对该ELB进行预热(pre-warm)从而提前达到能处理这些流量的性能大小.
  4. ELB是阻挡来自网络攻击的第一道防线(比如DDoS攻击)
  5. 能和AWS弹性伸缩(Auto Scaling)集成,从而能保证后台运行的EC2实例能满足流量的需求
  6. ELB只在一个特定的AWS区域中工作,不能跨区域(Region),但可以跨可用区(AZs)
  7. ELB会以DNS (Domain Name System)的形式显示在AWS管理控制台
  8. 内部负载均衡器:典型的使用案例是放置在前端服务器和后端服务器之间
  • 应用程序负载均衡器()Application Load Balancer)
  1. ALB支持通过IP地址进行目标注册,包括位于VPC之外的目标。即可以在一个ALB中定义4个AWS中的EC2实例,同时定义2个来自公司内网的物理服务器
  2. 支持容器化的应用程序
  • 网络负载均衡器(Network Load Balancer)

网络负载均衡器,简称其为NLB,在 OSI模型的第四层. 运行于请求路径路由功能,以及基于HTTP标头路由等等这些7层的功能,NLB是无法做到的

  1. 只支持传输层协议 TCP UDP 意思TLS
  2. 使用 流哈希算法 选择目标
  3. 通过 源端口和序列号 路由到不同目标
  4. 每个单独的TCP 有效期内只会路由到单个目标
  5. 能够处理 突发和不稳定 的流量模式,处理极具波动的工作负载,可扩展到每秒处理上百万个请求
  6. 支持将静态IP地址 用于负载,还可以为负载均衡器启用的每个子网分配一个弹性IP地址.

EC2


  • 弹性伸缩组(Auto Scaling Group)
  1. 弹性伸缩组(ASG)只能在某一个AWS区域内运行,不能跨越多个区域.但可以多个可用区
  • AWS 置放群组
  1. Cluster(集群): 单个可用区内启动物理上彼此接近的每个关联实例 “集群置放群组”,最适用于HPC 应用程序通常使用的紧密耦合的节点到节点通信的要求。如果大部分网络流量在组中的实例之间进行,也建议使用“集群置放群组”。**最后要注意,AWS认证考试经常会出现的考点,一个集群置放群组不能跨过多个可用区。Placement Group可以跨越peerd VPC,但要保证在同一个可用区内.
  2. Spread 组 在硬件之间物理分离实例,以降低故障 .分布置放群组可以跨越同一区域中的多个可用区,每个群组在每个可用区中最多有 7 个正在运行的实例。
  3. partiton(分区):分区策略通常为大型分布式和重复的工作负载所使用,例如,Hadoop、Cassandra 和 Kafka。分区置放群组可以在同一区域的多个可用区中具有分区。对于每个可用区,一个分区置放群组最多可具有 7 个分区。
  • Bootstrap开机脚本
在你启动一个Amazon EC2实例的时候,你可以选择在实例启动的时候运行你预先设定的Bootstrap脚本。该脚本可以是一段代码、文件或者base64的编码。
  • Elastic Beanstalk
使用者只需要上传应用程序,Elastic Beanstalk 将自动处理容量预配置、负载均衡、Auto Scaling 和应用程序运行状况监控的部署细节

数据传输


  • AWS Snowball

通过使用 Snowball 服务,你可以将 PB 级别的分析数据、基因组数据、视频库等数据简单地、快速地、安全地传送到 AWS 的数据中心去,并且花费低至使用高速互联网的五分之一。

  1. 可以在本地数据中心和 Amazon S3 之间进行数据的导入和导出
  2. 支持 50TB 的容量版本以及 80TB 的容量版本,可以同时使用多个 Snowball 并行传输数据。
  3. 外设使用了防篡改外壳,支持 AES-256 加密和行业标准的可信平台模块 (TP
  • Snowball Edge

Snowball Edge 实际上和标准版的 Snowball 很类似,只是它还另外提供了计算的功能。它除了能提供 100TB 的数据传输能力外,还有 AWS Lambda 的计算能力。

  1. 支持 100 TB 的存储容量,是原始 Snowball 的两倍
  2. 能编写 Lambda 函数并在创建 Snowball Edge 设备任务的时候将其与 S3 存储桶关联起来
  • Snowball Mobile
AWS Snowmobile 是一种用于将海量数据移动到 AWS 中的 EB 级数据传输服务。

Amazon Virtual Private Cloud (Amazon VPC)


  • VPC
  1. 可以创建Internet Gateway并且绑定到VPC上,让EC2实例可以访问互联网
  2. 一个VPC可以跨越多个可用区(AZ),一个子网只能在一个可用区(AZ)内
  3. VPC的子网掩码范围是从/28到/16,不能设置在这个范围外的子网掩码
  4. VPC可以通过Virtual Private Gateway (VGW) 来与企业本地的数据中心相连
  5. VPC可以通过AWS PrivateLink访问其他AWS账户托管的服务(VPC终端节点服务)
  6. 每个子网 CIDR 块中的前四个 IP 地址和最后一个 IP 地址无法供您使用,而且无法分配到一个实例。
  • VPC Peering

VPC Peering可是两个VPC之间的网络连接,通过此连接,你可以使用IPv4地址在两个VPC之间传输流量。这两个VPC内的实例会和如果在同一个网络一样彼此通信。

  1. 可以通过AWS内网将一个VPC与另一个VPC相连
  2. 同一个AWS账号内的2个VPC可以进行VPC Peering
  3. 不同AWS账号内的VPC也可以进行VPC Peering
  4. 不支持VPC Transitive Peering : 如果VPC A和VPC B做了Peering , 而且VPC B和VPC C做了Peering, 那么VPC A是不能和VPC C进行通信的,要通信,只能将VPC A和VPC C进行Peering.
  5. 如果两个VPC出现了地址覆盖/重复,那么这两个VPC不能做Peering
  6. 如果只需要精确控制两个vpc中的两个子网联通怎么办?借用NACL/路由表
  • VPC流日志(Flow Logs)
  • Flow logs可以在以下级别创建:
  1. VPC级别
  2. 子网级别
  3. 网络接口级别
  • VPC终端节点(VPC Endpoints)

VPC终端节点能建立VPC和一些AWS服务之间的高速、私密的“专线”。这个专线叫做PrivateLink,使用了这个技术,你无需再使用Internet网关、NAT网关、VPN或AWS Direct Connect连接就可以访问到一些AWS资源了!

  1. 接口终端节点 interface VPC endpoints :
  • 供一个弹性网络接口ENI,ENI会被分配一个所属子网的私有 IP 地址. 当创建访问EC2服务的接口终端节点后,会生成3个DNS域名。
  • 前面这两个VPCE开头的DNS名称,会解析为这个创建的接口终端节点的私有IP,可以通过这两个DNS,通过私有网络访问EC2服务。
    重点是最后这个EC2开头的DNS名称,这个是我测试的区域调用EC2服务API的公有DNS,在没使用终端节点时,都是使用这个公有的DNS名称与EC2服务通信。但注意如果您勾选启用了私有DNS名称,这个公有DNS将会解析为您创建的终端节点的私有IP地址,这样的话您可以继续使用这个DNS通过终端节点访问EC2服务。
  1. 网关终端节点 geteway VPC endpoints
  • 只支持S3和DynamoDB服务
  • 需要更新路由表,在其中创建到AWS服务的路由
  • 网关终端节点在VPC级别定义
  • 必须在VPC中启动DNS 解析
  • 无法将终端节点扩展到VPC之外(VPN 连接、VPC 对等连接、transit gateway、AWS Direct Connect )
  • Direct Connect线路

AWS Direct Connect线路可以让你通过以太网光纤线路连接你的内部网络与AWS Direct Connect Location,可以打通你的内部网络与AWS的网络,从而拥有高速率、低延迟,安全、可靠的专线网络。

  • AWS提供的Direct Connect的带宽是1Gbps或者是10Gbps
  • 少于1Gbps速率的Direct Connect线路可以向AWS Direct Connect合作伙伴申请,可以申请50Mbps到500Mbps的线路
  • Direct Connect的数据包使用802.1Q协议进行封装(Q-in-Q tagging)
  • VPN连接和Direct Connect的区别
  1. VPN连接可以在数分钟之内就搭建成功。如果有紧急的业务需求,可以使用VPN连接。VPN连接是基于互联网线路的,因此带宽不高,稳定性也不好,但价格便宜
  2. AWS Direct Connect使用的是专线,你的数据不会跑在互联网上,是私有的、安全的网络

NAT


  • NAT实例(NAT Instance)
  • 创建NAT实例之后,一定要关闭源/目标检查(Source/Destination Check)
  • NAT实例需要创建在公有子网内
  • 私有子网需要创建一条默认路由(0.0.0.0/0),指到NAT实例
  • NAT实例的瓶颈在于实例的大小,如果遇到了网络吞吐瓶颈,你可以加大实例类型
  • 需要自己创建弹性伸缩组(Auto Scaling Group),自定义脚本来达到NAT实例的高可用(比如部署在多个可用区)
  • 需要关联一个安全组(Security Group)
  • NAT网关(NAT Gateway)
  • 网络吞吐可以达到10Gbps
  • 不需要为NAT的操作系统和程序打补丁
  • 不需要关联安全组
  • 自动分配一个公网IP地址(EIP)
  • 私有子网需要创建一条默认路由(0.0.0.0/0)到NAT网关
  • 不需要更改源/目标检查(Source/Destination Check)
  • 堡垒机(Bastion Host)又叫做跳板机(Jump Box)
主要用于运维人员远程登陆服务器的集中管理。运维人员首先登陆到这台堡垒机(公网),然后再通过堡垒机管理位于内网的所有服务器。

Route53


  • 其他知识点
  • 弹性负载均衡器(ELB)没有固定的IPv4地址,在使用ELB的时候永远使用它的DNS名字。很多场景下我们需要绑定DNS记录到ELB的endpoint地址,而不绑定任何IP
  • 需要熟记Alias记录和CNAME的区别,别名记录只能将查询重定向到选定的 AWS 资源
  • 考试中,如果出现选择Alias记录和CNAME记录的选择,95%的情况都要选择Alias记录

数据库


  • RDS
  • 关系型数据库 SQL Server,Oracle,MySQL Server,PostgreSQL,Aurora,MariaDB等 适合联机事务处理OLTP(Online Transaction Processing)
  • 现在AWS RDS的所有关系数据库都支持加密。一旦启用了加密的功能,所有数据的存储都将会被加密,包括数据库本身、自动备份、快照和只读副本(read replicas)。
    如果在创建数据库的时候没有加密,我们不能在事后对其进行加密,但我们可以创建这个数据库的快照,复制该快照并且加密这个复制的版本
  • 高可用的设置只是用来解决灾备的问题,并不能解决读取性能的问题;要提升数据库读取性能,我们需要用到Read Replicas。
  1. Read Replicas是用来提高读取性能的,不是用来做灾备的
  2. 要创建Read Replicas需要源RDS实例开启了自动备份的功能
  3. 可以为数据库创建最多5个Read Replicas
  4. 可以为Read Replicas创建Read Replicas
  5. 每一个Read Replicas都有自己的URL Endpoint
  6. 可以为一个启用了Multi-AZ的数据库创建Read Replicas
  7. Read Replicas可以提升成为独立的数据库
  8. 可以创建位于另一个区域(Region)的Read Replicas
  • DynamoDB

DynamoDB是一种非关系数据库(NoSQL),可在任何规模提供可靠的性能。DynamoDB能在任何规模下实现不到10毫秒级的一致相应,并且它的存储空间无限

  • 使用SSD存储
  • 数据分散在3个不同地理位置的数据中心(并不是3个可用区)
  • 最终一致性读取(Eventual Consistent Reads):默认的设置,即如果写入数据到DynamoDB之后马上读取该数据,可能会读取到旧的信息,DynamoDB需要时间(一秒内)把写入的数据同步到3个不同地理位置的数据中心
  • 强一致性读取(Strongly Consistent Reads):在写入数据到DynamoDB之后马上读取该数据,会等所有写入操作以及数据同步全部完成后再回馈结果,即强一致性读取一定会读到最新的数据结果
  • 如果我们需要增加DynamoDB的规格,我们可以直接在AWS管理控制台上进行更改,并且不会有任何系统downtime
  • 除非您指定其他读取方式,否则 DynamoDB 将使用最终一致性读取。读取操作 (例如 GetItem,Query 和 Scan) 提供了一个 ConsistentRead 参数。如果您将此参数设置为 true,DynamoDB 将在操作过程中使用强一致性读取。
  • Redshift
  • 数据仓库 类似Greenplum, Hive: 适合 联机分析处理OLAP(Online Analytics Processing)
  • OLAP是数据仓库(Data Warehousing)系统的主要应用,支持复杂的分析操作,侧重决策支持,并且能提供直观易懂的查询结果。OLAP是用来做商业智能(Business Intelligence)方面的分析的。
  • 目前Redshift只能部署在一个可用区内,不能跨可用区或者用类似RDS的高可用配置, Redshift是用来产生报告和做商业分析的,并不需要像生产环境一样对可用性有高保证
  • 我们可以对Redshift做快照,并且在需要的时候恢复这个快照到另一个可用区
  • Redshift传输过程中使用SSL加密
  • Redshift使用AES-256进行加密
  • 默认情况下Redshift帮我们解决了秘钥管理的问题
  1. 我们也可以使用自己的秘钥
  2. 或者使用AWS Key Management Service (KMS)来管理秘钥
  • Elasticache
数据缓存 : Memcached,Redis
  • Aurora

Amazon Aurora是一种兼容MySQL和PostgreSQL的商用级别关系数据库,Aurora的速度可以达到MySQL数据库的5倍,同时它的成本只是商用数据库的1/10。

  1. Aurora会将你的数据复制2份到每一个可用区内,并且复制到最少3个可用区,因此你会有6份数据库备份,2份及以下的数据备份丢失,不影响Aurora的写入功能,3份及以下的数据备份丢失,不影响Aurora的读取功能
  2. Aurora有自动修复的功能,AWS会自动检查磁盘错误和数据块问题并且自动进行修复
  3. 有两种数据库只读副本
  • Aurora Replicas(最多支持15个)
  • MySQL Replica(最多支持5个)
  • 两者的区别是Aurora主数据库出现故障的时候,Aurora Replicas可以自动变成主数据库,而MySQL Replica不可以

消息


  • SQS (Simple Queue Service)

Amazon Simple Queue Service (SQS)是一种完全托管的消息队列服务,可以让你分离和扩展微服务、分布式系统和无服务应用程序。

  1. 标准队列(Standard Queue)
  • 标准队列拥有无限的吞吐量,所有消息都会至少传递一次,并且它会尽最大努力进行排序。
  1. FIFO队列
  • FIFO (First-in-first-out)队列在不使用批处理的情况下,最多支持300TPS(每秒300个发送、接受或删除操作)。
  • 在队列中的消息都只会不多不少地被处理一次。
  • FIFO队列严格保持消息的发送和接收顺序
    3.== SQS是靠应用程序去拉取的,而不能主动推送给应用程序==,推送服务我们使用SNS(Simple Notification Service)
  1. 消息会以256 KB的大小存放
  2. 消息会在队列中保存1分钟~14天,默认时间是4天
  3. 可见性超时(Visibility Timeout): 即当SQS队列收到新的消息并且被拉取走进行处理时,会触发Visibility Timeout的时间。这个消息不会被删除,而是会被设置为不可见,用来防止该消息在处理的过程中再一次被拉取
  4. 标准SQS队列保证了每一个在队列内的消息都至少会被处理一次
  5. 长轮询(Long Polling): 默认情况下,Amazon SQS使用短轮询(Short Polling),即应用程序每次去查询SQS队列,SQS都会做回应(哪怕队列一直是空的,使用了长轮训,应用程序每次去查询SQS队列,SQS队列不会马上做回应。而是等到队列里有消息可处理时,或者等到设定的超时时间再做出回应。长轮询可以一定程度减少SQS的花销
  • SNS (Simple Notification Service)

SNS (Simple Notification Service) 是一种完全托管的发布/订阅消息收发和移动通知服务,用于协调向订阅终端节点和客户端的消息分发。和SQS (Simple Queue Service)一样,SNS也可以轻松分离和扩展微服务,分布式系统和无服务应用程序,对程序进行解耦。

  • 我们可以使用SNS将消息推送到SQS消息队列中、AWS Lambda函数或者HTTP终端节点上。
  • SNS是实时的推送服务(Push),有别于SQS的拉取服务(Pull/Poll)
  • 拥有简单的API,可以和其他应用程序兼容
  • 可以通过多种不同的传输协议进行集成
  • 可以推送目标 HTTP,HTTPS,Email,Email-JSON,SQS,Application,Lambda
  • SWF (Simple Workflow Service)

Amazon Simple Workflow Service (Amazon SWF) 提供了给应用程序异步、分布式处理的流程工具。SWF可以用在媒体处理、网站应用程序后端、商业流程、数据分析和一系列定义好的任务上。
SWF除了支持顺序执行的流程之外,也支持并行处理的流程,即一个任务的完成可以触发多个任务同时执行。

  • SWF决策者和参与者可以是运行在AWS上的EC2实例或者其他计算资源,SWF只是保存不同的任务,把这些任务分配给worker,并且监控他们的任务处理进展。
  • SWF和SQS的区别
  • SWF是面向任务的;SQS是面向消息的
  • SWF保证了每一个任务都只执行一次而不会重复;标准的SQS消息可能会被处理多次
  • SWF保证了程序内所有任务都正常被处理,并且追踪工作流;而SQS只能在应用程序的层面追踪工作流
  • SWF内的任务最长可以保存1年;SQS内的消息最长只能保存14天
  • API Gateway

Amazon API Gateway可以让开发人员创建、发布、维护、监控和保护任何规模的API。你可以创建能够访问 AWS、其他 Web 服务以及存储在 AWS 云中的数据的API。

  • API Gateway可以缓存内容,从而更快地将一些常用内容发送给用户
  • API Gateway是一种低成本的无服务(serverless)方案,而且它可以自动弹性伸缩(类似ELB,NAT网关)
  • 可以对API Gateway进行节流,以防止恶意攻击
  • 可以将API Gateway的日志放到CloudWatch中
  • 如果你使用JavaScript/AJAX来跨域访问资源,那么你需要保证在API Gateway上已经开启了CORS (Corss-Origin Resource Sharing)功能
  • Elastic Transcoder
Amazon Elastic Transcoder是一种在线媒体转码的工具,使用它我们可以很容易地将我们的视频从源格式转换到其他的格式和分辨率,以便在手机、平板、PC等设备上播放。
  • Kinesis

Amazon Kinesis可以让你轻松收集、处理和分析实时流数据。利用Amazon Kinesis,你可以在收到数据的同时对数据进行处理和分析,无需等到数据全部收集完成才进行处理。

  • 数据流是从成千上万的数据源上持续产生的数据,并且这些数据都很小(KB级别),它们可能是:
    电商网站上的订单信息(比如京东,淘宝)
    股票信息
    游戏信息 社交网络信息(微信/微博的信息流)
    地理位置信息(滴滴)
    物联网数据
  1. Kinesis Data Streams (Kinesis Streams):使用自定义的应用程序分析数据流
    : Amazon Kinesis Data Streams可以实时收集和处理大型数据流,这些数据会被处理并且发送到多种AWS服务中去,也可以生成报警、动态更改定价和广告战略等
  2. Kinesis Video Streams:捕获、处理并存储视频流用于分析和机器学习(Machine Learning)
    : Kinesis Video Streams主要用来进行实时的视频处理,或者批量进行视频分析
  3. Kinesis Data Firehose:将数据加载到AWS数据存储上
    : Kinesis Data Firehose可以让我们的实时数据流传输到我们定义的目标,包括Amazon S3,Amazon Redshift,Amazon Elasticsearch Service (ES)和Splunk
  4. Kinesis Data Analytics:使用SQL分析数据流
    : 使用Kinesis Data Analytics,我们可以使用标准的SQL语句来处理和分析我们的数据流。这个服务可以让我们使用强大的SQL代码来做实时的数据流分析、创建实时的参数

其他服务


  • AWS组织和整合账单

AWS组织(Organization)是一项账户管理服务,它可以将你的多个AWS账号整合到集中管理的组织中。

  1. AWS组织包含了整合账单(Consolidated Billing)和账号管理功能,通过这些功能,你能够更好地满足企业的预算、安全性和合规性的要求。
  • 整合账单主账号最好使用多因素认证(Multi-Factor Authentication)
  • 整合账单主账号最好只用来管理账单,不拥有任何访问AWS资源的权限
  • 一个Organization默认只能管理20个账号,超过这个数字需要找AWS Support
  • 跨账号访问权限(Cross Account Access)
跨账号访问权限(Cross Account Access),你可以在AWS管理控制台上轻松地进行账号(角色)的切换,让你在不同的开发账号(角色)、测试账号(角色)、生产账号(角色)中进行快捷的切换。
  • 资源组和标签
AWS的资源组(Resource Group)和标签(Tagging),巧妙地使用这两个工具可以帮助我们更有效率地管理大规模的AWS资源。
  • Security Token Service
  1. 使用AWS Security Token Service (STS)服务,你可以创建和控制对你的AWS资源访问的安全凭证。
  • STS服务产生的凭证是临时的,它的有效期可以是几分钟到几小时,一旦过了这个时效时间,你的凭证就会失去作用,无法再访问相应的资源
  • IAM会长期保存在AWS账户中,
  • 企业联合身份验证(Federation):
    使用了基于Security Assertion Markup Language (SAML) 的标准 ;
    可以使用微软Active Directory的用户来获取临时权限,不需要创建IAM用户 ;
    支持单点登录(Single Sign On, SSO) ;
  • Web联合身份验证(Federation with Mobile Apps):
    使用已知的第三方身份供应商(Amazon, Facebook, Google或其他OpenID提供商)来登录
  • 跨账户访问 :
    让一个账号内的用户访问同一个组织(Organization)内其他账号的AWS资源
  • Amazon WorkSpaces (VDI)
使用Amazon WorkSpaces,你可以为用户预配置基于云的虚拟Windows桌面或者Linux桌面。WorkSpaces即远程虚拟桌面,或者VDI (Virtual Desktop infrastructure)。

FSX


  • Amazon FSx for Windows File Server
完全托管的Windows文件服务器, 构建于SSD存储之上,可提供(Windows应用程序)所期望的吞吐量,IOPS和一致的亚毫秒级性能。适用于业务应用程序. Amazon FSx for Windows File Server 提供完全托管的文件存储,可通过行业标准服务器消息块 (SMB) 协议进行访问。Amazon FSx 在 Windows Server 上构建而成,提供多种管理功能,例如重复数据删除、最终用户文件还原以及 Microsoft Active Directory (AD) 集成。它提供单可用区和多可用区部署选项、完全托管的备份,以及静态和传输中数据加密。借助 HDD 存储选项,Amazon FSx for Windows File Server 可在云中为 Windows 应用程序和工作负载提供成本最低的文件存储。您可以从运行在 亚马逊云科技 云上或本地的 Windows、Linux 或 MacOS 计算实例和设备访问 Amazon FSx。您可以使用多个存储选项来优化成本和性能,并且可以随时扩展文件系统存储和提高性能. 使用案例 : 文件访问目录,迁移 Windows 应用程序,高度可用的 Microsoft SQL Server 部署,媒体工作流,Web 服务和内容管理,分析
  • Amazon FSx for Lustre
全托管的针对繁重计算负载的Lustre文件系统,Lustre是一种平行分布式文件系. 适用于计算密集型工作负载. Amazon FSx for Lustre 是一项完全托管的服务,可为计算工作负载提供经济高效的高性能存储。许多工作负载(如机器学习、高性能计算 (HPC)、视频渲染和财务模拟)都依赖于计算实例通过高性能共享存储访问同一组数据。FSx for Lustre 由常见的高性能文件系统 Lustre 提供支持,可提供低延迟、高达每秒数百 GB 的吞吐量和数百万 IOPS 的共享存储。FSx for Lustre 提供多种部署类型、存储类型和吞吐量性能水平,以优化成本和性能,满足您的工作负载要求。FSx for Lustre 文件系统还可以链接 到 Amazon S3 存储桶,使您能够同时从高性能文件系统和 S3 API 中访问和处理数据。。 使用案例 : 机器学习,高性能计算,媒体处理和转码,自动驾驶汽车 ,大数据和财务分析,电子设计自动化
  • Windows Active Directory
Active Directory 就是活动目录,在域中真正干活的就是这个,他把所有加入域的计算机的所有资源集合起来,并且在用户认证方面也集中管理,并且可以做到在同一个局域网内任何一个台计算机都可以使用你的账号登陆,并且登陆后都是相同的桌面了。
  • AWS Transit Gateway
每个网络只需连接到 AWS Transit Gateway。通过 Transit Gateway 上的有效路由策略,您可以集中控制 Amazon VPC 与本地网络相互之间的连接方式。这种连接模式使您可以轻松简单地随着时间的推移而扩展和监控网络。

WAF


您可以将 AWS WAF 作为 CDN 解决方案的一部分部署到 Amazon CloudFront 上,也可以将其部署到位于 Web 服务器或来源服务器(运行于 EC2 上)之前的 Application Load Balancer、适用于您的 REST API 的 Amazon API Gateway 或者是适用于您的 GraphQL API 的 AWS AppSync 上。

AWS Shield


  • 托管式 DDoS 防护
  • AWS Shield Standard 可以防护大多数以网站或应用程序为攻击对象并且频繁出现的网络和传输层 DDoS 攻击。将 AWS Shield Standard 与 Amazon CloudFront 和 Amazon Route 53一起使用时,您将获得针对所有已知基础设施(第 3 层和第 4 层)攻击的全面可用性保护。
  • 成了 AWS WAF 这一 Web 应用程序防火墙。 您的源服务器可以是 Amazon S3、Amazon Elastic Compute Cloud (EC2)、Elastic Load Balancing (ELB) 或 AWS 外部的自定义服务器。您还可以在以下 AWS 区域直接在弹性 IP 或 Elastic Load Balancing (ELB) 上启用 AWS Shield Advanced
如果您希望对添加到您的资源的保护进行精细控制,单独使用 AWS WAF 是正确的选择。如果您希望跨账户使用 AWS WAF、加快您的 AWS WAF 配置或自动执行新资源的保护,请将 Firewall Manager 与 AWS WAF 结合使用。Shield Advanced 在 AWS WAF 的基础上添加了额外功能,例如来自 DDoS 响应团队 (DRT) 的专属支持和高级报告。

DAX


Amazon DynamoDB Accelerator (DAX) 是适用于 Amazon DynamoDB 的完全托管且高度可用的内存中的缓存,可实现高达 10 倍的性能提升(从数毫秒缩短到数微秒),即使在每秒处理的请求数量达到数百万个的情况下也是如此。
DAX 负责完成为 DynamoDB 表进行内存中的加速所需的所有繁重任务,使开发人员无需管理缓存失效、数据填充或集群管理。

Amazon Neptune


Amazon Neptune 是一项快速、可靠且完全托管的图形数据库服务,可帮助您轻松构建和运行使用高度互连数据集的应用程序.Neptune 支持图形使用案例,如建议引擎、欺诈检测、知识图谱、药物开发和网络安全

AWS Config rule


  • 评估您 AWS 资源配置是否具备所需设置。
  • 获得与您的 AWS 账户关联的受支持资源的当前配置快照。
  • 检索您的账户中的一个或多个资源配置。
  • 检索一个或多个资源的历史配置。
  • 在资源被创建、修改或删除时接收通知。
  • 查看不同资源之间的关系。例如,您可能想要找到使用特定安全组的所有资源。

Amazon Trusted Advisor


Amazon Trusted Advisor 的作用类似于自定义云专家,帮助您按照以下最佳实践来配置资源。Trusted Advisor 会检查您的亚马逊云科技环境,并发现可以节省开支、提高系统性能和可靠性或帮助弥补安全漏洞的机会。 Amazon Trusted Advisor 提供了以下四种类别的最佳实践:成本优化、安全、容错能力和性能提升

CloudHSM


控制和管理自己的密钥,WS KMS 还与 集成AWS CloudTrail以记录您的 的使用CMKs,从而满足审计、监督和合规性需求。== 通过使用 CloudTrail ,您可以监控和调查哪些人在何时以何种方式CMKs使用了==。

AWS Glue


AWS Glue 是一项完全托管的 ETL(提取、转换和加载)服务,使您能够轻松而经济高效地对数据进行分类、清理和扩充,并在各种数据存储和数据流之间可靠地移动数据。

Aurora Global Databases V.S. DynamoDB Global Tables


  • Aurora Global Databases 一写多读, 毫秒级同步
  • DynamoDB Global Tables 多点写入

AWS Organizations


AWS Organizations 是一项账户管理服务,使您能够将多个 AWS 账户整合到您创建并集中管理的组织 中。AWS Organizations 包含账户管理和整合账单功能,可利用这些功能更好地满足企业的预算、安全性和合规性需求。作为组织的管理员,您可以在组织中创建账户并邀请现有账户加入组织。

Kinesis


  • Kinesis Data Streams (Kinesis Streams):使用自定义的应用程序分析数据流
  • Kinesis Video Streams:捕获、处理并存储视频流用于分析和机器学习(Machine Learning)
  • Kinesis Data Firehose:将数据加载到AWS数据存储上
  • Kinesis Data Analytics:使用SQL分析数据流(Athena是交互式查询)

CloudTrail data events v.s. s3 server access log

  • Cloud Trail能提供一致性验证,s3 server access log不能

AWS Transfer Family


AWS Transfer Family 提供完全托管支持,可将文件直接传入和传出 Amazon S3 或 Amazon EFS

Aws Inspector, AWS Macie , AWS Trusted Advisor , AWS GuardDuty, AWS Cognito


  • Amazon Inspector 是一项自动安全评估服务,有助于提高在 AWS 上部署的应用程序的安全性与合规性
  • Amazon Macie 是一项完全托管的数据安全和数据隐私服务,它利用机器学习和模式匹配来发现和保护 AWS 中的敏感数据
  • AWS Trusted Advisor 是一个在线工具,可提供实时指导,帮助您按照 AWS 最佳实践预置资源
  • Amazon GuardDuty 提供智能威胁检测和持续监控,保护您的 AWS 账户、工作负载和数据。是一种威胁检测服务,可持续监控恶意活动和未经授权的行为,从而保护您的== AWS 账户、工作负载和在 Amazon S3 中存储的数据==
  • Amazon Cognito,简单安全的用户注册、登录和访问控制

Internet Gateway


  • Internet网关是 logical connection between an Amazon VPC and the Internet . 它不是物理设备 . 每个VPC只能关联一个 . 它不限制Internet连接的带宽

gateway分很多种,比如:

  • nat gateway:network address translate,只能从vpc内部访问internet或者aws services,外部无法访问vpc,这样大大地提高了安全性
  • vpn gateway:virtual private network,用于通过vpn连接企业的局域网或者数据中心
  • internet gateway:同internet进行双向通信,一般会给ec2 instance绑定一个elastic ip address用于从外部访问ec2 instance
  • egress-only gateway:只能从ec2 instance向外访问,并且只适用于ipv6地址的路由,ipv4的话需要使用nat gateway
  • 下面再说一说network interface,如果ec2 instance当作电脑主机的话,network interface相当于网卡,每个ec2 instance可以指定一个或多个network interface,有了网卡,主机才能同外界进行数据通信,而且不同的网卡可以存在于不同的subnet里面

Elastic Fabric Adapter


Elastic Fabric Adapter (EFA) 是一种网络设备,可以将其附加到 Amazon EC2 实例以加速高性能计算 (HPC) 和机器学习应用程序。通过使用 EFA,您可以实现本地 HPC 集群的应用程序性能,并具有 AWS 云提供的可扩展性、灵活性和弹性。

AWS Billing and Cost Management

AWS Billing and Cost Management 是您用來支付 AWS 帳單、監控用量,以及分析和控制成本的 服務。

AWS Security Hub

AWS Security Hub 让您全面了解 AWS 账户中的高优先级安全警报与合规性状态。 借助 Security Hub,您现在可以设置单个位置,聚合、组织和优先处理来自多个 AWS 服务(如 Amazon GuardDuty,Amazon Inspector 和 Amazon Macie),以及来自 AWS 合作伙伴解决方案的安全警报或检测结果。

S3 IAM Policy , 桶策略(Bucket Policy)和访问控制列表(Access Control Lists)

AWS S3的权限设置一直是一个重难点,而且是比较混淆的一个概念。比较混淆的地方在于,用户可以通过三个不同的地方进行权限管理,这三个地方分别是 IAM Policy, Bucket Policy 以及 Bucket ACL。

  • IAM Policy是global级别的,他是针对用户来设置的,比如一个用户对所有的S3Bucket拥有get和list权限,那他就可以浏览任何一个Bucket的内容
  • S3 Bucket Policy仅仅是针对单个Bucket 而言的,他可以控制不同用户对他本身的访问权限
  • Bucket ACL是一个早期的服务,现在用的比较少了,但是如果我们需要对Bucket其中的具体对象配置访问权限,我们需要使用Bucket ACL。
    1. 默认情况下,所有新创建的S3存储桶都是私有的,只有存储桶的创建者/拥有者才能访问
    2. 你可以通过桶策略(Bucket Policy)和访问控制列表(Access Control Lists)两个方法来控制S3存储桶的安全性
    3. S3存储桶的访问日志可以存到另一个S3存储桶里面,方便对日志进行查看

AWS Security Token Service

AWS Security Token Service (AWS STS) 使您能够为 AWS IAM 用户或您通过联合身份验证进行身份验证的用户请求权限受限的临时凭证

一个常见的临时凭证使用案例是向移动或客户端应用程序授予对 AWS 资源的访问权限,方法是通过第三方身份提供程序对用户进行身份验证

CloudTrail 数据事件

CloudTrail 默认会禁用数据事件。您可以启用日志记录,但需要额外付费。数据事件也称为数据层面操作,通常都属于较高容量的活动。数据事件无法在 CloudTrail 事件历史记录中查看,所有副本都将按低于管理事件的折扣价格收费。

CloudTrail 管理事件

CloudTrail 免费记录最近 90 天的管理事件,可在 CloudTrail 控制台的“事件历史记录”中查看。对于 Amazon S3 交付的 CloudTrail 事件,交付的第一份副本也是免费的。其他管理事件副本则会收费。管理事件也称为控制层面操作。

AWS Global Accelerator

通过持续监控应用程序端点的运行状况并将流量路由到最近的健康端点来提高应用程序可用性。

AWS Cloud Map

会持续监控应用程序中每个基于IP的组件的运行状况,并在添加或删除每个微服务时动态更新每个微服务的位置。这可确保您的应用程序仅发现其资源的最新位置,从而提高应用程序的可用性。