Si hago una aplicación web en Angular2 que se ejecuta en AWS (S3, DynamoDB), ¿todavía necesito hacer alguna programación del lado del servidor (como Play o PHP o Python)?

La respuesta a su pregunta depende del problema que está tratando de resolver.

Angular (por cierto, la versión 4+ ya está disponible y es muy similar a la 2), es un marco web front-end. Le permite crear sitios web agradables de una sola página (lo que significa que solo hay 1 archivo html y todo el contenido se altera usando javascript) que ya puede hacer mucho en la computadora del cliente.

Si desea escribir un buen front-end utilizando algunos otros back-end con una Interfaz de programación de aplicaciones (API) pública, puede hacerlo solo con Angular. Esto debería hacerle pensar en hacer su propia interfaz reddit, por ejemplo.

Sin embargo, si desea que sus usuarios hagan algo en su sitio web, ALMACENE lo que están haciendo y luego RECUPERE nuevamente … entonces necesitará un back-end. Los front-end no pueden leer del sistema de archivos de un usuario (por razones de seguridad). También se considera una práctica muy mala y terriblemente insegura permitir que su código del lado del cliente interactúe directamente con una base de datos o el sistema de archivos de un servidor remoto. Tendría que enviar las credenciales de su base de datos a través de Internet, por ejemplo, para que todos las vean (y puedan usar).

Entonces, si no está escribiendo un front-end para una API pública existente o una aplicación del lado del servidor existente … entonces sí, deberá escribir su propia aplicación del lado del servidor. Esto se puede hacer en el idioma que desee.

Espero que responda tu pregunta.

Ah, si no menciona “DynamoDB”, entonces la respuesta es sí, definitivamente necesita un lenguaje del lado del servidor para interactuar con su base de datos.

Pero veo que DynamoDB admite Javascript en el siguiente enlace:
JavaScript y DynamoDB

No he usado DynamoDB antes (y no soy un experto), así que no estoy seguro, pero podría decir NO. Puede ver la autenticación de soporte de DynamoDB a través del navegador:

Resumen – Amazon DynamoDB

No puedo entender el mecanismo de autenticación del navegador, ¿por qué es seguro porque todo el código está en el cliente para que cualquiera pueda inspeccionar y ver su configuración?

Lo siento, no puedo evitarlo, pero me interesa su pregunta, ¡cualquiera ha probado DynamoDB solo en el cliente, por favor háganoslo saber!

De todos modos, poner toda su lógica en el cliente puede no ser seguro, depende de su elección.

Si se trata de un sitio estático, no se necesita ningún servidor cuando se aloja a través de s3. Si necesita realizar algún trabajo en el servidor, consulte AWS Lambda para el alojamiento. Lambda es barato y ligero.

La mejor de las suertes.

Si no necesita ningún trabajo en el servidor, no.

Pero si necesita trabajar en el servidor, ya que Angular2 es JavaScript y JavaScript se ejecuta solo en el navegador, necesitará algo de código en el servidor. Incluso si el sitio no es dinámico, digamos que el usuario inicia sesión y se le muestra su puntaje actual y nada más, tendría que haber código ejecutándose en el servidor para producir la página que el servidor envía al navegador.

Sí, si no es un sitio web estático.