View a markdown version of this page

Meilleures pratiques pour déployer des mises à jour en toute sécurité - Amazon Linux 2023

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Meilleures pratiques pour déployer des mises à jour en toute sécurité

Amazon Linux 2023 (AL2023) possède plusieurs fonctionnalités conçues pour faciliter le déploiement en toute sécurité des mises à jour du système d'exploitation, ainsi que pour être en mesure de savoir ce qui a changé entre les mises à jour et, si nécessaire, de revenir facilement à l'ancienne version. Cette section explore les enseignements tirés AWS de plus de dix ans d'utilisation interne et externe d'Amazon Linux.

Avertissement

dnf --releasever=latest updateL'exécution n'est pas une bonne pratique et est susceptible d'entraîner le premier test d'une mise à jour du système d'exploitation en production.

Au lieu d'utiliserlatest, utilisez une version spécifique d'AL2023. Cela garantit que vous déployez les mêmes modifications sur les instances de production que celles que vous avez testées précédemment. Par exemple, dnf --releasever=2023.12.20260817 update sera toujours mis à jour vers la version 2023.12.20260817.

Pour plus d'informations, consultez la section Mise à jour de l'AL2023 dans le Guide de l'utilisateur de l'AL2023.

Si vous ne planifiez pas la sécurité du déploiement des mises à jour du système d'exploitation, l'impact d'une interaction négative inattendue entre votre mise à jour application/service et une mise à jour du système d'exploitation peut être considérablement plus important, pouvant aller jusqu'à une panne totale. Comme pour tout problème logiciel, plus le problème est détecté tôt, moins il peut avoir d'impact sur les utilisateurs finaux.

Il est important de ne pas tomber dans le piège de croire à deux choses qui sont fondamentalement fausses :

  1. Le fournisseur du système d'exploitation ne commettra jamais d'erreur lors d'une mise à jour du système d'exploitation.

  2. Le comportement spécifique du système d'exploitation que vous utilisez ou l'interface avec celui-ci correspond au comportement et aux interfaces que le fournisseur du système d'exploitation considérerait comme fiables.

    c'est-à-dire que le fournisseur du système d'exploitation et vous conviendrez qu'il y a eu un problème avec la mise à jour.

Ne vous fiez pas aux bonnes intentions, mettez en place des systèmes pour garantir que la sécurité du déploiement inclut toute mise à jour du système d'exploitation.

Il n'est pas recommandé de tester les nouvelles mises à jour du système d'exploitation en les déployant dans des environnements de production. Il est recommandé de considérer le système d'exploitation comme une autre partie de votre déploiement et d'envisager d'appliquer les mêmes mécanismes de sécurité de déploiement que vous considérez comme appropriés pour toute autre modification d'un environnement de production.

Il est recommandé de tester toutes les mises à jour du système d'exploitation avant de les déployer sur les systèmes de production. Lors du déploiement, des déploiements par étapes combinés à une bonne surveillance sont recommandés. Les déploiements par étapes peuvent garantir qu'en cas de problème, même s'il n'est pas immédiat, l'impact est limité à un sous-ensemble de la flotte, et la poursuite du déploiement de la mise à jour peut être interrompue pendant que des recherches plus approfondies et des mesures d'atténuation peuvent être prises.

L'atténuation de tout impact négatif d'une mise à jour du système d'exploitation est souvent la première priorité, suivie de la résolution du problème, où qu'il se trouve. Lorsque l'introduction d'une mise à jour du système d'exploitation est corrélée à un impact négatif, la possibilité de revenir à la version précédente, dont le fonctionnement a été vérifié, constitue un outil puissant.

Amazon Linux 2023 introduit Mises à niveau déterministes via des référentiels versionnés une nouvelle fonctionnalité puissante qui garantit la répétabilité de toute modification apportée à la version du système d'exploitation (ou à des packages individuels). Ainsi, si un problème survient lors du passage d'une version du système d'exploitation à une autre, il existe des mécanismes simples à utiliser pour s'en tenir à la version du système d'exploitation connue tout en cherchant comment résoudre le problème.

