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

Параметры конфигурации PHP или Nginx в группе AWS Auto-Scaling

Я внес все изменения в машину AWS EC2 для Nginx и настроил значения PHP, все протестировал, а затем запек AMI, чтобы его можно было запустить в группе автоматического масштабирования AWS.

Все хорошо, но когда разработчикам или при переписывании приложений иногда требуется изменить значения PHP или выполнить какие-то новые правила перезаписи в файле конфигурации nginx, мне всегда приходится заново запекать весь AMI после каждого нарушения моей полной инфраструктуры автомасштабирования и выключает сервер.

Я, должно быть, ошибаюсь! каков самый простой / лучший способ внести такие изменения, не затрагивая существующую группу автомасштабирования. Может быть, это символические ссылки на общий ресурс NFS для файлов php.ini и nginx conf? если решение только символические ссылки, чем как это должно быть сделано?

Посмотри на Данные пользователя EC2. Вы можете настроить что-то, что загружает сценарий из S3 и запускает его.

Когда вы запускаете инстанс в Amazon EC2, у вас есть возможность передать в инстанс пользовательские данные, которые можно использовать для выполнения общих задач автоматической настройки и даже запуска скриптов после запуска экземпляра. В Amazon EC2 можно передавать два типа пользовательских данных: сценарии оболочки и директивы cloud-init. Вы также можете передать эти данные в мастер запуска как обычный текст, как файл (это полезно для запуска экземпляров с помощью инструментов командной строки) или как текст в кодировке base64 (для вызовов API).

Если вас интересуют более сложные сценарии автоматизации, рассмотрите возможность использования AWS CloudFormation и AWS OpsWorks. Дополнительные сведения см. В Руководстве пользователя AWS CloudFormation и Руководстве пользователя AWS OpsWorks.

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

  1. Войдите в IAM и создайте новую роль IAM или, если у вас уже есть роль, назначенная экземплярам EC2, отредактируйте текущую роль. Убедитесь, что роль разрешает доступ только для чтения к S3 - просто следуйте инструкциям мастера. Вы можете использовать настраиваемую роль, чтобы разрешить доступ к определенному сегменту, если хотите.

  2. Создайте новую конфигурацию запуска, которая выполняет две функции:

    • Определяет эту роль IAM
    • Предварительно добавьте скрипт в пользовательские данные. Приведенный ниже сценарий копирует все файлы и подпапки из папки s3 в папку на вашем новом экземпляре. Я предоставил сценарий в виде изображения, потому что форматирование SF работает неправильно. Под ним находится текстовая версия, в которой отсутствует несколько символов.

/bin/bash  - NB missing #1 at start of line
aws s3 cp  s3://s3-bucketname/foldername/ /ec2-target-folder --recursive

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