AWS-SAP-MustKnow

服务类型总结

计算(Compute):

Amazon EC2(Elastic Compute Cloud)

  • spot: 使用aws上未被使用的计算资源,随时可能被终止,适用于批处理,科学计算等,价格按供需变化
  • 预留: 预定计算资源(一般是1年或3年),折扣比按需大
  • 按需: 按小时或秒收费
  • 节省计划: 在一定时间内(一般是一年或三年)使用一定量的计算资源,换取比按需更低的价格
  • 集群放置组: 在单可用区内将ec2实例紧密分组在一起,实现相互间的低延迟和高吞吐
  • 分区放置组: 将EC2实例分布在一个region的多个分区中(不同机架或不同服务器).实现故障隔离
  • T3: 通用
  • R5: 内存优化

可以将ec2绑定一个iam角色,但不能绑定用户

  • 实例存储卷: nvme SSD最大30TB,比EBSI/O更高,速度最快
  • Auto Scaling
    • 简单扩展策略: 根据单一的云监控指标动态扩缩容,执行扩展后会有一个冷却期
    • 目标跟踪策略: 设置一个目标值(比如cpu40%),auto scaling会自动调整EC2实例的数量来维持这个目标值,没有冷却期
    • 计划扩展策略: 根据预知的负载变化来预先安排扩展,比如指定未来某个时间点增加或减少实例数量

AWS Lambda(无服务器计算)

  • 程序运行要在15mins内
  • 128MB-10GB
  • 成本计算:
    • 请求计费: 每月免费头100w次请求
    • 执行时间: 与内存成正比,每月400000GB-秒免费
      • GB-秒:一秒时间内使用1GB内存,比如分配了1GB内存,一个月就有免费400,000s

Amazon ECS(Elastic Container Service,容器管理)

容器管理服务,是容器的运行和管理环境

  • ec2 launch type
  • fargate launch type

任务: 一个或多个容器的组合,是运行容器的基本单位,有点类似k8s的pod

任务定义: 以json格式描述容器运行的所有设置(比如镜像,端口,卷挂载,cpu内存等),类似dockerfile或k8s yaml,任务定义有版本的概念,用于部署更新或滚动更新

AWS batch

建立在ECS之上的全托管批处理服务,一般用lambda去触发

Amazon EKS(Elastic Kubernetes Service,Kubernetes 管理)

托管型k8s服务,管理k8s控制平面的高可用,扩展和安全

  • ec2 launch type
  • fargate launch type

AWS Fargate(容器无服务器计算)

无服务计算引擎,结合ecs或eks,提供一种方式来执行容器,无需用户关心基础实例的运行和维护

存储(Storage)

Amazon S3(Simple Storage Service,简单存储服务)

  • 版本控制:

    1. 当对像被覆盖或删除操作时,旧版本不会被永久删除,而是保留下来,在需要的时候可以恢复
    2. 上传的每个对象都会被分配一个唯一的版本ID
    3. 如果你上传一个跟已存在对象同名的文件,旧文件不会被覆盖,新文件会获得一个唯一的版本ID
    4. 检索开启版本控制的对象,要指定其版本ID,不指定就返回最新
    5. 删除开启版本控制的对象,只会逻辑删除;指定删除对象的特定版本,特定版本就会删除;指定删除对象的所有版本,对象才会被永久删除
    6. 开启版本控制后的存储桶才能设置生命周期策略,例如自动删除一定时间后的旧版本
  • MFA delete: 多因素删除,提供两种身份认证才能删除对象

  • 类型

    • standard: 默认

    • IA: 非频繁访问

    • Glacier: 更低的访问频率,不能直接下载(至少90天才能)

      • Glacier Deep: 读取延迟12-48小时
    • Intelligent-tiering: 根据访问频率自动归类,免费功能

  • SSE-S3(Server-Side Encryption with Amazon S3-Managed Keys)

    • 服务器端S3加密密钥,S3自动管理
    • 每个对象都有唯一的密钥并使用一个主密钥加固
  • SSE-KMS(Server-Side Encryption with AWS Key Management Service)

    • 使用KMS中的密钥来对s3对象进行加密
    • KMS提供密钥审计,访问控制和rotate等功能
  • object-lock

    • 治理模式: 大多数用户不能修改对象,但可以授权某些用户可以修改对象
    • 和规模式: 任何用户(包括根用户)在对象保护期限之前都不能修改或删除对象
  • 跨区复制(桶间复制): S3存储桶是全局资源,但是也有分区域,区域定义了存储桶的物理存储位置,该功能允许你自动,异步地复制对象到另一个不同aws区域的桶中

  • lake formation: 简化通过aws构建,保护和管理数据湖的过程.允许存储所有结构化和非结构化数据的大规模存储看.可以与S3无缝集成,可以运行不同类型的分析

  • macie: 利用机器学习和模式匹配,发现和保护敏感数据,专门用来识别和分类s3中敏感内容

  • Transfer Acceleration: 利用cloudfront优化全球文件传输,先传到最近的边缘节点,然后利用aws内部网络传输文件到目标s3

