Развертывание сайта на Amazon AWS - PullRequest
5 голосов
/ 10 сентября 2011

Я в процессе переноса своего веб-сайта на Amazon AWS, в связи с чем возник важный вопрос о развертывании.

Я использую экземпляр S3 и EC2. Экземпляр S3 обслуживает весь статический контент, такой как изображения, JavaScript и CSS. Однако в экземпляре EC2 я запустил Git-репозиторий в / var / www /, чтобы я мог выполнить "git pull", когда хочу обновить базу кода.

Кажется, я не могу найти решение, как обеспечить одновременную загрузку статического содержимого и кода, чтобы оно было полностью прозрачным. Допустим, я хочу обновить логотип и макет главной страницы. Когда я загружаю logo.png в S3, моя текущая кодовая база в EC2 автоматически указывает на новый логотип, даже если новый макет не был развернут.

Должен ли я загрузить logo.png под новым именем (например, logo-2.png) на S3, обновить все ссылки на logo.png в моем HTML-файле на logo-2.png и затем развернуть его?

Надеюсь, вы понимаете - спасибо!

Ответы [ 2 ]

1 голос
/ 06 февраля 2013

Да, вы обязательно должны как-то назвать свои файлы S3, например, мои файлы содержат текущий хеш git commit: minified..css.Какой бы инструмент вы ни использовали для сборки, сначала выполните шаг S3, а затем код приложения.

Это особенно важно, потому что люди будут кэшировать старые файлы в своем кэше браузера и получат старые версии.

Я не занимаю пространство имен всех моих файлов, таких как logo.gif.Этот файл никогда не меняется, и если он когда-либо изменился, я бы вручную добавил logo.gif? V = 1

. Для выполнения вышеперечисленных действий я просто настроил простой скрипт узла, который использует Rsync и Knox * 1008.*.

Я открываю источник моего dev tool здесь, если вам интересно.Это довольно специфично для моего случая использования, но вы можете выбрать его отдельно.

Я также рекомендую использовать cloudfront для извлечения из вашего S3.Cloudfront работает быстро и занимает всего пятнадцать минут.Наконец, не забудьте gzip и использовать заголовки Expired на этих ресурсах.

1 голос
/ 22 сентября 2012

Используйте третий шаг для развертывания, например, Jenkins, Springloops или, возможно, грабли.

Таким образом, оба ваших шага сборки могут быть запущены одновременно с одного коммита.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...