Если кто-то читает это в 2019 году, я подумал, что было бы хорошо вмешаться.
Чтобы полностью использовать горизонтальное масштабирование, вы должны сохранять экземпляры EC2 без сохранения состояния.Более подробную информацию можно найти в этом документе AWS в разделе Архитектура без сохранения состояния.
https://d1.awsstatic.com/whitepapers/AWS_Cloud_Best_Practices.pdf
Нужна ли мне база данных в RDS, где каждый экземпляр просто указывает на нее?
Да!это довольно стандартная настройка aws.
Как насчет пользовательских файлов.Если пользователь загрузил файл на сайт, то этот файл должен быть доступен немедленно во всех экземплярах немедленно, как это возможно.Я не думаю, что иметь 3 копии на 3 экземплярах очень практично.
Это часть волшебства, которое приходит с AWS и облаком.Это можно сделать с помощью S3.S3 реализует что-то согласованное по принципу «чтение после записи», что гарантирует полную согласованность для всех новых запросов на размещение.
Если я изменю сайт, скажем, что-то изменим в файле CSS, как мне синхронизироватьизменения для всех экземпляров.
Это зависит от того, на что похож ваш процесс развертывания.Для статического контента вы можете рассмотреть возможность использования CloudFront.Это версия для статических файлов.Другой способ сделать это - использовать группу автоматического масштабирования.Поменяйте конфигурацию запуска с новым ami, содержащим новую версию, и начните уничтожать старые экземпляры один за другим!
Как EBS или S3 играют роль во всем этом.EBS и S3 обслуживают очень разные потребности хранения.Этот вопрос слишком широк, чтобы на него ответить.
Мои два цента - прочитать лучшие практики и архитектуру aws, чтобы полностью использовать облако.Не пытайтесь изобретать велосипед.На самом деле все проще, чем кажется.Приветствия.Почему так сложно синхронизировать файлы в экземпляре ec2?возможно, потому что вам не нужно делать это для начала (да, в некоторых случаях это необходимо, но я не думаю, что это один из них).Вопрос вопрос.Спросите, есть ли способ построить это, где мне не нужно синхронизировать мои файлы с git?Создайте облачную архитектуру и программы для полноценного использования облака и облегчения вашей жизни.
Однако, если вы все же хотите пойти по этому пути по какой-либо причине, я бы посмотрел в devs на aws для управления ресурсами.Ура!