访问控制:

  1. 存储桶策略: json格式,用于授权账户对s3资源的访问.可以控制整个桶或桶内特定对象
  2. ACLs: 管理aws账户或预定义群组对存储桶和对象的读写权限(粒度比存储桶策略粗)
  3. IAM: 授权IAM用户,组或角色对s3资源的访问权限

以上三者是”逻辑与”的关系

  1. 预签名URL: 安全地分享对象,不需要设置对象为公开访问,用户不具有账户凭据的情况下也能访问,可以设定有效期
  2. 跨资源共享(CORS): 默认情况下一个网站脚本无法访问另一个网站的内容,此功能允许你在不同域名之间的前端应用程序请求S3资源

Amazon EBS(Elastic Block Store,弹性块存储)

块存储服务,作为单个ec2实例的持久存储来使用

  • 快速快照恢复功能: 从EBS卷的快照中创建一个新的EBS卷
  • 类型:
    • 通用型SSD
      • gp2: 通用型ssd,1GB/s的吞吐,16000 IOPS
      • gp3: gp2的升级版,用户可以独立选择和调整IOPS和吞吐量
    • 预配置IOPS SSD
      • io1: 满足延迟敏感型高性能I/O密集型应用,比如大型关系型数据库或noSql数据库
      • io2: io1的升级,更高的持久性和IOPS效率
    • io2 block express
    • 容量优化HDD(st1): 面向吞吐量的HDD卷,适用于频繁访问,大数据量的工作负载(数据仓库,日志处理和数据湖),高吞吐,低于SSD的成本但IOPS较低
    • 冷HDD(sc1): 低成本磁盘卷

Amazon Glacier(长期数据归档)

Amazon EFS(Elastic File System,弹性文件系统)

Amazon FSx for windows server: 专门为windows提供的存储服务,支持SMB

Amazon FSx for Lustre: 为高性能计算提供存储,例如机器学习,视频处理和金融建模等

  • 可以与S3集成,将S3对象呈现为文件并讲改写的数据写回S3

数据库(Database)

Amazon RDS(Relational Database Service,关系型数据库服务)

管理型数据库服务平台,用来管理关系型数据库,支持各种引擎(aurora,postgreSQL,mysql, mariabd,oracle,sql server)

  • 全局表: 允许你跨多个区域复制多主数据库实例,支持一主多从复制,确保多个区域之间的低延迟同步
  • 只读副本创建:
    1. 先让源数据库执行完长时间事务
    2. 必须设置备份保留期不等于0,在源实例上启动自动备份
  • Aurora auto scaling只会缩放只读副本
  • 时间点恢复(PITR): 将数据库恢复到过去特定的日期和时间,依赖RDS自动备份功能 .备份保留期最少可达35天,你可以使用这个功能将数据库数据恢复到最多35天前的任意时间点(最少粒度为1分钟)

rds for mysql/oracle/…: 标准的数据库引擎

