PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Configurando o Django e o PostgreSQL em duas instâncias diferentes do EC2

SUPORTE DA AMAZÔNIA


Então acabei conversando com os caras da Amazon também depois da resposta de David Wolever. Apenas no caso de algum de vocês se deparar com este post novamente. Usar apenas o IP do servidor interno não é suficiente, mas é um bom começo. Se você estiver executando o Ubuntu para sua instância Postgresql (de preferência Natty Narwhal), certifique-se de editar os arquivos pg_hba.conf e postgresql.conf.

Normalmente, você pode encontrar esses dois arquivos em:/etc/postgresql/8.4/main/(pg_hba.conf ou postgresql.conf)

Lembre-se, estamos usando o Postgresql 8.4 em nossa pilha, provou ser a versão mais consistente e sólida do Postgresql para rodar no Natty Narwhal durante nossos testes.

Para diferentes versões do Postgresql (9.1, 9.0 etc.), o diretório no qual você pode encontrar esses dois arquivos não é o mesmo listado acima. Certifique-se de conhecer o diretório adequado para esses arquivos.

ETAPA 1


Acesse o Amazon Management Console e certifique-se de que ambas as instâncias estejam no mesmo grupo de segurança. Postgresql e Django usam 5432 e 8000 por padrão, então certifique-se de ter essas duas portas abertas!

ETAPA 2


(Faça isso no terminal na instância postgresql)

sudo vim postgresql.conf

Pressione "i" no teclado para começar a fazer alterações. Use a tecla de seta para baixo até encontrar

LISTEN_ADDRESSES:'localhost'

Livre-se da tag de hash na frente e, em vez de 'localhost', adicione o IP privado da sua instância do postgresql (você pode encontrar o ip privado no console de gerenciamento do EC2) e você deve também adicionar 127.0.0.1.

EXEMPLO:

LISTEN_ADDRESSES:'ip privado, 127.0.0.1'

Certifique-se de separar o IP privado e o endereço do host local por uma vírgula e deixar tudo em uma citação.

Depois de fazer as alterações, pressione ESC e pressione ZZ (duas vezes em maiúsculas para salvar as alterações)

ETAPA 3


sudo vim pg_hba.conf

Use a tecla de seta para baixo até encontrar algo parecido com isto:
           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

Mais uma vez, pressione 'i' no seu teclado e faça as alterações exatamente da maneira que eu fiz acima.

Você notará em IPv6, eu tenho django_db e django_login, mude para o nome do seu banco de dados postgresql e seu login de usuário que você usa para seu banco de dados postgresql, respectivamente.

Depois de fazer as alterações, pressione ESC e pressione ZZ (duas vezes em maiúsculas para salvar as alterações)

ETAPA 4 (Quase pronto Hi5!)


Reinicie o servidor postgresql usando este comando no terminal:

sudo /etc/init.d/postgresql restart

Parabéns! O servidor está funcionando, porém há uma última etapa.

ETAPA 5


Inicie sua instância do Django EC2, acesse seu settings.py e procure por isso:
 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.
 }

Em 'HOST':' ' , altere para 'HOST':'qualquer que seja o IP privado da instância do Postgresql'

Salve as alterações. Abra um terminal e encontre o diretório onde está seu arquivo manage.py. Assim que estiver nesse diretório, execute o seguinte comando:./manage.py syncdb

Isso criará todas as tabelas necessárias para os modelos que você criou no Django. Parabéns, você criou com sucesso um link entre sua instância de banco de dados e sua instância do Django.

Se você tiver alguma dúvida, terei o maior prazer em ajudar! Deixe um comentário abaixo e responderei o mais rápido possível! :)