1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【備忘録】HerokuアプリからAWS RDSのデータベースへ接続する

Posted at

何が書いてある記事なのか?

Heroku上に構築したアプリケーションから、AWS RDS上に構築したデータベースへ接続する手順について。

Heroku→RDS(MySQL)への接続方法

前提条件

  • AWS RDS上にデータベース(MySQL)を構築済みであること
  • GitHubからデプロイされたHerokuアプリケーションが存在すること
  • MySQL 5.x にて確認

手順

1. Herokuへデプロイ済みのGitHubリポジトリに、AnazonRDS CA証明書(*.pem)ファイルを追加する

# 対象リポジトリのディレクトリへ移動
$ cd hoge_repo

# リポジトリのconfigディレクトリにCA証明書をダウンロード
$ curl https://s3.amazonaws.com/rds-downloads/rds-combined-ca-bundle.pem > ./config/amazon-rds-ca-cert.pem

# リポジトリにプッシュする
$ git push origin main
$ git push heroku main

2. Herokuアプリの環境変数DATABASE_URLにデータベース情報を反映する

# <username>  DBユーザ名 
# <password>  DBパスワード
# <hostname>  ホスト名(RDSデータベースのエンドポイント名)
# <port>      ポート番号
# <database>  データベース名
# <herokuapp> 対象のHerokuアプリケーション名
$ heroku config:set DATABASE_URL="mysql2://<username>:<password>@<hostname>:<port>/<database>?sslca=config/amazon-rds-ca-cert.pem" -a <herokuapp>

3. RDSのセキュリティグループ設定を選択し、インバウンドルールを変更する

RDSのWeb管理画面にて設定する。ここでは、ソースを0.0.0.0/0とし、どのIPからでも接続できるように設定する。
ただし、本番環境などでは、セキュリティを考慮した上で正しく設定すること。

4. 必要に応じて、MySQLのデータベースに対して、ユーザーの全接続に対してSSLを求めるように設定する

# 対象データベースにてSQLクエリを発行
GRANT USAGE ON *.* TO '<username>'@'%' REQUIRE SSL;

5. 対象のアプリケーションからデータベースへ接続が可能であることを確認する

参考文献

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?