aws集群重启_使用自动伸缩组在AWS中运行安全数据库集群

aws集群重启

当您必须在AWS上运行可扩展应用程序时,您的数据库也必须是可扩展的。 扩展无状态应用程序层更容易,在无状态应用程序层中,每个节点几乎都是一次性的-即使3节点集群中的一个节点发生故障,您也可以启动另一个节点,而不会注意到。

数据库层是有状态的,因此存在丢失数据的风险。 仅拥有一个节点不是一个选择,因为一个节点总是会宕机,这意味着停机。 因此,您需要一个集群中的多个节点,以确保您的应用程序具有高可用性和容错能力(我不会在术语上有所差异)。

我在说什么数据库? 没关系 它可以是SQL或NoSQL数据库–每个数据库都有某种形式的集群。 无论是主动-主动还是主动-被动。

现在,特别是对于AWS,您可以选择RDS(或其他托管选项),它将为您处理。 但是,如果没有托管选项(例如Cassandra),或者您觉得托管选项没有给您足够的控制权,或者价格更高,或者您所需的版本不可用,则您必须自己管理数据库层。 我不会详细介绍如何配置特定于数据库的群集-您应该查看特定数据库的文档。 我将尝试提供一些技巧,以提示如何安全地运行支持数据库集群的基础架构。

这里是自动缩放组。 它们允许您有一组相同的节点(基于启动配置),并且ASG通过在现有节点发生故障时启动新节点来确保您始终拥有至少X个健康节点(它们可以自动杀死不健康的节点(即,节点)无法响应自动运行状况检查))。

这对于应用程序节点来说真是太棒了,但是对于数据库节点可能是个问题。 如果数据库节点一段时间没有响应,则不一定要杀死它。 这就是为什么我在下面汇总了一些避免陷阱的提示的原因。 不幸的是,其中许多服务无法通过CloudFormation使用,因此您必须手动进行操作。 并对其进行记录,以防万一您需要重新创建堆栈时不会忘记:

  • 将最小节点数设置为1。它可以防止在尝试其他不相关的ASG时意外地将“所需”计数设置为0。
  • 确保已为每个实例启用终止保护,并且已根据ASG启用了扩展终止保护。
  • 在ASG设置中,有“悬浮过程”。 确保暂停“终止”和“替换不健康”。
  • 确保在启动配置中,不会终止EBS卷。 考虑到您已禁用所有终止选项,为什么需要它? 好吧,由于底层主机的问题,终止有时可能会发生,或者可能安排将节点停用
  • 如果需要从EBS卷还原,请执行以下操作:1.让ASG产生一个新节点2.将“启动”暂时添加到已暂停的操作中3.分离节点的根卷4.将旧的EBS卷附加到/ dev / xvda 5.启动节点。
  • 设置生命周期策略(通过CloudFormation或手动)以对数据库EBS卷进行备份。 确保为卷设置了正确的标签(并且只能手动完成)
  • 确保ASG可以在多个可用区域中生成实例(以防实例掉线)

如果您遵循此步骤,则您的自动伸缩组将不会完全像自动伸缩组那样运行。 在负载增加的情况下,您仍然可以配置自动增加节点数,但是对于数据库层来说,其余功能很少是一个好主意–您宁愿解决现有计算机上的数据库问题,即使暂时停止也是如此。不只是产生新的。

但是你应该拥抱失败。 即使具有所有终止保护,您也必须假设一切都可能失败并消亡,并且应该有一条清晰的路径来还原节点。

翻译自: https://www.javacodegeeks.com/2020/02/running-a-safe-database-cluster-in-aws-with-auto-scaling-groups.html

aws集群重启

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/331646.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

接口 DataOutput

java.io 接口 DataOutput 所有已知子接口: ImageOutputStream, ObjectOutput 所有已知实现类: DataOutputStream, FileCacheImageOutputStream, FileImageOutputStream, ImageOutputStreamImpl, MemoryCacheImageOutputStream, ObjectOutputStream, Rand…

java流与文件——流

【0】README 0.1) 本文描述转自 core java volume 2, 旨在理解 java流与文件——流 的相关知识; 0.2) 输入流和输出流(InputStream 和 OutputStream传输单位是基于单字节): 0.2.1&#xff09…

c语言结构体定义字符串数组,C语言,结构体中字符串的声明(采用字符指针还是字符数组)...

结构体中,字符串选项是用字符数组表示好,还是用字符指针表示好?typedef struct person{char *name;int age;char sex[6];};该结构体中name用的是指针而不是数组,所以需要给字符串在堆上申请内存然后再赋值;…

java –cp ./:_成为Java流专家–第2部分:中级操作

java –cp ./:就像魔术棒一样,中间操作将一个Stream转换为另一个Stream。 这些操作可以无穷无尽的方式组合在一起,以可读有效的方式执行从简单到高度复杂的任务。 本文是五分之二,其中还有一个GitHub存储库,其中包含每个单元的说…

c语言编程代码对父母感恩,c语言中编程:每个做父母的都关心自己孩子成人后孩子的生高:...

c语言中编程:每个做父母的都关心自己孩子成人后孩子的生高:据有关生理卫生知识与数理统计分析表明,影响小孩成人后的身高的因素包括遗传、饮食习惯与体育锻炼等.小孩成人后的身高与其父母的身高和自身的性别密切相关.设faHeight为其父身高,moHeight为其母…