rds for custom mysql/oracle/…: 允许系统访问操作,自己维护自己打补丁

aurora mysql: 高性能,适用于持续,可预测负载的应用程序

aurora serverless: 按需自动启动和关闭,按需完全自动扩缩容(v2版)

Amazon DynamoDB(NoSQL 数据库服务)

  • dynamoDB-DAX:

​ 为dynamoDB设计的缓存服务,旨在dynamodb提高性能

  • dynamoDB-stream

​ 捕获任何DynamoDB表中按时间顺序排列的条目级修改,并在日志中存储这些信息,最长可达24小时.意味着我们可以获取一个DynamoDB说有操作的流数据,通过这个流数据我们可以用来触发各种响应,比如同步到另一个数据库或者简单地用于审计

  • TTL

    为表中的每一项定义一个过期时间,过期则删除数据(非即时,有一定延时)

Amazon Redshift(数据仓库服务): 使用sql和现有的商业智能工具做数据分析

AWS Aurora(数据库引擎)

Amazon Neptune(图数据库)

AWS RDS proxy

数据库代理服务,解决数据库连接限制和过多连接数的问题,保持应用程序连接的同时自动连接到备用数据库实例

AWS Database Migration Service (DMS)

帮助用户将关系数据库,数据仓库,NOSQL等数据迁移到AWS

  • CDC(数据变更捕获): 这个功能允许DMS捕捉到源数据库在迁移过程中发生的数据变化,并实时地将这些变化应用到目标数据库上

移动服务(Mobile Services):

AWS Amplify(快速构建移动应用程序和网页应用程序)

Amazon API Gateway(创建、发布、维护 API)

充当HTTP和WebSocket API的门户,允许前端应用程序以编程方式访问后端服务

AWS AppSync(管理数据同步与应用状态)

数据分析(Analytics):

  • Amazon EMR(Elastic MapReduce,处理大规模数据)
  • AWS Glue(托管 ETL 服务): 提取,转换和加载服务用于准备和加载数据,自动发现和分类数据,用户数据分析前的准备工作
    • 作业书签: 避免重复处理旧数据
    • 数据目录: 核心组件,存储你数据的元数据,有助于自动数据的转换和加载功能.
    • 爬虫(crawler): 自动探测你环境中的数据目录(s3,rds或redshift等),读取数据推断数据模式,创建数据表的定义,存储在数据目录中(表名,列名数据类型等),模式使用它自带的分类器实现,也可以自定义分类器实现自定义的推断.
  • Amazon Athena(SQL 查询服务): 针对s3实时执行sql查询,但是可使用的资源是S3分配的,所以在高峰时候使用会慢
  • Amazon QuickSight(商业智能服务): 主要用来做数据可视化

安全性、身份和合规性(Security, Identity & Compliance)

AWS IAM(Identity and Access Management,身份及访问管理)

  • 账户
    • 根账户: 每个aws账户的创建者和拥有者
    • 管理账户(主账户): 主要用于统一管理和控制
    • 用户账户: 日常运营和资源分配的基本单位
  • TaskRoleARN: ECS任务关联的IAM角色的ARN.这个角色赋予ECS任务中的容器所需权限,这样他们就可以访问其他AWS服务.
  • API密钥: 用户使用AWS-CLI,SDKs或直接HTTP API调用时,通过API密钥,进行安全的访问和操作,无需硬编码账户名和密码.
  • access analyzer: 可以与cloudtrail集成,分析其中日志,自动得出账户所需的最少权限

AWS Shield(DDoS 防护)

免费,默认保护所有使用R53和cloudfront的资源

Amazon Cognito(用户身份管理)

客户身份和访问管理服务(CIAM),帮助企业简化用户身份验证,授权,用户池创建和管理.允许你让用户通过社交身份提供商(facebook,X,google等),SAML2.0标识提供商或者自有的身份系统进行登录.

  • 用户池: 创建你自己的用户目录,使用户可以注册登录并验证
  • 身份池: 授权用户访问其他AWS服务

AWS WAF(Web Application Firewall,网络应用防火墙)

