O FTP não funciona bem com o NAT porque incorpora endereços IP dentro do protocolo de controle quando uma conexão de dados é aberta. Infelizmente, instâncias do EC2 estão conectadas à internet através do NAT. Normalmente, os firewalls NAT têm um aplicativo auxiliar especial que examina o tráfego de controle e corrige os endereços IP em tempo real. O EC2 NAT não tem essa funcionalidade.
Eu acredito que seu problema pode ser resolvido adicionando o seguinte na sua configuração vsftpd:
pasv_address = YOUR.PUBLIC.IP.ADDRESS
Editado para adicionar :
Você também precisa abrir mais portas para conexões de dados FTP no modo PASV, conforme descrito no artigo ao qual você está vinculando. Na sua pergunta, você mencionou que não abriu todas as portas conforme instruído no artigo.