MongoDB Atlas proporciona copias de seguridad totalmente administradas y personalizables para garantizar la retención y recuperación de datos:
Copias de seguridad en la nube: Admite instantáneas completas y almacenamiento localizado de instantáneas mediante las funciones nativas de su proveedor de nube. Estas instantáneas son siempre incrementales para lograr restauraciones rápidas y de bajo costo. Usted elige una política de copias de seguridad que especifique la frecuencia y el periodo de retención de las instantáneas por hora, día, semana, mes y año.
Copias de seguridad continuas en la nube: Mejora las copias de seguridad en la nube estándar al ofrecer recuperación a un punto en el tiempo (PIT). Esta función adicional almacena instantáneas junto con el registro de operaciones del clúster para capturar los cambios de datos entre instantáneas, lo que permite recuperar los datos al momento exacto (un punto en el tiempo) justo antes de cualquier fallo o evento. Esto permite objetivos de punto de recuperación (RPO) de tan solo 1 minuto.
No recomendamos habilitar las copias de seguridad en entornos de desarrollo y pruebas. Para entornos de prueba y producción, recomendamos desarrollar plantillas de implementación automatizadas que incluyan las recomendaciones de políticas de copia de seguridad descritas en esta página.
Características de las copias de seguridad de Atlas
Atlas ofrece copias de seguridad completamente administradas de sus datos, incluyendo la recuperación de datos puntuales e instantáneas consistentes de todos los clústeres, incluidos los fragmentados. En Atlas, puede elegir entre cinco frecuencias de instantáneas, cada una con su propio periodo de retención: por hora, por día, por semana, por mes y por año.
copias de seguridad en la nube | Esta función proporciona almacenamiento de copias de seguridad localizadas mediante la funcionalidad nativa de instantáneas del proveedor de servicios en la nube de su clúster. Entre sus ventajas se incluyen un sólido programa de retención de copias de seguridad predeterminado de 12 meses, total flexibilidad para personalizar los programas de instantáneas y retención, y la posibilidad de configurar diferentes frecuencias de instantáneas (por ejemplo, cada hora para la recuperación, semanal o mensual para la retención a largo plazo) para cumplir con las normativas del sector. Puede acceder a sus datos de copia de seguridad al instante, lo cual resulta útil para fines de auditoría, cumplimiento normativo o recuperación de datos. |
Copias de seguridad continuas en la nube | Esta función se puede habilitar sobre las copias de seguridad en la nube para proporcionar recuperación a un punto en el tiempo (PIT). Las copias de seguridad continuas en la nube almacenan instantáneas junto con el registro de operaciones del clúster en una ventana de restauración a un punto en el tiempo (PITr) personalizable. Esto permite restaurar a la última instantánea y luego reproducir todas las operaciones desde su captura. Esto permite recuperar los datos al momento exacto (un punto en el tiempo) justo antes de cualquier fallo o pérdida de datos, como un ciberataque. |
Distribución de snapshot multirregional | Esta función permite aumentar la resiliencia distribuyendo copias de instantáneas de respaldo y registros de operaciones entre regiones geográficas, además de la región principal predeterminada. Esta configuración cumple con los requisitos de cumplimiento normativo para almacenar copias de seguridad en diferentes ubicaciones geográficas y garantizar la recuperación ante desastres en caso de interrupciones regionales. Para obtener más información, consulte Distribución de instantáneas. |
Política de cumplimiento de copias de seguridad | Esta función protege aún más los datos críticos de la empresa al evitar que se modifiquen o eliminen las instantáneas y los registros de operaciones almacenados en Atlas, lo que garantiza que sus copias de seguridad cumplan con la normativa WORM (Write Once Read Many). Solo un usuario autorizado puede desactivar esta protección tras completar un proceso de verificación con MongoDB. Existe un periodo de espera obligatorio para desactivar esta función, de modo que un atacante no pueda modificar la política de copias de seguridad ni exportar los datos. Para obtener más información, consulte Configurar una política de cumplimiento de copias de seguridad. |
Recomendaciones para copias de seguridad de Atlas
Recomendaciones para la estrategia de backup
Debe alinear su estrategia de respaldo con objetivos de punto de recuperación (RPO) y objetivos de tiempo de recuperación (RTO) específicos para cumplir con los requisitos de continuidad del negocio, en particular para aplicaciones críticas donde la recuperación es casi nula. ElRPO y los tiempos de recuperación rápidos son cruciales. El RPO define la cantidad máxima de pérdida de datos aceptable durante un fallo o interrupción, mientras que el RTO define el tiempo máximo que tarda su clúster o servicio en recuperarse. Debe calcular sus estándares de RPO y RTO en función de la criticidad de su aplicación. Por ejemplo, los datos críticos suelen requerir un RPO menor que el análisis de flujo de clics.
La naturaleza de su escenario de desastre y su método de recuperación afectan sus RPO y RTO alcanzables. La arquitectura de alta disponibilidad predeterminada de MongoDB admite la conmutación por error automática para recuperarse de interrupciones temporales del proveedor de nube con un RTO y RPO prácticamente nulos, según el alcance de la interrupción y el paradigma de implementación elegido. Para obtener más información sobre las configuraciones de implementación que admiten la conmutación por error automática, consulte Orientación para la alta disponibilidad de Atlas.
En escenarios de desastre que requieren restaurar desde una copia de seguridad, como un error de código que corrompe toda la base de datos o una eliminación accidental del clúster, el RTO y el RPO de su implementación dependen de lo siguiente:
ElRPO depende del intervalo de instantáneas definido en su política de copias de seguridad. Cuando las copias de seguridad continuas en la nube están deshabilitadas, su RPO se corresponde directamente con el tiempo transcurrido entre instantáneas. Si toma instantáneas de copia de seguridad cada cuatro horas, por ejemplo, podría perder hasta cuatro horas de datos durante un fallo. Si habilita las copias de seguridad continuas en la nube, podrá realizar restauraciones PIT que garantizan un RPO de tan solo un minuto dentro de su ventana PITr personalizable.
ElRTO depende del tamaño de la copia de seguridad y de la eficiencia de la operación de restauración. Los conjuntos de réplicas (y fragmentos) grandes tardan más en restaurarse. Para acelerar las restauraciones, Atlas realiza automáticamente restauraciones de conexión directa optimizadas para clústeres ubicados en el mismo proyecto y las mismas regiones donde se almacenan las copias instantáneas.
Si no hay una instantánea local disponible, o si el clúster usa almacenamiento NVMe en lugar del almacenamiento general estándar o de CPU baja, Atlas utiliza de manera predeterminada restauraciones de transmisión más lentas.
Además, si habilitas las Copias de seguridad continuas en la nube, Atlas debe reproducir las operaciones después de restaurar la última snapshot para completar una restauración PIT. Cuanto menos tiempo pase entre snapshots, menos operaciones deberán reproducirse. Por lo tanto, puede reducir su RTO priorizando restauraciones óptimas y requiriendo instantáneas más frecuentes en su política de copias de seguridad.
Para garantizar una estrategia de copias de seguridad integral, recomendamos usar la siguiente política de copias de seguridad predeterminada como punto de partida. Adapte esta política a las necesidades de retención de datos y recuperación ante desastres de su empresa.
Tipo de póliza | Nivel | Copia de seguridad continua en la cloud | Instantánea tomada | Instantánea retenida |
|---|---|---|---|---|
Por hora | NVMe | Activado | Cada 12 horas | días de 7 |
Por hora | non-NVMe | Activado | Cada 6 horas | días de 7 |
Diario | Todo | Cualquiera de los dos | Todos los días | días de 7 |
Semanal | Todo | Cualquiera de los dos | Todos los sábados | semanas de 4 |
Mensual | Todo | Cualquiera de los dos | Último día del mes | meses de 12 |
Anual | Todo | Cualquiera de los dos | Cada 1de diciembre | año de 1 |
Recomendaciones para la distribución de copias de seguridad
Para mejorar aún más la resiliencia en una implementación de una sola región, recomendamos configurar Atlas para copiar instantáneas de la región principal a una región de respaldo secundaria y así garantizar que se puedan restaurar versiones anteriores si la región principal deja de funcionar. Para obtener más información, consulte Copiar instantáneas a regiones adicionales.
Recomendaciones para la política de cumplimiento de copias de seguridad
Recomendamos aplicar la Política de cumplimiento de copias de seguridad de Atlas para evitar modificaciones o eliminaciones no autorizadas de copias de seguridad, garantizando así la protección de datos y una recuperación ante desastres sólida.
Recomendaciones para la recuperación del PIT
Las copias de seguridad continuas en la nube permiten una recuperación precisa a un punto en el tiempo (PIT), lo que minimiza la pérdida de datos durante fallos. Atlas puede recuperarse rápidamente a la marca de tiempo exacta antes de un fallo, garantizando un RPO de al menos un minuto. Esto se debe a que Atlas restaura la instantánea más reciente anterior al punto en el tiempo deseado y luego reproduce los cambios del registro de operaciones para restaurar a ese punto específico. Los tiempos de recuperación pueden variar según el calentamiento del disco del proveedor de la nube y la cantidad de registro de operaciones que se debe reproducir durante la recuperación. El rendimiento de su clúster podría ser lento hasta que se complete el calentamiento del disco del proveedor de la nube después de una restauración. Si puede ser flexible con sus requisitos de recuperación, le recomendamos diseñar plantillas que identifiquen la mejor relación calidad-precio.
Recomendaciones para los costos de respaldo
Para optimizar los costos de las copias de seguridad de Atlas, puede ajustar la frecuencia de las copias de seguridad y las políticas de retención para que se ajusten a la criticidad de los datos y reduzcan los gastos innecesarios de almacenamiento. Por ejemplo, recomendamos desactivar las copias de seguridad en entornos de nivel inferior, como clústeres de desarrollo o de prueba, donde la recuperación de datos no es crucial. Para entornos de nivel superior, recomendamos equilibrar los costos de transferencia de datos entre regiones con los requisitos de alta disponibilidad al distribuir instantáneas de copia de seguridad entre regiones.
Ejemplos de automatización: copias de seguridad de Atlas
Los siguientes ejemplos permiten realizar operaciones de copia de seguridad y restauración utilizando herramientas Atlas para la automatización.
Estos ejemplos se aplican únicamente a entornos de producción y ensayo donde la copia de seguridad está habilitada para el clúster.
Ejecute el siguiente comando para tomar una instantánea de respaldo para el clúster llamado myDemo y conservar la instantánea durante 7 días:
atlas backups snapshots create myDemo --desc "my backup snapshot" --retention 7
Habilite la política de cumplimiento de copias de seguridad para su proyecto con un usuario designado y autorizado (governance@example.org) quien solo puede desactivar esta protección después de completar un proceso de verificación con el soporte de MongoDB.
atlas backups compliancePolicy enable \ --projectId 67212db237c5766221eb6ad9 \ --authorizedEmail governance@example.org \ --authorizedUserFirstName john \ --authorizedUserLastName doe
Ejecute el siguiente comando para crear una política de cumplimiento para instantáneas de respaldo programadas que aplique la cantidad de veces que se deben tomar instantáneas, que se establece en cada 6 horas, y la duración para retener las instantáneas, que se establece en 1 mes.
atlas backups compliancePolicy policies scheduled create \ --projectId 67212db237c5766221eb6ad9 \ --frequencyInterval 6 \ --frequencyType hourly \ --retentionValue 1 \ --retentionUnit months
Los siguientes ejemplos muestran cómo configurar copias de seguridad durante la implementación. Para poder crear recursos con Terraform, debe:
Cree su organización pagadora y genere una clave API para ella. Guarde su clave API como variables de entorno ejecutando el siguiente comando en la terminal:
export MONGODB_ATLAS_PUBLIC_KEY="<insert your public key here>" export MONGODB_ATLAS_PRIVATE_KEY="<insert your private key here>"
Importante
Los siguientes ejemplos utilizan la 2 versión.x () del proveedor Terraform de MongoDB Atlas.~> 2.2 Si actualiza desde 1 la versión.x del proveedor, consulte la 2.0.0 Guía de actualización para conocer los cambios importantes y los pasos de migración. Los ejemplos utilizan el mongodbatlas_advanced_cluster recurso con la2 sintaxis v.x.
Archivos comunes
Debe crear los siguientes archivos para cada ejemplo. Coloque los archivos de cada ejemplo en su propio directorio. Cambie los ID y los nombres para usar sus valores. A continuación, ejecute los comandos para inicializar Terraform, ver el plan de Terraform y aplicar los cambios.
variables.tf
variable "org_id" { description = "Atlas organization ID" type = string } variable "project_name" { description = "Atlas project name" type = string } variable "cluster_name" { description = "Atlas Cluster Name" type = string } variable "point_in_time_utc_seconds" { description = "PIT in UTC" default = 0 type = number }
Configurar la programación de copias de seguridad para el clúster
Utilice lo siguiente para configurar una programación de copias de seguridad para el clúster con la siguiente frecuencia y retención de instantáneas:
Cada hora: cada 12 horas, conservar durante 7 días
Diariamente: una vez al día, conservar durante 7 días
Semanal: sábado, conservar durante 4 semanas
Mensual: Último día del mes, conservar durante 3 meses
principal.tf
locals { atlas_clusters = { "cluster_1" = { name = "m10-aws-1e", region = "US_EAST_1" }, "cluster_2" = { name = "m10-aws-2e", region = "US_EAST_2" }, } } resource "mongodbatlas_project" "atlas-project" { org_id = var.org_id name = var.project_name } resource "mongodbatlas_advanced_cluster" "automated_backup_test_cluster" { for_each = local.atlas_clusters project_id = mongodbatlas_project.atlas-project.id name = each.value.name cluster_type = "REPLICASET" replication_specs = [ { region_configs = [ { electable_specs = { instance_size = "M10" node_count = 3 } analytics_specs = { instance_size = "M10" node_count = 1 } provider_name = "AWS" region_name = each.value.region priority = 7 } ] } ] backup_enabled = true # enable cloud backup snapshots pit_enabled = true } resource "mongodbatlas_cloud_backup_schedule" "test" { for_each = local.atlas_clusters project_id = mongodbatlas_project.atlas-project.id cluster_name = mongodbatlas_advanced_cluster.automated_backup_test_cluster[each.key].name reference_hour_of_day = 3 # backup start hour in UTC reference_minute_of_hour = 45 # backup start minute in UTC restore_window_days = 7 # Restore window for near-zero RPO copy_settings { cloud_provider = "AWS" frequencies = ["HOURLY", "DAILY", "WEEKLY", "MONTHLY", "YEARLY", "ON_DEMAND"] region_name = "US_WEST_1" zone_id = mongodbatlas_advanced_cluster.automated_backup_test_cluster[each.key].replication_specs.*.zone_id[0] should_copy_oplogs = true } policy_item_hourly { frequency_interval = 12 # backup every 12 hours, accepted values = 1, 2, 4, 6, 8, 12 -> every n hours retention_unit = "days" retention_value = 7 # retain for 7 days } policy_item_daily { frequency_interval = 1 # backup every day, accepted values = 1 -> every 1 day retention_unit = "days" retention_value = 7 # retain for 7 days } policy_item_weekly { frequency_interval = 7 # every Sunday, accepted values = 1 to 7 -> every 1=Monday,2=Tuesday,3=Wednesday,4=Thursday,5=Friday,6=Saturday,7=Sunday day of the week retention_unit = "weeks" retention_value = 4 # retain for 4 weeks } policy_item_monthly { frequency_interval = 28 # accepted values = 1 to 28 -> 1 to 28 every nth day of the month retention_unit = "months" retention_value = 3 # retain for 3 months } depends_on = [ mongodbatlas_advanced_cluster.automated_backup_test_cluster ] }
Configurar la copia de seguridad y la restauración PIT para el clúster
Utilice lo siguiente para configurar la instantánea de copia de seguridad en la nube y el trabajo de restauración PIT.
principal.tf
Create a project resource "mongodbatlas_project" "project_test" { name = var.project_name org_id = var.org_id } Create a cluster with 3 nodes resource "mongodbatlas_advanced_cluster" "cluster_test" { project_id = mongodbatlas_project.project_test.id name = var.cluster_name cluster_type = "REPLICASET" backup_enabled = true # enable cloud provider snapshots pit_enabled = true retain_backups_enabled = true # keep the backup snapshopts once the cluster is deleted replication_specs = [ { region_configs = [ { priority = 7 provider_name = "AWS" region_name = "US_EAST_1" electable_specs = { instance_size = "M10" node_count = 3 } } ] } ] } Specify number of days to retain backup snapshots resource "mongodbatlas_cloud_backup_snapshot" "test" { project_id = mongodbatlas_advanced_cluster.cluster_test.project_id cluster_name = mongodbatlas_advanced_cluster.cluster_test.name description = "My description" retention_in_days = "1" } Specify the snapshot ID to use to restore resource "mongodbatlas_cloud_backup_snapshot_restore_job" "test" { count = (var.point_in_time_utc_seconds == 0 ? 0 : 1) project_id = mongodbatlas_cloud_backup_snapshot.test.project_id cluster_name = mongodbatlas_cloud_backup_snapshot.test.cluster_name snapshot_id = mongodbatlas_cloud_backup_snapshot.test.id delivery_type_config { point_in_time = true target_cluster_name = mongodbatlas_advanced_cluster.cluster_test.name target_project_id = mongodbatlas_advanced_cluster.cluster_test.project_id point_in_time_utc_seconds = var.point_in_time_utc_seconds } }