sql >> Base de Datos >  >> NoSQL >> MongoDB

Consejos para almacenar copias de seguridad de MongoDB en la nube

Cuando se trata de copias de seguridad y archivado de datos, los departamentos de TI están bajo presión para cumplir con acuerdos de nivel de servicio más estrictos, entregar más informes personalizados y cumplir con los requisitos de cumplimiento en expansión mientras continúan administrando las tareas diarias de archivado y copia de seguridad. Sin duda, el servidor de base de datos almacena parte de la información más valiosa de su empresa. Garantizar copias de seguridad confiables de la base de datos para evitar la pérdida de datos en caso de accidente o falla del hardware es una casilla de verificación crítica.

Pero, ¿cómo hacer que sea realmente DR cuando todos sus datos están en un solo centro de datos o incluso en centros de datos que están en la geolocalización cercana? Además, ya sea que se trate de un servidor altamente cargado las 24 horas del día, los 7 días de la semana o de un entorno de bajo volumen de transacciones, tendrá la necesidad de hacer que las copias de seguridad sean un procedimiento fluido sin interrumpir el rendimiento del servidor en un entorno de producción.

En este blog, revisaremos la copia de seguridad de MongoDB en la nube. La nube ha cambiado la industria de las copias de seguridad de datos. Debido a su precio asequible, las empresas más pequeñas tienen una solución externa que respalda todos sus datos.

Le mostraremos cómo realizar copias de seguridad seguras de MongoDB utilizando los servicios de mongo, así como otros métodos que puede utilizar para ampliar las opciones de recuperación ante desastres de su base de datos.

Si su servidor o destino de respaldo está ubicado en una infraestructura expuesta como una nube pública, un proveedor de alojamiento o está conectado a través de una red WAN que no es de confianza, debe pensar en acciones adicionales en su política de respaldo. Hay algunas formas diferentes de realizar copias de seguridad de bases de datos para MongoDB y, según el tipo de copia de seguridad, el tiempo de recuperación, el tamaño y las opciones de infraestructura variarán. Dado que muchas de las soluciones de almacenamiento en la nube son simplemente almacenamiento con diferentes interfaces API, cualquier solución de copia de seguridad se puede realizar con un poco de secuencias de comandos. Entonces, ¿cuáles son las opciones que tenemos para que el proceso sea fluido y seguro?

Cifrado de copia de seguridad de MongoDB

La seguridad debe estar en el centro de todas las acciones que realizan los equipos de TI. Siempre es una buena idea aplicar el cifrado para mejorar la seguridad de los datos de copia de seguridad. Un caso de uso simple para implementar el cifrado es cuando desea enviar la copia de seguridad a un almacenamiento de copia de seguridad externo ubicado en la nube pública.

Al crear una copia de seguridad cifrada, una cosa a tener en cuenta es que, por lo general, lleva más tiempo recuperarla. La copia de seguridad debe descifrarse antes de cualquier actividad de recuperación. Con un gran conjunto de datos, esto podría generar algunos retrasos en el RTO.

Por otro lado, si está utilizando las claves privadas para el cifrado, asegúrese de almacenar la clave en un lugar seguro. Si falta la clave privada, la copia de seguridad será inútil e irrecuperable. Si se roba la clave, todas las copias de seguridad creadas que usan la misma clave se verán comprometidas, ya que ya no están protegidas. Puede usar el popular GnuPG u OpenSSL para generar claves privadas o públicas.

Para realizar el cifrado MongoDBdump usando GnuPG, genere una clave privada y siga el asistente correspondiente:

$ gpg --gen-key

Cree una copia de seguridad simple de MongoDBdump como de costumbre:

$ mongodump –db db1 –gzip –archive=/tmp/db1.tar.gz
Cifre el archivo de volcado y elimine la copia de seguridad simple anterior:
$ gpg --encrypt -r ‘[email protected]’ db1.tar.gz

$ rm -f db1.tar.gz
GnuPG agregará automáticamente la extensión .gpg en el archivo encriptado. Para descifrar,

simplemente ejecute el comando gpg con el indicador --decrypt:

$ gpg --output db1.tar.gz --decrypt db1.tar.gz.gpg
Para crear un MongoDBdump encriptado usando OpenSSL, uno tiene que generar una clave privada y una clave pública:
OpenSSL req -x509 -nodes -newkey rsa:2048 -keyout dump.priv.pem -out dump.pub.pem

