Déploiement d'un site web Drupal haute disponibilité avec une base de données Amazon RDS externe vers Elastic Beanstalk - AWS Elastic Beanstalk

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.

Déploiement d'un site web Drupal haute disponibilité avec une base de données Amazon RDS externe vers Elastic Beanstalk

Ce didacticiel explique le processus de lancement d'une instance de base de données RDS externe à AWS Elastic Beanstalk. Il décrit ensuite comment configurer un environnement à haute disponibilité en exécutant un site web Drupal pour s'y connecter. Le site web utilise Amazon Elastic File System (Amazon EFS) comme stockage partagé pour les fichiers téléchargés. L'exécution d'une instance de base de données externe à Elastic Beanstalk découple la base de données du cycle de vie de votre environnement et vous permet de vous connecter à la même base de données à partir de plusieurs environnements, de changer de base de données ou d'exécuter un déploiement bleu/vert sans entraîner de répercussion sur votre base de données.

Prérequis

Ce tutoriel suppose que vous connaissez les opérations de base Elastic Beanstalk et la console Elastic Beanstalk. Si ce n'est pas déjà fait, suivez les instructions dans Mise en route avec Elastic Beanstalk pour lancer votre premier environnement Elastic Beanstalk.

Pour suivre les procédures décrites dans ce guide, vous aurez besoin d'un shell ou d'un terminal de ligne de commande pour exécuter des commandes. Dans les listes, les commandes sont précédées d'un symbole d'invite ($) et du nom du répertoire actuel, le cas échéant.

~/eb-project$ this is a command this is output

Sous Linux et macOS, vous pouvez utiliser le shell et le gestionnaire de package de votre choix. Sur Windows 10, vous pouvez installer le sous-système Windows pour Linux afin d'obtenir une version intégrée à Windows d'Ubuntu et Bash.

Les procédures décrites dans ce tutoriel pour les tâches Amazon Relational Database Service (Amazon RDS) supposent que vous lanciez des ressources dans un Amazon Virtual Private Cloud (Amazon VPC) par défaut. Tous les nouveaux comptes incluent un VPC par défaut dans chaque région. Si vous n'avez pas de VPC par défaut, les procédures seront différentes. Pour obtenir des instructions relatives aux plateformes EC2-Classic et VPC personnalisées, consultez Utilisation d'Elastic Beanstalk avec Amazon RDS.

L'exemple d'application utilise Amazon EFS. Cela ne fonctionne que dans AWS les régions qui prennent en charge Amazon EFS. Pour en savoir plus sur la prise en charge AWS des régions, consultez Amazon Elastic File System Endpoints and Quotas dans le Références générales AWS.

Si la plateforme de votre environnement Elastic Beanstalk utilise PHP 7.4 ou version antérieure, nous vous recommandons d'utiliser la version 8.9.13 de Drupal pour ce tutoriel. Pour les plateformes installées avec PHP 8.0 ou version ultérieure, nous vous recommandons d'utiliser Drupal 9.1.5.

Pour plus d'informations sur les versions de Drupal et les versions de PHP qu'elles prennent en charge, consultez Exigences relatives à PHP sur le site Web de Drupal. Les versions principales recommandées par Drupal sont répertoriées sur le site https://www.drupal.org/project/drupal.

Lancement d'une instance de base de données dans Amazon RDS

Pour utiliser une base de données externe avec une application exécutée dans Elastic Beanstalk, lancez d'abord une instance de base de données avec Amazon RDS. Lorsque vous lancez une instance avec Amazon RDS, elle est totalement indépendante d'Elastic Beanstalk et de vos environnements Elastic Beanstalk et ne sera pas résiliée ou surveillée par Elastic Beanstalk.

Utilisez la console Amazon RDS pour lancer une instance de base de données DB MySQL Multi-AZ. Le choix d'un déploiement multi-AZ garantit que votre base de données basculera et qu'elle sera toujours disponible si l'instance de base de données source se retrouve hors service.

