

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# PHP Elastic Beanstalk 環境に Amazon RDS DB インスタンスを追加する
<a name="create_deploy_PHP.rds"></a>

このトピックでは、Elastic Beanstalk コンソールを使用して Amazon RDS を作成する手順について説明します。Amazon Relational Database Service (Amazon RDS) DB インスタンスを使用して、アプリケーションによって収集および変更されたデータを保存することができます。データベースを環境に結合して Elastic Beanstalk で管理することも、分離したものとして作成して別のサービスで外部的に管理することもできます。これらの手順では、データベースは環境に結合され、Elastic Beanstalk によって管理されます。Amazon RDS と Elastic Beanstalk の統合の詳細については、「[Elastic Beanstalk 環境にデータベースを追加する](using-features.managing.db.md)」を参照してください。

**Topics**
+ [環境に DB インスタンスを追加](#php-rds-create)
+ [ドライバのダウンロード](#php-rds-drivers)
+ [PDO または MySQLi を使用してデータベースに接続](#php-rds-connect)
+ [Symfony を使用してデータベースに接続する](#php-rds-symfony)

## 環境に DB インスタンスを追加
<a name="php-rds-create"></a>

**お客様の環境に DB インスタンスを追加するには**

1. [Elastic Beanstalk コンソール](https://console.aws.amazon.com/elasticbeanstalk)を開き、**リージョン**リストで を選択します AWS リージョン。

1. ナビゲーションペインで、[**環境**] を選択し、リストから環境の名前を選択します。

1. ナビゲーションペインで、[**設定**] を選択します。

1. [**データベース**] 設定カテゴリで、[**編集**] を選択します。

1. DB エンジンを選択して、ユーザー名とパスワードを入力します。

1. ページの最下部で **[適用]** を選択し変更を保存します。

DB インスタンスの追加には約 10 分かかります。環境の更新が完了すると、DB インスタンスのホスト名とその他の接続情報は以下の環境プロパティを通じてアプリケーションに使用できるようになります。


| プロパティ名 | 説明 | プロパティ値 | 
| --- | --- | --- | 
|  `RDS_HOSTNAME`  |  DB インスタンスのホスト名。  |  Amazon RDS コンソールの [**Connectivity & security (Connectivityとセキュリティ)**] タブ: [**Endpoint (エンドポイント)**]。  | 
|  `RDS_PORT`  |  DB インスタンスが接続を許可するポート。デフォルト値は DB エンジンによって異なります。  |  Amazon RDS コンソールの [**Connectivity & security (接続とセキュリティ)**] タブ: [**Port (ポート)**]。  | 
|  `RDS_DB_NAME`  |  データベース名 **ebdb**。  |  Amazon RDS コンソールの [**Configuration (設定)**] タブ: [**DB Name (DB 名)**]。  | 
|  `RDS_USERNAME`  |  お客様のデータベース用に設定したユーザー名。  |  Amazon RDS コンソールの [**Configuration (設定)**] タブ: [**Master username (マスターユーザー名)**]。  | 
|  `RDS_PASSWORD`  |  お客様のデータベース用に設定したパスワード。  |  Amazon RDS コンソールではリファレンスできません。  | 

Elastic Beanstalk 環境と結合したデータベースインスタンスの設定の詳細については、「[Elastic Beanstalk 環境にデータベースを追加する](using-features.managing.db.md)」を参照してください。

## ドライバのダウンロード
<a name="php-rds-drivers"></a>

PHP データオブジェクト (PDO) を使用してデータベースに connect するには、選択したデータベースエンジンに一致するドライバーをインストールします。
+ **MySQL** – [http://php.net/manual/en/ref.pdo-mysql.php](http://php.net/manual/en/ref.pdo-mysql.php)
+ **PostgreSQL** – [http://php.net/manual/en/ref.pdo-pgsql.php](http://php.net/manual/en/ref.pdo-pgsql.php)
+ **Oracle** – [http://php.net/manual/en/ref.pdo-oci.php](http://php.net/manual/en/ref.pdo-oci.php)
+ **SQL Server** – [http://php.net/manual/en/ref.pdo-sqlsrv.php](http://php.net/manual/en/ref.pdo-sqlsrv.php)

詳細については、「[http://php.net/manual/en/pdo.installation.php](http://php.net/manual/en/pdo.installation.php)」を参照してください。

## PDO または MySQLi を使用してデータベースに接続
<a name="php-rds-connect"></a>

`$_SERVER[`VARIABLE`]` を使用して、環境から接続情報の読み取りができます。

PDO では、ホスト、ポート、名前からデータソース名 (DSN) を作成します。データベースのユーザー名とパスワードを使用して、[PDO のコンストラクタ](https://php.net/manual/en/pdo.construct.php)に DSN を渡します。

**Example PDO - MySQL を使用して RDS データベースに connect する**  

```
<?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);
?>
```

他のドライバーについては、`mysql` をドライバー (`pgsql`、`oci`、または `sqlsrv`) の名前に置き換えます。

MySQLi については、ホスト名、ユーザー名、パスワード、データベース名、およびポートを `mysqli` コンストラクタに渡します。

**Example mysqli\$1connect() を使用して RDS データベースに接続する**  

```
$link = new mysqli($_SERVER['RDS_HOSTNAME'], $_SERVER['RDS_USERNAME'], $_SERVER['RDS_PASSWORD'], $_SERVER['RDS_DB_NAME'], $_SERVER['RDS_PORT']);
```

## Symfony を使用してデータベースに接続する
<a name="php-rds-symfony"></a>

Symfony バージョン 3.2 以降については、`%env(PROPERTY_NAME)%` を使用し、Elastic Beanstalk で設定された環境プロパティに基づいて設定ファイルのデータベースパラメータを設定します。

**Example 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)%'
```

詳細については、[外部パラメータ (Symfony 3.4)](http://symfony.com/doc/3.4/configuration/external_parameters.html) に関する記事を参照してください。

旧バージョンの Symfony については、`SYMFONY__` で始まる環境変数にのみアクセスできます。Elastic Beanstalk 定義の環境プロパティにはアクセスできません。また、Symfony に接続情報を渡すには、独自の環境プロパティを定義する必要があります。

Symfony 2 でデータベースに connect するには、パラメータごとに[環境プロパティを作成](create_deploy_PHP.container.md#php-console-properties)します。次に、`%property.name%` を使用して、設定ファイルの Symfony で変換された可変数にアクセスします。たとえば、`SYMFONY__DATABASE__USER` という名前の環境プロパティには `database.user` としてアクセスできます。

```
    database_user:     "%database.user%"
```

詳細については、[外部パラメータ (Symfony 2.8)](http://symfony.com/doc/2.8/configuration/external_parameters.html) に関する記事を参照してください。