アマゾンサポート
それで、David Woleverの返事の後、私はAmazonの人たちとも話をすることになりました。万が一、この投稿に再び出くわした場合に備えて。内部サーバーのIPを単独で使用するだけでは不十分ですが、それは良いスタートです。 Postgresqlインスタンス(できればNatty Narwhal)でUbuntuを実行している場合は、必ずpg_hba.confファイルとpostgresql.confファイルを編集してください。
通常、これら2つのファイルは/etc/postgresql/8.4/main/(pg_hba.confまたはpostgresql.conf)
にあります。スタックでPostgresql8.4を使用していることに注意してください。これは、テスト中にNattyNarwhalで実行するPostgresqlの最も一貫性のある堅実なバージョンであることが証明されました。
異なるバージョンのPostgresql(9.1、9.0など)の場合、これら2つのファイルを見つけることができるディレクトリは上記と同じではありません。これらのファイルの適切なディレクトリを知っていることを確認してください。
ステップ1
Amazon Management Consoleに移動し、両方のインスタンスが同じセキュリティグループの下にあることを確認します。 PostgresqlとDjangoはデフォルトで5432と8000を使用するため、これら2つのポートが開いていることを確認してください!
ステップ2
(postgresqlインスタンスのターミナルでこれを行います)
sudo vim postgresql.conf
キーボードの「i」を押して、変更を開始します。出くわすまで下矢印キーを使用します
LISTEN_ADDRESSES:'localhost'
前面のハッシュタグを削除し、「localhost」の代わりに、postgresqlインスタンスのプライベートIPを追加します(プライベートIPはEC2管理コンソールにあります) また、127.0.0.1も追加する必要があります
例:
LISTEN_ADDRESSES:'プライベートIP、127.0.0.1'
必ずプライベートIPとローカルホストアドレスをカンマで区切り、すべてを1つの引用符で囲んでください。
変更を加えたら、 ESCを押してZZを押します(変更を保存するには大文字で2回押します)
ステップ3
sudo vim pg_hba.conf
次のようなものが見つかるまで、下矢印キーを使用します。
Database administrative login by UNIX sockets
local all postgres ident
# TYPE DATABASE USER CIDR-ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all md5
# IPv4 local connections:
host all all 127.0.0.1/32 trust
# IPv6 local connections:
host all all ::1/128 md5
local django_db django_login md5
host replication postgres 127.0.0.1/32 md5
host replication postgres ::1/128 md5
もう一度、キーボードの「i」を押して、上記の方法で変更を加えます。
IPv6では、django_dbとdjango_loginがあり、postgresqlデータベースの名前とpostgresqlデータベースに使用するユーザーログインにそれぞれ変更します。
変更を加えたら、 ESCを押してZZを押します(変更を保存するには大文字で2回押します)
ステップ4(ほぼ完了Hi5!)
ターミナルで次のコマンドを使用してpostgresqlサーバーを再起動します:
sudo /etc/init.d/postgresql restart
おめでとうございます!サーバーは稼働していますが、最後のステップが1つあります。
ステップ5
Django EC2インスタンスを起動し、settings.pyに移動して、これを探します:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': 'django_db',
'USER': 'django_login',
'PASSWORD': 'password',
'HOST': '', # Set to empty string for localhost. Not used with sqlite3.
'PORT': '', # Set to empty string for default. Not used with sqlite3.
}
'HOST':''の下で、'HOST':'に変更します。PostgresqlインスタンスのプライベートIPが'
変更を保存します。ターミナルを開き、manage.pyファイルがあるディレクトリを見つけます。そのディレクトリに移動したら、次のコマンドを実行します: ./ manage.py syncdb
これらは、Djangoで作成したモデルに必要なすべてのテーブルを作成します。おめでとうございます。データベースインスタンスとDjangoインスタンスの間にリンクが正常に作成されました。
ご不明な点がございましたら、お気軽にお問い合わせください。以下にコメントを残してください。できるだけ早くご連絡いたします。 :)