来自 数据 2021-07-17 09:14 的文章

海外高防ip_网站云防护_怎么防

海外高防ip_网站云防护_怎么防

Agari在基础设施方面做了大量投资。在这个项目将近两年的时间里,我们学到了一些经验,在我之前的博客中,我讨论了自动化存储库的组织和参数化环境。对于这篇文章,防御cc跟ddos攻击,我想谈谈状态管理和数据库自动化。国家管理使用Terraform最令人沮丧的事情之一是管理状态,Terraform将状态存储在地形.tfstate文件。您选择的解决方案在很大程度上取决于您的规模和基础设施的拓扑结构。通常,我们为总共四个产品和环境维护单独的状态文件,不包括一次性开发和集成环境。terraform_remote_state资源允许一个配置生成的状态被另一个下游配置使用,这允许您在需要时创建一个多层基础结构,防御ddos攻击书籍,并使用各种存储机制,如consur、Atlas或S3。根据环境的生命周期和更改频率来分离状态管理可能是有意义的。另外,如果不同步或者遇到麻烦,不要害怕偶尔手动编辑tfstate。这种格式很容易理解(如果可以预见的话会很冗长)。处理数据存储当涉及到您的数据库时,基础设施自动化会变得棘手,但它也非常重要!复制、分片、故障转移、备份和迁移都需要是可重复和可测试的。所以,别这么做。使用RDS,使用DynamoDB,使用其他人的数据库,电脑管家能防御ddos吗,并信任他们为您运行它。与销售数据库即服务的人相比,您更容易引入不稳定性或导致彻底失败。数据库自动化非常困难,很可能会搞砸。"但是,等等!我别无选择!"-几乎所有人,永远。不幸的是,除非你足够幸运,能够设计出你将负责ex nihilo的系统,否则你可能要处理一个或三个遗留数据库系统。在野外遇到数据库时,我首先要检查的就是复制。复制和故障切换不要与备份混为一谈,流式副本是数据库的只读副本,从主节点持续更新。如果主节点发生故障,则可以将复制副本升级为发生故障的主节点的替代品,并从它处理的最新事务中接管。另一个常见的用例是分发读取以减轻主服务器上的负载;为此,可以使用多个读副本。在Agari,我们使用一个名为repmgr的包来管理PostgreSQL集群上的复制。我们发现它对管理国家很有帮助。我们已经划分了Modcloth的repmgr Ansible角色,该角色配置该角色并管理我们的故障转移过程。备用节点上的repmgrd监视主节点的运行状况。当它检测到一个故障时,它通过amazonapi调用在头部射击另一个节点以停止实例并接管指向当前主节点的弹性IP。与EIP解除关联/重新关联有少量延迟,但通常这一过程在30秒以内完成,ddos防御结果,这对于我们的用例来说是可以接受的。我们正致力于使用consur的服务发现功能,而不是AWS EIP,这将消除延迟问题。在故障转移后,仍有一些手动步骤将以前的主节点转换为新的流式副本,上网安全,但在将来,我们可能会从头开始自动提供新的副本。有一个故障转移后的过程对故障进行根本原因分析是值得的,但是我们可以从过程中删除的手动步骤越多越好。备份复制不是备份。无论数据库集群中有多少冗余节点,也不管切分配置有多健壮,只需要一个开发人员上下发誓,他们以为自己在登台系统上,而不是在生产系统上。那边的小鲍比桌子需要帮忙。这就是实现自动化、可测试的时间点备份的原因。对于PostgreSQL,备份工具有几个选项。我们尝试过barman—它无法跟上我们数据库的大小、自定义EBS快照备份和wal-e。尽管EBS快照在恢复时间方面有一些明显的优势,我们已经在wal-e上进行了标准化。一个cron作业每24小时运行一次,将一个基本备份推送到S3,我们设置了PostgreSQL archive命令,将每个wal段压缩并归档到一个S3存储桶中,该存储桶配置了一个生命周期策略,可以删除超过三天的文件。测试你的备份!理想情况下,作为CI管道的一部分,以自动方式进行,但至少在每次对备份系统或数据库配置进行重大更改时尝试恢复。备份-恢复故障转移通常与超过某个任意阈值的数据库大小有关,因此尽早测试并经常测试。迁移最后,我想谈谈我们在试验基于EBS快照的备份系统时学到的一些东西。如果可以强制数据库在磁盘上处于一致状态,请执行原子磁盘快照并在不丢失数据的情况下继续处理事务。这对于在AWS区域或帐户之间移动数据库或者从遗留系统迁移到新配置的系统非常有效。虽然我们的系统通常可以容忍对数据存储写入程序的轻微中断,但是由于数据库节点上某些单独卷的大小,EBS快照可能需要14小时以上。然而!EBS快照是原子的,只需要存储当前快照和最近一个快照之间的变化增量。结果是,我们可以做一点数学运算,获取一系列精确定时的快照,并将获得可装载快照EBS卷的时间减少到几分钟而不是几个小时。如您所见,增量快照占用的时间显著减少。当然,这完全取决于向数据存储写入的数据量。你必须自己做实验来确定你的时间。