Існує ряд понять, якими можна скористатися.
Запорука успіху - автоматизація
Перший варіант - продовжувати робити те, що ви робите зараз, тобто відновлювати EC2 з кожною зміною конфігурації . Просто повністю автоматизованим способом.
Оскільки ви зараз здійснюєте оновлення конфігурації через AMI, ви зробите цей крок далі і створюєте конвеєр, який після зміни файлу конфігурації у деякому сховищі:
- Автоматично будувати новий AMI - один з найпопулярніших інструментів для цього - Packer
- Автоматично відновлюйте свій флот Nginx - у вас уже повинні бути всі сервери Nginx в групі з автоматичним масштабуванням, у яких передбачувальний балансир завантаження попереду. Якщо ви цього не зробите , це зробить оновлення таким же простим, як оновлення конфігурації запуску ASG та чекання, коли екземпляри будуть відновлені з нового AMI.
Другий варіант - тримати екземпляри на місці та розгортати лише конфігураційні файли , не відновлюючи їх. Як правило, ви можете ставитися до файлів конфігурації як до коду та розгортати зміни конфігурації так само, як ви розгортаєте версії коду. AWS має багато інструментів, щоб допомогти у цьому.
- AWS Elastic Beanstalk, який використовує Шеф-кухаря внутрішньо, і ви можете скриптувати свої оновлення Nginx таким чином.
- Розгортання коду AWS - це повністю розбірливий інструмент розгортання, який добре інтегрується з іншими частинами AWS Code Suite :
- Код ввести, де ви можете зберігати свої файли конфігурації Nginx в Git.
- Кодовий конвеєр, який може автоматично запускати розгортання щоразу, коли файл конфігурації оновлюється в програмі Кодексу.
- Ansible or Puppet, які є популярними інструментами, що не належать до AWS, за допомогою яких усі сервери можуть бути налаштовані однаково.
Коли вам буде зручно автоматизувати ці оновлення конфігурації Nginx, можливо, ви захочете розширити автоматизацію на іншу частину вашої інфраструктури.
Існує чудовий огляд параметрів розгортання на AWS, який дасть вам хороший огляд.
Я сподіваюся, що це допомагає :)