Ajouter une instance de base de données Amazon RDS à votre environnement PHP 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.

Ajouter une instance de base de données Amazon RDS à votre environnement PHP Elastic Beanstalk

Cette rubrique fournit des instructions pour créer un Amazon RDS à l'aide de la console Elastic Beanstalk. Vous pouvez utiliser une instance de base de données Amazon Relational Database Service (Amazon RDS) pour stocker les données collectées et modifiées par votre application. La base de données peut être liée à votre environnement et gérée par Elastic Beanstalk, ou elle peut être créée comme déliée et gérée en externe par un autre service. Dans ces instructions, la base de données est couplée à votre environnement et gérée par Elastic Beanstalk. Pour plus d'informations sur l'intégration d'un Amazon RDS avec Elastic Beanstalk, consultez Ajout d'une base de données à votre environnement Elastic Beanstalk.

Ajout d'une instance de base de données à votre environnement

Pour ajouter une instance DB à votre environnement
  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.

  3. Dans le panneau de navigation, choisissez Configuration.

  4. Dans la catégorie de configuration Database (Base de données), choisissez Edit (Modifier).

  5. Choisissez un moteur de base de données, puis saisissez un nom d'utilisateur et un mot de passe.

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

L'ajout d'une instance DB prend environ 10 minutes. Une fois la mise à jour de l'environnement terminée, le nom d'hôte de l'instance DB et les autres informations de connexion sont disponibles dans votre application, via les propriétés d'environnement suivantes :

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.

Pour plus d'informations sur la configuration d'une instance de base de données liée à un environnement Elastic Beanstalk, consultez Ajout d'une base de données à votre environnement Elastic Beanstalk.

Téléchargement d'un pilote

Pour utiliser des objets de données PHP (PDO) pour la connexion à la base de données, installez le pilote correspondant au moteur de base de données que vous avez choisi.

Pour de plus amples informations, veuillez consulter http://php.net/manual/en/pdo.installation.php.

Connexion à une base de données à l'aide d'un PDO ou d'un My SQLi

Vous pouvez utiliser $_SERVER[`VARIABLE`] afin de lire les informations de connexion depuis l'environnement.

Pour un PDO, créez un nom de source de données (DSN) à partir de l'hôte, du port et du nom. Transmettez le DSN au constructeur du PDO avec le nom d'utilisateur de base de données et le mot de passe.

Exemple Connexion à une base de données RDS avec PDO - MySQL
<?php $dbhost = $_SERVER['RDS_HOSTNAME']; $dbport = $_SERVER['RDS_PORT']; $dbname = $_SERVER['RDS_DB_NAME']; $charset = 'utf8' ; $dsn = "mysql:host={$dbhost};port={$dbport};dbname={$dbname};charset={$charset}"; $username = $_SERVER['RDS_USERNAME']; $password = $_SERVER['RDS_PASSWORD']; $pdo = new PDO($dsn, $username, $password); ?>

Pour les autres pilotes, remplacez mysql par le nom de votre pilote – pgsql, oci ou sqlsrv.

Pour MySQLi, transmettez le nom d'hôte, le nom d'utilisateur, le mot de passe, le nom de base de données et le port au mysqli constructeur.

Exemple Connexion à une base de données RDS avec mysqli_connect()
$link = new mysqli($_SERVER['RDS_HOSTNAME'], $_SERVER['RDS_USERNAME'], $_SERVER['RDS_PASSWORD'], $_SERVER['RDS_DB_NAME'], $_SERVER['RDS_PORT']);

Connexion à une base de données avec Symfony

Pour Symfony version 3.2 et versions ultérieures, vous pouvez utiliser %env(PROPERTY_NAME)% pour définir les paramètres de base de données dans un fichier de configuration en fonction des propriétés d'environnement définies par Elastic Beanstalk.

Exemple app/config/parameters.yml
parameters: database_driver: pdo_mysql database_host: '%env(RDS_HOSTNAME)%' database_port: '%env(RDS_PORT)%' database_name: '%env(RDS_DB_NAME)%' database_user: '%env(RDS_USERNAME)%' database_password: '%env(RDS_PASSWORD)%'

Pour plus d'informations, consultez External Parameters (Symfony 3.4).

Pour les versions antérieures de Symfony, les variables d'environnement sont uniquement accessibles si elles commencent par SYMFONY__. Cela signifie que les propriétés d'environnement définies par Elastic Beanstalk ne sont pas accessibles, et vous devez définir vos propres propriétés d'environnement pour transmettre les informations de connexion à Symfony.

Pour vous connecter à une base de données avec Symfony 2, créez une propriété d'environnement pour chaque paramètre. Ensuite, utilisez %property.name% pour accéder à la variable transformée par Symfony dans un fichier de configuration. Par exemple, une propriété d'environnement nommée SYMFONY__DATABASE__USER est accessible en tant que database.user.

database_user: "%database.user%"

Pour plus d'informations, consultez External Parameters (Symfony 2.8).