Esta clave privada (dump.priv.pem) debe guardarse en un lugar seguro para descifrarla en el futuro. Para Mongodump, se puede crear una copia de seguridad cifrada canalizando el contenido a openssl, por ejemplo

mongodump –db db1 –gzip –archive=/tmp/db1.tar.gz | openssl smime -encrypt -binary -text -aes256

-out database.sql.enc -outform DER dump.pub.pem
Para descifrar, simplemente use la clave privada (dump.priv.pem) junto con el indicador -decrypt:

openssl smime -decrypt -in database.sql.enc -binary -inform

DEM -inkey dump.priv.pem -out db1.tar.gz

Compresión de copia de seguridad de MongoDB

Dentro del mundo de las copias de seguridad en la nube de bases de datos, la compresión es uno de sus mejores amigos. No solo puede ahorrar espacio de almacenamiento, sino que también puede reducir significativamente el tiempo necesario para descargar/cargar datos.

Además de archivar, también hemos agregado soporte para compresión usando gzip. Esto queda expuesto por la introducción de una nueva opción de línea de comandos "--gzip" tanto en mongodump como en mongorestore. La compresión funciona tanto para las copias de seguridad creadas con el directorio como con el modo de archivo y reduce el uso del espacio en disco.

Normalmente, el volcado de MongoDB puede tener las mejores tasas de compresión ya que es un archivo de texto sin formato. Según la herramienta de compresión y la relación, un MongoDBdump comprimido puede ser hasta 6 veces más pequeño que el tamaño de la copia de seguridad original. Para comprimir la copia de seguridad, puede canalizar la salida de MongoDBdump a una herramienta de compresión y redirigirla a un archivo de destino

Tener una copia de seguridad comprimida podría ahorrarle hasta un 50 % del tamaño de la copia de seguridad original, según el conjunto de datos.

mongodump --db country --gzip --archive=country.archive

Limitación del rendimiento de la red

Una gran opción para las copias de seguridad en la nube es limitar el ancho de banda de transmisión de la red (Mb/s) al hacer una copia de seguridad. Puedes lograr eso con la herramienta pv. La utilidad pv viene con la opción de modificadores de datos -L RATE, --rate-limit RATE que limitan la transferencia a un máximo de RATE bytes por segundo. El siguiente ejemplo lo restringirá a 2 MB/s.

$ pv -q -L 2m

Transferencia de copias de seguridad de MongoDB a la nube

Ahora, cuando su copia de seguridad esté comprimida y protegida (cifrada), estará lista para transferirse.

Google Nube

La herramienta de línea de comandos gsutil se usa para administrar, monitorear y usar sus depósitos de almacenamiento en Google Cloud Storage. Si ya instaló gcloud util, ya tiene gsutil instalado. De lo contrario, siga las instrucciones para su distribución de Linux desde aquí.

Para instalar la CLI de gcloud puede seguir el siguiente procedimiento:

curl https://sdk.cloud.google.com | bash
Reinicie su shell:
exec -l $SHELL
Ejecuta gcloud init para inicializar el entorno de gcloud:
gcloud init
Con la herramienta de línea de comandos de gsutil instalada y autenticada, cree un depósito de almacenamiento regional llamado MongoDB-backups-storage en su proyecto actual.
gsutil mb -c regional -l europe-west1 gs://severalnines-storage/

Creating gs://MongoDB-backups-storage/

Amazon S3

Si no está utilizando RDS para alojar sus bases de datos, es muy probable que esté realizando sus propias copias de seguridad. La plataforma AWS de Amazon, S3 (Amazon Simple Storage Service) es un servicio de almacenamiento de datos que se puede utilizar para almacenar copias de seguridad de bases de datos u otros archivos críticos para el negocio. Ya sea que se trate de una instancia de Amazon EC2 o de su entorno local, puede utilizar el servicio para proteger sus datos.

Si bien las copias de seguridad se pueden cargar a través de la interfaz web, la interfaz de línea de comandos s3 dedicada se puede usar para hacerlo desde la línea de comandos y mediante scripts de automatización de copias de seguridad. Si las copias de seguridad se van a conservar durante mucho tiempo y el tiempo de recuperación no es una preocupación, las copias de seguridad se pueden transferir al servicio Amazon Glacier, lo que proporciona un almacenamiento a largo plazo mucho más económico. Los archivos (objetos de Amazon) se almacenan lógicamente en un enorme contenedor plano llamado cubo. S3 presenta una interfaz REST para sus componentes internos. Puede usar esta API para realizar operaciones CRUD en depósitos y objetos, así como para cambiar permisos y configuraciones en ambos.

