AWS, NodeJS - Conectando aplicativo ao Mongodb em outra instância do EC2

1

Estou tentando conectar meu aplicativo, executado em uma instância do EC2, ao MongoDB, sendo executado em outra instância do EC2. Tenho certeza que o problema está nas configurações de segurança, mas não tenho certeza de como lidar com isso.

Primeiro, a instância do meu aplicativo está em um grupo de autoescala que fica atrás de um ELB. As configurações de segurança de entrada para a instância e o ELB permitem acesso à porta 80 de qualquer lugar, bem como todo o tráfego de seu próprio grupo de segurança.

A instância do EC2 que executa o Mongo é capaz de fazer conexões se o grupo de segurança para essa instância aceitar todo o tráfego de entrada de qualquer lugar. Qualquer outra configuração que eu tentei faz com que o aplicativo diga que não pode fazer uma conexão com o endereço remoto. Eu defini regras para aceitar o tráfego de entrada de todos os grupos de segurança que eu tenho, mas parece funcionar quando eu permito todo o tráfego de qualquer lugar.

Além disso, minha instância db está configurada com um ip elástico. Devo ter essa instância por trás de um ELB também?

Então minhas perguntas são estas:

1) Como posso fazer conexões seguras com a minha instância do EC2 executando o mongo?

2) Em termos de arquitetura, faz sentido executar meu banco de dados dessa maneira, ou devo ter isso também por trás de um balanceador de carga?

Essa questão está me atrapalhando muito mais do que eu pensava, então qualquer ajuda seria apreciada.

OBSERVAÇÃO

Também defini o bind_ip=0.0.0.0 em /etc/mongo.conf

    
por jordan 18.11.2015 / 20:48

1 resposta

1

Seu problema é que você está usando o IP elástico público para se conectar ao seu servidor de banco de dados de seus outros servidores. Isso significa que a conexão vai para a Internet e volta para o seu VPC, que apresenta os seguintes problemas:

  1. Problemas de segurança devido à transmissão de dados não estar contida em sua VPC
  2. Problemas de latência de rede
  3. O grupo de segurança do seu servidor de banco de dados não pode identificar o grupo de segurança das conexões de entrada

Livre-se do IP elástico no servidor MongoDB, não há necessidade dele, a menos que você planeje se conectar a ele de fora do seu VPC. Modifique seus servidores para usar o endereço IP interno privado atribuído ao seu servidor de banco de dados ao criar conexões para ele. Por fim, bloqueie seu grupo de segurança de volta para permitir apenas o acesso ao banco de dados de seus outros grupos de segurança.

Opcional: Crie uma zona hospedada privada no Route53, com um registro A apontando para o endereço IP privado do servidor de banco de dados e, em seguida, use esse nome de host em vez do endereço IP interno.

    
por 18.11.2015 / 20:57