メニュー
AWS Elastic Beanstalk
開発者ガイド (API Version 2010-12-01)

Node.js アプリケーション環境への Amazon RDS DB インスタンスの追加

Amazon Relational Database Service (Amazon RDS) DB インスタンスを使用して、アプリケーションによって収集されて変更されたデータを保存できます。データベースは、Elastic Beanstalk でお客様の環境にアタッチして管理したり、外部で作成して管理したりできます。

初めて Amazon RDS を使用する場合は、Elastic Beanstalk マネジメントコンソールを使用してテスト環境に DB インスタンス を追加し、そのインスタンスにアプリケーションが接続できることを確認します。

データベースに接続するには、アプリケーションに適切なドライバーを追加し、コードにドライバーをロードした後、Elastic Beanstalk に用意された環境プロパティにより接続オブジェクトを作成します。設定と接続コードは、使用するデータベースエンジンとフレームワークによって異なります。

本番稼働環境では、Elastic Beanstalk 環境外部に DB インスタンスを作成し、データベースリソースから環境リソースを分離します。外部 DB インスタンスを使用すると、複数の環境から同じデータベースに接続し、Blue/Green デプロイを実行することができます。手順については、「Amazon Relational Database Service で Elastic Beanstalk を使用する」を参照してください。

環境に DB インスタンスを追加

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

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

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

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

  4. [Data Tier] で、[Create a new RDS database] を選択します。

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

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

  • RDS_HOSTNAME – DB インスタンスのホスト名。

    Amazon RDS コンソールラベル – [Endpoint] はホスト名です。

  • RDS_PORT – DB インスタンスが接続を許可するポート。デフォルト値は DB エンジンによって異なります。

    Amazon RDS コンソールラベル – [ポート]

  • RDS_DB_NAME – データベース名、ebdb

    Amazon RDS コンソールラベル – [DB 名前]

  • RDS_USERNAME – お客様のデータベース用に設定したユーザー名。

    Amazon RDS コンソールラベル – [ユーザー名]

  • RDS_PASSWORD – お客様のデータベース用に設定したパスワード。

内部 DB インスタンスの設定の詳細については、「データベースを Elastic Beanstalk 環境に追加する」を参照してください。

ドライバーのダウンロード

の下にプロジェクトの package.json ファイルdependencies にデータベースドライバーを追加します。

package.json – MySQL 使用の Express

{
  "name": "my-app",
  "version": "0.0.1",
  "private": true,
  "dependencies": {
    "ejs": "latest",
    "aws-sdk": "latest",
    "express": "latest",
    "body-parser": "latest",
    "mysql": "latest"
  },
  "scripts": {
    "start": "node app.js"
  }
}

Node.js の共通ドライバーパッケージ

  • MySQLmysql

  • PostgreSQLpg

  • Oracleoracle

  • SQL Servermssql

データベースへの接続

Elastic Beanstalk は、環境プロパティでアタッチされた DB インスタンスの接続情報を提供します。os.environ['VARIABLE'] を使用してプロパティを読み取り、データベース接続を設定します。

例 app.js – MySQL データベースの接続

var mysql = require('mysql');

var connection = mysql.createConnection({
  host     : process.env.RDS_HOSTNAME,
  user     : process.env.RDS_USERNAME,
  password : process.env.RDS_PASSWORD,
  port     : process.env.RDS_PORT
});

connection.connect(function(err) {
  if (err) {
    console.error('Database connection failed: ' + err.stack);
    return;
  }

  console.log('Connected to database.');
});

connection.end();

node-mysql を使用して接続文字列を作成する方法の詳細については、npmjs.org/package/mysql を参照してください。