应用层防火墙,避免sql注入,跨脚本攻击等,还可以限制特定国家/地区访问

规则操作:

1. count: 只计数,不做任何操作,计数用于监控,一般在测试的时候很有用
1. block: 允许请求
1. allow: 拦截请求

AWS GuardDuty

AWS提供的威胁检测服务,通过分析处理各种数据(比如CloudTrail事件,VPC流日志)来检测恶意活动和异常行为.

Firewall manager

中央管理工具,统一管理多个aws账户/区域中的资源中部署的WAF规则, shield 保护规则以及其他aws防火墙规则

网络和内容交付(Networking & Content Delivery)

Amazon VPC(Virtual Private Cloud,虚拟私有云)

  • peering link(对等连接): 连接两个vpc(不通过公共互联网传输),两个vpc都要添加路由,双向,网络对网络

  • private link(也叫vpc endpoint service): 在你的vpc中通过私有的网络路径安全地访问aws服务或vpc终端节点(不通过公共互联网传输),单向,一对一,比如允许别的vpc访问自己vpc下的某一服务端点

    • VPC endpoint:
      • 接口端点: 实际上是在vpc内创建一个与特定AWS服务相关联的弹性网络接口(ENI),不需要修改vpc路由表
      • 网关端点: 支持s3和dynamoDB,将vpc中针对这两个服务的流量(优化)路由到目标,需要在路由表中添加一个指向该端点的路由
  • NACLs

    • 默认拒绝所有
    • 无状态
    • 作用在子网,一个NACL可以关联多个子网,但一个子网只能关联一个NACL
    • 按顺序评估规则,第一个匹配的规则生效
    • 支持黑白名单
  • AWS Network Firewall (网络防火墙): 支持有状态和无状态规则,web过滤,入侵检测和防御,弹性可扩展,监控进出vpc流量(通常用于补充NACLs的功能)

  • 安全组: 虚拟防火墙,控制实例之间的出入流量

    • 默认允许所有禁止所有
    • 有状态
    • 作用在实例级别.安全组和实例是多对多的关系.
    • 所有规则同时生效(只有有允许该流量的规则,流量就会被放行)
    • 白名单
    • 支持前缀列表: 用于管理多个CIDR块的资源,可用于安全组中,包括aws管理的/用户自定义的,例如cloudfront(com.amazonaws.global.cloudfront)
  • VPC endpoint policy: 资源策略,用于管理和控制到VPC Endpoint服务的访问,附加到vpc endpoint上控制哪些aws主体可以使用该端点来访问服务.

  • 公有子网: 公有子网的实例可以直接通过互联网网关连接到互联网

  • 私有子网: 私有子网的实例不能直接访问互联网,通常通过nat网关连接互联网

    子网不能跨可用区,比如如果要使用跨多个AZs的

  • internet gateway: 给公有子网实例连接互联网

  • nat gateway: 运行在公有子网中给私有子网实例连接互联网或其他aws服务,但不能从互联网接受入站连接

Transit Gateway

创建一个中心化的网络枢纽,连接多个不同网络,比如本地网络与多个VPC之间或者多个VPC之间建立连接,这样子就不需要每个VPC之间都创建一个peering link

AWS Direct Connect(专用网络连接)

Amazon CloudFront(全球内容分发网络)

http CND功能和安全功能(https, 防Ddos)

  • OAI: cloudfront的一个特性,用来限制对S3存储桶的访问,确保使用cloudfront分发的内容仅可以通过cloudfront访问,不能直接通过S3URL访问.
  • 字段级加密配置: 在内容通过CloudFront分发到原始服务器之前,加密HTTP POST请求中表达字段中的数据.

AWS Global Accelerator(网络加速服务)

针对非http场景的CDN,如游戏UDP,以及用于自我管理的DNS场景

Route53

