Saltar al contenido

Amazon Web Services: 5 preguntas que los desarrolladores quieren que se contesten

Amazon Web Services no es sólo una de las principales plataformas de nube, sino que también innova y añade nuevos servicios y características a una velocidad vertiginosa. En nuestro reciente seminario web sobre las tendencias de los desarrolladores de AWS, el autor y experto en AWS Ryan Lewis compartió una actualización de los nuevos servicios de AWS y cómo mantenerse al día con los próximos lanzamientos. Los desarrolladores tenían preguntas sobre el examen de asociado de desarrolladores certificados de AWS, el administrador de secretos de AWS y más. Lee a continuación los comentarios de Ryan.

¿Es Secrets Manager ahora una alternativa viable para reemplazar a AWS Cognito para la autenticación del lado del cliente?

El Administrador de Secretos de AWS es uno de mis nuevos servicios favoritos de AWS este año. Resuelve un problema que nunca ha tenido una gran solución: cómo almacenar de forma segura los secretos sensibles y recuperarlos para sus aplicaciones. Secrets Manager ahora le permite almacenar de forma segura esos secretos y dar acceso a ellos a través de permisos en IAM. Las credenciales de la base de datos, alojadas en el RDS o en cualquier otro lugar, también se pueden gestionar con Secrets Manager y se pueden rotar automáticamente según un intervalo de tiempo configurado.

Amazon Web Services: 5 preguntas que los desarrolladores quieren que se contesten
Amazon Web Services: 5 preguntas que los desarrolladores quieren que se contesten

El cognito es útil para generar credenciales temporales, idealmente para un usuario del lado del cliente, que luego expirarán y serán inutilizables. Cuando se tiene una aplicación principalmente del lado del cliente en la que se quiere dar a un usuario acceso a algunos servicios sensibles como una API o DynamoDB, Cognito es la mejor manera en AWS de gestionar ese acceso.

Secrets Manager es diferente a Cognito, porque los secretos/créditos que almacena deben mantenerse en secreto y no deben ser enviados al cliente. Ejemplos de cosas que están en el Secrets Manager son las claves de autenticación de otros servicios o las credenciales de la base de datos. Aunque es una buena práctica cambiarlas cada pocos meses, no quieres que nadie sepa estos secretos, especialmente tus usuarios. Sólo su aplicación del lado del servidor recuperará y utilizará estos secretos del Secrets Manager.

En pocas palabras, usa Secrets Manager para las credenciales que usará tu aplicación, y Cognito para las credenciales temporales que usarán tus usuarios.

¿Sus cursos cubren el plan del examen Beta, que supongo que será el examen real en otoño?

El examen de desarrollador asociado certificado de AWS recibirá una actualización a finales de este año con todos los nuevos dominios de conocimiento. El nuevo examen cubre la mayoría de los mismos dominios que el examen actual, pero hay nuevos temas como la arquitectura sin servidores y la monitorización. No hay una fecha publicada cuando el nuevo examen estará en vivo, pero se completó una beta en marzo de 2018, así que estoy de acuerdo en que el otoño de 2018 parece un momento óptimo para su lanzamiento.

He publicado tres cursos que establecen el marco de trabajo para la Ruta de Desarrollo Certificada de AWS en . Estos cursos se centran en temas que estarán tanto en el examen actual como en el nuevo examen. Publicaré un curso adicional que tratará el contenido añadido para el nuevo examen. Una vez publicado este curso, debería proporcionar una buena preparación para el próximo examen y también mantenerle al día con las últimas técnicas de desarrollo de AWS.

es el desarrollador de AWS: curso de iniciación es bueno para alguien que no tiene conocimientos de AWS o hay algún requisito previo?

No hay requisitos previos reales para ver mi curso de desarrollo de AWS: Empezando en… Asumo que no tengo conocimientos previos con AWS e intento abordar cada servicio y tema como si fuera nuevo en la nube. Te ayudará si ya entiendes los fundamentos de las aplicaciones web, y yo uso Node.js para construir la aplicación de demostración, así que algo de experiencia con JavaScript te facilitará las cosas.

