AWS Elastic Beanstalk
開発者ガイド

データベースを Elastic Beanstalk 環境に追加する

Elastic Beanstalk 環境へのデータベースインスタンスの追加を容易にするために、Elastic Beanstalk は Amazon Relational Database Service (Amazon RDS) との統合を提供します。Elastic Beanstalk を使用して、環境の作成時または作成後に、MySQL、PostgreSQL、Oracle、または SQL Server データベースを環境に追加できます。データベースインスタンスを環境に追加すると、Elastic Beanstalk はデータベースのホスト名、ポート、ユーザー名、パスワード、データベース名の環境のプロパティを設定し、アプリケーションに接続情報を提供します。

環境の一部であるデータベースインスタンスは、環境のライフサイクルに固定されます。一度追加すると環境から削除することはできません。環境を終了すると、データベースインスタンスも終了します。環境に DB インスタンスの追加時、環境を終了しスナップショットからデータベースを復元するとき、Elastic Beanstalk を設定して、データベースのスナップショットを保存することができます。データベースのスナップショットを保存するときに料金が発生する場合があります。詳細については、「Amazon RDS 料金表」の「バックアップストレージ」セクションを参照してください。

本稼働環境では、環境外にデータベースインスタンスを起動して、Elastic Beanstalk によって提供される機能の外部で接続するようにアプリケーションを設定することができます。環境外部のデータベースインスタンスを使用するには、追加のセキュリティグループと接続文字列の設定が必要です。ただし、複数の環境からデータベースに接続したり、統合データベースでサポートされていないデータベースタイプを使用したり、ブルー/グリーンデプロイメントを実行したり、データベースインスタンスに影響を与えずに環境を分割することもできます。

環境に Amazon RDS DB インスタンスを追加する

Elastic Beanstalk コンソールを使用して、環境に DB インスタンスを追加できます。

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

  1. Elastic Beanstalk コンソール を開きます。

  2. お客様の環境の管理ページに移動します。

  3. [Configuration] を選択します。

  4. [データベース] 設定カテゴリで、[変更] を選択します。

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

  6. [Apply] を選択します。

次のオプションを設定できます。

  • [スナップショット] – 既存のデータベースのスナップショットを選択します。Elastic Beanstalk は、スナップショットを復元して、環境に追加します。デフォルト値は [なし] であり、このページの他の設定を使用して新しいデータベースを設定できます。

  • [エンジン] – データベースエンジンを選択します。

  • [エンジンバージョン] – データベースエンジンの特定のバージョンを選択します。

  • [インスタンスクラス] – DB インスタンスのクラスを選択します。DB インスタンスクラスの詳細については、https://aws.amazon.com/rds/ を参照してください。

  • [ストレージ] – データベースのためにプロビジョニングするストレージの容量を選択します。割り当て済みストレージを後で増やすことはできますが、減らすことはできません。ストレージの割り当ての詳細については、Featuresを参照してください。

  • [ユーザー名] – 英数字を使用して任意のユーザー名を入力します。

  • [パスワード] – 8~16 文字の印刷可能な ASCII 文字 (/\@ は除く) を含む任意のパスワードを入力します。

  • [保持期間] – [スナップショットの作成] を選択して、環境を終了するときにデータベースのスナップショットを作成します。

  • [可用性] – 高可用性のために、2 番目のアベイラビリティーゾーンでウォームバックアップを実行するには、[高 (マルチ AZ)] を選択します。

注記

Elastic Beanstalk を使用して、データベースのマスターユーザーを作成し、ユーザー名とパスワードを指定します。マスターユーザーとその権限の詳細については、「マスターユーザーアカウント特権」を参照してください。


        Elastic Beanstalk Auto Scaling 設定ウィンドウ

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 – お客様のデータベース用に設定したパスワード。

データベースに接続

アプリケーションの内部から環境変数を使用して DB に接続する際に、接続情報を利用してください。アプリケーションで Amazon RDS を使用する方法については、以下のトピックを参照してください。

コンソールを使用した統合 RDS DB インスタンスの設定

Elastic Beanstalk コンソール の環境の [設定] ページの [データベース] セクションで、DB インスタンスの設定を表示および変更できます。

Elastic Beanstalk コンソールで環境の DB インスタンスを設定するには

  1. Elastic Beanstalk コンソール を開きます。

  2. お客様の環境の管理ページに移動します。

  3. [Configuration] を選択します。

  4. [データベース] 設定カテゴリで、[変更] を選択します。

データベースの作成後、[インスタンスクラス]、[ストレージ]、[パスワード]、[保持期間]、[可用性] を変更することができます。インスタンスクラスを変更すると、Elastic Beanstalk は DB インスタンスを再プロビジョニングします。

警告

Elastic Beanstalk によって提供される機能の外部で (たとえば、Amazon RDS コンソールで) DB インスタンスの設定を変更しないでください。これを行うと、Amazon RDS の DB 設定が環境定義と同期しない可能性があります。環境を更新または再起動すると、環境で指定された設定は、Elastic Beanstalk 以外の設定を上書きします。

Elastic Beanstalk が直接サポートしていない設定を変更する必要がある場合は、Elastic Beanstalk の設定ファイルを使用してください。

設定ファイルを使用した統合 RDS DB インスタンスの設定

設定ファイルを使用して、環境の DB インスタンスを設定することができます。aws:rds:dbinstance 名前空間のオプションを使用します。次の例では、割り当てられたデータベースストレージサイズを 100 GB に変更します。

例 .ebextensions/db-instance-options.config

option_settings: aws:rds:dbinstance: DBAllocatedStorage: 100

Elastic Beanstalk がサポートしていない DB インスタンスのプロパティを設定する必要がある場合は、やはり設定ファイルを使用し、resources キーを使用して設定を指定することができます。次の例では 、StorageType および Iops Amazon RDS プロパティの値を設定します。

例 .ebextensions/db-instance-properties.config

Resources: AWSEBRDSDatabase: Type: AWS::RDS::DBInstance Properties: StorageType:io1 Iops: 1000