Elastic Beanstalk
Pythonアプリケーション環境にAmazon RDS DBインスタンスを追加
初めてRDSを使用する場合、EBマネジメントコンソールを使用してテスト環境にDBインスタンスを追加し、そのインスタンスにアプリケーションが接続できることを確認する
DBに接続するには、アプリケーションに適切なドライバを追加し、コードにドライバをロードした後、EBに用意された環境プロパティにより接続オブジェクトを作成する
設定と接続コードは、使用するDBエンジンとフレームワークによって異なる
環境にDBインスタンスを追加
- EBコンソールからAWSリージョンを選択
- ナビゲーションペインで使用する環境を選択
- ナビゲーションペインで設定を選択
- データベース設定カテゴリで編集を選択
- DBエンジンを選択してユーザー名とパスワードを入力する
- Applyを選択
EBインスタンスの追加には約10分かかる
環境の更新が完了するとDBインスタンのホスト名とその他の接続情報は以下の環境プロパティを通じてアプリケーションに使用できるようになる
プロパティ名 | 説明 | プロパティ値 |
---|---|---|
RDS_HOSTNAME |
DBインスタンスのホスト名 | Amazon RDSコンソールの[接続とセキュリティ]タブ:[エンドポイント] |
RDS_PORT |
DBインスタンスが接続を許可するポート デフォルト値はDBエンジンによって異なる | Amazon RDSコンソールの[接続とセキュリティ]タブ:[ポート] |
RDS_DB_NAME |
EB名ebdb
|
Amazon RDSコンソールの[設定]タブ:[ポート] |
RDS_USETNAME |
データベース用に設定したユーザー名 | Amazon RDSコンソールの[設定]タブ:[マスターユーザー名] |
RDS_PASSWORD |
データベース用に設定したパスワード | Amazon RDSコンソールにでは参照不可 |
内部DBインスタンスの設定の詳細についてはDBをEB環境に追加するを参照
ドライバーのダウンロード
プロジェクトの要件ファイル DBドライバーを追加する
例) requirements.txt
mysqlclient==1.3.12
Pythoの共通ドラーバーパッケージ
- MySQL:
MySL-python
(Python 2)、mysqlclient
(Python 3) - PostgreSQL:
psycopg2
- Oracle:
cx_Oracle
- SQL Server:
adodbapi
DBへの接続
EBは、環境プロパティでアタッチされたDBインスタンスの接続情報を提供する
`os.environ[‘VARIABLE’]を使用してプロパティを読み取り、DB接続を設定する
例)Djangoの設定ファイル - DATABASEディクショナリ
import os
if ‘RDS_HOSTNAME’ in os.environ:
DATABASES = {
‘default’: {
‘ENGINE’: ‘django.db.backends.mysql’,
‘NAME’: os.environ[‘RDS_DB_NAME’],
‘USER’: os.environ[‘RDS_USERNAME’],
‘PASSWORD’: os.environ[‘RDS_PASSWORD’],
‘HOST’: os.environ[‘RDS_HOSTNAME’],
‘PORT’: os.environ[‘RDS_PORT’],
}
}