低代码到底是不是行业毒瘤?一线大厂怎么做的?戳此了解>>> 了解详情
写点什么

如何使用 AWS Auto-reboot 和 Auto-recovery 进一步提升单机高可用

2019 年 11 月 20 日

如何使用AWS Auto-reboot和Auto-recovery进一步提升单机高可用

根据 AWS 的推荐设计原则,搭建一个云端应用系统时,需要记住的一个原则是“design for failure”,也就是系统架构设计的时候需要考虑到应用系统的每一个层面,包括硬件和软件是可能出现故障的,并据此在应用系统架构设计上消除单一故障点,从而实现高可用性的系统架构。


有些应用由于历史或其他原因,没有按照这个原则设计高可用的架构,因此在部署上存在单一故障点,比如某一台 EC2 实例的软件或者底层硬件出现故障的时候会影响到这部分应用。如何保证或者大大提高单机 EC2 的可用性是非常重要的问题。


针对这些用户的需求,AWS 推出了两个非常有用的监控功能:自动重启(auto reboot)EC2 实例的 CloudWatch 警报和自动恢复(auto recovery)EC2 实例的 CloudWatch 警报。这两个警报能够在你设定的阀值内自动重启因为实例故障或者底层硬件故障的 EC2 实例,最快时间恢复实例健康,从而大大降低了 down 机时间,让应用系统快速从软件或者底层的软硬件故障中自动地恢复,大幅度提升应用的整体可用性。具体介绍如下:


  • 自动恢复 EC2 实例的 CloudWatch 警报


任何物理机都可能发生故障,云端的物理主机也不例外。使用 AWS 云平台,当底层硬件发生故障时,你无需人工干预或者联系 AWS 的支持工程师帮助您处理并恢复实例,通过事先创建 CloudWatch 的 StatusCheckFailed_System(状态检查失败(系统))警报监控 EC2 实例,在实例运行的物理主机发生底层硬件故障的时候能够自动触发警报,一方面根据配置发送通知给贵司相关人员,另一方面以最快时间将实例迁移到健康的物理硬件上,并保持实例 ID、私有 IP 地址、弹性 IP 地址以及所有实例元数据不变。


自动恢复实例的 Cloudwatch 警报有以下要求:


· 仅支持 C3、C4、M3、R3 和 T2 实例类型


· 仅支持 VPC 中的实例,不支持 EC2-Classic 实例


· 仅支持完全使用 EBS 存储的实例,不支持使用任何实例存储卷的实例


  • 自动重启 EC2 实例的 CloudWatch 警报


以前当您遇到由于实例内部的软件故障导致实例无法正常访问时,你只能选择手动重启实例让实例从故障中恢复,这个过程由于需要人工的干预,可能导致较长时间的实例不可访问。现在,您可以创建 Cloudwatch 的 StatusCheckFailed_Instance(状态检查失败(实例))警报监控 EC2 实例,并在实例运行状况检查失败时自动重启此实例,从而实现在短短几分钟时间内即可重启您的实例并恢复实例。重启实例时,其仍驻留在相同的物理主机上,因此您的实例将保留其公有 DNS 名称、私有 IP 地址及其实例存储卷上的任何数据。


  • 如何配置


为了大幅度提升单机的高可用性,建议您在一个实例上同时配置上述两种 Cloudwatch 警报,以监控软硬件故障并自动恢复实例。配置的时候需要注意的一点是:使用 IAM user 创建两个警报,其中自动重启 EC2 实例的警报的检测周期必须要大于自动恢复实例的警报的检测周期,比如下面例子中,自动重启 EC2 实例的检测周期是 3,自动恢复 EC2 实例的检测周期是 2。


自动重启 EC2 实例的警报的示例(StatusCheckFailed_Instance):



自动恢复 EC2 实例的警报的示例(StatusCheckFailed_System):



更多信息请参考


http://docs.aws.amazon.com/zh_cn/AmazonCloudWatch/latest/DeveloperGuide/UsingAlarmActions.html#AddingRecoverActions


http://docs.aws.amazon.com/zh_cn/AmazonCloudWatch/latest/DeveloperGuide/UsingAlarmActions.html#AddingRebootActions


本文转载自 AWS 技术博客。


原文链接:


https://amazonaws-china.com/cn/blogs/china/aws-auto-reboot-auto-recovery/


2019 年 11 月 20 日 08:00253

欲了解 AWS 的更多信息,请访问【AWS 技术专区】

评论

发布
暂无评论
发现更多内容

kafka的实现原理

八两

kafka Kafka知识点 kafka实现原理 kafka架构

百度大脑 EasyEdge 推出端云协同服务,大幅提升本地部署模型迭代效率

百度大脑

sql注入竟然把我们的系统搞挂了,怎么办?

苏三说技术

java安全

机器学习·笔记之:Inverse and Transpose

Nydia

大作业(一)

bing5tui3

极客时间架构师二期

2 期架构师训练营 - 第六周作业与总结

Vicente

架构师训练营第2期

5G花式过年指南

脑极体

关于 Clubhouse 的一些零散的想法

Charles

产品 随想 clubhouse

2 期架构师训练营 - 第四周作业与总结

Vicente

架构师训练营第2期

大作业(二)

bing5tui3

架构师训练营第2期

《未来呼啸而来》- 技术改变生活

石云升

2月春节不断更 技术改变生活 未来呼啸而来

如何在数据库中进行RBAC权限应用

CloudQuery社区

数据库 权限管理 数据管理 rbac

注册中心 Nacos 异常实例需要30s才能剔除 Nacos心跳时间设置(踩坑)

laker

Spring Cloud nacos spring cloud alibaba

尝试从用户的角度思考(PO的姿势)

Bruce Talk

Scrum 敏捷开发 Agile Product Owner

阅读笔记:Python A-Z 技巧

Sicolas Flamel

Python 读书笔记 日常思考

杜绝“萝卜章”风险,区块链电子签章助力企业降本“保真”

CECBC区块链专委会

电子签名

日记 2021年2月7日(周日)

Changing Lin

个人感悟 2月春节不断更

Java函数式编程Stream.collect()为什么这么受欢迎?

码农架构

Java 架构 函数式编程

2 期架构师训练营 - 第八周作业与总结

Vicente

架构师训练营第2期

最新版gradle安装使用简介

程序那些事

Gradle 程序那些事 构建工具 build 打包工具

从HTTP到HTTPS

喵叔

https HTTP 2月春节不断更

话题讨论 | 新年将至, 程序员如何以代码送出新春祝福

孙叫兽

Java 程序员 前端 话题讨论 新春祝福

百度大脑 EasyData 智能数据服务平台上线文本数据清洗功能

百度大脑

驱动力读书笔记之五

张老蔫

28天写作

2 期架构师训练营 - 第九周作业与总结

Vicente

架构师训练营第2期

【LeetCode】盒子中小球的最大数量

HQ数字卡

算法 LeetCode 2月春节不断更

2 期架构师训练营 - 第三周学习总结

Vicente

架构师训练营第2期

Linux Lab 进阶: Rootfs 文件系统 &Linux 与 Uboot 调试

贾献华

Linux Linux Kenel rootfs uboot usb

2 期架构师训练营 - 第七周作业与总结

Vicente

架构师训练营第2期

浪潮云洲:从工业互联网实践想开去

浪潮云

工业互联网

【Python】给PDF添加水印

AXYZdong

Python 2月春节不断更

2021 ThoughtWorks 技术雷达峰会

2021 ThoughtWorks 技术雷达峰会

如何使用AWS Auto-reboot和Auto-recovery进一步提升单机高可用-InfoQ