[TOC]
AWS网络服务
VPC
- VPC 与虚拟网络是逻辑隔离的
- 一个VPC只能属于一个区域,但可以属于多个可用区
- VPC主要属性:IP范围,路由,网关,安全设置
Direct Connect
- 用户数据中心到AWS的专用网络连接
- 在高吞吐的情况下可以降低网络成本、增加带宽吞吐能力
Route53
- 高可用的可扩展的DNS 服务
AWS 计算服务
EC2
- 客户完全控制的计算资源,并可以在成熟的 Amazon 计算环境中运行
- Amazon EC2 将获取与启动新服务器实例所需要的时间缩短至几分钟,在您的计算要求发生变化时,您便可以快速扩展或缩减计算容量。 Amazon EC2 按您实际使用量收费。
- 支持大多数版本的Windows 和 Linux 操作系统
- 可以创建、保存和重复使用镜像 AMI
- 可以一次用鼠标或者API启用一个或多个实例
- 按需启动和中止实例
- 使用安全组控制进出实例的流量
- 选择实例考虑的因素: 核心、内存、存储大小和类型、网络性能和 CPU技术
EMR(Elastic MapReduce)
- 它基于 Amazon EC2 技术和 Amazon Simple Storage Service (Amazon S3) 技术的 Web 规模基础设施,是一种 Hadoop 托管服务运行架构。
- Amazon EMR 能即时灵活配置自身所需容量大小,执行数据密集型应用计算,完成 Web 索引、数据挖掘、日志文件分析、数据仓库、机器学习、财务分析、科学模拟和生物信息研究任务。
AWS Lambda
- 适用于后端Web开发的零管理计算平台
- 在AWS直接运行后端代码,从而提供基于AWS基础架构的高可用、安全性、性能和可伸缩性
Auto Scaling
- 让您可以根据您定义的条件自动扩展 Amazon EC2 容量。
- 通过使用 Auto Scaling,您可以确保所使用的 Amazon EC2 实例数量在需求峰值期实现无缝增长以保持性能,也可以在需求平淡期自动减少, 将成本降至最低。
- Auto Scaling 特别适合每小时、每天或每周使用率都不同的应用程序。
- Auto Scaling 通过Amazon CloudWatch 启用,除了 Amazon CloudWatch 费用外,无需支付其他任何费用。
Elastic Load Balancing
- 在多个 Amazon EC2 实例间自动分配应用程序的传入流量
- Elastic Load Balancing 可以检测出不健全的实例,并自动更改路由,使其指向健全的实例,直到不健全的实例恢复为止
AWS Elastic Benstalk
- 在AWS上部署Web应用的最快捷最简单的方式
- 直接上传代码而由AWS自行对资源进行调配
AWS 存储
存储类型
- 块存储: 对数据的一个部分进行操作,能够快速访问和修改,
- 对象存储: 对这个数据进行操作
EBS存储
- 能够创建单独的数据卷并挂载在EC2上
- 数据块级存储
- 适用于EC2的启动卷和存储
- 带有文件系统的数据存储
- 数据块和企业应用程序
- 用于EC2的持久的块级存储卷
- EBS会自动在可用区内自动复制以提高可用性
- 可以备份至S3
S3
- 托管的对象存储解决方案
- 冗余方式存储,11个9的存储可用性
- 无缝任意扩展的存储池
- 可以通过AWS控制台或者第三方API访问S3
- 对象的变化可以触发通知、流程、脚本
- 动态数据和静态数据可自动进行加密
- 为使用量GB、跨域复制、PUT/COPY等请求进行付费,主要适用于非频繁访问的数据
- 支持包括HTML、源代码、图像和加密数据等格式
- 支持备份和恢复、近线归档、大数据分析、灾难恢复、云应用和内容分发提供经济高效的对象存储
S3 Glacier
- 数据归档服务,适用于不太访问的数据
- 安全性、持久性和极低成本
- 支持静态和动态的SSL/TLS加密
- 数据检索通常需要好几个小时
AWS Storage Gateway
- 在内部部署软件设备与基于云的存储器相连接的服务
- 用户在本地数据中心维护经常访问的数据缓存,同时为存储在S3或Glacier中的所有数据提供低延迟的访问
CloudFront
- 内容交付Web服务,提供低延迟、高速和最低使用承诺的全球CDN业务
- 利用全球的边缘网络提供整个网站的访问,包括动态、静态、流媒体和交互式内容
- AWS上存储的文件生命周期策略
AWS 数据库
RDS
- 关系型数据库托管服务
- 可以通过AWS控制台、RDS命令行和API进行调用
- 可扩展、支持自动冗余和备份
- 支持SQL、Oracle等数据库
- 适用的场景:复杂事物和复杂查询、30K IOPS以下的中高读写,不超过一个节点的分片、高持久性
- 不适用场景:超高读写 如150K IOPS, 可以用NoSQL实现的简单请求
DynamoDB
- 完全托管的NoSQL数据库
- 任意规模上实现低于10ms的低延迟,完全运行在SSD
- 支持文档和键值存储模式
- 非常适合移动、web、游戏、广告和 IOT
- 可以通过AWS控制台、命令行和API进行调用
- 用户需要制定希望为读取和写入预置的吞吐容量,以确保一致性的低延迟性能,读取通常以4KB/s为一个单位,写入以1KB/s为一个单位
Redshift
- 快速、全面管理的PB级数据仓库服务
- 提供标准SQL接口,借助现有的BI工具进行简单高效的结构化数据分析
- 提供跨多节点并行查询方式提高快速查询性能
- 允许组织自行执行和配置、监控云数据仓库中的大部分管理任务
ElastiCache
- 采用Web服务来简化云中的内存缓存的部署操作和扩展
- 支持Memcached 和 Redis缓存引擎
管理工具
Amazon CloudWatch
- 云资源和云应用程序的监控服务
- 搜集跟踪指标、收集和监视日志文件并设置告警
- 获取全系统的资源利用率和程序性能及运行状况的可见性
AWS CloudFormation
- 对AWS资源以有序和可预测的方式进行配置和更新
- 定义一种基于JSON和YAML的模板语言
AWS CloudTrail
- 记录账户的API调用并提供日志文件供审计和审查
- 信息包括 API调用者身份,调用时间,源IP地址、请求参数以及服务返回响应值
AWS Config
- 提供AWS资源清单、配置历史记录和配置更改通知
- 支持合规审计、安全分析、变更跟踪和故障排除的安全和治理
安全和身份
IAM 身份和访问管理
- 有效安全的组织用户对AWS服务和资源的访问
- 创建和管理AWS用户、组以及角色,并使用权限管理允许或拒绝
AWS密钥管理服务KMS
- 创建和管理加密数据的加密密钥
- 支持使用硬件安全模块HSM保护根密钥安全
AWS Directory Service
- 允许在AWS设置并运行MicroSoft AD或将资源与现有AD关联
- 利用AD管理用户合租,并创建和应用组策略
AWS Certificate Manager
- 配置和管理及部署SSL/TLS证书以用于AWS云服务
- 支持快速申请
AWS WAF Web应用程序防火墙
- 用于帮助Web应用程序防御常见***
- 通过定制Web安全规则,为组织控制允许或组织其Web应用程序的流量
应用服务
AWS API Gateway
- 完全托管的服务
- 创建、发布、维护、监控和保护各种规模的API
- 可以接受和处理最大数十万个并发的API调用
- 支持包括流量管理、授权和访问控制、监控及API版本管理
Amazon Elastic Transcoder 弹性转码器
- 在AWS进行云中的媒体转码
- 将媒体文件从其源格式转换成可在智能手机、平板电脑和PC等设备上播放的格式
Amazon SNS 简单通知服务
- 管理向收件人发送消息或邮件的Web服务
- 支持两种角色: 发布者和订阅者
- 通过发布者向订阅者发送消息实现异步通信
Amazon SES 简单电子邮件服务
- 利用SES向客户发送交易、营销信息及其他内容电子邮件
- 一种应用场景: 通过SES接受消息,传递到S3,触发Lambda,再发布通知到SNS
Amazon Simple Workflow Service
- 构建、运行和缩放具有顺序或并行步骤的后台作业
- 基于云的完全管理状态跟踪器和任务协调器
- 场景是监控应用程序的步骤,跟踪处理状态并在任何时候任务失败是进行恢复和重试 ,提高应用程序可靠性
Amazon Simple Queue Service
- 完全托管的、可靠和可扩展的消息队列服务
- 适用于任何吞吐量级别、传输任何数据而不会丢失消息且要求其他服务始终可用
Amazon Workspaces 服务
- 托管桌面服务,可以快速配置基于云的桌面
代码服务
AWS CodeBuild
- AWS CodeBuild 是一项完全托管的持续集成服务,可编译源代码、运行测试以及生成可供部署的软件包。
- 使用 CodeBuild,您无需预置、管理和扩展自己的构建服务器。
- CodeBuild 可以持续扩展并同时处理多项构建任务,因此您的构建任务不会在队列中等待。
- 您可以使用预先打包的构建环境快速开始,也可以创建使用您自己的构建工具的自定义构建环境。使用 CodeBuild,您将按使用计算资源的分钟数付费。
AWS CodeDeploy
- AWS CodeDeploy 是一项将软件自动部署到各种计算服务(例如 Amazon EC2、AWS Fargate、AWS Lambda 和本地服务器)的完全托管的部署服务。
- 借助 AWS CodeDeploy,您可以更轻松地快速发布新功能,避免在应用程序部署过程中出现停机,并简化应用程序的更新工作。
- 您可以使用 AWS CodeDeploy 自动执行软件部署,而无需执行容易出错的手动操作。服务根据您的部署需求进行扩展。
AWS核心服务部署最佳实践
IAM用户组管理
创建一个IAM组并授予完全管理员权限
停止使用根账户,使用IAM用户凭证登录
为IAM账户启用MFA
软件MFA:AWS Virtual MFA、Google Authenticator、Authenticator、SMS
硬件MFA: Gemalto 秘钥卡 等
开启AWS CloudTrail
- 记录对账户中所有的API请求
- 记录包括API调用 身份、时间、源IP、请求参数、返回的响应元素等
- 主要用于安全分析、追踪资源变更、排查操作问题、合规性协作等
- 确保用于CloudTrail的S3只授权给了指定用户
- 可以与APN的日志分析工具集成,如Splunk, SumoLogic, AlertLogic
启用AWS Config 追踪资源配置变更
- 完全托管的服务,AWS Config 是AWS 账户中资源的详细配置视图
- 查看资源之间的联系
- 可以获取当前资源配置的快照
- 能够检索相关资源的历史配置信息
- 提供AWS资源清单、配置历史记录和配置变更通知
开启账单报告
- AWS资源使用情况及预估成本
- 报告交给指定的S3并每天更新一次
EC2安全性
- 使用联合身份、IAM用户以及IAM Role对AWS 资源和 API的访问权限
- 建立用于创建、分配、轮换和撤销AWS访问凭证的凭证管理策略和程序
- 安全组只允许特定实例的IP范围进行访问
- 定期修补和更新操作系统及应用程序,并且保存镜像以便于重复使用
EC2存储
- EC2 Instance 可以支持自带的实例存储和EBS,
- 不同的存储类型在数据持久性、备份、恢复和总大小是不一样的。
EC2资源管理
- 使用实例元数据和自定义标签更轻松的追踪和识别实例
- 实例元数据是有关实例的数据,包括AMI ID、实例 ID、共有和私有IP、主机地址、MAC地址以及相关联的IAM实例角色和安全组
- 使用标签以不同方式将AWS分类,如按用途、所有者、环境等,标签包含 键 和 可选值组成
EC2备份与恢复
- 定期备份实例
- 把重要数据复制到多个位置
- 跨多个区域部署应用程序的关键组件
- 在应用程序设计时考虑实例重启后如何处理动态IP
- 监控事件并作出响应,如CloudWatch
- 确保随时可以处理故障转移
- 定期测试实例和EBS恢复流程
AWS 服务限制
- 服务数量有上限 - 可以在limits选项持续
- 每个区域的限制稍有差异
- 有一些硬性限制无法修改
- 可以对软性限制提出调整
- 使用Trusted Advisor服务检查限制情况