DUKUNGAN AMAZON
Jadi saya akhirnya berbicara dengan orang-orang di Amazon juga setelah jawaban David Wolever. Kalau-kalau ada di antara Anda yang menemukan posting ini lagi. Menggunakan IP server internal saja tidak cukup, namun ini adalah awal yang baik. Jika Anda menjalankan Ubuntu untuk instance Postgresql Anda (sebaiknya Natty Narwhal), pastikan Anda mengedit file pg_hba.conf dan postgresql.conf.
Anda biasanya dapat menemukan kedua file tersebut di:/etc/postgresql/8.4/main/(pg_hba.conf atau postgresql.conf)
Ingat, kami menggunakan Postgresql 8.4 di tumpukan kami, ini terbukti menjadi versi Postgresql yang paling konsisten dan solid untuk dijalankan di Natty Narwhal selama pengujian kami.
Untuk versi Postgresql (9.1, 9.0 dll.) yang berbeda, direktori tempat Anda dapat menemukan kedua file ini tidak sama dengan yang tercantum di atas. Pastikan Anda mengetahui direktori yang tepat untuk file-file ini.
LANGKAH 1
Buka Konsol Manajemen Amazon dan pastikan kedua instans berada di bawah grup keamanan yang sama. Postgresql dan Django menggunakan 5432 dan 8000 secara default, jadi pastikan Anda membuka kedua port tersebut!
LANGKAH 2
(Lakukan ini di terminal pada instance postgresql)
sudo vim postgresql.conf
Tekan "i" pada keyboard Anda untuk mulai membuat perubahan. Gunakan tombol panah bawah sampai Anda menemukan
LISTEN_ADDRESSES:'localhost'
Singkirkan tag hash di depan, dan alih-alih 'localhost', tambahkan IP pribadi instance postgresql Anda (Anda dapat menemukan ip pribadi di konsol manajemen EC2 Anda) dan Anda juga harus menambahkan 127.0.0.1.
CONTOH:
LISTEN_ADDRESSES:'ip pribadi, 127.0.0.1'
Pastikan Anda memisahkan ip pribadi dan alamat host lokal dengan koma dan meninggalkan semuanya di bawah satu kutipan.
Setelah Anda membuat perubahan, tekan ESC dan tekan ZZ (huruf besar dua kali untuk menyimpan perubahan)
LANGKAH 3
sudo vim pg_hba.conf
Gunakan tombol panah bawah sampai Anda menemukan sesuatu yang terlihat seperti ini:
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
Sekali lagi, tekan 'i' pada keyboard Anda dan buat perubahannya persis seperti yang saya lakukan di atas.
Anda akan melihat di bawah IPv6, saya memiliki Django_db dan Django_login, mengubahnya menjadi nama database postgresql Anda dan login pengguna Anda yang Anda gunakan untuk database postgresql Anda masing-masing.
Setelah Anda membuat perubahan, tekan ESC dan tekan ZZ (huruf besar dua kali untuk menyimpan perubahan)
LANGKAH 4 (Hampir selesai Hi5!)
Mulai ulang server postgresql menggunakan perintah ini di terminal:
sudo /etc/init.d/postgresql restart
Selamat! Server aktif dan berjalan, namun ada satu langkah terakhir.
LANGKAH 5
Jalankan instans Django EC2 Anda, buka settings.py Anda dan cari ini:
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.
}
Di bawah 'HOST':' ' , ubah ke 'HOST':'apapun IP pribadi dari instance Postgresql'
Simpan perubahan. Buka terminal dan temukan direktori tempat file manage.py Anda berada. Setelah Anda berada di direktori itu, jalankan perintah berikut:./manage.py syncdb
Ini akan membuat semua tabel yang diperlukan untuk model yang Anda buat di Django. Selamat, Anda telah berhasil membuat tautan antara instans Database dan instans Django Anda.
Jika Anda memiliki pertanyaan, saya akan dengan senang hati membantu! Tinggalkan komentar di bawah dan saya akan menghubungi Anda secepatnya! :)