Avec AL2023, chaque fois que nous publions de nouvelles mises à jour de packages, il y a une nouvelle version à verrouiller et de nouvelles AMI qui se verrouillent sur cette version. Les notes de version d'AL2023 couvrent les modifications apportées à chaque version et Avis de sécurité Amazon Linux pour AL2023 couvrent les problèmes de sécurité résolus dans les mises à jour des packages.

Par exemple, si vous êtes concerné par le problème présent dans la version 2023.6.20241028, vous pouvez immédiatement revenir à l'utilisation des AMI et des images de conteneurs de la version précédente, 2023.6.20241010. https://docs.aws.amazon.com/linux/al2023/release-notes/relnotes-2023.6.20241010.html Dans ce cas, il y avait un bogue dans un package qui a été corrigé dans la version 2023.6.20241031 suivante, mais Mises à niveau déterministes via des référentiels versionnés toute personne concernée pouvait immédiatement prendre des mesures simples pour l'atténuer : il suffit d'utiliser les images précédentes.

Mises à niveau déterministes via des référentiels versionnésgarantit également que tout déploiement en cours d'une mise à jour du système d'exploitation, que ce soit sur place ou en lançant de nouvelles AMI ou de nouvelles images de conteneurs, n'est pas affecté par les mises à jour du système d'exploitation publiées ultérieurement.

Pour notre premier exemple, la flotte A est une grande flotte qui est à mi-chemin du déploiement de la mise à jour du 2023.5.20241001 à la version 2023.6.20241010 lorsque la version https://docs.aws.amazon.com/linux/al2023/release-notes/relnotes-2023.6.20241010.html 2023.6.20241028 sortira. https://docs.aws.amazon.com/linux/al2023/release-notes/relnotes-2023.6.20241028.html Mises à niveau déterministes via des référentiels versionnéssignifie que le déploiement de la flotte A se poursuit sans aucune modification des mises à jour qu'elle applique.

L'objectif des stratégies de déploiement basées sur les vagues ou les phases, telles que le déploiement d'abord sur 1 % de la flotte, puis sur 5 %, 10 %, 20 %, 40 %, jusqu'à atteindre 100 %, est de pouvoir tester un changement de manière limitée avant de le déployer à plus grande échelle. Ce type de stratégie de déploiement est généralement considéré comme la meilleure pratique pour déployer tout changement de production.

Avec une stratégie de déploiement basée sur les vagues et la flotte Une mise à jour vers la version 2023.6.20241010 étant à un stade où elle est déployée sur de nombreux hôtes à la fois, le fait que la version 2023.6.20241028 ait été publiée n'a aucun impact sur le déploiement en cours grâce à l'utilisation. Mises à niveau déterministes via des référentiels versionnés

Si la flotte B exécutait une ancienne version, par exemple 2023.5.20240708, et avait commencé à déployer la mise à jour vers la version 2023.6.20241028, et que la flotte B était affectée par le problème lié à cette version, cela serait remarqué au début du déploiement. À ce stade, il est possible de décider s'il convient de suspendre tout déploiement jusqu'à ce qu'un correctif soit disponible, ou si, entre-temps, pour démarrer un déploiement de la même version que la flotte A était en cours d'exécution, le 2023.6.20241010, afin que la flotte B reçoive toutes les mises à jour entre le 2023.5.20240708 et le 2023.6.20241010. https://docs.aws.amazon.com/linux/al2023/release-notes/relnotes-2023.5.20240708.html https://docs.aws.amazon.com/linux/al2023/release-notes/relnotes-2023.6.20241010.html

Il est important de noter que le fait de ne pas effectuer rapidement les mises à jour du système d'exploitation peut entraîner des problèmes. Les nouvelles mises à jour contiennent probablement des correctifs de bogues et de sécurité qui peuvent être pertinents pour votre environnement. Pour plus d’informations, consultez Sécurité et conformité dans Amazon Linux 2023 et Gérez les mises à jour des packages et des systèmes d'exploitation dans AL2023.

Il est important de configurer vos systèmes de déploiement pour pouvoir effectuer facilement les nouvelles mises à jour du système d'exploitation, les tester avant le déploiement en production et utiliser des mécanismes tels que les déploiements basés sur les vagues pour minimiser tout impact négatif. Afin de pouvoir atténuer tout impact négatif d'une mise à jour du système d'exploitation, il est important de savoir comment faire en sorte que vos systèmes de déploiement pointent vers une version précédente, dont le fonctionnement a été vérifié, et une fois le problème résolu, ne plus être bloqué sur l'ancienne version, dont le fonctionnement a été vérifié, mais plutôt passer à une nouvelle version, dont le fonctionnement a été vérifié.

