WSPARCIE AMAZON
Więc skończyło się na rozmowie z chłopakami z Amazona po odpowiedzi Davida Wolevera. Na wypadek, gdyby ktoś z Was ponownie natknął się na ten post. Korzystanie z samego wewnętrznego adresu IP serwera nie wystarczy, jednak jest to dobry początek. Jeśli używasz Ubuntu dla swojej instancji Postgresql (najlepiej Natty Narwhal), upewnij się, że edytujesz pliki pg_hba.conf i postgresql.conf.
Zazwyczaj te dwa pliki można znaleźć pod adresem:/etc/postgresql/8.4/main/(pg_hba.conf lub postgresql.conf)
Pamiętaj, że w naszym stosie używamy Postgresql 8.4, który podczas naszych testów okazał się najbardziej spójną i solidną wersją Postgresql do uruchomienia na Natty Narwhal.
W przypadku różnych wersji Postgresql (9.1, 9.0 itp.) katalog, w którym można znaleźć te dwa pliki, nie jest taki sam, jak wymieniony powyżej. Upewnij się, że znasz właściwy katalog do tych plików.
KROK 1
Przejdź do konsoli zarządzania Amazon i upewnij się, że obie instancje znajdują się w tej samej grupie bezpieczeństwa. Postgresql i Django domyślnie używają 5432 i 8000, więc upewnij się, że te dwa porty są otwarte!
KROK 2
(Zrób to na terminalu w instancji postgresql)
sudo vim postgresql.conf
Naciśnij „i” na klawiaturze, aby rozpocząć wprowadzanie zmian. Użyj klawisza strzałki w dół, aż natrafisz na
LISTEN_ADDRESSES:„host lokalny”
Pozbądź się tagu hash z przodu i zamiast „localhost” dodaj prywatny adres IP instancji postgresql (możesz znaleźć prywatny adres IP w konsoli zarządzania EC2) i musisz również dodać 127.0.0.1.
PRZYKŁAD:
LISTEN_ADDRESSES:'prywatny adres IP, 127.0.0.1'
Upewnij się, że oddzielasz prywatny adres IP i adres lokalnego hosta przecinkiem i zostawiasz to wszystko w jednym cudzysłowie.
Po wprowadzeniu zmian naciśnij ESC i naciśnij ZZ (dwukrotnie wielkimi literami, aby zapisać zmiany)
KROK 3
sudo vim pg_hba.conf
Użyj klawisza strzałki w dół, aż natrafisz na coś, co wygląda tak:
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
Jeszcze raz naciśnij „i” na klawiaturze i wprowadź zmiany dokładnie tak, jak powyżej.
Zauważysz, że pod IPv6 mam django_db i django_login, zmień je na nazwę bazy danych postgresql i login użytkownika, którego używasz odpowiednio w bazie danych postgresql.
Po wprowadzeniu zmian naciśnij ESC i naciśnij ZZ (dwukrotnie wielkimi literami, aby zapisać zmiany)
KROK 4 (Prawie gotowe, Hi5!)
Zrestartuj serwer postgresql za pomocą tego polecenia w terminalu:
Ponowne uruchomienie sudo /etc/init.d/postgresql
Gratulacje! Serwer jest uruchomiony i działa, ale jest jeszcze jeden krok.
KROK 5
Odpal instancję Django EC2, przejdź do pliku settings.py i poszukaj tego:
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.
}
W sekcji „HOST”:„ ” zmień go na „HOST”:„niezależnie od tego, jaki jest prywatny adres IP instancji Postgresql”
Zapisz zmiany. Otwórz terminal i znajdź katalog, w którym znajduje się plik manage.py. Gdy znajdziesz się w tym katalogu, uruchom następujące polecenie:./manage.py syncdb
Stworzą one wszystkie niezbędne tabele dla modeli utworzonych w Django. Gratulacje, pomyślnie utworzyłeś połączenie między instancją bazy danych a instancją Django.
Jeśli masz jakieś pytania, chętnie pomogę! Zostaw komentarz poniżej, a odezwę się do Ciebie JAK NAJSZYBCIEJ! :)