DNS解析;域名注册;健康检查

  • 主动/被动故障转移: 主资源不健康,将自动把流量重定向到预先设置的备用资源
  • 主动/主动故障转移: 多份资源同时服务,某一份不健康,流量会停止转给它,只会转到其余健康的资源中
  • 简单路由策略: 基础DNS查询,不支持健康检查
  • 延迟路由策略: 资源部署在多个aws区域,基于网络延迟,向延迟最低的region路由
  • 多值路由策略: 允许关联多个资源,并进行健康检查,随机选一个健康的资源来响应
  • 地理位置路由策略: 根据dns查询的发起地理位置来路由

专用托管区: 在VPC内部管理DNS记录,且这些记录不会被互联网访问得到,与特定账户和特定vpc绑定

公开托管区: 用于互联网的DNS记录查询.

ELB

  • ALB
    • 工作在7层应用层的负载均衡器
    • 根据URL或HTTP头信息路由
    • 支持websocket和http/2
    • 集成ECS和EKS
    • 提供SSL/TLS解密功能,直接在负载均衡器上管理https证书
    • 精细化健康检查和转发规则
    • TargetGroup
      • ALB中用来定义负载均衡器转发请求目标.(支持EC2,Lambda,IP地址或ECS中的容器)
  • NLB
    • 工作在4层传输层的负载均衡器
    • 针对TCP流量优化,可以处理不稳定的和突发的流量
    • 每个NLB都可以使用一个静态ip
    • 延迟低
    • 自动识别不健康的实例,并转发流量到健康的
    • 适用于TCP长连接(websocket)
    • 每个AZ一个独立端点,确保扩展性和容错性

应用集成(Application Integration)

AWS Step Functions(托管状态机服务)

Amazon SNS(Simple Notification Service,简单通知服务)

Amazon SQS(Simple Queue Service,简单队列服务)

  • 标准队列: 消息顺序,但有些情况下会乱序,消息至少传递一次(可能会多次处理同一条消息),无限吞吐
  • FIFO队列: 严格顺序,确保每条消息仅处理一次,有限吞吐
  • 死信队列: 当一条消息被n次(可设置)连续接受但没有成功被处理(被删除),这条消息就会认为是死信息,自动发送到死信队列中,用于隔离和分析这些死消息,不影响正常消息处理

消息延迟发送: 消息发送到SQS中也不会被消费者立即看到,知道你设置的延迟时间过了,最多延迟15分钟

可见性超时: 当一个消息从队列中被检索出来,消息会被标记为正在处理,而再可见性超时期间对其他消费者来说是不可见的.如果消费者在可见性超时时间内成功处理并删除这条消息,就没问题.反之,超过了可见性超时,其他消费者就能看到这条消息并处理他.

  • 如果消费者因为某些原因无法处理消息,消息不会消失,而是重新进入队列给别的消费者处理
  • 超时期间,避免多个消费者重复处理消息

AWS EventBridge(事件总线)

无服务器的时间总线,基于事件触发aws服务,api调用等

AWS Confluent

完全托管的Kafka服务,可以与lambda,S3等aws服务无缝集成

AWS SES

基于云的电子邮件服务提供商,可以集成到任何应用程序中

AWS ElasticCache

完全托管的内存数据缓存服务,兼容redis和memcached

AWS connect

全渠道云联系中心,支持任何地方的代理,提供客服电话,聊天,交互式语音响应和运营分析功能

AWS pinpoint

灵活可扩展的市场传播服务,让你通过e-mail,短信,推送通知或语音等方式与顾客保持联系.并提供数据分析功能.

开发者工具(Developer Tools)

  • AWS CodeCommit(托管 Git 代码仓库)
  • AWS CodePipeline(持续集成和持续交付服务)
  • AWS CodeBuild(编译和测试代码)
  • AWS CodeDeploy(自动化代码部署)

物联网(IoT)

  • AWS IoT Core(接入和管理 IoT 设备)
  • AWS IoT Analytics(物联网分析)
  • AWS IoT Device Management(设备管理)

