Я пытался справиться с сервисами Amazons AWS для клиента.Как свидетельствует тот самый (ый) вопрос (и), который я собираюсь задать, у меня возникла небольшая проблема с тем, чтобы обернуть голову вокруг некоторых очень простых вещей:
a) Я поиграл с несколькими случаямии мне удалось заставить LAMP работать нормально, проблема в том, что код, который я помещаю в /var/www
, похоже, не распространяется на эти машины.Что мне нужно сделать, чтобы достичь этого?Я думал об общем томе EBS и об изменении корня документа Apache?
b) Кроме того, каков наилучший способ загрузки кода и ресурсов на том EBS / S3?Должен ли я настроить экземпляр для обработки FTP на вышеупомянутый общий том?
c) Наконец, у меня есть базовый план для установки, которую я хотел запустить от человека, который действительно знает, о чем он говорит:
- DNS, указывающий на балансировщик нагрузки (AWS ElasticBeanstalk)
- Балансировщик нагрузки, управляющий несколькими экземплярами AWS EC2.
- Код совместного использования экземпляров EC2 из одного хранилища EBS.
- Экземпляр RDS для обработки запросов к базе данных.
- Cloud Front для предоставления ресурсов непосредственно пользователю.
Спасибо, Рич.
Редактировать: Мое решение для тех, кто сталкивается с этим в Google.
Обратите внимание, что моя установка еще не закончена, и сценарии bash, которые я предоставляю в этом объяснении, вероятно, не очень хороши, хотя я очень хорошо разбираюсь в командной строке, и у меня нет опыта написания сценариев вБаш.Тем не менее, он должен хотя бы показать вам, как моя установка работает в теории.
Все AMI - это Ubuntu Maverick i386 от Alestic.
У меня есть два снимка AMI:
- Master
- Пользователи
- git - очень ограниченный доступ, запускает git-shell, поэтому к нему нельзя получить доступ через SSH, но размещает репозиторий git, который может быть передан или извлеченfrom.
- ubuntu - Учетная запись SSH по умолчанию, используемая для администрирования сервера и развертывания кода.
- Службы
- Простой хостинг репозитория git через ssh.
- Apache и PHP, базы данных размещены на Amazon RDS
- Slave
- Службы
- Apache и PHP,базы данных размещены на Amazon RDS
Прямо сейчас (это изменится) вот как код развертывания на моих серверах:
- Объединить изменения в основную ветвь на локальном компьютере.
- Остановить все ведомые экземпляры.
- Используйте Git, чтобы протолкнуть основную ветвьна главный сервер.
- Войдите в систему для пользователя ubuntu через SSH на главном сервере и запустите скрипт, который выполняет следующие действия:
- Экспортирует (git-archive) код из локального репозитория в папку.
- Сжимает папку и загружает резервную копию кода в S3 с отметкой времени, прикрепленной к имени файла.
- Заменяет код в / var / www / с папкой и дает соответствующие разрешения.
- Удаляет экспортированную папкуиз домашнего каталога, но оставляет сжатый файл без изменений с последним кодом.5 Запустите все ведомые экземпляры.При запуске они запускают скрипт:
- Apache не запускается, пока не будет запущен.
- Используйте scp (защищенное копирование), чтобы скопировать последний сжатый код из master в / tmp / www
- Извлеките код и замените / var / www / и предоставьте соответствующие разрешения.
- Запустите Apache.
Я приведу примеры кода, но они очень неполны иМне нужно больше времени.Я также хочу, чтобы все мои активы (css / js / img) автоматически отправлялись на s3, чтобы их можно было передавать клиентам через CloudFront.