翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
PHP Elastic Beanstalk 環境に Amazon RDS DB インスタンスを追加する
このトピックでは、Elastic Beanstalk コンソールを使用して Amazon RDS を作成する手順について説明します。Amazon Relational Database Service (Amazon RDS) DB インスタンスを使用して、アプリケーションによって収集および変更されたデータを保存することができます。データベースを環境に結合して Elastic Beanstalk で管理することも、分離したものとして作成して別のサービスで外部的に管理することもできます。これらの手順では、データベースは環境に結合され、Elastic Beanstalk によって管理されます。Amazon RDS と Elastic Beanstalk の統合の詳細については、「Elastic Beanstalk 環境にデータベースを追加する」を参照してください。
環境に DB インスタンスを追加
お客様の環境に DB インスタンスを追加するには
Elastic Beanstalk コンソール
を開き、[Regions] (リージョン) リストで AWS リージョンを選択します。 -
ナビゲーションペインで、[環境] を選択し、リストから環境の名前を選択します。
注記
環境が多数ある場合は、検索バーを使用して環境リストをフィルタリングします。
ナビゲーションペインで、[設定] を選択します。
-
[データベース] 設定カテゴリで、[編集] を選択します。
-
DB エンジンを選択して、ユーザー名とパスワードを入力します。
-
ページの最下部で [適用] を選択し変更を保存します。
DB インスタンスの追加には約 10 分かかります。環境の更新が完了すると、DB インスタンスのホスト名とその他の接続情報は以下の環境プロパティを通じてアプリケーションに使用できるようになります。
プロパティ名 | 説明 | プロパティ値 |
---|---|---|
|
DB インスタンスのホスト名。 |
Amazon RDS コンソールの [Connectivity & security (Connectivityとセキュリティ)] タブ: [Endpoint (エンドポイント)]。 |
|
DB インスタンスが接続を許可するポート。デフォルト値は DB エンジンによって異なります。 |
Amazon RDS コンソールの [Connectivity & security (接続とセキュリティ)] タブ: [Port (ポート)]。 |
|
データベース名 |
Amazon RDS コンソールの [Configuration (設定)] タブ: [DB Name (DB 名)]。 |
|
お客様のデータベース用に設定したユーザー名。 |
Amazon RDS コンソールの [Configuration (設定)] タブ: [Master username (マスターユーザー名)]。 |
|
お客様のデータベース用に設定したパスワード。 |
Amazon RDS コンソールではリファレンスできません。 |
Elastic Beanstalk 環境と結合したデータベースインスタンスの設定の詳細については、「Elastic Beanstalk 環境にデータベースを追加する」を参照してください。
ドライバのダウンロード
PHP データオブジェクト (PDO) を使用してデータベースに connect するには、選択したデータベースエンジンに一致するドライバーをインストールします。
-
MySQL –
PDO_MYSQL
-
PostgreSQL –
PDO_PGSQL
-
Oracle –
PDO_OCI
-
SQL Server –
PDO_SQLSRV
詳細については、「http://php.net/manual/en/pdo.installation.php
PDO または MySQLi を使用してデータベースに接続
$_SERVER[`
を使用して、環境から接続情報の読み取りができます。VARIABLE
`]
PDO では、ホスト、ポート、名前からデータソース名 (DSN) を作成します。データベースのユーザー名とパスワードを使用して、PDO のコンストラクタ
例 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
コンストラクタに渡します。
例 mysqli_connect() を使用して RDS データベースに接続する
$link = new mysqli($_SERVER['RDS_HOSTNAME'], $_SERVER['RDS_USERNAME'], $_SERVER['RDS_PASSWORD'], $_SERVER['RDS_DB_NAME'], $_SERVER['RDS_PORT']);
Symfony を使用してデータベースに接続する
Symfony バージョン 3.2 以降については、%env(
を使用し、Elastic Beanstalk で設定された環境プロパティに基づいて設定ファイルのデータベースパラメータを設定します。PROPERTY_NAME
)%
例 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)
旧バージョンの Symfony については、SYMFONY__
で始まる環境変数にのみアクセスできます。Elastic Beanstalk 定義の環境プロパティにはアクセスできません。また、Symfony に接続情報を渡すには、独自の環境プロパティを定義する必要があります。
Symfony 2 でデータベースに connect するには、パラメータごとに環境プロパティを作成します。次に、%
を使用して、設定ファイルの Symfony で変換された可変数にアクセスします。たとえば、property.name
%SYMFONY__DATABASE__USER
という名前の環境プロパティには database.user
としてアクセスできます。
database_user: "%database.user%"
詳細については、外部パラメータ (Symfony 2.8)