# 监控和自动伸缩 - cloudwatch - 警告事件的捕获 ## 监控 - 查看运营情况,包括问题,对未来的见解 - 应用程序的性能 - 资源利用率 - 安全审计,收集信息和日志,确保合规性 - cloudwatch,监控服务,收集日志实时指标,指标监控,事件传递和进一步的分析,通过控制面板查看系统运行状况 - 指标,CPU利用率 - 日志类型 - clouldwatch logs - 日志组 - 日志流,进行筛选。如出现`error` - cloudtrail - 审计日志,审计的管理员可以在日志查看 - 每个用户的api调用的活动记录和监控,防止做一些非法的事情 - 谁更改了安全组的配置 - 谁关闭了实例 - aws服务之间的相互调用 - 存放在存储桶 ```{image} ./figures/cloud_trail1.png :width: 600px :align: center ``` ```{image} ./figures/cloud_trail2.png :width: 600px :align: center ``` ```{image} ./figures/cloud_trail3.png :width: 600px :align: center ``` ```{image} ./figures/cloud_trail4.png :width: 600px :align: center ``` - vpc flow logs - 进出vpc的流量日志 - 网络运行情况进行监控,不会影响网络本身的运行 ```{image} ./figures/vpc_flow_logs.png :width: 600px :align: center ``` ## 告警和事件 ### CloudWatch警报 - 确定指标 - 创建告警 - 定义触发阈值(正常:未超过阈值,告警:超过阈值,信息不足:数据不足) - 警报示例 - 统计数据:平聚值 - 下午1点钟,5分钟间隔进行评测 - 激活点数(多少个连续的劲爆点) ```{image} ./figures/vpc_flow_logs.png :width: 600px :align: center - Amazon EventBridge - EventBridge 可以接收事件(事件代表环境中发生更改),然后应用一项规则以便把事件路由到目标。EventBridge 是管理在 CloudWatch 中捕获的事件的首选方法。 - 示例 - EC2 实例向 CloudWatch 报告 CPU 利用率指标数据。 - 用户创建并配置了一个名为“CPUAbove90Percent”的自定义警报,以便知道 EC2 实例何时被过度使用。 - EventBridge 会执行两项操作:使用 Amazon Simple Notification Service (Amazon SNS) 主题向订阅的收件人发送电子邮件,并向运营团队的第三方监控工具发送富媒体通知。 ```{image} ./figures/event_bridge.png :width: 600px :align: center ## 负载均衡 - ELB 负载均衡器是AWS上唯一可用的负载均衡器,可以将用户以原生方式连接到您的EC2实例、容器部署和AWS Lambda函数。 - ELB类型 - OSI模型,每一层不同的协议,三种工作的层不一样 - HTTP和HTTPS(ALB,application load balancer):Application Load Balancer 支持基于内容的路由、在容器中运行的应用程序以及开放标准协议(WebSocket 和 HTTP/2)。这种类型的负载均衡器是对 HTTP 和 HTTPS 流量进行高级负载均衡的理想选择。 - TCP和UDP(NLB,Network Load Balancer:这种负载均衡器可以每秒处理数千万个请求,同时还能以超低延迟保持高吞吐量。Network Load Balancer 在连接层面(第 4 层)运行,根据 IP 协议数据将连接路由到目标。目标包括 EC2 实例、容器和 IP 地址。它是平衡 TCP 和用户数据报协议 (UDP) 流量的理想选择。 - IP(gateway Load Balancer):这种负载均衡器可以帮助您部署、扩展和管理第三方虚拟设备。它提供了一个网关,用于在多个虚拟设备之间分配流量,并根据需求扩展或缩减流量。这种分配方式可减少网络中的潜在故障点并提高可用性。Gateway Load Balancer 通过第三方虚拟设备以透明方式传递第 3 层的所有流量。它对源和目的地不可见。 ```{image} ./figures/elastic_load_balance.png :width: 600px :align: center ```{image} ./figures/elb_functions_list.png :width: 600px :align: center ## 自动伸缩 - ec2 auto scaling - 并不是非得和elb搭档使用,一起使用更加便捷(elb不是必选项) - auto scaling根据外界的流量 - 创建auto scaling - 启动模板(配置和参数启动新得实例) - AMI - 示例类型 - 关联卷 - 网络属性 - 用户数据 - 创建auto scaling组 - 最大容量,最大到几个ec2实例 - 最小容量,保证最低得要求 - 所需容量,实际的业务需要几个(最小容量和最大容量之间) - 按需分配 - 运行状况检查(实例出现故障终止,重启) - CloudWatch警报(SNS发送邮件,触发auto scaling进行自动伸缩,同时分析) - 计划伸缩 - 管理员对业务了解,设置计划扩展,如每周三有峰值,下周三之前提前准备资源 - 如没有办法了解,则动态扩展 - 动态伸缩 - 预测性扩缩 - 机器学习的模型对过去趋势的分析