Должен ли я обновить пакеты ядра на экземплярах EC2?

18

На моем сервере EC2, когда я это делаю sudo apt-get update && sudo apt-get upgrade, я вижу:

The following packages have been kept back:
  linux-ec2 linux-image-ec2 linux-image-virtual linux-virtual

Должен ли я пойти дальше и сделать так, sudo apt-get install linux-ec2 linux-image-ec2 linux-image-virtual linux-virtualчтобы эти пакеты были обновлены?

Адам Монсен
источник
3
Или делай apt-get update && apt-get upgrade && apt-get dist-upgrade. Это обновит отложенные пакеты.
Марк Рассел

Ответы:

18

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

То, как именно вы выкатываете патчи безопасности, зависит от вашего допуска к риску. Вот несколько вариантов, которые я использовал для ответа на этот вопрос в прошлом:

  1. Примените обновления к набору систем обеспечения качества, которые имитируют вашу производственную среду, и запустите все ваши регрессионные тесты, чтобы убедиться, что изменения не нарушают какую-либо функциональность и не вызывают проблем с производительностью. Как только вы будете удовлетворены, разверните обновления для ваших производственных систем.

  2. Подождите день и посмотрите, есть ли публичный протест по поводу проблем, вызванных обновлениями. Если все кажется мирным, обновите свои производственные системы.

  3. Примените каждое исправление безопасности на своих производственных системах, как только оно станет доступно.

Я использовал комбинацию всех трех из этих подходов с использованием Ubuntu и постепенно перешел к варианту 3 на протяжении многих лет. Перед выпуском исправления для системы безопасности проходят тщательную проверку, поэтому особое внимание уделяется тому, чтобы не нарушить существующую функциональность. У меня никогда не было проблем с обновлением образов, поддерживаемых Ubuntu (хотя у меня однажды была проблема несколько лет назад, когда я использовал не-Ubuntu ядро ​​с Ubuntu на EC2).

Обратите внимание, что обновление ядра также требует перезагрузки, чтобы применить изменения.

Приведенные выше опыт и рекомендации применимы только к обновлению в версии Ubuntu (например, 11.04). Обновление до новой версии Ubuntu является гораздо более сложной и рискованной задачей, и для нее обязательно требуется тестирование, прежде чем внедрять его в свои производственные системы.

Вот статья об этой теме, только что опубликованная RightScale, о том, как управлять обновлениями безопасности в их среде:

http://blog.rightscale.com/2011/09/28/security-patching-in-the-rightscale-universe/

Эрик Хаммонд
источник
3
Хороший ответ. Возможно, добавьте примечание, что обновление ядра действительно возможно только на экземплярах, поддерживаемых EBS? Это все еще так, нет?
Марк Рассел
3
Марк: Раньше было верно, что экземпляры хранилища экземпляров не могли обновлять свои ядра на месте, но с выпуском паравиртуализации некоторое время назад, реальные ядра могут храниться в AMI, а не в AKI. Это означает, что экземпляр может обновить ядро ​​на своем локальном томе EBS и оставить его после перезагрузки, даже если он использует тот же AKI. Я только что проверил это с Ubuntu 11.04 (us-east-1 ami-e2af508b), и экземпляр instance-store нашел правильное более новое ядро ​​после dist-upgrade и перезагрузки.
Эрик Хаммонд
2
поправка к моему предыдущему комментарию: «экземпляр может обновить ядро ​​в своем локальном корневом хранилище экземпляра и сохранить его»
Эрик Хаммонд,