Geralmente você coloca um proxy reverso na frente dos servidores de backend como o gunicorn (ou o tomcat no mundo java) porque eles têm mais recursos e são mais resilientes.
Por exemplo, com o nginx você pode adicionar controle de acesso refinado, encerrar SSL e não ser tão suscetível a ataques DOS (que é o que o gunicorn menciona especificamente em seus documentos ( link ).
No EC2, você pode substituir nginx e haproxy por um ELB se não houver recursos especiais de nginx ou haproxy que você estiver usando. Consulte o link para obter uma comparação de ELBs e haproxy.