目录
5. Amazon DynamoDB最终一致性读取和强一致性读取
7. 对比Amazon RDS和Amazon DynamoDB
8. Amazon DynamoDB Accelerator
1. Amazon Elastic Load Balancing
一、AWS简介与历史
Amazon在1995年作为网上书店开张,随着它的持续发展,在2006年正式推出了Amazon Web Service(AWS),它通过Web 服务平台也称之为“云”,为开发人员和企业这一新的客户群提供服务,以便他们使用该Web 服务平台构建可扩展的复杂应用程序。
AWS的客户:企业客户、初创公司客户、公共部门客户。
AWS核心基础设施与服务:存储和数据库、服务器、联网、安全性等
AWS云计算将基础设施、基础服务、平台服务、应用程序融为一体
AWS基础服务:计算、网络、存储、安全性和身份、应用程序
AWS平台服务:数据库、分析、应用程序服务、管理工具、开发人员工具、移动服务、物联网
AWS最先推出的服务 第一个:S3;第二个:SQS
二、AWS Region、AZ、Edge Location
AWS区域(Region)可分为三大类:中国区域(目前仅支持部分服务)、美国政府(AWS GovCloud)、全球区域(支持所有服务)
其中一个Region至少包括了两个AZ(Availability Zones),一个AZ由一个或多个可用区组成,Region外有着多大一百多个边缘站点(Edge Location),AZ与AZ延迟在0.2ms内,Region与Regiion在0.5ms~1ms 跨Region传输将会扣费
边缘站点(Edge Location)的作用:
1)提高性能:CDN(CloudFront)缓存 + DNS(Route53)就近域名解析
2)提高安全性:防DDOS攻击(AWS Shield)+ 保护应用程序(AWS WAF)
Shield 防肉鸡、WAF拦截、过滤应用层流量攻击
Multiple Edge Locations:一个Multiple Edge Locations包含多个Edge Location
区域性边缘缓存(Region Edge Cache): 二级缓存(L2)
当您的内容不被频繁访问所以不足以保留在边缘站点内时,您可以使用区域性边缘缓存,该功能默认与Amazon CloudFront 结合使用。区域边缘缓存会保留这些内容,在用户必须从原始服务器获取内容时提供一份替代方案。
服务搭建时应注意区域选择:
1)选择离用户最近的区域,减少延迟对客户体验的影响
2)服务和功能可用性、成本效益(不同区域服务收费不同)
三、安全性、身份和访问管理IAM
AWS采用责任共担模型、物理安全性、SSL终端节点(安全传输)、AWS多层安全组(实例防火墙)、VPC网络控制(网络控制)
AWS IAM身份验证
AWS管理控制台:用户名、密码
AWS CLI或开发工具包 API:AK/SK(访问密钥/秘密密钥)
AWS IAM授权:策略(JSON文档),分配给用户、组或角色
AWS IAM策略元素
AWS IAM 角色:一个角色一个策略;角色没有相关联的凭证;用户、应用程序和服务可以担任IAM角色,IAM策略也可以分配给IAM角色
角色与实例配置文件
临时安全凭证 过期时间AWS STS 15m-36h
使用案例:跨账户访问、联合身份验证、移动用户、针对基于Amazon EC2的应用程序的密钥轮换
AWS IAM最佳实践:
删除AWS账户(根)访问密钥、创建单独的IAM用户、使用组为IAM用户分配权限、授予最小权限、配置强大的密码策略、为授权用户启用MFA、针对在Amazon EC2实例上运行的应用程序使用角色、使用角色而非共享凭证来委派访问权限、定期轮换凭证、删除不必要的用户和凭证、使用策略条件来提高安全性、监控您的AWS账户活动。
不要随便使用AWS的Root用户。
因为这样不安全。正常情况下,可以使用Root用户建立一个权限类似Root的用户来管理下面的用户。并且采取最小权限策略。
其次配合角色来进行使用,最好多使用角色,因为角色颁发的都是一些临时凭证,一般都有时间限制。而用户和组的权限一旦给定就有可能是很长时间了。
在aws中所有权限默认都是拒绝操作。除非有显式允许操作,否则不会判断。
策略可以附加到用户,组,角色。
可以决定控制:执行的操作。资源,条件。
策略类型:AWS托管,由客户托管,内联
一个IAM里可以由多个用户和组,策略可以给他们相应权限。
aws Organizations 是一项账户管理的托管服务,一个组织就是一个实体。
1. AWS CloudTrail
记录账户的AWS API调用、将日志文件和信息发送到Amazon S3存储桶、使用AWS管理控制台、AWS开发工具包、AWS CLI和较高级的AWS服务进行调用
AWS CloudTrail 是一项AWS服务,可帮助对您的AWS账户进行监管、合规性检查、操作审核和风险审核。
用户、角色或AWS服务执行的操作将记录为CloudTrail中的事件。事件包括在AWS管理控制台、AWS Command Line Interface 和 AWS 开发工具包和API中执行的操作。
可以将操作信息输出到Event history里。
工作原理:
在您创建AWS账户时,将对账户启用CloudTrail。当您的AWS账户中发生活动时,该活动将记录在CloudTrail事件中。
可以通过查看Event history 轻松查看CloudTrail控制台中的事件。
CloudTrail 日志存放:
可将记录存放在S3内,以.gz结尾,打开后为键值对形式,下载后可用Notepad++来进行修改与编辑。
四、AWS存储服务
1. Amazon S3
托管服务、软件交付、服务全球、对象存储、事件通知功能
桶Bucket 名称全球唯一、arn区分桶名称
对象无层级模式,folder是对象前缀
持久性:数据不丢失可能性(11个9)
可用性:服务的可达性即硬盘的损失性+AZ损失性(4个9)
存储桶访问控制
默认情况下,存储桶与对象都是私有的
桶—权限—公有访问设置—设置权限
通过设置 桶策略、ACL、权限、CORS(跨域资源共享) 可以控制访问桶和对象
版本控制无法关闭、只能挂起
arn:aws:s3:::bucket/*
arn:aws区域:服务:region-ID:count-ID:控制的对象
Get、put
先写后读
不启用版本控制再上传相同名称对象,旧对象被覆盖,有几率读到老副本
Region存储S3副本
S3+CloudFront+Route53 保障静态网站访问,降低成本
S3用途
存储、发布静态Web内容和媒体
移动数据到S3
控制台、AWS命令行界面(CLI)、API传输
当上传数据过大时可选择分段上传
提高吞吐量、从网络问题快速恢复、暂停和恢复对象上传
Amazon S3 Transfer Acceleration 提高大量数据跨洲传入S3存储桶的效率
AWS Snowball PB级 AWS Snowmobile EB级 海量数据传入S3
Amazon Glacier 极少检索数据、重要但不经常访问的数据
6)S3存储类
S3标准、S3低频率访问(IA)、S3低冗余存储(RSS)
对象生命周期
S3 Stand 30天转至 S3 Stand-IA 60天转至 Glacier 365天后删除
对象键
S3存储桶:默认上传的对象为私有的,EC2实例无权限访问
Etag:唯一标识桶
S3静态网站防盗链设计
通过AK/SK来访问CLI S3
当存储体中对象过多时,做操作会影响其性能
Amazon Athena可直接对S3存储桶内的对象进行分析
s3 select 对存储桶进行检索
s3 sync 批量上传(数据备份)
Glacier默认加密,三种加密方式(KMS、SSE)
存储桶一个区域内只有一个,对象在多个可用区内存在副本
Glacier档案和文件库
档案是您存储在文件库中的对象(例如照片、视频或文档)。它是Amazon Glacier 中的基本存储单位。每个档案都有独一无二的 ID 和可选的描述。
文件库是用来存储档案的容器。在创建文件库时,您可以指定文件库名称以及 您要创建的文件库所在的AWS 区域。
文件库锁定功能通过可锁定的政策来执行合规性。
检索Glacier费用昂贵
S3单对象最大5TB(多线程上传),单个文件上传最大5GB,最小为0,对于对象数目没有限制,每个AWS账号下最多100个存储桶。存储桶名全球唯一(特别说明中国区存储桶可以和中国区外的存储桶重名,因为中国区存储桶的arn为arn-cn…,国外为arn…),S3版本控制默认不开启。
可用ACL,和策略控制桶和对象的访问。存储桶策略文件大小限制在20KB。
S3提供11个9的持久性:数据不丢失可能性(11个9)
S3提供4个9的可用性:对象级存储,可以作为上传和下载等动作事件被lambda接收。
S3存储和分发静态Web内容和媒体 S3桶名唯一~~~~URL
S3存副本在Region S3 Etag 1W个分片 多线程上传 自己的虚拟机无法访问S3
访问S3两种途径 1) 通过Internet 2) 通过调用API
Arn缺省原因: url全球区内名字唯一 S3可以在一个桶内放图片
使用url调用图片或者数据时 S3会防止盗链
为什么托管S3 : 没有带宽的负担 S3版本控制 转移加速度
DNS解析过程 无缓存,通过节点转移
Put 先写后读一致性 Delate 最终一致性
S3三种加密方式: SSE-KMS(使用KMS托管密钥的服务器端加密)
SSE-S3(使用S3托管密钥的服务器端加密)
SSE-C(使用客户托管密钥的服务器端加密)
S3适用于一次写多次读操作
可用区随机分配,看AZ number(每一个用户获得可用区的编号有可能和别人是不一样的,A的1区域可能是B的2区域)
默认情况不带版本控制
性能上一般不会影响,在特别大的数据时,使用类似 aws list等命令时由于S3底层是硬盘,会同时对几个盘进行检索,影响性能。
CORS信任边界
S3良好存储非结构化数据
数据湖概念
S3底层具有计算能力
可使用Select筛选数据
元数据
S3 Glancier 冰川服务
冷备份
Glacier 必须加密
Glacier 是成本极低的存储服务,用于为数据存档和备份提供具备安全功能的持久性存储。
将有三种检索方式:
1.加速检索通常需要 1 到 5 分钟 0.03美元/GB
2.标准检索通常需要 3 到 5 小时
3.批量检索通常需要 5 到 12 小时 0.0025美元/GB
2. Amazon EBS
Amazon EBS生命周期
AZ存储EBS副本
IOPS:非顺序 每次数据的交互量 吞吐量:HDFS
SSD:固态硬盘,应用于非关系数据、实例根卷
HDD:机械硬盘
EBS并非作为服务,而是作为硬盘
EBS卷类型:通用SSD、预配置的IOPS SSD、吞吐优化HDD、Cold HDD
EBS优化性实例
- 经过配置优化的堆栈
- 用于Amazon EBS I/O额外的专用容量
- 将Amazon EBS和其他流量之间的争用降到最低
- 介于425Mbps和14000Mbps之间的选项
一个EBS不能供两个EC2使用,同时EC2使用EBS不能跨AZ
若EC2想使用其它AZ或Region的EBS,可先将EBS保存为快照,再附加到相应EC2上
1)EBS使用案例
操作系统、数据库、企业应用程序、商业连续性、应用程序
2)
Amazon EBS提供了块级存储卷以用于 EC2 实例,相比S3、EFS速度是最快的,具有高可用的特性。
EBS有通用型 SSD (gp2)、预配置 IOPS SSD (io1)、吞吐优化 HDD (st1) 和 Cold HDD (sc1) 卷。gp2适用于引导卷、中小型数据库以及开发和测试环境,大小为1G-16T。Gp2 卷最高可支持 16,000 IOPS 和 250 MiB/s 的吞吐量,大小为4G-16T。io1性能最高,专为关键型应用程序设计,大小为500G-16T。st1为频繁访问的吞吐量密集型工作负载设计的低成本HDD卷。sc1为不常访问的工作负载设计的成本最低的HDD卷,大小为500G-16T。
我们都知道当EC2创建的时候会分配1块EBS存储卷,这块EBS存储卷就是这台EC2实例的根卷。1个EBS只能被一台EC2实例挂载,但一台EC2实例可以挂载多个EBS。
EBS卷特别适合用作文件系统和数据库的主存储,例如经常在数据集内进行大量随机读写操作的数据库应用程序。它是存储并对你的操作系统、数据库存储和小于1T的数据集块级访问的理想根卷。
3.Amazon EFS
Amazon Elastic File System
EFS适用于多个实例使用同一存储
EFS文件存储服务 传输速度:EBS > EFS > S3
A