有三种方法与AWS进行交互,分别是
AWS的账户包括根用户和IAM(Identity and Access Management)
根用户(root user):在AWS中最先被创建的账户被称作根用户(root user),根用户拥有AWS里的所有权限。我们通过邮箱/密码登录网页控制台或者通过访问密钥登录命令行或者API
IAM (Identity and Access Management):IAM 是一项 Web 服务,可让您管理对 AWS 账户和资源的访问。它还还可以显示AWS 账户中允许的人员和内容(身份验证),以及有权使用和使用您的 AWS 资源的人员和内容(授权)。一些与IAM相关的概念如下:
搭建应用程序所需的第一个构建模块是服务器。服务器通过提供 CPU、内存和网络容量来处理用户的请求并将其转换为响应,从而为应用程序提供动力。
在 AWS 上设置服务器来运行您的基础设施有很多计算选项。从根本上讲,存在三种类型的计算选项:虚拟机、容器服务和无服务器。
Amazon EC2 是一种 Web 服务,它允许配置称为 EC2 实例的虚拟服务器。启动 EC2 实例时,配置的第一个设置是通过选择 Amazon Machine Image (AMI) 来配置您想要的操作系统。
AMI 可以配置您想要的操作系统,还可以选择存储映射、架构类型(例如 32 位、64 位或 64 位 ARM)以及安装的附加软件。
EC2 实例是 AMI 中定义的实时实例,可以看做类与对象之间的关系。当启动一个新实例时,AWS 会分配一个在管理程序上运行的虚拟机。然后将您选择的 AMI 复制到根设备卷,其中包含用于启动卷的映像。最后可以获得一台可以连接并安装软件包和任何其他软件的服务器。
容器是一个标准化单元,用于打包代码及其所有依赖项。该软件包旨在在任何平台上可靠运行,因为容器创建了自己的独立环境。这使得将工作负载从一个地方转移到另一个地方变得很容易,例如从开发到生产或从本地到云。
Docker 是一种流行的容器运行时,它简化了容器隔离所需的整个操作系统堆栈的管理,包括网络和存储。
容器和虚拟机的区别如下图:
在 AWS 中,容器在 EC2 实例上运行,如果要尝试大规模管理您的计算,您需要了解如何将容器放置在实例上,如果容器发生故障会发生什么等问题。AWS 提供两种容器编排服务:Amazon Elastic Container Service (ECS) 和 Amazon Elastic Kubernetes Service (EKS)。
Amazon ECS 是一种端到端容器编排服务,可让快速启动新容器并跨 EC2 实例集群管理它们。
如果有在 Kubernetes 上运行的容器,并且想要一个可以为您的基础设施提供简单性、高可用性和精细控制的高级编排解决方案,那么 Amazon EKS 就是您的理想之选。
Serverless(无服务器)的定义包含四个方面。
AWS 有几个无服务器计算选项,包括 AWS Fargate 和 AWS Lambda。
AWS Fargate 是专门为容器构建的无服务器计算引擎。它通过分配适量的计算来实现这一点,消除了选择和处理 EC2 实例以及集群容量和扩展的需要。Fargate 同时支持 Amazon ECS 和 Amazon EKS 架构。
AWS Lambda 可以无需预置或管理服务器或容器即可运行代码。用户上传源代码,Lambda 会负责以高可用性运行和扩展代码所需的一切。
Lambda 函数包含三个主要组件:触发器、代码和配置。
网络是连接世界各地的计算机并允许它们相互通信的方式。在数字世界中,计算机处理消息传递的方式称为路由。
每台计算机都有一个IP地址,IP 地址使用位、0 和 1 的组合。
IPv4 表示法:下图中,32 位以8比特为一组。这些组中的每一个都转换为用句点分隔的十进制格式。
CIDR 表示法:它以起始 IP 地址开头,由正斜杠(“/”字符)和数字分隔。末尾的数字指定 IP 地址有多少位是固定的。例如192.168。1.0/24表示IP 地址的前 24 位是固定的。其余的都是灵活的。
VPC 是在 AWS 云中创建的隔离网络,类似于数据中心中的传统网络。创建 VPC 时,您需要选择三个主要内容:VPC名称、VPC所处的区域和用CIDR 表示法表示的IP地址范围。
上图是一个VPC网络,主要包含以下部分
子网可以看作基础网络中的较小网络或传统本地网络中的虚拟区域网络 (VLAN)。在 AWS 中,子网用于实现高可用性并为资源提供不同的连接选项。
在创建子网时,需要设置三个属性:VPC名称、可用区( Availability Zone)和用CIDR 表示法表示的IP地址范围。
当启动 EC2 实例时,将在子网中启动它,该子网将位于选择的可用区内。为了保持冗余和容错,请在两个不同的可用区中创建至少两个配置的子网。
AWS 在每个子网中保留五个 IP 地址,这些 IP 地址用于路由、域名系统 (DNS) 和网络管理。
路由表包含一组称为路由的规则,用于确定网络流量的方向,包含两种路由表
网络安全也包含两种,分别是ACL(Access Control Lists)和安全组(Security Groups)
Network ACLs 是子网级别的防火墙。Network ACLs 使您能够控制允许哪些类型的流量进入或离开您的子网。
默认Network ACLs 允许所有流量进出您的子网。但是,我们可能希望在子网级别限制数据。例如,如果有一个 Web 应用程序,可能会限制网络以允许 HTTPS 流量和远程桌面协议 (RDP) 流量到您的 Web 服务器。这时,我们需要修改入站和出站协议。
Security Groups 是EC2 实例级别的防火墙。安全组的默认配置阻止所有入站流量并允许所有出站流量。
AWS 存储服务分为三个不同的类别:块存储、文件存储和对象存储。
Amazon EC2 Instance Store 为您的实例提供临时块级存储。这种存储方式会将数据的生命周期与 EC2 实例的生命周期联系起来。实例存储通常非常适合临时存储不断变化的信息,例如缓冲区、缓存和暂存数据。它不适用于持久或持久的数据。
Amazon Elastic Block Storage (Amazon EBS) 是一种块级存储设备,可以将其附加到 Amazon EC2 实例。Amazon EBS 适用于频繁更改并需要在实例停止、终止或硬件故障时持续存在的数据。
Amazon EBS 有两种不同类型的卷:SSD 支持的卷和 HDD 支持的卷。
Amazon S3 是独立的存储解决方案,不依赖于计算(EC2)。Amazon S3 是一种对象存储服务。
在 Amazon S3 中,您必须将对象存储在称为桶的容器中。创建存储桶时,至少要选择存储桶名称和希望存储桶所在的 AWS 区域。
S3 存储桶策略:S3 存储桶策略类似于 IAM 策略,用来指定在存储桶上允许或拒绝哪些操作。S3 存储桶策略只能放在存储桶上,不能用于文件夹或对象。
对于可以挂载到多个 EC2 实例的文件存储,我们可以使用 Amazon Elastic File System (Amazon EFS) or Amazon FSx
关系数据库将数据组织成表。一个表中的数据可以链接到其他表中的数据以创建关系。表以行和列的形式存储数据。行,通常称为记录,包含有关特定条目的所有信息。列描述了该条目的属性。
关系数据库管理系统 (RDBMS) 允许您创建、更新和管理关系数据库。以下是关系数据库管理系统的一些常见示例:MySQL、PostgresQL、Oracle、SQL server、Amazon Aurora。
在 AWS 上运行一个关系数据库,有两种运行方式:非托管方式或托管方式。
Amazon DynamoDB 是一种完全托管的 NoSQL 数据库服务,可提供快速且可预测的性能以及无缝的可扩展性。
在 DynamoDB 中,表、项目和属性是三个核心组件。表是项目的集合,每个项目是属性的集合。 DynamoDB 使用主键来唯一标识表中的每个项目,并使用二级索引来提供更大的查询灵活性。
收集、分析和使用数据来做出决策或回答有关 IT 资源和系统的问题的行为称为监控。我们可以使用收集的数据来观察由资源过度利用、应用程序缺陷、资源配置错误或安全相关事件等事件引起的操作问题。
在AWS中,由资源创建的每个单独的数据点作为指标。随着时间的推移收集和分析的指标成为统计数据,例如平均 CPU 利用率,EC2 实例具有的其他指标示例包括网络利用率、磁盘性能、内存利用率以及在 EC2 上运行的应用程序创建的日志。
AWS 提供了一项名为 Amazon CloudWatch 的监控服务。Amazon CloudWatch 是一项监控和可观察性服务,可收集本模块中提到的数据。
系统的可用性通常表示为给定年份中正常运行时间的百分比。为了提高可用性,您需要冗余(redundancy),这通常意味着更多的基础设施:更多的数据中心、更多的服务器、更多的数据库和更多的数据复制。
在AWS中,我们采取一些策略来尽可能的优化系统使其具有高可用性。
负载均衡是指在一组资源之间分配任务的过程。我们使用负载均衡器在托管应用程序的所有服务器上分发请求。
对应用程序的请求将从客户端的浏览器被发送到负载均衡器,然后,它被发送到托管应用程序的 EC2 实例之一,返回流量将通过负载均衡器返回客户端浏览器。
AWS 提供 Elastic Load Balancing (ELB) 服务。ELB可以跨 EC2 实例以及容器、IP 地址和 AWS Lambda 函数分配传入的应用程序流量。ELB 服务由三个主要组件组成。
ELB类型:
对于两种类型的系统(主动-被动和主动-主动)的负载问题的不同缩放方法。
Amazon EC2 Auto Scaling 服务可以根据来自 Amazon CloudWatch 的指标自动创建和删除 EC2 实例来处理该任务。ELB 服务与 EC2 Auto Scaling 无缝集成。
EC2 Auto Scaling 包含三个主要组件。