Pour lancer une instance DB RDS dans un VPC par défaut
  1. Ouvrez la console RDS.

  2. Dans le panneau de navigation, choisissez Databases (Bases de données).

  3. Choisissez Create database (Créer une base de données).

  4. Choisissez Standard Create (Création standard).

    Important

    Ne choisissez pas Easy Create (Création facile). Si vous choisissez cette option, vous ne pouvez pas configurer les paramètres nécessaires pour lancer cette base de données RDS.

  5. Sous Additional Configuration (Configuration supplémentaire), pour Initial database name (Nom initial de la base de données), tapez ebdb.

  6. Vérifiez les paramètres par défaut et ajustez ces paramètres en fonction de vos exigences spécifiques. Prêtez attention aux options suivantes :

    • DB instance class (Classe d'instance de base de données) : choisissez une taille d'instance avec un niveau approprié de puissance d'UC et de mémoire pour votre charge de travail.

    • Multi-AZ deployment (Déploiement multi-AZ) : pour une haute disponibilité, définissez cette option sur Create an Aurora Replica/Reader node in a different AZ (Créer un nœud de réplica/lecteur Aurora dans une autre zone de disponibilité).

    • Master username (Identifiant principal) et Master password (Mot de passe principal) : nom d'utilisateur et mot de passe de la base de données. Notez les valeurs de ces paramètres, car vous en aurez besoin par la suite.

  7. Vérifiez les paramètres par défaut pour les autres options, puis cliquez sur Create database (Créer une base de données).

Ensuite, modifiez le groupe de sécurité associé à votre instance DB pour autoriser le trafic entrant sur le port approprié. Il s'agit du même groupe de sécurité que celui que vous associerez plus tard à votre environnement Elastic Beanstalk. Par conséquent, la règle que vous ajoutez accordera une autorisation d'entrée aux autres ressources de ce même groupe de sécurité.

Pour modifier les règles de trafic entrant sur le groupe de sécurité associé à votre instance RDS
  1. Ouvrez la console Amazon RDS.

  2. Choisissez Databases (Bases de données).

  3. Choisissez le nom de votre instance de base de données pour en afficher les détails.

  4. Dans la section Connectivity (Connectivité), prenez note des Subnets (Sous-réseaux), des Security groups (Groupes de sécurité) et du Endpoint (Point de terminaison) affichés sur cette page. Ainsi, vous pourrez utiliser ces informations ultérieurement.

  5. Sous Security (Sécurité), vous voyez le groupe de sécurité associé à l'instance de base de données. Ouvrez le lien pour afficher le groupe de sécurité dans la console Amazon EC2.

    
        Section Connectivity (Connectivité) de la page d'une instance de base de données dans la console Amazon RDS
  6. Dans les détails du groupe de sécurité, choisissez l'onglet Inbound (Entrant).

  7. Choisissez Edit (Modifier).

  8. Choisissez Add Rule (Ajouter une règle).

  9. Pour Type, choisissez le moteur de base de données utilisé par votre application.

  10. Pour Source, entrez sg- pour afficher la liste des groupes de sécurité disponibles. Choisissez le groupe de sécurité associé au groupe Auto Scaling utilisé avec votre environnement Elastic Beanstalk. Cela permet aux instances Amazon EC2 de l'environnement d'accéder à la base de données.

    
        Modification des règles entrantes pour un groupe de sécurité dans la console Amazon EC2
  11. Choisissez Save (Enregistrer).

La création d'une instance DB prend environ 10 minutes. En attendant, lancez votre environnement Elastic Beanstalk.

Lancer un environnement Elastic Beanstalk

Utilisez la console Elastic Beanstalk pour créer un environnement Elastic Beanstalk. Choisissez la plateforme PHP et acceptez les paramètres par défaut et l'exemple de code. Une fois l'environnement lancé, vous pouvez le configurer pour vous connecter à la base de données, puis déployer le code Drupal dans l'environnement.

Pour lancer un environnement (console)
  1. Ouvrez la console Elastic Beanstalk à l'aide de ce lien préconfiguré : console.aws.amazon.com/elasticbeanstalk/home#/ newApplication?ApplicationName=Tutorials &EnvironmentType= LoadBalanced

  2. Pour Platform (Plateforme), sélectionnez la plateforme et la branche de plateforme qui correspondent au langage utilisé par votre application.

  3. Pour l'option Code de l'application, choisissez Exemple d'application.

  4. Choisissez Vérifier et lancer.

  5. Passez en revue les options disponibles. Choisissez l'option disponible que vous souhaitez utiliser et, une fois que vous êtes prêt, choisissez Create app (Créer une application).

La création d'un environnement prend environ 5 minutes et crée les ressources suivantes :

  • Instance EC2 – Machine virtuelle Amazon Elastic Compute Cloud (Amazon EC2) configurée pour exécuter des applications web sur la plateforme de votre choix.

    Chaque plateforme exécute un ensemble spécifique de logiciels, de fichiers de configuration et de scripts pour prendre en charge une version de langage, une infrastructure ou un conteneur web spécifiques, ou une combinaison de ces éléments. La plupart des plateformes utilisent Apache ou nginx comme proxy inverse situé devant votre application web, qui lui transmet des demandes, traite des ressources statiques et génère des journaux d'accès et d'erreur.

  • Groupe de sécurité de l'instance – Groupe de sécurité Amazon EC2 configuré pour autoriser le trafic entrant sur le port 80. Cette ressource autorise le trafic HTTP provenant de l'équilibreur de charge à atteindre l'instance EC2 qui exécute votre application web. Par défaut, le trafic n'est pas autorisé sur les autres ports.

  • Équilibreur de charge – Équilibreur de charge Elastic Load Balancing configuré pour répartir les demandes vers les instances exécutant votre application. De plus, l'équilibreur de charge vous évite d'exposer directement vos instances sur Internet.

  • Groupe de sécurité de l'équilibreur de charge – Groupe de sécurité Amazon EC2 configuré pour autoriser le trafic entrant sur le port 80. Cette ressource autorise le trafic HTTP provenant d'Internet à atteindre l'équilibreur de charge. Par défaut, le trafic n'est pas autorisé sur les autres ports.

  • Groupe Auto Scaling – Groupe Auto Scaling configuré pour remplacer une instance si elle est résiliée ou devient indisponible.

  • Compartiment Amazon S3 – Emplacement de stockage pour votre code source, les journaux et autres artefacts qui sont créés lorsque vous utilisez Elastic Beanstalk.

  • CloudWatch Alarmes Amazon : deux CloudWatch alarmes qui surveillent la charge sur les instances de votre environnement et qui sont déclenchées si la charge est trop élevée ou trop faible. Lorsqu'une alarme est déclenchée, votre groupe Auto Scaling s'adapte en fonction, à la hausse ou à la baisse.

  • AWS CloudFormation stack — Elastic AWS CloudFormation Beanstalk utilise pour lancer les ressources de votre environnement et propager les modifications de configuration. Les ressources sont définies dans un modèle, que vous pouvez afficher dans la consoleAWS CloudFormation.

  • Nom de domaine – Nom de domaine qui permet d'accéder à votre application web sous la forme sous-domaine.région.elasticbeanstalk.com.

    Note

    Pour renforcer la sécurité de vos applications Elastic Beanstalk, le domaine elasticbeanstalk.com est enregistré dans la liste des suffixes publics (PSL). Pour plus de sécurité, nous vous recommandons d'utiliser des cookies avec un préfixe __Host- si vous devez définir des cookies sensibles dans le nom de domaine par défaut de vos applications Elastic Beanstalk. Cette pratique vous aidera à protéger votre domaine contre les tentatives de falsification de requêtes intersites (CSRF). Pour plus d'informations, consultez la page Set-Cookie du Mozilla Developer Network.

Toutes ces ressources sont gérées par Elastic Beanstalk. Lorsque vous arrêtez votre environnement, Elastic Beanstalk arrête toutes les ressources qu'il contient. L'instance DB RDS que vous avez lancée se trouvant en dehors de votre environnement, vous êtes chargé de la gestion de son cycle de vie.

Note

Le compartiment Amazon S3 créé par Elastic Beanstalk est partagé entre les environnements et n'est pas supprimé lors de l'arrêt de l'environnement. Pour plus d'informations, consultez Utilisation d'Elastic Beanstalk avec Amazon S3.

Configuration des paramètres de sécurité et des propriétés de l'environnement

Ajoutez le groupe de sécurité de votre instance DB à votre environnement en cours d'exécution. Cette procédure conduit Elastic Beanstalk à remettre en service toutes les instances de votre environnement avec le groupe de sécurité supplémentaire associé.

Pour ajouter un groupe de sécurité à votre environnement
  • Effectuez l’une des actions suivantes :

    • Pour ajouter un groupe de sécurité à l'aide de la console Elastic Beanstalk

      1. Ouvrez la console Elastic Beanstalk, puis dans la liste des régions, sélectionnez votre. Région AWS

      2. Dans le panneau de navigation, choisissez Environments (Environnements), puis choisissez le nom de votre environnement dans la liste.

        Note

        Si vous avez plusieurs environnements, utilisez la barre de recherche pour filtrer la liste des environnements.

      3. Dans le panneau de navigation, choisissez Configuration.

      4. Dans la catégorie de configuration Instances, choisissez Edit (Modifier).

      5. Sous EC2 security groups (Groupes de sécurité EC2), choisissez les groupes de sécurité à attacher aux instances, en plus du groupe de sécurité de l'instance créé par Elastic Beanstalk.

      6. Pour enregistrer les modifications, cliquez sur Appliquer en bas de la page.

      7. Lisez l'avertissement, puis choisissez Confirm (Confirmer).

    • Pour ajouter un groupe de sécurité à l'aide d'un fichier de configuration, utilisez le fichier exemple securitygroup-addexisting.config.

Ensuite, utilisez les propriétés de l'environnement pour transmettre les informations de connexion à votre environnement. L'exemple d'application utilise un ensemble de propriétés par défaut qui correspondent à celles qui sont configurées par Elastic Beanstalk lorsque vous mettez en service une base de données dans votre environnement.

Pour configurer les propriétés d'environnement pour une instance de base de données Amazon RDS
  1. Ouvrez la console Elastic Beanstalk, puis dans la liste des régions, sélectionnez votre. Région AWS

  2. Dans le panneau de navigation, choisissez Environments (Environnements), puis choisissez le nom de votre environnement dans la liste.

    Note

    Si vous avez plusieurs environnements, utilisez la barre de recherche pour filtrer la liste des environnements.

  3. Dans le panneau de navigation, choisissez Configuration.

  4. Dans la catégorie de configuration Mises à jour, surveillance et journalisation, sélectionnez Modifier.

  5. Dans la section Environment properties (Propriétés de l'environnement), définissez les variables lues par votre application pour créer une chaîne de connexion. Pour assurer la compatibilité avec les environnements disposant d'une instance DB RDS intégrée, utilisez les noms et valeurs suivants : Vous pouvez trouver toutes les valeurs, à l'exception de votre mot de passe, dans la console RDS.

    Nom de la propriété Description Valeur de la propriété

    RDS_HOSTNAME

    Nom d'hôte de l'instance DB.

    Sous l'onglet Connectivity & security (Connectivité et sécurité) de la console Amazon RDS : Endpoint (Point de terminaison).

    RDS_PORT

    Port sur lequel l'instance de base de données accepte des connexions. La valeur par défaut varie selon les moteurs de base de données.

    Sous l'onglet Connectivity & security (Connectivité et sécurité) de la console Amazon RDS : Port.

    RDS_DB_NAME

    Nom de la base de données, ebdb.

    Sous l'onglet Configuration de la console Amazon RDS : DB Name (Nom de base de données).

    RDS_USERNAME

    Nom d'utilisateur que vous avez configuré pour votre base de données.

    Sous l'onglet Configuration de la console Amazon RDS : Master username (Identifiant principal).

    RDS_PASSWORD

    Mot de passe que vous avez configuré pour votre base de données.

    Non disponible pour référence dans la console Amazon RDS.

    
        Section de configuration des propriétés d'environnement avec des propriétés RDS ajoutées
  6. Pour enregistrer les modifications, cliquez sur Appliquer en bas de la page.

Une fois Drupal installé, vous devez vous connecter à l'instance avec SSH pour récupérer certains détails de configuration. Attribuez une clé SSH aux instances de votre environnement.

Pour configurer SSH
  1. Si vous n'avez pas déjà préalablement créé une paire de clés, ouvrez la page relative aux paires de clés de la console Amazon EC2 et suivez les instructions pour en créer une.

  2. Ouvrez la console Elastic Beanstalk, puis dans la liste des régions, sélectionnez votre. Région AWS

  3. Dans le panneau de navigation, choisissez Environments (Environnements), puis choisissez le nom de votre environnement dans la liste.

    Note

    Si vous avez plusieurs environnements, utilisez la barre de recherche pour filtrer la liste des environnements.

  4. Dans le panneau de navigation, choisissez Configuration.

  5. Sous Security (Sécurité), choisissez Edit (Modifier).

  6. Pour Paire de clés EC2, choisissez votre paire de clés.

  7. Pour enregistrer les modifications, cliquez sur Appliquer en bas de la page.

Configuration et déploiement de votre application

Pour créer un projet Drupal pour Elastic Beanstalk, téléchargez le code source de Drupal et combinez-le avec les fichiers du référentiel aws-samples/ sur. eb-php-drupal GitHub

Pour créer un projet Drupal
  1. Exécutez la commande suivante pour télécharger Drupal à partir de www.drupal.org/download. Pour en savoir plus sur les téléchargements, consultez le site Web de Drupal.

    Si la plateforme de votre environnement Elastic Beanstalk utilise PHP 7.4 ou version antérieure, nous vous recommandons de télécharger la version 8.9.13 de Drupal pour ce tutoriel. Pour ce faire, exécutez la commande suivante.

    ~$ curl https://ftp.drupal.org/files/projects/drupal-8.9.13.tar.gz -o drupal.tar.gz

    Si votre plateforme utilise PHP 8.0 ou version ultérieure, nous vous recommandons de télécharger Drupal 9.1.5. Pour ce faire, exécutez la commande suivante.

    ~$ curl https://ftp.drupal.org/files/projects/drupal-9.1.5.tar.gz -o drupal.tar.gz

    Pour plus d'informations sur les versions de Drupal et les versions de PHP qu'elles prennent en charge, consultez Exigences relatives à PHP dans la documentation officielle de Drupal. Les versions principales recommandées par Drupal sont répertoriées sur le site Web de Drupal.

  2. Utilisez la commande suivante pour télécharger les fichiers de configuration à partir de l'exemple de référentiel :

    ~$ wget https://github.com/aws-samples/eb-php-drupal/releases/download/v1.1/eb-php-drupal-v1.zip
  3. Extrayez Drupal et modifiez le nom du dossier.

    Si vous avez téléchargé Drupal 8.9.13 :

    ~$ tar -xvf drupal.tar.gz ~$ mv drupal-8.9.13 drupal-beanstalk ~$ cd drupal-beanstalk

    Si vous avez téléchargé Drupal 9.1.5 :

    ~$ tar -xvf drupal.tar.gz ~$ mv drupal-9.1.5 drupal-beanstalk ~$ cd drupal-beanstalk
  4. Extrayez les fichiers de configuration sur l'installation de Drupal.

    ~/drupal-beanstalk$ unzip ../eb-php-drupal-v1.zip creating: .ebextensions/ inflating: .ebextensions/dev.config inflating: .ebextensions/drupal.config inflating: .ebextensions/efs-create.config inflating: .ebextensions/efs-filesystem.template inflating: .ebextensions/efs-mount.config inflating: .ebextensions/loadbalancer-sg.config inflating: LICENSE inflating: README.md inflating: beanstalk-settings.php

Vérifiez que la structure de votre dossier drupal-beanstalk est correcte, comme illustré.

drupal-beanstalk$ tree -aL 1 . ├── autoload.php ├── beanstalk-settings.php ├── composer.json ├── composer.lock ├── core ├── .csslintrc ├── .ebextensions ├── .ebextensions ├── .editorconfig ├── .eslintignore ├── .eslintrc.json ├── example.gitignore ├── .gitattributes ├── .htaccess ├── .ht.router.php ├── index.php ├── LICENSE ├── LICENSE.txt ├── modules ├── profiles ├── README.md ├── README.txt ├── robots.txt ├── sites ├── themes ├── update.php ├── vendor └── web.config

Le fichier beanstalk-settings.php du référentiel de projet utilise les variables d'environnement que vous avez définies à l'étape précédente pour configurer la connexion de base de données. Le dossier .ebextensions contient des fichiers de configuration qui créent des ressources supplémentaires au sein de votre environnement Elastic Beanstalk.

Les fichiers de configuration doivent être modifiés pour être compatibles avec votre compte. Remplacez les valeurs d'espace réservé dans les fichiers par les ID appropriés et créez un bundle de fichiers source.

Pour mettre à jour les fichiers de configuration et créer une solution groupée source.
  1. Modifiez les fichiers de configuration comme suit.

    • .ebextensions/dev.config – Restreint l'accès à votre environnement à votre adresse IP afin de le protéger lors du processus d'installation de Drupal. Remplacez l'adresse IP de l'espace réservé vers le haut du fichier par votre adresse IP publique.

    • .ebextensions/efs-create.config – Crée un système de fichiers EFS et des points de montage dans chaque zone de disponibilité/sous-réseau de votre VPC. Identifiez vos ID de sous-réseau et de VPC par défaut dans la console Amazon VPC.

  2. Créez un bundle source contenant les fichiers dans votre dossier de projet. La commande suivante permet de créer une solution groupée source nommée drupal-beanstalk.zip. Elle exclut les fichiers du dossier vendor, lesquels prennent beaucoup de place et ne sont pas nécessaires pour le déploiement de votre application dans Elastic Beanstalk.

    ~/eb-drupal$ zip ../drupal-beanstalk.zip -r * .[^.]* -x "vendor/*"

Chargez le bundle source sur Elastic Beanstalk pour déployer Drupal dans votre environnement.

Pour déployer un groupe source
  1. Ouvrez la console Elastic Beanstalk, puis dans la liste des régions, sélectionnez votre. Région AWS

  2. Dans le panneau de navigation, choisissez Environments (Environnements), puis choisissez le nom de votre environnement dans la liste.

    Note

    Si vous avez plusieurs environnements, utilisez la barre de recherche pour filtrer la liste des environnements.

  3. Sur la page de présentation de l'environnement, choisissez Upload and deploy (Charger et déployer).

  4. Utilisez la boîte de dialogue à l'écran pour charger le bundle source.

  5. Choisissez Deploy (Déployer).

  6. Lorsque le déploiement est terminé, vous pouvez sélectionner l'URL de site pour ouvrir votre site web dans un nouvel onglet.

Installation de Drupal

Pour terminer l'installation de Drupal
  1. Ouvrez la console Elastic Beanstalk, puis dans la liste des régions, sélectionnez votre. Région AWS

  2. Dans le panneau de navigation, choisissez Environments (Environnements), puis choisissez le nom de votre environnement dans la liste.

    Note

    Si vous avez plusieurs environnements, utilisez la barre de recherche pour filtrer la liste des environnements.

  3. Choisissez l'URL d'environnement pour ouvrir votre site dans un navigateur. Vous êtes redirigé vers un assistant d'installation Drupal car le site n'a pas encore été configuré.

  4. Effectuez une installation standard avec les paramètres suivants pour la base de données :

    • Nom de la base de donnéesNom de la base de données qui apparaît sur la console Amazon RDS.

    • Nom d'utilisateur de base de données et mot de passe – Valeurs des champs Identifiant principal et Mot de passe principal que vous avez saisies lors de la création de votre base de données.

    • Options avancées > Hôte – Valeur du champ Point de terminaison correspondant à l'instance de base de données, affichée dans la console Amazon RDS.

L'installation prend environ une minute.

Mise à jour de la configuration de Drupal et retrait de restrictions d'accès

Le processus d'installation de Drupal a créé un fichier nommé settings.php dans le dossier sites/default sur l'instance. Vous aurez besoin de ce fichier dans votre code source pour éviter de réinitialiser votre site lors des déploiements suivants, mais le fichier contient actuellement des codes secrets que vous ne souhaitez pas valider dans la source. Connectez-vous à l'instance d'application afin de récupérer les informations du fichier de paramètres.

Pour vous connecter à votre instance d'application avec SSH
  1. Ouvrez la page Instances de la console Amazon EC2.

  2. Choisissez l'instance d'application. C'est celui qui porte le nom de votre environnement Elastic Beanstalk.

  3. Choisissez Se connecter.

  4. Suivez les instructions pour vous connecter à l'instance avec SSH. La commande ressemble à ce qui suit.

    $ ssh -i ~/.ssh/mykey ec2-user@ec2-00-55-33-222.us-west-2.compute.amazonaws.com

Obtenez l'ID du répertoire de synchronisation dans la dernière ligne du fichier de paramètres.

[ec2-user ~]$ tail -n 1 /var/app/current/sites/default/settings.php $config_directories['sync'] = 'sites/default/files/config_4ccfX2sPQm79p1mk5IbUq9S_FokcENO4mxyC-L18-4g_xKj_7j9ydn31kDOYOgnzMu071Tvc4Q/sync';

Le fichier contient également la clé de hachage actuelle des sites, mais vous pouvez ignorer la valeur actuelle et utiliser la votre.

Attribuez le chemin d'accès au répertoire et la clé de hachage aux propriétés de l'environnement. Le fichier de paramètres personnalisés du référentiel de projet lit ces propriétés pour configurer le site pendant le déploiement, en plus des propriétés de connexion de base de données que vous avez définies précédemment.

Propriétés de configuration de Drupal
Pour configurer les propriétés d'environnement dans la console Elastic Beanstalk
  1. Ouvrez la console Elastic Beanstalk, puis dans la liste des régions, sélectionnez votre. Région AWS

  2. Dans le panneau de navigation, choisissez Environments (Environnements), puis choisissez le nom de votre environnement dans la liste.

    Note

    Si vous avez plusieurs environnements, utilisez la barre de recherche pour filtrer la liste des environnements.

  3. Dans le panneau de navigation, choisissez Configuration.

  4. Dans la catégorie de configuration Mises à jour, surveillance et journalisation, sélectionnez Modifier.

  5. Faites défiler la page jusqu'à Propriétés de l'environnement.

  6. Sélectionnez Ajouter une propriété d'environnement.

  7. Saisissez les paires Nom et Valeur de la propriété.

  8. Si vous devez ajouter d'autres variables, répétez l'étape 6 et l'étape 7.

  9. Pour enregistrer les modifications, cliquez sur Appliquer en bas de la page.

Enfin l'exemple de projet inclut un fichier de configuration (loadbalancer-sg.config) qui crée un groupe de sécurité et l'affecte à l'équilibreur de charge de l'environnement, à l'aide de l'adresse IP que vous avez configurée dans dev.config afin de restreindre l'accès HTTP sur le port 80 aux connexions provenant de votre réseau. Sinon, un tiers pourrait se connecter éventuellement à votre site avant que vous ayez installé Drupal et configuré votre compte d'administrateur.

Pour mettre à jour la configuration de Drupal et retirer les restrictions d'accès
  1. Supprimez le fichier .ebextensions/loadbalancer-sg.config de votre répertoire de projet.

    ~/drupal-beanstalk$ rm .ebextensions/loadbalancer-sg.config
  2. Copiez le fichier settings.php personnalisé dans le dossier des sites.

    ~/drupal-beanstalk$ cp beanstalk-settings.php sites/default/settings.php
  3. Créez une solution groupée source.

    ~/eb-drupal$ zip ../drupal-beanstalk-v2.zip -r * .[^.]* -x "vendor/*"

Chargez le bundle source sur Elastic Beanstalk pour déployer Drupal dans votre environnement.

Pour déployer un groupe source
  1. Ouvrez la console Elastic Beanstalk, puis dans la liste des régions, sélectionnez votre. Région AWS

  2. Dans le panneau de navigation, choisissez Environments (Environnements), puis choisissez le nom de votre environnement dans la liste.

    Note

    Si vous avez plusieurs environnements, utilisez la barre de recherche pour filtrer la liste des environnements.

  3. Sur la page de présentation de l'environnement, choisissez Upload and deploy (Charger et déployer).

  4. Utilisez la boîte de dialogue à l'écran pour charger le bundle source.

  5. Choisissez Deploy (Déployer).

  6. Lorsque le déploiement est terminé, vous pouvez sélectionner l'URL de site pour ouvrir votre site web dans un nouvel onglet.

Configuration de votre groupe Auto Scaling

Enfin, configurez le groupe Auto Scaling de votre environnement avec un nombre minimum d'instances plus élevé. Exécutez au moins deux instances en permanence afin d'empêcher que les serveurs web de votre environnement constituent un point de défaillance unique et pour vous permettre de déployer des modifications sans mettre votre site hors service.

Pour configurer le groupe Auto Scaling de votre environnement pour une haute disponibilité
  1. Ouvrez la console Elastic Beanstalk, puis dans la liste des régions, sélectionnez votre. Région AWS

  2. Dans le panneau de navigation, choisissez Environments (Environnements), puis choisissez le nom de votre environnement dans la liste.

    Note

    Si vous avez plusieurs environnements, utilisez la barre de recherche pour filtrer la liste des environnements.

  3. Dans le panneau de navigation, choisissez Configuration.

  4. Dans la catégorie de configuration Capacity (Capacité), choisissez Edit (Modifier).

  5. Dans la section Auto Scaling group (Groupe Auto Scaling), définissez les Min instances (Instances min.) sur 2.

  6. Pour enregistrer les modifications, cliquez sur Appliquer en bas de la page.

Pour la prise en charge des chargements de contenu sur plusieurs instances, l'exemple de projet utilise Amazon Elastic File System pour créer un système de fichiers partagé. Créez une publication sur le site et chargez le contenu afin de le stocker sur le système de fichiers partagé. Affichez la publication et actualisez la page plusieurs fois pour atteindre les deux instances et vérifier que le système de fichiers partagé fonctionne.

Nettoyage

Lorsque vous avez fini d'utiliser Elastic Beanstalk, vous pouvez arrêter votre environnement. Elastic Beanstalk AWS met fin à toutes les ressources associées à votre environnement, telles que les instances Amazon EC2, les instances de base de données, les équilibreursde charge, les groupes de sécurité et les alarmes.

Pour arrêter votre environnement Elastic Beanstalk
  1. Ouvrez la console Elastic Beanstalk, puis dans la liste des régions, sélectionnez votre. Région AWS

  2. Dans le panneau de navigation, choisissez Environments (Environnements), puis choisissez le nom de votre environnement dans la liste.

    Note

    Si vous avez plusieurs environnements, utilisez la barre de recherche pour filtrer la liste des environnements.

  3. Choisissez Actions (Actions), puis Terminate Environment (Résilier l’environnement).

  4. Utilisez la boîte de dialogue à l'écran pour confirmer la résiliation de l'environnement.

Avec Elastic Beanstalk, vous pouvez facilement créer un nouvel environnement pour votre application à tout moment.

Vous pouvez également arrêter les ressources de base de données que vous avez créées hors de votre environnement Elastic Beanstalk. Lorsque vous résiliez une instance de base de données Amazon RDS, vous pouvez prendre un instantané et restaurer les données dans une autre instance ultérieurement.

Pour résilier votre instance DB RDS
  1. Ouvrez la console Amazon RDS.

  2. Choisissez Databases (Bases de données).

  3. Sélectionnez votre instance DB.

  4. Choisissez Actions, puis Supprimer.

  5. Choisissez si vous souhaitez créer un instantané, puis choisissez Delete (Supprimer).

Étapes suivantes

À mesure que vous continuez à développer votre application, vous souhaiterez probablement disposer d'une solution pour gérer des environnements et déployer votre application sans devoir créer un fichier .zip et le charger manuellement sur la console Elastic Beanstalk. L'interface de ligne de commande Elastic Beanstalk (EB CLI easy-to-use ) fournit des commandes pour créer, configurer et déployer des applications dans les environnements Elastic Beanstalk à partir de la ligne de commande.

L'exemple d'application utilise des fichiers de configuration pour configurer les paramètres PHP et pour créer une table dans la base de données si elle n'existe pas déjà. Vous pouvez également utiliser un fichier de configuration pour configurer les paramètres de groupe de sécurité de vos instances lors de la création de l'environnement afin d'éviter les mises à jour de configuration, qui prennent du temps. Pour plus d’informations, consultez Personnalisation d'environnement avancée avec fichiers de configuration (.ebextensions).

Pour le développement et les tests, vous pouvez utiliser la fonctionnalité Elastic Beanstalk permettant d'ajouter directement une instance de base de données gérée à votre environnement. Pour savoir comment configurer une base de données dans votre environnement, consultez Ajout d'une base de données à votre environnement Elastic Beanstalk.

Si vous avez besoin d'une base de données hautes performances, envisagez d'utiliser Amazon Aurora. Amazon Aurora est un moteur de base de données compatible MySQL qui offre des fonctionnalités de base de données commerciales à faible coût. Pour connecter votre application à une autre base de données, répétez la procédure de configuration du groupe de sécurité et mettez à jour les propriétés d'environnement associées à RDS.

Enfin, si vous prévoyez d'utiliser votre application dans un environnement de production, vous devez configurer un nom de domaine personnalisé pour votre environnement et activer HTTPS pour des connexions sécurisées.