Si eres completamente nuevo en AWS, o sólo quieres refrescarte, sería mejor que te tomaras una hora de tu día y vieras mi Desarrollador AWS: El curso de “Big Picture”. Este es un curso de alto nivel que explica qué es AWS y cómo funciona la nube. No hay ningún proyecto de demostración para este curso, es principalmente sólo diapositivas y explicaciones. Debido a que es mucho más corto que el curso de iniciación, es fácil de recorrerlo primero. Además, creo que la repetición de algunos de los conceptos podría facilitar la retención de conocimientos durante el curso de iniciación.

¿Cuál es su opinión general sobre los Frijoles Elásticos? Tuve muy malas experiencias usándolo para construir una API.

Elastic Beanstalk es un servicio de aplicación en AWS que se encarga de ejecutar una aplicación. Hace cosas como configurar equilibradores de carga, proporciona plataformas de aplicación en instancias, y autobalanza su aplicación según reglas que usted puede configurar.

Tengo sentimientos encontrados acerca de Elastic Beanstalk. Para que tengan una idea de mis comentarios, he estado usando Elastic Beanstalk para aplicaciones en Expedia y Kuali durante los últimos cuatro años. Si bien es cierto que hay algunos problemas para configurar una aplicación de Elastic Beanstalk, la estabilidad y la comodidad de todo lo que hace lo convierte en algo sencillo para el uso empresarial. Tratar de configurar todo lo que Elastic Beanstalk hace por ti a mano sería propenso a errores e inconsistente. Tiene sentido usar Elastic Beanstalk si quieres ejecutar una aplicación web en AWS.

Entonces, ¿qué hay de malo con el tallo de frijol elástico? Bueno, hay especificaciones extrañas al ejecutar su aplicación en el servicio que no están bien documentadas. Inicialmente, hacer que su aplicación se ejecute correctamente en Elastic Beanstalk puede ser un caso frustrante de ensayo y error que puede hacer que usted se dé por vencido. Una vez que usted hace que todo funcione, verá que si bien Elastic Beanstalk hace que los despliegues sean seguros y organizados, puede llevar mucho tiempo desplegar su aplicación. Aprovisionar las nuevas instancias, copiar su código y conectarlas al balanceador de carga lleva más tiempo del que creo que debería. Sigo pensando que los beneficios superan a las quejas, por lo que incluso con estos problemas yo recomendaría utilizarlo si necesitas ejecutar una aplicación web.

Dicho esto, el uso de un servidor para su aplicación o API se ha vuelto realmente opcional en estos días. He usado AWS Lambda con API Gateway para construir APIs recientemente, y he descubierto que son muy superiores a una aplicación web pesada en Elastic Beanstalk. Yo miraría en Lambda para ver si se ajusta a su caso de uso y consideraría ir sin servidor para su API.

¿Qué servicio de AWS sería más similar a Heroku o a Google App Engine? ¿Recomendaría AWS para esto?

Heroku y Google App Engine son excelentes servicios de aplicaciones que te permiten concentrarte en escribir tu código, y gestiona gran parte de la infraestructura de ejecución de tu aplicación por ti. También tienen herramientas CLI muy útiles que hacen que la creación e implementación de tu aplicación sea muy conveniente.

AWS tiene un servicio similar llamado Elastic Beanstalk. Te permite subir tu código y administrar toda la escalada e infraestructura por ti. Pueden ver algunos de mis comentarios sobre el servicio en la pregunta anterior, pero definitivamente recomendaría usar AWS para este caso de uso. Aunque Heroku y Google App Engine también son buenos servicios, prefiero tanto Elastic Beanstalk como el resto de los servicios de AWS con los que puedo interactuar sin problemas desde mis aplicaciones. AWS tiene un conveniente CLI de Elastic Beanstalk, que te da la misma experiencia para la implementación que puedes haber visto con Heroku o Google App Engine.

Si quieres saber más sobre el Elastic Beanstalk, lo cubro extensamente en mis dos AWS Developer: “Getting Started” y “AWS Developer”: Despliegue y cursos de seguridad en .