Servlet之javaweb应用(二)

一、 使用 JavaEE 版的 Eclipse 开发动态的 WEB 工程(JavaWEB 项目) 1). 把开发选项切换到 JavaEE 2). 可以在 Window -> Show View 中找到 Package Explorer, 并把其拖拽到开发区的左边 3). 在 Servers 面板中新建 Tomcat 服务器. 一定要关联到 Tomcat 安装的根目录 4). 新…

java流与文件——文本输入输出

【0】README 0.1) 本文描述转自 core java volume 2, 旨在理解 java流与文件——文本输入输出 的相关知识; 0.2) 在保存数据时,可以选择是二进制还是文本格式; 在存储文本字符串时, 需要考虑字…

RandomAccessFile类解析

【0】README 0.1) 本文描述转自 core java volume 2, 旨在理解 java流与文件——RandomAccessFile类解析 的相关知识; 0.1) 本文 转自: http://blog.csdn.net/akon_vm/article/details/7429245 , for com…

Servlet之Tomcat配置与启动(一)

一、 部署并启动 tomcat 服务器 1). 解压 apache-tomcat-7.0.11.zip 到一个非中文目录下 2). 配置一个环境变量 java_home(指向 JDK 安装的根目录) 或 jre_home 3). 通过双击 apache-tomcat-6.0.16\bin 目录下的 startup.bat, 启动服务器 4). 可以在浏览器中输入 localhost:8…

随机数生成器c语言,句子随机生成器-怎么用C语言生成随机数

为随机数生成器初始化一个种子值在易语言中使用什么命令名置随机数种子 ()‘调用格式: 〈无返回值〉 置随机数种子 (〔整数型 欲置入的种子数值〕) - 系统核心支持库->算术运算英文名称:randomize为随机数生成器初始化一个种子值,不同的种…

nsstring 空值比较_用比较器的nulls排序具有空值的列表

nsstring 空值比较你好朋友, 在本教程中,我们将看到如何使用Java 8 Comparator.nullsFirst在列表中的项目很少为空时如何对项目列表进行排序,从而将null视为列表中的最小元素。 –什么是比较器 – nullsFirst方法在Comparator中做什么 –…

hibernate的Configuration和配置文件

一、hibernate的入口Configuration 在Hibernate中,Configuration是hibernate的入口。在实例化一个Configuration的时候,Hibernate会自动在环境变量(classpath)里面查找Hibernate配置文件hibernate.properties。如果该文件存在&…

单片机c语言6种开方,单片机快速开平方的算法

C语言中开平方的算法中要开平方的话,可以在头文件中加#include .然后调sqrt(n);函数即可.但在单片机中要开平方.可以用到下面算法:算法1:本算法只采用移位、加减法、判断和循环实现,因为它不需要浮点运算,也不需要乘除运算,因此可以很方便地运…

spring 配置只读事务_只读副本和Spring Data第3部分:配置两个实体管理器

spring 配置只读事务我们之前的设置可以正常工作。 我们现在要做的是进一步发展,并配置两个单独的实体管理器,而不会影响我们之前实现的功能。 第一步是将默认实体管理器配置设置为主要配置。 这是第一步 package com.gkatzioura.springdatareadreplic…

java流与文件——读写二进制数据(DataOutput + DataInput)

【0】README 0.1) 本文描述转自 core java volume 2, 旨在理解 java流与文件——读写二进制数据(DataOutput DataInput)的相关知识; 0.2) for complete my diy code, please visit https://github.com/p…

dsp课程设计c语言源码,DSP课程设计-基于C语言实现256点的FFT精选.pdf

DSP课程设计-基于C语言实现256点的FFT精选XX 大学J1111111 UNIVERSITYDSP 课 程 设 计基于CCS 的FFT 算法的C 语言实现和验证学院名称:专业班级:学 号:学生姓名:指导教师姓名:201 年 0 月 0 日一、 课程设计目的1.此次…

java 字符数组与字符串_用于字符串和数组的5种简单有效的Java技术

java 字符数组与字符串Java通常会排在前五种最流行的编程语言中,因此可以理解。 它是一种通用语言,非常容易学习,因为它是一种高级语言,并且可以满足许多用例。 由于这些原因,Java是一门很棒的语言,可以用来…

Hibernate之映射

一、映射文件 Hibernate在实现ORM功能的时候主要用到的文件有: 1、 映射类(*.Java) 描述数据库表的结构,表的字段映射为类的属性,表的记录映射为类的对象。 2、映射文件(*.hbm.xml) …

java流与文件——ZIP文档

【0】README 0.1) 本文描述转自 core java volume 2, 旨在理解 java流与文件——ZIP文档 的相关知识; 0.2) for source code, please visit https://github.com/pacosonTang/core-java-volume/blob/master/coreJavaAdvanced/cha…

单片机与gsm通信c语言,gsm模块如何与单片机通信?

51单片机与GSM模块实现通信1、检测串口线的好坏1)将串口线插在电脑上,用短路子短接串口的2脚和3脚2)打开串口调试助手3)点击自动发送,在自动发送的窗口中随便发个数据,看看能不能接收到若能接收到自己发的数据表示串口线是正常的,…