机器学习(Machine Learning)

  • Amazon SageMaker(机器学习模型构建、训练和部署): 为ML设计的工作流编排服务,自动化所有机器学习阶段
  • AWS Rekognition(图像和视频分析): 计算机视觉服务.识别分析图像和视频
  • Amazon textract: 机器学习服务,利用光学字符识别(OCR)来自动从扫描的文档中提取文本,手写内容和数据.
  • AWS Comprehend(自然语言处理): 自然语言处理服务(NPL)
  • Amazon Transcribe: 自动语音识别服务(ASR)
  • Amazon Translate: 神经机器翻译服务

企业应用程序(Enterprise Applications)

  • Amazon WorkSpaces(桌面即服务)
  • Amazon WorkMail(企业电子邮件和日历服务)

管理与治理 (Management & Governance)

AWS cloudformation

允许开发人员和系统管理员以编码方式创建和管理AWS资源的集合,使用模板文件定义所需资源.

  • 堆栈(stack): 根据cloudformation模板定义的资源集合.你的模板定义了需要创建和配置的所有aws资源,以及这些资源之间的依赖关系.当部署一个模板时,cloudformation会跟随模板指令,创建一个资源的集合,也就是堆栈.
  • 堆栈集(stack set): cloudformation的一个功能,允许你在多个aws账户和区域中自动部署相同的堆栈.
    • 跨账户和区域部署
    • 集中化管理
    • 自动更新: 更新堆栈集,所有关联的堆栈也会自动更新
    • 顺序部署: 可以对堆栈集内的堆栈进行顺序部署
    • 偏移检测: 可以检测堆栈集以及锁管理的各个堆栈中的资源预期cloudformation模板的预期配置之间的差异.资源偏移表示资源的属性已经被外部改动,与模板定义的状态不一致.

AWS systems manager

  • patch manager: 管理系统补丁
  • run command: 允许你在aws资源上安全地执行远程命令的功能
  • parameter store: 提供一个中央位置管理配置数据,可以包括敏感信息,支持加密,没有rotate功能

AWS key management service(KMS)

创建控制用于加密操作的密钥,可以与其他aws服务结合为数据加解密提供密钥管理和控制

AWS secret manager

专门保护管理敏感信息(用户名密码,密钥等),支持密钥自动rotate,可以使用kms的密钥来加密

AWS organizations

账户级别管理和政策控制,比如防止vpc访问internet或限制访问某个AZ

All Features模式: 表示启用 aws organization所有功能,包括SCP,OUs,集中式付款,集中权限管理等

OUs: 组织单元,对organization下管理的账户进行分组

SCP: 服务控制策略,定义允许或拒绝在组织中进行哪些操作的策略.类似IAM policy但是它不是用来授权的,而是用来限制组织中的账户或者OUs可以使用的服务和操作.

1
2
3
4
5
6
7
8
9
10
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Deny",
"Action": "cloudtrail:DeleteTrail", //紧急关闭cloudtrail日志记录功能
"Resource": "*"
}
]
}

AWS control tower

在上者的基础上提供更全面的管理,监控和合规自动化解决方案

AWS SSO

中心管理身份验证服务,中心化身份管理,集成AWS organizations支持现有的身份源,比如Microsoft AD和LDAP;方便多账户访问

AWS directory service

提供多种方式使用Microsoft AD与其他AWS服务整合的云服务

Cloud Trail

记录存储aws账户中api调用的历史(console,SDKs,awscli等),相当于记录aws上所有操作

CloudWatch

监控和管理服务,提供仪表盘,可以发告警,可以直接通过邮箱地址共享仪表盘

默认情况cloudwatch日志无限期保存

可以监控:

  • 性能: 实时监控aws资源(ec2实例,rds数据库,s3等)的性能(cpu,流量,IO等)
  • 日志: 从ec2实例,cloudTrail等源中获取日志
  • 服务配额监控

AWS架构转换(Schema Conversion Tools)(SCT)

将现有的数据库架构从一种数据库引擎转换成另一种,以便迁移到aws,也可以用于转换整个应用程序架构

AWS Elastic BeanStalk

开发者只需要上传代码,这个服务就会自动处理代码部署到AWS上,包括服务器的设定,运维系统的配置,网络构建和安全性设置等,自动扩展,支持多种语言,本身免费

