我正在创建基于 AWS 的 DR 设置和运行手册。
我没有创建 DR 设置的经验,因此如果有经验丰富的人可以指导我,那将会非常有帮助。
我们的设置:
RDS MYSQL Aurora DB
ElastiCache
Ubuntu 16.04 Linux EC2 instances
Static files stored in S3
Route 53- Total of 250 record sets.
Application Load balancer
一切都在同一个 VPC 下。我们正在尝试构建 PilotLight DR 设置。
答案1
这取决于你想要实现什么目标,以及灾难(这就是德在灾难恢复)你试图防范。最有可能的是德是一个实例失败(包括 EC2、ElastiCache 节点、RDS 节点等)。其他所有节点灾难相当罕见。
因此,在大多数情况下,只需设置具有适当自动故障转移功能的多可用区即可完成。更具体地说:
- 极光- 使其成为具有至少 2 个节点的多可用区。您可以在不同的地区以求内心的平静。
- 弹性缓存- 使其成为跨可用区的多节点。ElastiCache 通常不保存宝贵的数据,毕竟它是一个缓存。
- S3- 启用版本控制并可能将存储桶复制到不同的区域。
- 路线 53- 别担心,这已经是全球性的了,而不是地区性的。
- 白蛋白- 默认情况下这已经是多可用区了。
剩下的就是EC2 实例你应该把它们放在自动扩展组跨多个可用区 (ASG),这意味着如果一个实例发生故障,它将自动重新创建其他地方。不用说,这需要无状态实例,即您的所有数据都应驻留在数据库中或 EFS 等共享文件系统上,而不是 EC2 实例上。只有这样,您才能有效地将它们放入 ASG 中。
如果这太难了,你可以设置CloudWatch Alarm 自动恢复失败的实例- 它通常也运行得很好。
或者将您的应用转换为Docker 容器并运行它们Fargate 集群当容器发生故障时,它再次提供自动恢复功能。
底线是 - 当部署是在云原生由于高可用性和容错能力是部署中固有的,因此几乎没有理由进行传统的手动 DR。
希望有帮助:)