Préparation aux mises à jour mineures

La préparation de petites mises à jour du système d'exploitation, telles qu'une nouvelle version ponctuelle d'AL2023, est censée être limitée à zéro effort. Assurez-vous de lire les notes de version d'AL2023 pour tout changement à venir.

La période de support d'un package qui arrive à son terme peut impliquer le passage à une version plus récente du langage d'exécution (avec, par exemplePHP en AL2023). Il est recommandé de s'y préparer à l'avance en passant à des versions d'exécution dans une nouvelle langue confortablement avant la fin de la période de support.

Pour les packages tels quePCRE version 1, il est également possible de planifier à l'avance et de migrer n'importe lequel de vos codes vers son remplacement, qui dans ce cas est pcre la version 2. Il est préférable de le faire le plus tôt possible, afin de laisser le temps de faire face à d'éventuels revers.

Lorsqu'il n'y a pas de remplacement direct, par exemple parBase de données Berkeley (libdb), vous devrez peut-être faire un choix en fonction de votre cas d'utilisation.

Préparation aux mises à jour majeures

La mise à jour vers une nouvelle version majeure d'un système d'exploitation est presque universellement considérée comme une opération qui nécessite une planification, un travail d'adaptation aux fonctionnalités modifiées ou obsolètes, ainsi que des tests avant le déploiement. Il n'est pas rare de pouvoir préparer la prochaine version majeure d'Amazon Linux 2023 de manière plus incrémentielle, par exemple en remédiant à toute utilisation de fonctionnalités obsolètes ou supprimées avant de passer à la version majeure suivante.

Par exemple, lorsque vous passez de AL2 à AL2023, la lecture de Fonctionnalité déconseillée AL2 et supprimée dans AL2023 cette section peut entraîner un certain nombre de petites étapes sûres qui peuvent être effectuées tout en utilisant AL2 pour préparer l'AL2023. Par exemple, toute Python 2.7 a été remplacé par Python 3 utilisation (en dehors de l'utilisation du système d'exploitation, comme dans le gestionnaire de yum packages) peut être migrée vers Python 3 en vue de son utilisationPython en AL2023. Si vous utilisez PHP, AL2 (via PHP 8.2 AL2 Extra) et AL2023 fournissent PHP 8.2. Par conséquent, la migration de la version de PHP et la migration du système d'exploitation ne doivent pas nécessairement avoir lieu simultanément.

En utilisant AL2023, il est également possible de préparer la prochaine version majeure d'Amazon Linux 2023 dès aujourd'hui, tout en utilisant AL2023. La Obsolète dans AL2023 section couvre les fonctionnalités et les packages qui sont obsolètes dans AL2023 et qui devraient être supprimés.

Par exemple, la migration de toutes les Initialisation du système V (sysvinit) utilisations restantes, telles que les init scripts, vers leur systemd équivalent vous préparera pour l'avenir et vous permettra d'utiliser l'ensemble des systemd fonctionnalités pour surveiller le service, comment et si vous devez le redémarrer, quels autres services il a besoin et si des contraintes de ressources ou d'autorisations doivent être appliquées.

Pour des fonctionnalités telles que la prise en charge 32 bits, la dépréciation peut couvrir plusieurs versions majeures du système d'exploitation. Pour 32 bits, Amazon Linux 1 (AL1) est obsolètex86 32 bits (i686) AMIs, Amazon Linux 2 est obsolète et Amazon Linux 2023 est obsolètePackages x86 (i686) 32 bits. Prise en charge de l'exécution 32 bits x86 (i686) L'abandon de couvre IMDSv1 également plusieurs versions majeures du système d'exploitation. Pour ces types de modifications, il est entendu que certains clients ont besoin de plus de temps pour s'y adapter. Il reste donc une grande marge de manœuvre avant que la fonctionnalité ne soit plus disponible dans Amazon Linux 2023.

La liste des fonctionnalités obsolètes est mise à jour au cours de la durée de vie du système d'exploitation et il est conseillé de se tenir au courant des modifications apportées.