翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Amazon RDS DB インスタンスを Python Elastic Beanstalk 環境に追加する
このトピックでは、Elastic Beanstalk コンソールを使用して Amazon RDS を作成する手順について説明します。Amazon Relational Database Service (Amazon RDS) DB インスタンスを使用して、アプリケーションによって収集および変更されたデータを保存することができます。データベースを環境に結合して Elastic Beanstalk で管理することも、分離したものとして作成して別のサービスで外部的に管理することもできます。これらの手順では、データベースは環境に結合され、Elastic Beanstalk によって管理されます。Amazon RDS と Elastic Beanstalk の統合の詳細については、「Elastic Beanstalk 環境にデータベースを追加する」を参照してください。
環境に DB インスタンスを追加
お客様の環境に DB インスタンスを追加するには
Elastic Beanstalk コンソール
を開き、[Regions] (リージョン) リストで AWS リージョンを選択します。 -
ナビゲーションペインで、[環境] を選択し、リストから環境の名前を選択します。
注記
環境が多数ある場合は、検索バーを使用して環境リストをフィルタリングします。
ナビゲーションペインで、[設定] を選択します。
-
[データベース] 設定カテゴリで、[編集] を選択します。
-
DB エンジンを選択して、ユーザー名とパスワードを入力します。
-
ページの最下部で [適用] を選択し変更を保存します。
DB インスタンスの追加には約 10 分かかります。環境の更新が完了すると、DB インスタンスのホスト名とその他の接続情報は以下の環境プロパティを通じてアプリケーションに使用できるようになります。
プロパティ名 | 説明 | プロパティ値 |
---|---|---|
|
DB インスタンスのホスト名。 |
Amazon RDS コンソールの [Connectivity & security (Connectivityとセキュリティ)] タブ: [Endpoint (エンドポイント)]。 |
|
DB インスタンスが接続を許可するポート。デフォルト値は DB エンジンによって異なります。 |
Amazon RDS コンソールの [Connectivity & security (接続とセキュリティ)] タブ: [Port (ポート)]。 |
|
データベース名 |
Amazon RDS コンソールの [Configuration (設定)] タブ: [DB Name (DB 名)]。 |
|
お客様のデータベース用に設定したユーザー名。 |
Amazon RDS コンソールの [Configuration (設定)] タブ: [Master username (マスターユーザー名)]。 |
|
お客様のデータベース用に設定したパスワード。 |
Amazon RDS コンソールではリファレンスできません。 |
Elastic Beanstalk 環境と結合したデータベースインスタンスの設定の詳細については、「Elastic Beanstalk 環境にデータベースを追加する」を参照してください。
ドライバのダウンロード
プロジェクトの要件ファイルにデータベース・ドライバを追加します。
例 requirements.txt – Django with MySQL
Django==2.2
mysqlclient==2.0.3
Python の共通ドライバパッケージ
-
MySQL –
mysqlclient
-
PostgreSQL –
psycopg2
-
Oracle –
cx_Oracle
-
SQL Server –
adodbapi
詳細については、Python DatabaseInterfaces
データベースへの接続
Elastic Beanstalk は、環境プロパティでアタッチされた DB インスタンスの接続情報を提供します。os.environ['
を使用してプロパティを読み取り、データベース接続を設定します。VARIABLE
']
例 Django の設定ファイル – DATABASES ディクショナリ
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'],
}
}