AMAZON-UNTERSTÜTZUNG
Also habe ich nach David Wolevers Antwort auch mit den Jungs von Amazon gesprochen. Nur für den Fall, dass jemand von euch diesen Beitrag noch einmal findet. Die Verwendung der internen Server-IP allein reicht nicht aus, ist aber ein guter Anfang. Wenn Sie Ubuntu für Ihre Postgresql-Instanz ausführen (vorzugsweise Natty Narwhal), stellen Sie sicher, dass Sie die Dateien pg_hba.conf und postgresql.conf bearbeiten.
Sie finden diese beiden Dateien normalerweise unter:/etc/postgresql/8.4/main/(pg_hba.conf oder postgresql.conf)
Wohlgemerkt, wir verwenden Postgresql 8.4 in unserem Stack, es hat sich während unserer Tests als die konsistenteste und solideste Version von Postgresql erwiesen, die auf Natty Narwhal ausgeführt werden konnte.
Für verschiedene Versionen von Postgresql (9.1, 9.0 usw.) ist das Verzeichnis, in dem Sie diese beiden Dateien finden können, nicht das gleiche wie oben aufgeführt. Stellen Sie sicher, dass Sie das richtige Verzeichnis für diese Dateien kennen.
SCHRITT 1
Gehen Sie zur Amazon Management Console und stellen Sie sicher, dass sich beide Instanzen in derselben Sicherheitsgruppe befinden. Postgresql und Django verwenden standardmäßig 5432 und 8000, stellen Sie also sicher, dass diese beiden Ports geöffnet sind!
SCHRITT 2
(Machen Sie dies auf dem Terminal der postgresql-Instanz)
sudo vim postgresql.conf
Drücken Sie "i" auf Ihrer Tastatur, um Änderungen vorzunehmen. Verwenden Sie die Pfeiltaste nach unten, bis Sie auf
stoßenLISTEN_ADDRESSES:'lokaler Host'
Entfernen Sie das Hash-Tag im Vordergrund und fügen Sie anstelle von „localhost“ die private IP Ihrer Postgresql-Instanz hinzu (Sie finden die private IP auf Ihrer EC2-Verwaltungskonsole) und Sie müssen auch 127.0.0.1 hinzufügen.
BEISPIEL:
LISTEN_ADDRESSES:'private IP, 127.0.0.1'
Stellen Sie sicher, dass Sie die private IP-Adresse und die lokale Host-Adresse durch ein Komma trennen und alles unter einem Anführungszeichen lassen.
Nachdem Sie die Änderungen vorgenommen haben, drücken Sie ESC und ZZ (zweimal in Großbuchstaben, um die Änderungen zu speichern)
SCHRITT 3
sudo vim pg_hba.conf
Verwenden Sie die Pfeiltaste nach unten, bis Sie auf etwas stoßen, das so aussieht:
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
Drücken Sie noch einmal "i" auf Ihrer Tastatur und nehmen Sie die Änderungen genau so vor, wie ich es oben habe.
Sie werden feststellen, dass ich unter IPv6 django_db und django_login habe, ändern Sie es in den Namen Ihrer Postgresql-Datenbank und Ihren Benutzernamen, den Sie für Ihre Postgresql-Datenbank verwenden.
Nachdem Sie die Änderungen vorgenommen haben, drücken Sie ESC und ZZ (zweimal in Großbuchstaben, um die Änderungen zu speichern)
SCHRITT 4 (Fast fertig Hi5!)
Starten Sie den Postgresql-Server mit diesem Befehl im Terminal neu:
sudo /etc/init.d/postgresql neu starten
Herzlichen Glückwunsch! Der Server ist eingerichtet und läuft, aber es gibt noch einen letzten Schritt.
SCHRITT 5
Starten Sie Ihre Django EC2-Instanz, gehen Sie zu Ihrer settings.py und suchen Sie nach:
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.
}
Ändern Sie es unter „HOST“:„ “ in „HOST“:„was auch immer die private IP der Postgresql-Instanz ist“
Speichern Sie die Änderungen. Öffnen Sie ein Terminal und suchen Sie das Verzeichnis, in dem sich Ihre Datei manage.py befindet. Führen Sie in diesem Verzeichnis den folgenden Befehl aus:./manage.py syncdb
Diese erstellen alle notwendigen Tabellen für die Modelle, die Sie in Django erstellt haben. Herzlichen Glückwunsch, Sie haben erfolgreich eine Verknüpfung zwischen Ihrer Datenbankinstanz und Ihrer Django-Instanz erstellt.
Bei Fragen stehe ich Ihnen gerne zur Verfügung! Hinterlasse unten einen Kommentar und ich melde mich so schnell wie möglich bei dir! :)