環境
- AWS RDS
- Python: 3.6
- pipenv: 2018.7.1
- pip: 18.0.0
- Django: 1.11.18
執筆したきっかけ
- 研究で開発する実験用システムに必要!
- デプロイしたシステムとDBを接続したい
- 他の手段やどのDBがいいかはわからない..
- あくまで備忘録程度です
Amazon RDS側の設定
- Amazon RDSのコンソールを起動する
- 画面下にある
RDS無料枠の対象オプションのみ有効化
にチェックを入れる - データベースはMariaDBを選択する
- インタンスの識別子,ユーザ名などを入力する
- データベース名の入力を忘れない.あとで面倒なことになる
- VPCセキュリティグループは,
EC2
と同一のグループにする
- インスタンス生成後,セキュリティグループのリンク先を開く
- インバウンドとアウトバウンドに,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で入ってから,追加するのだろうか...