

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# PHP Elastic Beanstalk 환경에 Amazon RDS DB 인스턴스 추가
<a name="create_deploy_PHP.rds"></a>

여기에서는 Elastic Beanstalk 콘솔을 사용하여 Amazon RDS를 생성하는 방법을 설명합니다. Amazon Relational Database Service(RDS) DB 인스턴스를 통해 애플리케이션이 수집하고 수정하는 데이터를 저장할 수 있습니다. Elastic Beanstalk를 통해 데이터베이스를 환경으로 연결한 후 관리하거나 비연결을 통해 생성하여 외부 기타 서버로 관리할 수 있습니다. 이러한 지침에서 데이터베이스는 Elastic Beanstalk를 통해 사용자 환경에 연결되고 관리됩니다. Elastic Beanstalk를 통한 Amazon RDS 통합에 대한 자세한 내용은 [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 콘솔 **연결 및 보안** 탭의 **엔드포인트**입니다.  | 
|  `RDS_PORT`  |  DB 인스턴스가 연결을 허용하는 포트입니다. DB 엔진마다 기본값이 다릅니다.  |  Amazon RDS 콘솔 **연결 및 보안** 탭의 **포트**입니다.  | 
|  `RDS_DB_NAME`  |  데이터베이스 이름은 **ebdb**입니다.  |  Amazon RDS 콘솔 **구성** 탭의 **DB 이름**입니다.  | 
|  `RDS_USERNAME`  |  데이터베이스에 구성된 사용자 이름입니다.  |  Amazon RDS 콘솔 **구성** 탭의 **마스터 사용자 이름**입니다.  | 
|  `RDS_PASSWORD`  |  데이터베이스에 구성된 암호입니다.  |  Amazon RDS 콘솔에서 참조용 정보를 사용할 수 없습니다.  | 

Elastic Beanstalk 환경에 결합된 데이터베이스에 대한 자세한 내용은 [Elastic Beanstalk 환경에 데이터베이스 추가](using-features.managing.db.md)을 참조하세요.

## 드라이버 다운로드
<a name="php-rds-drivers"></a>

PDO(PHP Data Object)를 사용하여 데이터베이스에 연결하려면 선택한 데이터베이스 엔진과 일치하는 드라이버를 설치합니다.
+ **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(Data Source Name)를 생성합니다. 데이터베이스 사용자 이름 및 암호와 함께 DSN을 [PDO의 생성자](https://php.net/manual/en/pdo.construct.php)로 전달합니다.

**Example PDO - MySQL을 사용해 RDS 데이터베이스에 연결하려면**  

```
<?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로 데이터베이스를 연결하려면, 각 파라미터에 대해 [환경 속성을 생성](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)를 참조하십시오.