AWS config

评估,审计和评价AWS环境中资源的配置.持续记录和保持账户中AWS资源变化历史,允许你自动评估配置与所需配置之间的对比

AWS 资源组

资源组是管理各种aws资源的一种方式,允许你将aws资源组织在一起(比如根据项目,应用程序,环境等关系)

  • 标签: k-v,可以在aws中创建的几乎任何资源分配标签,根据标签来管理资源

AWS Trusted Advisor

AWS提供的咨询服务,自动检查你的aws资源并提出优化建议(成本,性能,容错)

Amazon Inspector

自动的安全评估服务(安全漏洞,合规性)

AWS step function

协调多个 AWS 服务成为一个全自动化的工作流程

成本管理

  • AWS budgets: 设定预算监控aws服务的使用情况和成本
  • Cost Explorer: 可视化工具,查看分析aws成本和使用情况数据,提供历史和预测功能
  • AWS 账单: 控制台特性,提供每月账单详情
  • 成本控制控制面板: 控制台中集成的综合视图
  • 成本和使用报告(CUR): 最详细和最全面的AWS成本和使用数据,数据可以提供其他工具分析,比如Athena或Redshift

数据传输

  • datasync: 在线数据传输服务,简化和加速本地到aws或aws服务之间的数据同步
  • snowball: 线下物理传输,pb级别
  • snowball edge: 在snowball的基础上加上简单的分析和处理任务功能
  • snowmobile: 数十或数百PB,EB级别的数据传输
  • transfer acceleration: 通过cloudfront加速用户上传到s3的数据传输速度
  • AWS Transfer Family: 安全,简便地传输文件到AWS存储服务.支持FTP,SFTP,FTPS和AS2协议
  • AWS Storage Gateway(存储网关/文件网关): 将本地环境与云存储无缝连接起来,支持NFS,SMB协议,允许你将本地文件存储直接连接到S3

数据流和实时分析

  • kinesis

    • data stream: 快速收集和存储来自多个源的数据流,如股票交易,社交媒体数据或游戏数据
    • data firehose: 最简单的方式将实时流数据加载到AWS的数据存储服务(s3, redshift, aws es service等)
    • data analytics: 让用户使用sql轻松创建和运行对数据流的实时分析
    • video stream: 安全地流式处理视频
  • Amazon AppFlow: 完全托管集成服务,帮助用户在SAAS和AWS服务之间安全传输数据

各种例子

vpc endpoint policy

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
{
"Statement": [
{
"Sid": "MyPolicyStatement1", //自定义标识符,可以是任何值,可选
"Principal": "*", // 指定哪些aws用户,"*"代表所有
"Action": "s3:*", // 指定可以执行的操作
"Effect": "Allow",
"Resource": [ // 指定具体资源
"arn:aws:s3:::example-bucket/*",
"arn:aws:s3:::example-bucket"
],
"Condition": { // 指定策略使用条件
"StringEquals": {
"aws:sourceVpce": "vpce-1a2b3c4d" // 指定只有来源是特定vpc才会生效
}
}
}
]
}

terraform创建vpc

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
provider "aws" {
region = "us-west-2" # 这里设置您希望部署的AWS区域
}

resource "aws_vpc" "main" { # vpc自身
cidr_block = "10.0.0.0/16"
enable_dns_hostnames = true
enable_dns_support = true
tags = {
Name = "main-vpc"
}
}

resource "aws_subnet" "public_subnet" { # 公有子网
vpc_id = aws_vpc.main.id
cidr_block = "10.0.1.0/24"
map_public_ip_on_launch = true
availability_zone = "us-west-2a"
tags = {
Name = "public-subnet"
}
}

resource "aws_subnet" "private_subnet" { # 私有子网
vpc_id = aws_vpc.main.id
cidr_block = "10.0.2.0/24"
map_public_ip_on_launch = false
availability_zone = "us-west-2a"
tags = {
Name = "private-subnet"
}
}

