Documentos de Académico
Documentos de Profesional
Documentos de Cultura
asanchez2912@gmail.com
La aplicacion es web de tres capas. El front esta desplegado en un bucket de S3. En
este escenario, cual es la mejor opcion de cacheo?
En el caso de una aplicación web de tres capas en la que el front se encuentra
desplegado en un bucket de S3, una buena opción de caché sería el uso de Amazon
CloudFront como CDN. CloudFront es un servicio de red de entrega de contenido que
proporciona una capa de caché global y distribuida para el contenido estático de la
aplicación web, como imágenes, hojas de estilo y archivos JavaScript. Al usar
CloudFront, el contenido estático se almacena en caché en los servidores de borde
de CloudFront, lo que permite una entrega más rápida y eficiente a los usuarios
finales de todo el mundo.
Además, CloudFront puede utilizarse en conjunto con otras soluciones de caché, como
Amazon ElastiCache o Amazon DynamoDB Accelerator (DAX), para cachear datos
estructurados y mejorar aún más el rendimiento de la aplicación.
Otra opción de caché para la capa de front-end sería utilizar un proxy inverso como
Amazon API Gateway o Amazon Elastic Load Balancing (ELB) para almacenar en caché
las solicitudes HTTP en memoria. Esto puede mejorar el rendimiento de la aplicación
al reducir la cantidad de solicitudes que llegan al bucket de S3 y minimizar la
latencia de red. Sin embargo, es importante tener en cuenta que el uso de un proxy
inverso también agrega una capa adicional de complejidad a la arquitectura de la
aplicación.
asanchez2912@gmail.com
A nivel de autenticacion, no quiero usar un servicio propio de AWS, prefiero
almacenar los datos de mis usuarios en una base de datos mysql. Como podria acceder
a esa base de datos teniendo en cuenta que esta ubicada en una sudred privada?¡
Para acceder a una base de datos MySQL ubicada en una subred privada en AWS, hay
varias opciones que puedes considerar, dependiendo de tus necesidades y requisitos
de seguridad.
Una opción es configurar una VPN Site-to-Site entre tu red local y la VPC de AWS
que aloja la subred privada. Una vez que se establece la VPN, puedes acceder a la
base de datos MySQL utilizando una dirección IP privada asignada a la instancia de
base de datos en la subred privada. Es importante tener en cuenta que esta opción
puede requerir una configuración adicional de firewall y enrutamiento en tu red
local para permitir el tráfico de la VPN.
Otra opción es utilizar AWS Direct Connect para establecer una conexión dedicada
entre tu red local y la VPC de AWS que aloja la subred privada. Esta opción
proporciona una conexión de red privada de alta velocidad y baja latencia entre tus
sistemas locales y los recursos en la VPC de AWS, lo que puede mejorar el
rendimiento de la base de datos MySQL. También puedes utilizar Direct Connect
Gateway para compartir la conexión dedicada entre varias VPC de AWS.
Una tercera opción es utilizar AWS PrivateLink para acceder a la base de datos
MySQL en la subred privada sin exponerla a Internet. PrivateLink permite que tus
aplicaciones en la VPC de AWS se conecten a servicios de AWS, como RDS (que admite
MySQL), a través de una conexión privada de red. Puedes configurar PrivateLink para
acceder a RDS mediante un punto final de PrivateLink en la subred privada, lo que
proporciona una conexión segura y privada entre tus sistemas y la base de datos
MySQL.
En todos los casos, es importante seguir las mejores prácticas de seguridad, como
utilizar autenticación de usuario y contraseñas seguras, implementar cifrado de
datos en tránsito y en reposo, y restringir el acceso a la base de datos solo a los
usuarios y sistemas autorizados.
asanchez2912@gmail.com
La conexion no requiere una VPN. Es un formulario que esta en el front de la
aplicacion. Quisiera saber cual seria la mejor forma para autenticar un usuario en
la aplicacion teniendo en cuenta que sus credenciales estan alojadas en una BD
mysql y el front esta un bucket de s3
En este caso, una forma de autenticar a los usuarios sería crear un servicio de
autenticación de usuarios en la nube que se integre con la base de datos MySQL.
Puedes implementar este servicio en una instancia EC2 que se ejecuta en una subred
pública en la VPC de AWS. La instancia EC2 podría alojar una API RESTful que maneja
las solicitudes de autenticación de los usuarios y se comunica con la base de datos
MySQL para validar las credenciales de usuario.
Otra opción sería utilizar una solución de terceros como Auth0 o Okta que permiten
la autenticación y autorización de usuarios sin necesidad de alojar una solución de
autenticación en tu propia infraestructura. Estas soluciones proporcionan una API
para autenticar a los usuarios y se integran con una variedad de proveedores de
identidad, incluyendo bases de datos MySQL. Puedes utilizar una solución de este
tipo para autenticar a los usuarios en tu aplicación web alojada en S3 sin tener
que alojar una solución de autenticación en la nube.
asanchez2912@gmail.com
Una lambda seria una buena opcion?
Sí, otra opción para autenticar a los usuarios y acceder a la base de datos MySQL
sería utilizar una función de Lambda de AWS. En este enfoque, crearías una función
de Lambda que maneja las solicitudes de autenticación de los usuarios y se comunica
con la base de datos MySQL para validar las credenciales de usuario.
Ten en cuenta que, si bien una función de Lambda puede ser una buena opción para
esta solución, también debes considerar la escalabilidad y el rendimiento de la
función de Lambda, así como la seguridad y la gestión de credenciales de usuario.
Además, ten en cuenta que las funciones de Lambda tienen un tiempo de ejecución
máximo de 15 minutos, por lo que debes asegurarte de que las solicitudes de
autenticación se manejen de manera eficiente para no agotar el tiempo de ejecución
máximo.