Ruby アプリケーション環境に Amazon RDS DB インスタンスを追加 - AWS Elastic Beanstalk

Ruby アプリケーション環境に Amazon RDS DB インスタンスを追加

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

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

データベースに接続するには、アプリケーションにアダプタを追加し、Elastic Beanstalk によって提供される環境プロパティで接続を設定します。設定と接続コードは、使用するデータベースエンジンとフレームワークによって異なります。

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

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

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

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

    注記

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

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

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

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

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

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

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

RDS_HOSTNAME

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

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

RDS_PORT

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

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

RDS_DB_NAME

データベース名 ebdb

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

RDS_USERNAME

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

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

RDS_PASSWORD

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

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

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

アダプタのダウンロード

プロジェクト gem ファイルにデータベースのアダプタを追加します。

例 Gemfile – MySQL を使用する Rails

source 'https://rubygems.org' gem 'puma' gem 'rails', '~> 6.1.4', '>= 6.1.4.1' gem 'mysql2'

Ruby に共通のアダプタの Gem

データベースへの接続

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

例 config/database.yml – Ruby on rails データベース設定 (MySQL)

production: adapter: mysql2 encoding: utf8 database: <%= ENV['RDS_DB_NAME'] %> username: <%= ENV['RDS_USERNAME'] %> password: <%= ENV['RDS_PASSWORD'] %> host: <%= ENV['RDS_HOSTNAME'] %> port: <%= ENV['RDS_PORT'] %>