
【IT】Azure App ServiceでのPostgreSQL利用(Djangoを使用)
皆さま
こんにちは
Azure App ServiceでDjangoのDBとして
Azure Database for PostgreSQLを利用します。
仮想ネットワークの設定
Azure Database for PostgreSQLの設定
Azure App ServiceのDB設定
ディプロイ
の順で設定を行います。
仮想ネットワークの設定
VNET統合用の仮想ネットワークとサブネットを作成します。
リソースグループは、App Serviceのものと同じとします。

IPv4アドレスとサブネットを設定します。
サブネットは、Apps用とDB用の2つを作成します。

今回は、内部接続のため、セキュリティはそのままとします。

Azure Database for PostgreSQLの設定
1.Azure Database for PostgreSQLデータベースの作成
アカウント作成後の1年間の無料サービスが使えますので利用します。

フレキシブルサーバーを選択します。

リソースグループ:App Serviceと同じリソースグループを選択
サーバー:世界で一意なる名前をつけます。(FQDNです)
リージョン:App Serviceと同じリージョンを選択
PostgreSQLバージョン:今回は、オンプレのローカル環境同じ12を選択

今回は、テスト環境のため、開発を選択し、冗長性は無しとします。

認証方式は、今回は、パスワード認証とします。

ネットワークは先ほど作成した、VNETとサブネットを指定します。

今回は、テスト用ですのでデータ暗号化までは行いません。

Django用のデータベースを作成します。

Azure App ServiceのDB設定
1.VNET統合を設定
対象のApp Sereviceで「ネットワーク」を選択し、
送信トラフィックの「VNET統合」をクリックします。

VNetの追加します。

先ほど作成したVnetのAPP用を追加します。

2.DBの環境変数をセット
Django側のsettings.pyに以下の設定がされていることを前提します。
settings.py
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': os.environ['DBNAME'],
'HOST': os.environ['DBHOST'],
'USER': os.environ['DBUSER'],
'PASSWORD': os.environ['DBPASS']
}
}
DBHOST:作成したDBホスト名.postgres.database.azure.com
DBNAME:先ほど作成したデータベース名
DBUSER:DB作成のときに指定したユーザ名
DBPASS:DB作成のときに指定したパスワード
を指定して保存します。
※注意:保存するとアプリが再起動します。

3.アプリのディロイ
VScodeよりディプロイします。
エラーとワーニングが無いこと確認します。

Azure PortalよりSSHにてアプリに入ります。

Apps上でDBを作成します。
「python manage.py migrate」を実行します。

続いてスーパーユーザを設定します。
「python manage.py createsuperuser」を実施します。
※パスワードは、難しいものを設定ください。
私は、後から変更しております。

動作確認
ページが表示されることを確認します。
これで今回の設定は終了です。
では
<<ご参考>> ※過去記事です。