Перемещение приложения в Amazon EC2 с помощью S3
Недавно я создал веб-приложение. В приложении есть статические части (библиотеки, классы и т. Д.) И динамические части (изображения, кеш, логи и т. Д.). Однако некоторые статические части приложения потребуют редких изменений. Давайте назовем их частично статичными. В целом есть статические, частично статические и динамические части.
Поэтому я пытаюсь адаптировать свое приложение к Amazon AWS (EC2 и S3). Я не думаю, что это хорошая идея поместить все файлы приложений в экземпляр EC2. Я думаю поставить статические и частично статические части на EC2 и динамические части на S3.
- Как только я стабилизирую приложение на EC2, я создам AMI и скопирую его в новые экземпляры.
- Всякий раз, когда мне нужно изменить частично статические части, я прекращаю работу всех экземпляров EC2, кроме одного, и вносю изменения. После изменений я бы создал новые экземпляры.
- Динамические части, такие как загруженные файлы, изображения и т. Д., Будут доступны всем экземплярам и не вызовут проблем с синхронизацией.
Это подходящий способ использовать EC2 и S3?
1 ответ
Я думаю поставить статические и частично статические части на EC2 и динамические части на S3.
Я думаю, что вы используете термины статический и динамический иначе, чем это понимают большинство из нас. Статическими данными будут изображения, загруженные пользователями. Динамические данные - это то, что генерируется кодом. Я думаю, что вы сосредоточены на частоте, с которой эти данные могут измениться. Возможно, вы имеете в виду, что пользовательские изображения статичны в том смысле, что после загрузки они никогда не изменятся, в отличие от статического HTML-файла, который вы можете обновлять время от времени. В дальнейшем я собираюсь ссылаться на статические и динамические соответственно на своих собственных терминах: файлы, которые обслуживаются как есть, и файлы, которые являются кодом, который генерирует данные.
Статические файлы должны быть размещены на S3. Даже если вы в конечном итоге можете изменить их или прекратить ссылаться на них. Лучше всего, чтобы каждая версия файла имела уникальное имя.
Динамические данные должны быть размещены на ваших экземплярах EC2. В идеале у вас должен быть метод обновления этих данных без завершающих экземпляров, возможно, это средство общей файловой системы, которое позволит вам поддерживать синхронность всех узлов относительно того, что они обслуживают. С другой стороны, если небольшие промежутки во времени, когда узлы обслуживают другой код, могут быть приемлемыми, вы также можете использовать сценарии для выталкивания файлов.