resource "aws_internet_gateway" "gw" { # 互联网网关
vpc_id = aws_vpc.main.id
tags = {
Name = "main-gateway"
}
}

resource "aws_eip" "nat" {
vpc = true
}

resource "aws_nat_gateway" "nat" { # nat网关
allocation_id = aws_eip.nat.id
subnet_id = aws_subnet.public_subnet.id
tags = {
Name = "main-nat-gateway"
}
}

resource "aws_route_table" "public_route_table" { # 路由表
vpc_id = aws_vpc.main.id

route {
cidr_block = "0.0.0.0/0"
gateway_id = aws_internet_gateway.gw.id
}

tags = {
Name = "public-route-table"
}
}

resource "aws_route_table_association" "public" { # 路由表绑定
subnet_id = aws_subnet.public_subnet.id
route_table_id = aws_route_table.public_route_table.id
}

resource "aws_security_group" "default" { # 安全组
name = "default_security_group"
description = "Default security group"
vpc_id = aws_vpc.main.id

egress {
from_port = 0
to_port = 0
protocol = "-1"
cidr_blocks = ["0.0.0.0/0"]
}
}

# 必要情况下你还可以添加更多的规则,例如允许入站HTTP和SSH等

S3 存储桶策略

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
{
"Version": "2012-10-17", // policy版本"2008-10-17"或"2012-10-17",建议选最新的以使用最新功能
"Statement": [
{
"Sid": "PublicReadForGetBucketObjects",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:PutObject",
"Resource": "arn:aws:s3:::example-bucket/*"
},
{
"Sid": "DenyPublicDelete",
"Effect": "Deny",
"Principal": "*",
"Action": "s3:DeleteObject",
"Resource": "arn:aws:s3:::example-bucket/*"
}
]
}

S3 ACLs

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<AccessControlPolicy>
<Owner>
<ID>owner-unique-id</ID>
</Owner>
<AccessControlList>
<Grant>
<Grantee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="CanonicalUser">
<ID>owner-unique-id</ID>
</Grantee>
<Permission>FULL_CONTROL</Permission>
</Grant>
<Grant>
<Grantee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="CanonicalUser">
<ID>user-unique-id</ID>
</Grantee>
<Permission>READ</Permission>
</Grant>
</AccessControlList>
</AccessControlPolicy>

各种对比

WAF安全组NACLs
主要用于保护web应用免受web攻击(SQL注入,跨站脚本攻击等),通过自定义规则控制出入的http/https请求可以部署在cloudfront,ALB,API GATEWAY上服务于EC2实例,类似虚拟防火墙,控制出入站流量.白名单,默认拒绝所有,有状态子网级别流量控制,无状态
AWS Trusted AdvisorAmazon InspectorAWS Shield AdvancedAmazon GuardDuty
咨询服务,自动检查你的aws资源并提出优化建议(成本,性能,容错)自动的安全评估服务(安全漏洞,合规性)DDos防护,可以部署在NLB上威胁检测服务,通过分析处理各种数据(比如CloudTrail事件,VPC流日志)来检测恶意活动和异常行为.
AWS BackupAmazon Data Lifecycle Manager
提供中心化服务配置和管理数据备份,覆盖很多AWS服务,比如EC2,RDS,DynamoDB,EFS,FSx和S3自动化EBS卷和快照的生命周期管理
NLBALB
4层(传输层),主要用于TCP/UDP的流量负载均衡7层(应用层),HTTP/HTTPS
处理每秒数百万请求保持低延迟支持websocket和HTTP/2
允许将流量直接路由到实例的私有IP或AWS外部的IP适合微服务和容器
支持TCP长连接和websocket支持基于路由的转发
不支持路由转发

一些实例

ALB代理ECS Fargate

  1. 创建ALB,选择合适的网络和子网
  2. 针对ECS Fargate的服务创建Target Group,并设好健康检查

AWS-SAP-MustKnow
http://example.com/2024/03/20/AWS-SAP/
作者
Peter Pan
发布于
2024年3月20日
许可协议