basedosdados / pipelines

🔀 Orquestrador de fluxos de captura, ingestão e tratamento de dados da BD
https://basedosdados.github.io/pipelines/
33 stars 13 forks source link

[feat] Criar Agent para deployment de pipelines que exigem IP nacional para consumir FTP #102

Closed lucascr91 closed 2 years ago

lucascr91 commented 2 years ago

Atualmente, não é possível fazer deployment de pipelines que consomem FTPs do governo, já que muitos FTPs proibem acesso de IPs fora do país.

É preciso configurar uma VM com IP nacional para ter acesso ao prefect-apollo (através da VPN do Tailscale) e subir um Agent por lá.

guialvesp1 commented 2 years ago

Para que não tivesse a necessidade de utilizar uma instância somente para o agente prefect, optamos por realizar um teste utilizando um agente prefect do tipo Vertex.

Inicialmente foi realizado adaptações no pacote helm que utilizamos (https://github.com/prefeitura-rio/charts/pull/1 e https://github.com/prefeitura-rio/charts/pull/2).

Porém foi identificado que mesmo os recursos do flow sendo executados contra a infraestrutura do GCP na região de SP, não foi possível estabelecer uma conexão com o servidor ftp.

Como notado, alguns serviços de Geo IP informam que o mesmo teve origem do Estados Unidos.

Também realizei um teste em uma instância, sendo ela na região de SP e com um IP público na mesma região, mas sem sucesso.

Efetuei um teste no ambiente da AWS e lá a localização de Geo IP e demais dnslookups apontam todos para a região de SP, mas também sem sucesso na conexão com o servidor ftp.

guialvesp1 commented 2 years ago

Feito o teste via flow adicionado pelo @gabriel-milan e o mesmo trás como informação que a requisição partiu da mesma região configurada para o agente vertex (São Paulo, Brazil).

https://prefect.basedosdados.org/default/flow-run/e68a86a2-d61c-43f9-93d5-8a53969785bb?logs