Olá, zetty, tudo bem?
Isso depende muito da aplicação, e se alguém responder para fazer A ou B não vai estar levando em consideração os vários aspectos.
Levando em conta apenas seu exemplo de portfólio, imaginando que o tráfego será esporádico, e que pretende gastar o menor valor possível, você pode usar um PaaS com tier gratuito. É o jeito mais "simples", pois um PaaS cuida de toda a infra para você e não é necessário configurar banco, load balancer, cache, etc.
Um exemplo de PaaS com versão gratuita para Python é o PythonAnywhere
Agora, se busca desenvolver suas habilidades para ter melhores oportunidades na área, eu recomendo algumas coisas:
- Conhecer bem os principais serviços da AWS (aprendendo AWS vc aprende qualquer outra)
- Estudar como fazer um deploy "na unha" para aplicações comerciais menores e/ou protótipos comerciais. Aqui entra configurar uma VPS (Digital Ocean por exemplo).
- Conhecer um pouco sobre as configurações de DNS, principalmente os registros relacionados a emails (nem todo projeto pode pagar por esse serviço, então é bom saber como fazer).
- Experimentar deploys em outros PaaS mais robustos como o Heroku ou Elastic Beanstalk.
No mais, com a experiência vc vai saber quando deve usar cada opção.