У меня есть nginx и postgre sql, работающие на одном экземпляре ec2.
Он обслуживает приложение rails, которое считывает и записывает данные в эту базу данных.
Я хотел бы иметь 2 экземпляра за службой ALB для распределения нагрузки и обеспечения доступности.
Что мне делать, чтобы обеспечить согласованность данных в двух экземплярах?
Репликация мастера базы данных на другой сервер в EC2 затруднена, но, как уже указывалось, есть несколько вариантов. Лучше всего настроить сервер базы данных на другом экземпляре EC2. Таким образом, вы можете очень легко масштабировать свое приложение Rails, и все приложения Rails могут взаимодействовать с сервером базы данных.
Эта установка также имеет некоторые проблемы, поскольку сервер базы данных находится только на одном экземпляре EC2. Вы можете настроить реплику и управлять отработкой отказа самостоятельно или позволить AWS управлять этим за вас и использовать их службу RDS. С помощью RDS вы можете попросить Amazon поддерживать базу данных и реплику для вас и автоматически выполнять аварийное переключение, если главный сервер выходит из строя. AWS предоставит вам одну конечную точку для подключения всех ваших приложений Rails.