El principal método de distribución de la CLI de AWS en Linux, Windows y macOS es pip, un administrador de paquetes para Python. Las instrucciones se pueden encontrar aquí.

aws s3 cp severalnines.sql s3://severalnine-sbucket/MongoDB_backups
De forma predeterminada, S3 proporciona una durabilidad de objetos de once 9s. Significa que si almacena 1.000.000.000 (mil millones) de objetos en él, puede esperar perder 1 objeto cada 10 años en promedio. La forma en que S3 logra esa impresionante cantidad de 9 es replicando el objeto automáticamente en múltiples zonas de disponibilidad, de lo que hablaremos en otra publicación. Amazon tiene centros de datos regionales en todo el mundo.

Almacenamiento de Microsoft Azure

La plataforma de nube pública de Microsoft, Azure, tiene opciones de almacenamiento con su interfaz de línea de control. La información se puede encontrar aquí. La CLI de Azure multiplataforma y de código abierto proporciona un conjunto de comandos para trabajar con la plataforma Azure. Brinda gran parte de la funcionalidad que se ve en Azure Portal, incluido el acceso a datos enriquecidos.

La instalación de la CLI de Azure es bastante simple, puede encontrar instrucciones aquí. A continuación puede encontrar cómo transferir su copia de seguridad al almacenamiento de Microsoft.

az storage blob upload --container-name severalnines --file severalnines.gz.tar --name severalnines_backup

Almacenamiento híbrido para copias de seguridad de MongoDB

Con la creciente industria de almacenamiento en la nube pública y privada, tenemos una nueva categoría llamada almacenamiento híbrido. El enfoque típico es mantener los datos en las unidades de disco locales durante un período más corto, mientras que el almacenamiento de respaldo en la nube se mantendría durante más tiempo. Muchas veces, el requisito de una retención de copias de seguridad más prolongada proviene de las obligaciones legales de diferentes industrias (como las telecomunicaciones que tienen que almacenar metadatos de conexión). Esta tecnología permite que los archivos se almacenen localmente, con los cambios sincronizados automáticamente de forma remota en la nube. Este enfoque proviene de la necesidad de tener copias de seguridad recientes almacenadas localmente para una restauración rápida (RTO más bajo), así como objetivos de continuidad comercial.

El aspecto importante del uso eficiente de los recursos es tener retenciones de respaldo separadas. Los datos que se almacenan localmente, en unidades de disco redundantes, se conservarán durante un período más corto, mientras que el almacenamiento de copia de seguridad en la nube se mantendrá durante más tiempo. Muchas veces, el requisito de una retención de copias de seguridad más prolongada proviene de las obligaciones legales de diferentes industrias (como las telecomunicaciones que tienen que almacenar metadatos de conexión).

Los proveedores de nube como Google Cloud Services, Microsoft Azure y Amazon S3 ofrecen almacenamiento prácticamente ilimitado, lo que reduce las necesidades de espacio local. Le permite conservar sus archivos de copia de seguridad durante más tiempo, durante el tiempo que desee, sin tener que preocuparse por el espacio en el disco local.

Gestión de copias de seguridad de ClusterControl:almacenamiento híbrido

Al programar una copia de seguridad con ClusterControl, cada uno de los métodos de copia de seguridad se puede configurar con un conjunto de opciones sobre cómo desea que se ejecute la copia de seguridad. Los más importantes para el almacenamiento en la nube híbrida serían:

  • Limitación de la red
  • Cifrado con la gestión de claves integrada
  • Compresión
  • El período de retención de las copias de seguridad locales
  • El período de retención para las copias de seguridad en la nube

Características avanzadas de copia de seguridad de ClusterControl para nube, compresión paralela, límite de ancho de banda de red, cifrado , etc. Su empresa puede aprovechar la escalabilidad de la nube y los precios de pago por uso para las crecientes necesidades de almacenamiento. Puede diseñar una estrategia de copia de seguridad para proporcionar copias locales en el centro de datos para una restauración inmediata y una puerta de enlace transparente a los servicios de almacenamiento en la nube de AWS, Google y Azure.

TLS avanzado y AES 256 Las funciones de cifrado y compresión de bits admiten copias de seguridad seguras que ocupan mucho menos espacio en la nube.