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 estar alojadas de forma local, en otro proveedor de servicios en la nube, o bien pueden administrarlas proveedores externos.
Servicios de Google Cloud Storage
Para las apps de App Engine que se ejecutan en el entorno estándar de Java 8, recomendamos uno de los siguientes servicios de Google Cloud Storage:
Nombre | Estructura | Coherencia | Costo |
---|---|---|---|
Firestore en modo Datastore | Sin esquemas (NoSQL) | Coherencia sólida, salvo cuando se realizan consultas globales | El modo Datastore ofrece una cuota gratuita con límites diarios. Las cuentas pagas ofrecen almacenamiento y operaciones de lectura y de escritura ilimitados. Para obtener más información, consulta la página Cuotas de Datastore. |
Cloud SQL para MySQL o Cloud SQL para PostgreSQL |
Relacional | Coherencia sólida | Google ofrece dos planes de facturación para Google Cloud SQL: por paquetes y por uso. Para obtener más información, consulta la hoja de precios de Cloud SQL. |
Cloud Storage | Archivos y sus metadatos asociados (almacenamiento de archivos en la nube) | Coherencia sólida, salvo cuando se realizan operaciones de listas que obtienen una lista de objetos o depósitos | No se asocian cargos a las llamadas a Google Cloud Storage.
Sin embargo, por los datos que se almacenen en Google Cloud Storage, se cobra la tarifa habitual de almacenamiento de ese servicio. Los precios de Cloud Storage están disponibles en la hoja de precios de Cloud Storage. |
Estas opciones no son mutuamente excluyentes. Por ejemplo, la misma aplicación puede almacenar información en una base de datos de Cloud SQL y, a la vez, almacenar archivos en un bucket de Cloud Storage.
Consulta una lista completa de los productos de almacenamiento de Google Cloud en la página Productos de almacenamiento de Cloud.
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.
Entorno local
Si tienes una base de datos local existente a la que quieres que tu aplicación de App Engine tenga acceso, puedes configurar tu red interna y tu firewall para otorgarle una dirección IP pública o puedes conectarla a través de una VPN.
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 aumentos 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.