Я внес все изменения в машину 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 минут, включая создание нескольких экземпляров для тестирования и написания.
Войдите в IAM и создайте новую роль IAM или, если у вас уже есть роль, назначенная экземплярам EC2, отредактируйте текущую роль. Убедитесь, что роль разрешает доступ только для чтения к S3 - просто следуйте инструкциям мастера. Вы можете использовать настраиваемую роль, чтобы разрешить доступ к определенному сегменту, если хотите.
Создайте новую конфигурацию запуска, которая выполняет две функции:
/bin/bash - NB missing #1 at start of line
aws s3 cp s3://s3-bucketname/foldername/ /ec2-target-folder --recursive
Вам нужно будет проверить пользователей и разрешения самостоятельно, поскольку они разные для каждой настройки.