完整笔记可见个人博客https://sosocrown.github.io/
1. 云计算基础
1.1 云计算定义与特点:
- 云计算是一种基于互联网的计算模型,通过共享的计算资源,提供按需获取、快速交付和灵活扩展的计算服务。它将计算、存储、网络和其他相关技术资源提供给用户,使他们能够在不需拥有实际硬件设备和基础设施的情况下,通过网络访问和使用这些资源。
1.2 云计算服务模型:
- 1.2.1 IaaS(基础设施即服务):
- 熟悉 IaaS 提供的基础设施层,如 Amazon EC2 实例,允许用户管理操作系统、应用程序等。
- 1.2.2 PaaS(平台即服务):
- 详细了解 PaaS 模型,如 AWS Elastic Beanstalk,它提供托管的平台,简化应用程序的开发和部署。
- 1.2.3 SaaS(软件即服务):
- 了解 SaaS,如 Amazon S3、Amazon RDS 等,提供现成的软件和服务。
1.3 部署模型:
云计算的部署模型描述了云服务的基础设施在何处部署以及如何访问。主要有以下四种部署模型:
- 公共云: 公共云是对外提供服务的云计算基础设施,由云服务提供商管理和维护。多个用户可以共享这些资源,如 AWS、Azure、Google Cloud。
- 私有云: 私有云是一种在企业内部或特定组织中部署的云计算基础设施。资源在受限的范围内使用,提供更严格的安全性和隐私控制。
- 社区云: 社区云是为特定行业、垂直市场或社区组织提供的云计算基础设施,资源可以由多个组织共享。这种模型可以满足共同需求,同时保持一定程度的独立性。
- 混合云: 混合云结合了公共云和私有云,允许数据和应用程序在不同环境之间迁移。这使得用户能够在公共云中扩展或备份私有云中的资源。
1.4 AWS
Amazon Web Services
是由亚马逊公司提供的云计算平台和服务。它为个人、企业和组织提供了一系列基于云技术的计算、存储、数据库、网络、分析、机器学习等服务。AWS 的目标是帮助用户以高效、灵活和经济高效的方式构建和管理各种应用程序,而无需担心传统硬件基础设施的维护和管理。
AWS 提供的服务涵盖了广泛的领域,包括但不限于:
- 计算服务: 包括弹性虚拟服务器 EC2,Lambda 无服务器计算,Elastic Beanstalk 应用托管等。
- 存储和数据库: 包括S3(Simple Storage Service)对象存储,EBS(Elastic Block Store)块存储,RDS(Relational Database Service)关系数据库,DynamoDB NoSQL 数据库等。
- 网络和内容分发: 包括Virtual Private Cloud(VPC)虚拟网络,CloudFront内容分发网络,Route 53 域名系统等。
- 分析和大数据: 包括Redshift 数据仓库,Athena 查询服务,EMR(Elastic MapReduce)大数据处理等。
- 人工智能和机器学习: 包括SageMaker 机器学习平台,Rekognition 图像和视频分析,Lex 自然语言处理等。
- 安全和身份管理: 包括IAM 身份和访问管理,Key Management Service(KMS)数据加密,WAF(Web Application Firewall)应用程序防火墙等。
- 开发工具和集成: 包括CodeCommit 代码托管,CodeBuild 构建工具,CodeDeploy 部署工具,API Gateway 管理 API 等。
- 物联网: 包括IoT Core 物联网核心,Greengrass 物联网设备本地运算等。
AWS 为用户提供了按需使用、灵活扩展的计算资源,以及一系列强大的工具和服务,使用户能够根据业务需求进行快速创新和发展。作为全球领先的云计算服务提供商,AWS 在各种行业和规模的项目中广泛应用。
2. AWS 全球基础设施
AZ-可用区
- Availability Zone
- 一个独立的数据中心或机房
- AWS基础设施中的物理实际存在,代表独立的数据中心或机房,具有独立的电力、网络和故障隔离机制。用户可以利用可用区的设置来实现高可用性、容错和地理分布。
- 每个可用区被分配了唯一的标识符(例如:us-east-1a、us-east-1b),以区分不同的可用区。
Region-区域
- AWS区域是指AWS基础设施中的一个**物理地理区域,**具有自己的电力、网络和数据中心设施。
- AWS全球基础设施由多个区域组成,每个区域可以包含多个可用区。
AWS Edge Locations-边缘位置
在全球多个城市和地区战略性地分布,以使内容更接近终端用户,从而减少延迟并提高内容传递的整体性能。
AWS Global Accelerator
- 将用户的请求从全球各地路由到距离最近的可用源终端。
- 它通过使用全球分布的边缘位置(Edge Locations)和Anycast IP地址【任意播地址】,将用户的请求导向到距离最近的可用终端,从而实现更快的访问速度和更低的延迟。
- Global Accelerator 非常适用于非 HTTP 情况,如游戏 (UDP)、物联网 (MQTT) 或 VoIP,
- 利用AWS内部网络将请求路由到您的应用程序
- 适用于Elastic IP、EC2实例、ALB、NLB、公共或私有资源
- 稳定的性能
- 智能路由选择最低延迟和failover快速区域故障转移
- 不会出现客户端缓存问题(因为IP不会改变)
- 使用AWS内部网络传输数据
- 健康检查
- 全球加速器对您的应用程序进行健康检查
- 有助于使您的应用程序具备全球性(对于不健康的应用程序,故障转移时间小于1分钟)
- 适用于灾难恢复(得益于健康检查功能)
- 安全性
- 只需将2个外部IP地址加入白名单
- 得益于AWS Shield,具备DDoS防护功能
CloudFront
- AWS的 CloudFront 是一个内容分发网络(Content Delivery Network,CDN)服务
- 它通过在全球范围内建立边缘节点,将网站的内容复制并缓存到离用户最近的服务器上,以加速网站的加载,提供更好的用户体验。
- 一项加快将静态和动态 Web 内容(例如 .html、.css、.js 和图像文件)分发给用户的速度的 Web 服务。
-
静态内容(Static Content):
- 图像、CSS 样式表、JavaScript 文件、HTML 页面等。
- 静态内容不会因用户请求的不同而改变,因此可以被缓存以提高加载速度和性能。
-
动态内容(Dynamic Content):
- 动态内容可以根据用户的输入、状态、权限等不同情况来生成不同的响应。例如,根据用户的搜索查询生成的搜索结果页面、用户个人资料页面等都是动态内容。
CloudFront的运作过程:
- 内容上传: 首先,网站的所有内容(如图片、视频、CSS样式、JavaScript脚本等)都需要上传到亚马逊S3(Simple Storage Service)存储桶、Elastic Load Balancer、EC2(Elastic Compute Cloud)实例或其他支持的源服务器上。这些服务器被称为源服务器,它们存储着网站的原始内容。
- 内容缓存: 一旦内容上传到源服务器,CloudFront 会将这些内容复制到全球各地的边缘节点(Edge Locations)。这些边缘节点通常位于不同的城市和国家,离用户更近,从而减少了用户与源服务器之间的距离和网络延迟。
- 用户请求: 当有用户想要访问网站时,他们的请求会被发送到离他们最近的 CloudFront 边缘节点。
- 边缘节点响应: 边缘节点会检查用户请求所需的内容是否已经缓存在本地。如果缓存中有,它会立即将内容返回给用户,不需要再向源服务器发送请求。这就大大加快了网站内容的加载速度。
- 源服务器请求: 如果边缘节点上没有所需的内容(或者内容过期了),边缘节点会代表用户向源服务器发送请求,从源服务器获取内容。
- 内容更新: 如果网站的内容在源服务器上发生了更改,CloudFront 会自动检测到并更新边缘节点上的缓存,以确保用户获取到最新的内容。
CloudFront Geo Restriction地理限制
- 您可以通过白名单或黑名单限制用户从哪个国家访问您的分发
- 用例:版权法律
Cache Invalidation缓存失效
- 当您更新原始内容并希望刷新全球边缘位置中的所有缓存内容时
- 您可以强制刷新整个或部分缓存
- 您可以使所有文件 () 或特殊路径(/images/)失效
Lambda@Edge:
Lambda@Edge 是在 CloudFront 边缘节点上运行的 AWS Lambda 函数,用于在请求和响应的不同阶段执行自定义逻辑。
origin servers-源服务器
- Amazon S3 bucket: 您可以将 Amazon S3 存储桶作为 CloudFront 的源服务器,以将静态内容(如图片、CSS、JavaScript 等)分发到全球边缘位置。
- (Custom Origins): 这包括多种类型的自定义源服务器,可以通过 CloudFront 配置将内容从这些源分发到边缘位置。自定义源类型包括:
- Amazon EC2 实例: 您可以将运行在 Amazon EC2 上的应用程序作为源服务器,将动态内容分发到全球边缘位置。
- Amazon Elastic Load Balancer(ELB): 将位于 Elastic Load Balancer 后面的应用程序作为源服务器,以实现负载均衡和高可用性。
- Amazon API Gateway: 将托管在 API Gateway 上的 RESTful API 作为源服务器,以加速 API 请求的响应速度。
- 非 AWS 源服务器: 您还可以将位于其他云提供商或自己托管的服务器作为 CloudFront 的源服务器。
价格类别
- 全部价格类别:所有地区-最佳性能
- 价格类200:大多数地区,但不包括最昂贵的地区
- 价格类100:仅最便宜的地区
CloudFront V.S. S3 Cross Region Replication
-
CloudFront
- CloudFront uses global edge network
- files are cached for a TTL(like a day)
- greate for static content that must be available everywhere
-
S3 Cross Region Replication
- must be setup for each region you want replication
- files are updated in near real-time
- read only
- great for dynamic content that needs to be available at low-latency regions
CloudFront V.S. S3跨区域复制
- CloudFront
- CloudFront使用全球边缘网络
- 文件被缓存TTL(如一天)
- 适用于必须在任何地方提供的静态内容
- S3跨区域复制
- 必须为您想要复制的每个区域设置
- 文件实时更新
- 只读
- 适用于需要在低延迟区域提供的动态内容
AWS Global Accelerator V.S. CloudFront
它们都使用AWS全球网络和世界各地的边缘位置(Edge Locations)。
这两项服务都与AWS Shield集成,提供DDoS防护。
CloudFront:
- 优化缓存内容(如图像和视频)和动态内容(如API加速和动态网站交付)的性能。
- 内容在边缘位置(Edge Locations)上提供服务。
Global Accelerator:
- 适用于需要确定性、快速区域故障转移的HTTP用例。
- 适用于非HTTP用例,例如游戏(UDP)、物联网(MQTT)或VoIP(Voice over IP)。
- 适用于需要静态IP地址的HTTP用例。
- 提升在TCP或UDP上运行的广泛应用程序的性能。
- 在边缘位置代理数据包到运行在一个或多个AWS区域的应用程序。
简而言之,AWS Global Accelerator 主要用于提高广泛应用程序的性能,包括非HTTP用例,而 CloudFront 则主要用于优化缓存和动态内容的性能,以及适用于 HTTP 用例的加速和交付。
- They both use the AWS global network and its edge locations around the world
- Both services integrate with AWS Shield for DDoS protection
- CloudFront
- Improves performance for both cacheable content (such as images and videos)
- Dynamic content (such as API acceleration and dynamic site delivery)
- Content is served at the edge
- Global Accelerator
- Improves performance for a wide range of applications over TCP or UDP
- Proxying packets at the edge to applications running in one or more AWS Regions
- Good fit for non-HTTP use cases, such as gaming (UDP), IoT (MQTT), or Voice over IP
- Good for HTTP use cases that require static IP addresses
- Good for HTTP use cases that required deterministic, fast regional failover
3. 计算-compute
EC2
elastic compute cloud,弹性计算云
EC2的本质是运行在云中虚拟机上的web服务。EC2 instance的本质是云上的虚拟机
Amazon EC2 提供以下功能:
- instance-虚拟计算环境
- AMI-实例的预配置模板,也称为 *Amazon 系统映像
- 实例类型:实例 CPU、内存、存储和网络容量的多种配置
- 使用密钥对的实例的安全登录信息(AWS 存储公有密钥,您在安全位置存储私有密钥)
- 实例存储卷临时
- Amazon EBS 卷
- region AZ
- 防火墙,让您可以指定协议、端口,以及能够使用安全组到达您的实例的源 IP 范围
- 用于动态云计算的静态 IPv4 地址,称为弹性 IP 地址
- 元数据,也称为标签,您可以创建元数据并分配给您的 Amazon EC2 资源
- 您可以创建的虚拟网络,这些网络与其余 AWS 云在逻辑上隔离,并且您可以选择连接到您自己的网络,也称为 Virtual Private Cloud (VPC)。
EC2购买选项
-
按需实例 (On-Demand Instances):
- 特点: 按需实例没有长期合同,灵活性高,您只需支付您实际使用的计算能力,没有预付费或最低使用期要求。
- 适用场景: 适用于临时工作负载、不可预测的工作负载、短期任务、初创企业或项目,以及需要快速扩展和缩减的情况。
-
预留实例 (Reserved Instances):
- 特点: 预留实例需要事先支付部分费用,以换取更高的折扣,并在长期合同期间使用这些实例。分为标准、可转换、分摊和区域性预留实例。
- 适用场景: 长期运行的稳定工作负载,具有可预测的使用需求,希望获得更大折扣的用户。
分类
- 标准预留实例(Standard Reserved Instances):
- 指定的region 、instance family和大小,不允许灵活更改实例类型
- 这些预留实例适用于长期稳定的工作负载。
- 可转换预留实例(Convertible Reserved Instances):
- 可转换预留实例允许您在合同期内更改实例家族、大小和操作系统。这提供了更大的灵活性,适用于需要更改工作负载特性的情况。
- 虽然价格折扣通常较低,但您可以在长期合同内更改实例属性。
- 分摊预留实例(Scheduled Reserved Instances):
- 在特定的时间窗口内使用实例
- 区域预留实例(Regional Reserved Instances):
- 可在指定region内的多个AZ中使用
- 不允许更改实例家族(Instance Family)。
-
Spot 实例:
- 特点: Spot 实例基于市场供求定价,价格通常低于按需实例,但实例可能会在供求波动时被终止。
- 适用场景: 适用于可以容忍实例终止的工作负载,shot-time短期计算、批处理、大规模数据处理、测试和开发等。
-
Dedicated Hosts:
- 特点: Dedicated Hosts 提供物理服务器,可以在上面运行 EC2 实例。适用于需要控制硬件分配和软件许可方面的情况。
- 适用场景: 需要满足软件许可要求、安全性、合规性等需要的应用程序,以及需要在物理硬件上运行的特定工作负载。
1. On Demand 按需
recommended for **short-term** and **un-interrupted workloads**
按照小时计费,根据使用时间的多少进行付费。 缺点:贵
2. Reserved Instance 预留
recommended for **steady-state usage applications**
使用类型:
可转换预留实例(Convertible Reserved Instance)
- 实例类型转换
- 成本调整
计划性预留实例(Scheduled Reserved Instance )
- 预定灵活性:您可以指定特定的时间段,预订实例以满足您的计划性工作负载需求。例如,您可以预订每周的某个时间段或每天的特定时间段内的实例。
- 成本控制:通过计划性预留实例,您可以在计划性工作负载发生时,以更低的成本运行实例。
3. Spot Instance 竞价
请求未使用的 EC2 实例,这可能会显著降低您的 Amazon EC2 成本。
useful for workloads that are resilient to failure对于能够容忍故障的工作负载非常有用。
- batch jobs
- data analysis
- any distributed workloads
NOT suitable for critical job or database
竞价实例,当出价不够会被回收。 缺点:不稳定,但适合大规模集群计算
4. Dedicated Hosts 专用主机
-
physical server with EC2 instance capacity
物理服务器:EC2 Dedicated Hosts提供了一个完全专用的物理服务器,该服务器是由AWS托管的,专门为您的EC2实例提供。这意味着您的实例将独占整个物理服务器的计算资源,与其他用户的实例完全隔离。
-
help you address your compliance requirements
符合合规性要求:EC2 Dedicated Hosts可以帮助您满足合规性要求,例如在特定行业或法规中对计算资源的隔离性和可见性的要求。通过使用专用主机,您可以获得更高的隔离性和控制,以确保您的工作负载满足安全和合规性标准。
-
reduce cost by allowing you to use your existing server-bound software licenses
使用现有服务器绑定软件许可证:专用主机允许您使用您已拥有的、与特定物理服务器绑定的软件许可证。这意味着您可以将受限制的许可证软件(如特定操作系统、数据库或应用程序)部署到专用主机上,以充分利用您已经购买的软件许可证
5. Dedicate instance
实例存储选项
EBS 和 Instance Store
root volume & EBS volume & instance store
root volume是EC2实例的主要存储卷,通常用于操作系统和系统文件。
它是EC2实例的一部分,与实例的生命周期绑定。
EBS volume是一种可附加attach到EC2实例的虚拟硬盘
root volume是instance的一部分,可以是instance store或EBS volume。
- 如果根卷是实例存储,直接连接到实例主机。它提供了高性能和低延迟的存储,但是它是临时性的,
- 如果根卷是EBS卷,它是一种持久性存储,数据会被保留,即使实例停止或终止
AWS Savings Plans
一种用于降低计算资源成本的计划,它提供了更灵活的折扣方式,适用于不同类型的计算资源和使用模式。
特征 | EC2 Savings Plans | AWS Compute Savings Plans |
---|---|---|
适用范围 | EC2 实例 | EC2 实例和 Fargate 任务 |
适用性灵活性 | 更大的实例选择 | 限于 EC2 实例 |
跨区域使用 | 可以在多个 AWS 区域使用 | 限于一个 AWS 区域 |
在特定region内使用指定的instance family | 适用于您的 Fargate 和 Lambda 使用。 |
Compute Savings Plans
提供最大的灵活性和高达**66%**的按需价格折扣。这些计划会自动适用于您的 EC2 实例使用,不论实例类型大小区域、操作系统
它们还适用于您的 Fargate 和 Lambda 使用。
EC2 instance Savings Plans
在特定region内使用指定的instance family
可提供高达**72%**的按需折扣,以换取在选定的 AWS 区域(例如弗吉尼亚州的 M5)中对特定实例系列的承诺。这些计划会自动适用于使用情况,不论大小(例如 m5.xlarge、m5.2xlarge 等)、操作系统(例如 Windows、Linux 等)和租户(Host、Dedicated、Default)是否在指定的系列内。
通过 EC2 实例节省计划,您可以在实例系列内更改实例大小(例如从 c5.xlarge 到 c5.2xlarge)或操作系统(例如从 Windows 到 Linux),或从 Dedicated 租户切换到 Default,并继续获得 EC2 实例节省计划提供的折扣率。
SageMaker Savings Plans
可提供高达64%的按需折扣。这些计划会自动适用于您的 SageMaker 实例使用,不论实例系列(例如 ml.m5、ml.c5 等)、实例大小(例如 ml.c5.large、ml.c5.xlarge 等)、区域(例如 us-east-1、us-east-2 等)或组件(例如 Notebook、Training 等)。使用 SageMaker 节省计划,您可以随时将工作负载从 ml.c5 切换到 ml.m5,将使用情况从 Europe(爱尔兰)切换到 Europe(伦敦),或将使用情况从 Training 切换到 Inference,并继续获得好处。
EC2 Hibernate -休眠
hibernate会将实例内存 (RAM) 中的内容保存到Amazon EBS root volume。
Use cases:
long-running processing
saving the RAM state
services that take time to initialize
EC2 Hibernate – Good to know
- Supported instance families - C3, C4, C5, M3, M4, M5, R3, R4, and R5
- Instance RAM size - must be less than 150 GB
- Instance size - not supported for bare metal instances
- AMI: Amazon Linux 2, Linux AMI, Ubuntu & Windows…
- Root Volume: must be EBS, encrypted, not instance store, and large
- Available for On-Demand and Reserved Instances
- An instance cannot be hibernated more than 60 days
EC2 nitro
Nitro技术是Amazon Web Services(AWS)用于提供高性能、高可靠性和安全性的云计算服务的一项技术。
Nitro系统是基于Nitro技术构建的AWS的硬件和软件基础设施。它提供了直接访问计算、存储和网络资源的能力,同时隔离虚拟化实例,提供更好的性能和安全性。
Nitro技术是指AWS用于提供云计算服务的一项技术,而Nitro系统则是该技术的实际实施和基础设施。
placement groups 置放群组
EC2 服务会通过一些策略将instance置放在硬件上,以便减少故障,满足负载需求。
-
cluster 集群 :将一个AZ中靠近的实例打包在一起。通过使用该策略,工作负载可以实现所需的低延迟网络性能,以满足高性能计算(HPC)应用程序.
-
high performance but high risk高性能高风险
-
使用案例**😗*
big data job needs to complete fast
application that needs extremely low latency and high network throughput
-
-
partiton 分区 – 将实例分布在不同的逻辑分区上,以便一个分区中的实例组不会与不同分区中的实例组使用相同的基础硬件。该策略通常为大型分布式和重复的工作负载所使用,例如,Hadoop、Cassandra 和 Kafka。
使用案例:
HDFS, HBase, Cassandra, Kafka
-
Spread 分布 – 将实例分别置放在不同硬件上以减少相关的故障。
机架分布置放群组可以跨越同一区域中的多个可用区。对于机架分布置放群组,每个群组在每个可用区中最多可以运行七个实例。
应用案例:
- application that needs to maximize high availability
- 重要关键应用,必须隔离失败实例
scaling strategies-扩展策略
根据资源的需求自动调整计算实例的数量
- Target Tracking 扩展策略:
- 使用 CloudWatch 指标来跟踪资源的使用情况,如 CPU 使用率、网络流量等。
- 定义目标值,即您希望保持的指标水平。
- 系统将自动调整实例数量,以使跟踪的指标接近目标值。
- Simple 扩展策略:
- 定义一个或多个阈值,用于触发扩展或缩减操作。
- 当某个指标达到或超过阈值时,系统将执行相应的自动扩展操作,例如增加实例数量。
- 当指标低于阈值时,系统将执行缩减操作,例如减少实例数量。
- Step Scaling 扩展策略:
- 类似于 Simple 扩展策略,但您可以定义多个阶段,每个阶段都有一个阈值和扩展/缩减操作。
- 这允许您在不同的资源使用水平上采取不同的扩展步骤。
Auto Scaling
EC2 auto scaling
Amazon EC2 Auto Scaling 帮助您确保具有正确数量的 Amazon EC2 实例以处理应用程序负载。
ASG
Auto Scaling group
ASG(Auto Scaling Group)是一种用于自动扩展和管理云资源的服务,它能根据需求自动增加scale out或减少scale in实例数量,以适应应用程序的负载变化。
功能
Auto Scaling Group 可以实现以下功能:
- 自动扩展:ASG 可以根据负载情况自动增加或减少 EC2 实例的数量。当负载增加时,ASG 会自动启动新的 EC2 实例,以满足需求。当负载减少时,ASG 会自动终止多余的 EC2 实例,以节省成本。
- 健康检查:ASG 可以定期检查 EC2 实例的健康状态,以确保它们正常工作。如果某个实例出现问题,ASG 可以自动替换该实例,以保持应用程序的可用性。
- 负载均衡:ASG 可以与负载均衡器(如ELB)结合使用,以分发流量到不同的 EC2 实例。这有助于提高应用程序的可用性和性能。
- 手动扩展:除了自动扩展外,您还可以手动调整 ASG 中的实例数量,以满足临时的或非常大的负载。
- 细粒度控制:ASG 可以配置以自定义的方式来满足应用程序的需求,如设置最小和最大实例数量、扩展策略、启动配置等。
ASG拓展类型
手动-munual scaling
通过修改 Auto Scaling 组的最大容量、最小容量或所需容量的配置,然后Auto Scaling 管理创建或终止实例的流程匹配修改后的容量。
定时-scheduled actions
定时扩展允许您在特定时间或日期执行扩展或缩减操作,无需依赖于实际负载情况。这对于已知的预期负载变化很有用,例如每天的业务高峰期。
例如周末不允许,不需要实例
按需/动态-dynamic scaling policies:
动态扩缩会根据流量的变化扩展自动扩缩组的容量。
-
Target Tracking scaling-目标跟踪
没有固定阈值
据目标指标来动态调整实例数量
根据Amazon CloudWatch 指标和目标值增加或减少组的当前容量。
-
Simple Scaling(简单扩展):
基于固定的阈值进行扩展或缩减
通过单次扩缩调整来增加和减少组的当前容量,每次扩缩活动之间有一个冷却时间。例如在负载高峰时增加实例数量,在负载下降时减少实例数量。
-
Step Scaling(阶梯扩展)
设置阶梯,每个阶梯都有一个与之关联的触发条件
通过一系列扩缩调整(也称步进调整)来增加和减少组的当前容量,具体调整因警报严重程度而异
预测-predictive scaling policies
预测式扩展非常适合以下情况:
- 周期性流量,例如正常营业时间内的高资源利用率以及晚上和周末的低资源利用率
- 重复 on-and-off 的工作负载模式,例如批处理、测试或定期数据分析
- 初始化需要很长时间的应用程序,从而在向外扩展事件期间对应用程序性能造成明显的延迟影响
Cross-Zone Balancing
Cross-Zone Balancing允许ASG在跨越多个AZ时,尽量均匀地分布实例,以确保各个可用区的负载相对平衡。
- Application Load Balancer
- Always on (can’t be disabled)
- No charges for inter AZ data
- Network Load Balancer
- Disabled by default
- You pay charges ($) for inter AZ data if enabled
- Classic Load Balancer
- Disabled by default
- No charges for inter AZ data if enabled
ASG默认终止策略ASG Default Termination Policy(简化版本):
- 查找具有最多实例的可用区(AZ)。
- 如果在该可用区有多个实例可供选择,则删除具有最旧启动配置的实例。
- ASG默认尝试在可用区之间平衡实例数量
Lifecycle Hooks
Lifecycle Hooks允许您执行自定义脚本或操作。这使您能够在实例处于特定状态时执行额外的任务,如在实例启动前进行初始化操作,或在实例终止前执行清理任务。
Lifecycle Hooks有两种类型:
- Lifecycle Hook for Instance Launch (启动实例生命周期挂钩): 当新实例被添加到ASG并处于“Pending”状态时触发。您可以在此时执行一些初始化任务或验证操作。只有在完成这些任务后,实例才会被标记为“InService”状态并接收流量。
- Lifecycle Hook for Instance Termination (终止实例生命周期挂钩): 当实例即将被终止时触发。您可以在此时执行清理任务或将实例从其他服务中解除绑定,以确保安全地终止实例。
- 默认情况下,一旦在ASG中启动实例,它就处于“in service”状态。
- 您有能力在实例进入“已服务”状态之前执行额外的步骤(“pending”状态)。
- 您有能力在实例终止之前执行一些操作(“terminating”状态)。