LoginSignup
17
15

More than 3 years have passed since last update.

EC2上のDjangoからAmazon RDSに接続する

Posted at

環境

  • AWS RDS
  • Python: 3.6
  • pipenv: 2018.7.1
  • pip: 18.0.0
  • Django: 1.11.18

執筆したきっかけ

  • 研究で開発する実験用システムに必要!
  • デプロイしたシステムとDBを接続したい
  • 他の手段やどのDBがいいかはわからない..
  • あくまで備忘録程度です

Amazon RDS側の設定

  1. Amazon RDSのコンソールを起動する
  2. 画面下にあるRDS無料枠の対象オプションのみ有効化にチェックを入れる
  3. データベースはMariaDBを選択する
  4. インタンスの識別子,ユーザ名などを入力する
    • データベース名の入力を忘れない.あとで面倒なことになる
    • VPCセキュリティグループは,EC2と同一のグループにする
  5. インスタンス生成後,セキュリティグループのリンク先を開く
  6. インバウンドとアウトバウンドに,Mysql用のルールを追加する
    • ソースは0.0.0.0とする(本当は接続元IPを限定するべき)
    • このルールが上手く設定できないと,ERROR 2003 (HY000): Can’t connect to MySQL server on...のエラー発生原因になる

Django側の設定

mysqlを使用するため,mysqlclientをインストールする

pipenv install mysqlclient

settings.pyを編集する

settings.py
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'DB名',
        'USER': 'マスターユーザー',
        'PASSWORD': 'マスターユーザーパスワード',
        'HOST': 'エンドポイント',
        'PORT': '3306',
    }
}

Djangoの管理コマンドを用いて,設定内容が有効かどうかを検証する

python manage.py dbshell

補足

タイムゾーンの設定ができておりません.また,DBを追加するときはSSHで入ってから,追加するのだろうか...

参考

17
15
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
17
15