Para almacenar datos y archivos en App Engine, puedes usar los servicios de Google Cloud o cualquier otro servicio de almacenamiento que admita tu lenguaje y que sea accesible desde tu instancia de App Engine. Las bases de datos de terceros pueden alojarse en Compute Engine, en otro proveedor de servicios en la nube, de forma local o estar bajo la administración de un proveedor externo.
Servicios de Google Cloud Storage
Para las aplicaciones de App Engine que se ejecutan en el entorno flexible, recomendamos uno de los siguientes servicios de Google Cloud Storage:
- Firestore en modo Datastore para almacenar datos en una base de datos NoSQL. Ten en cuenta que Firestore en modo Datastore está disponible para todos los entornos de ejecución, excepto .NET.
- Cloud SQL para MySQL a fin de almacenar datos en una base de datos MySQL.
- Cloud SQL para PostgreSQL a fin de almacenar datos en una base de datos PostgreSQL.
- Cloud Storage a fin de realizar operaciones de lectura y escritura de archivos en el entorno de ejecución, además de almacenar y entregar archivos estáticos, como películas, imágenes o cualquier otro contenido estático.
Consulta una lista completa de los productos de almacenamiento de Google Cloud en la página Productos de almacenamiento de Cloud.
Alojamiento en Compute Engine
Las instancias de App Engine pertenecen a la misma red interna privada que las instancias de Compute Engine. Tu aplicación de App Engine puede comunicarse con servicios alojados en Compute Engine dentro del mismo proyecto, sin pasar por la Internet pública. En muchos casos, tu aplicación se conecta al servicio mediante la dirección IP interna de la instancia, sin tener que asignar una dirección IP externa y pública a la base de datos. Si lo deseas, puedes asignar una dirección IP pública a fin de permitir el acceso a la base de datos desde fuera de Google Cloud.
Muchas bases de datos populares de terceros, como Redis, MongoDB, PostgreSQL, Cassandra, Hadoop y Microsoft SQL Server, pueden implementarse con rapidez en Compute Engine mediante Google Cloud Marketplace. Consulta las guías siguientes para obtener detalles sobre cómo implementar MySQL o PostgreSQL.
Otros proveedores de servicios en la nube
Las aplicaciones de App Engine pueden conectarse a bases de datos externas que están alojadas en otras nubes públicas, siempre que los servidores de estas bases de datos y tu firewall se hayan configurado correctamente para aceptar conexiones. Tu aplicación de App Engine se conecta a Internet con una dirección IP pública del servicio externo.
Bases de datos administradas por proveedores terceros
Hay muchos proveedores que ofrecen servicios de bases de datos administrados, como mLab para MongoDB. Redis Labs ofrece almacenamiento en caché de Redis alojado. Estos proveedores controlan el alojamiento, la configuración y el mantenimiento de las bases de datos. App Engine puede conectarse a estos servicios externos por Internet, del mismo modo que otras nubes privadas, con la dirección IP pública del servicio.
Bases de datos locales
Si tienes bases de datos locales existentes y deseas que tu aplicación de App Engine tenga acceso a ellas, configura tu red interna y firewall para que la base de datos reciba una dirección IP pública o se conecte mediante una VPN.
La configuración de Cloud VPN permite que tu aplicación de App Engine acceda a tu red local sin exponer al servidor de la base de datos directamente a la Internet pública. Dado que App Engine y Compute Engine usan la misma infraestructura de red, puedes usar la conexión de VPN para establecer una conexión entre la aplicación de App Engine y tu base de datos local mediante la dirección IP interna del servidor de base de datos.
Consideraciones de producción
Se puede configurar App Engine para que realice un ajuste de escala automático horizontal de tu aplicación, en función de diversas métricas. A diferencia de las aplicaciones web, las bases de datos suelen requerir cambios no triviales para responder al escalamiento. En las aplicaciones de producción, App Engine puede sobrecargar una base de datos rápidamente durante los picos de tráfico. Cuando implementes y configures bases de datos, debes tener en cuenta la carga prevista de tráfico promedio y la carga durante los aumentos repentinos.