kasei_sanのブログ

かせいさんのIT系のおぼえがきです。胡乱の方はnoteとtwitterへ

ElasticBeanstalkで独立したRDSに接続する手順(Railsの場合)

解説

ElasticBeanstalkでは、環境にRDSインスタンスを作成することができる

しかし、環境内にRDSインスタンスを作成した場合、環境を終了させると、RDSインスタンスも終了してしまう

そのため、本番環境ではRDSインスタンスを環境外に作成して、環境に接続して運用することが推奨されている

環境の一部であるデータベースインスタンスは、環境のライフサイクルに固定されており、追加されると環境から削除することはできません。環境を終了すると、データベースインスタンスも終了します。 環境に DB インスタンスの追加時、環境を終了しスナップショットからデータベースを復元するとき、Elastic Beanstalk を設定して、データベースのスナップショットを保存することができます。データベースのスナップショットを保存するときに料金が発生する場合があります。詳細については、Amazon RDS 料金表の「バックアップストレージ」セクションを参照してください。 本稼働環境では、環境外にデータベースインスタンスを起動する、および Elastic Beanstalk. によって提供される機能の外部に接続するようアプリケーションを設定することもできます。 環境の外部にデータベースインスタンスを使用する場合、追加のセキュリティグループと接続文字列設定が必要ですが、複数の環境からデータベースに接続でき、統合されたデータベースでサポートされていないデータベースタイプを使用し、青/緑のデプロイを実行して、データベースインスタンスに影響を与えずに環境を解放することもできます。

Elastic Beanstalk でデータベースを設定する - AWS Elastic Beanstalk

方法

  1. ElasticBeanstalk環境を作成する
  2. RDS接続用セキュリティグループを作成する
  3. RDS環境を作成する
  4. ElasticBeanstalkの環境変数に、RDS接続用の値を設定する

config/database.yml の設定例

production:
  <<: *default
  database: <%= ENV['DB_NAME'] %>
  username: <%= ENV['USERNAME'] %>
  password: <%= ENV['PASSWORD'] %>
  host: <%= ENV['HOSTNAME'] %>
  port: <%= ENV['PORT'] %>%

それぞれの詳細については、後日追記