Мы планируем переместить наше приложение Tomcat / MySQL в облако Amazon с использованием двух экземпляров EC2 (inst_1 и inst_2), работающих в разных зонах доступности, при этом inst_1 будет содержать главную базу данных RDS, а inst_2 - подчиненную базу данных RDS. Если мы используем эластичную балансировку нагрузки для балансировки трафика между двумя экземплярами, будет ли трафик, направленный в inst_2, который включает транзакции вставки / обновления / удаления базы данных, сначала обновит главную базу данных RDS в inst_1 с последующим синхронным обновлением подчиненного устройства в inst_2; тем самым гарантируя, что два экземпляра RDS всегда синхронизированы? Опубликованная информация Amazon (технические документы) предполагает это, но не указывает это прямо. Если нет, то как обеспечить синхронизацию двух экземпляров RDS? Дополнительное примечание: мы планируем использовать Amazon Elastic Beanstalk. Спасибо!
Amazon RDS позволяет настроить так называемую Multi-AZ, что означает, что у вас есть основной сервер в одной зоне доступности, а резервный - в другой зоне доступности.
Ваши серверы приложений EC2 с балансировкой нагрузки всегда будут обращаться к одному и только одному из этих серверов в любой момент времени: обычно к основному, пока он не выйдет из строя, после чего ваше приложение должно автоматически переключиться на дополнительный сервер.
Единственный случай, когда inst_1 может получить доступ к первичному RDS, в то время как inst_2 обращается к вторичному RDS, - это во время фактического переходного периода переключения при отказе, и это будет только потому, что inst_1 еще не был уведомлен о сбое.
Такие операции, как вставка, обновление и удаление, функционируют таким образом, что оба сервера обновляются одновременно.