Я работаю над созданием установки аварийного восстановления и Runbook на основе AWS.
У меня нет опыта создания установок 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.
Это зависит от того, чего вы пытаетесь достичь и какой Катастрофа (это D в DR) от которого вы пытаетесь защититься. Наиболее вероятно D является Сбой экземпляра (который включает EC2, узел ElastiCache, узел RDS и т. д.). Каждый второй Катастрофа довольно редко.
Поэтому в большинстве случаев достаточно просто настроить несколько зон доступности с надлежащим автоматическим переключением при отказе, и все готово. Более конкретно:
Что осталось, это Экземпляры EC2. Вы должны иметь их в группы с автоматическим масштабированием (ASG) в нескольких зонах доступности, что означает, что если один экземпляр выходит из строя, он автоматически воссозданный в другом месте. Излишне говорить, что для этого требуются экземпляры без сохранения состояния, то есть все ваши данные должны находиться в базе данных или в общей файловой системе, такой как EFS, а не в экземплярах EC2. Только тогда вы сможете эффективно включить их в ASG.
Если это слишком сложно, вы можете настроить CloudWatch Alarm для автоматического восстановления отказавшего экземпляра - обычно тоже неплохо работает.
Или конвертируйте свои приложения в Докер-контейнеры и запустить их в Кластер Фаргейт что снова обеспечивает автоматическое восстановление в случае сбоя контейнера.
Суть в том, что когда развертывание - это свойство, созданное в облачный Таким образом, почти нет причин для традиционного ручного аварийного восстановления, поскольку высокая доступность и отказоустойчивость изначально заложены в развертывании.
Надеюсь, это поможет :)