Назад | Перейти на главную страницу

Сценарий начальной загрузки для настройки автоматического масштабирования AWS и доступ по ssh

Я не специалист по сетям, и сейчас мне сложно настроить автоматическое масштабирование для веб-приложения.

У меня есть один сервер - мы можем назвать его главным - (вне группы автоматического масштабирования), который я использую для memcache и очереди beanstalkd. Я также хочу использовать этот сервер для синхронизации исходного кода с помощью rsync.

Я хочу, чтобы мой сервер из группы автоматического масштабирования мог использовать ssh для этого главного сервера для выполнения rsync и убедиться, что в AMI установлена ​​последняя версия приложения.

Я хочу выполнить эту синхронизацию, когда срабатывает сигнал о масштабировании и запускается новый экземпляр. Я читал, что мне нужно использовать user --user-data-file для выполнения сценария при первой загрузке сервера.

Так что это вся информация, которая у меня есть на данный момент. Я настроил свои «конфигурацию запуска», «группу автоматического масштабирования», «масштабирование вверх» и «уменьшение масштаба», а также оба предупреждения для запуска этой политики.

Я использую собственный (частный) AMI на основе общедоступного AMI Centos 6. Когда запускается новый экземпляр группы автоматического масштабирования, у меня создается впечатление, что сценарий bootstrap.sh не выполняется. Вот моя конфигурация запуска:

as-create-launch-config --image-id <PRIVATE_AMI> --instance-type m1.medium --key master --group webserver-security-group --user-data-file /home/user/bin/bootstrap.sh --launch-config my-lc-1

Вот содержимое /home/user/bin/bootstrap.sh:

#!/bin/bash
set -e -x

# Start the workers
/var/www/user/bin/start.sh

Итак, моя первая проблема в том, что я понятия не имею, почему этот сценарий не выполняется.

Вторая проблема заключается в том, что я не уверен, как разрешить SSH-соединение с «главным» сервером, зная, что экземпляр изменяется при увеличении или уменьшении масштаба.

Помощь будет принята с благодарностью ;)

Максим

Итак, Centos AMI не включает CloudInit сервис по умолчанию (в некоторых Ubuntu и Debian он есть по умолчанию). Вам необходимо установить его на свой AMI, запустить службу при загрузке:

chkconfig cloud-init on

При необходимости обновите файл конфигурации: /etc/cloud/cloud.cfg Затем вам нужно создать новый AMI из измененного. Самый простой способ протестировать сценарий начальной загрузки, который я нашел, - это запустить микроэкземпляр этого AMI с указанием --user-data-file вариант.