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

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

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

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

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

注記

学習目的またはテスト環境では、Elastic Beanstalk を使用して DB インスタンスを追加できます。

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

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

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

  1. Elastic Beanstalk コンソールを開き、[リージョン] のリストで AWS リージョンを選択します。

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

    注記

    環境が多数ある場合は、検索バーを使用して環境リストをフィルタリングします。

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

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

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

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

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

プロパティ名 説明 プロパティ値

RDS_HOSTNAME

DB インスタンスのホスト名。

Amazon RDS コンソールの [Connectivity & security (接続とセキュリティ)] タブ: [Endpoint (エンドポイント)]。

RDS_PORT

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

Amazon RDS コンソールの [Connectivity & security (接続とセキュリティ)] タブ: [Port (ポート)]。

RDS_DB_NAME

データベース名 ebdb

Amazon RDS コンソールの [設定] タブ: [DB 名]。

RDS_USERNAME

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

Amazon RDS コンソールの [設定] タブ: [マスターユーザー名]。

RDS_PASSWORD

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

Amazon RDS コンソールでは参照できません。

内部 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

  • SQL Servermssql

  • Oracleoracle または oracledb

    Oracle パッケージとバージョンは、使用している Node.js バージョンによって異なります。

    • Node.js 6.x、8.x – 最新バージョンの oracledb を使用します。

    • Node.js 4.xoracledb バージョン 2.2.0 を使用します。

    • Node.js 5.x、7.x – 最新バージョンの oracle を使用します。oracledb パッケージは、これらの Node.js バージョンをサポートしていません。

データベースへの接続

Elastic Beanstalk は、環境プロパティでアタッチされた DB インスタンスの接続情報を提供します。process.env.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 を参照してください。