Entrada
MongoDB

Gestionar MongoDB Atlas en local con Atlas CLI

MongoDB: Gestionar MongoDB Atlas en local con Atlas CLI

Cuando trabajamos con MongoDB en desarrollo, es común instalar una instancia local usando mongod. Sin embargo, MongoDB ofrece una alternativa más avanzada que permite simular un entorno similar a producción utilizando Docker.

Algunas de las diferencias con un instalación de MongoDB directa:

CaracterísticaMongo localAtlas local
ArquitecturaStandaloneReplica set
InfraestructuraProceso nativoDocker / gestionado
ConfiguraciónManualAutomática
UsoAprendizajeDesarrollo profesional
TransaccionesLimitadasCompletas

La diferencia más importante es la arquitectura:

  • Atlas local: estás trabajando como si estuvieras en la nube
  • Mongo local: estás trabajando como en un servidor tradicional

Con Atlas local:

  • Los datos viven dentro del contenedor
  • Si borras el deployment pierdes todo

Con Mongo local:

  • Los datos quedan en tu disco
  • Tienes más control

Instalar herramientas

  • Atlas CLI: Interfaz de línea de comandos que permite gestionar las implementaciones desde la terminal
  • MongoDB Shell: Herramienta interactiva que se conecta a una implementación (la herramienta Mongo Compass ya la incluye)
  • Docker: plataforma que permite ejecutar software en contenedores, incluidas las implementaciones locales de MongoDB.

Selecciona la pestaña correspondiente al sistema operativo para ver los comandos que instalan estas herramientas de desarrollo necesarias.

  • Ejecutar los siguientes comandos para instalar las dependencias con el administrador de paquetes Homebrew

    1
    2
    
    brew install mongodb-atlas
    brew install --cask docker
    
  • Ejecutar los siguientes comandos para instalar dependencias usando el administrador de paquetes Chocolatey. Si Chocolatey no está instalado, se puede instalar siguiendo las instrucciones en el sitio web de Chocolatey.

    choco install mongodb-atlas
    choco install docker-desktio
    
  • Ahora se debe crear el archivo de lista /etc/apt/source.list.d/mongodb-org-7.0.list para la versión de Ubuntu. Se debe sustituir 7.0por la edición de MongoDB.

    1
    
    echo "deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-7.0.gpg ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/7.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-7.0.list
    

    Luego, actualizamos el índice de paquetes:

    1
    
    sudo apt update
    

    Si no deseas instalar mongosh, ejecuta el siguiente comando:

    1
    
    sudo apt install -y mongodb-atlas-cli
    

Los comandos anteriores instalan la aplicación Docker Desktop. Una vez completa la instalación, se debe crear una cuenta de Docker e iniciar la aplicación.

Autenticación con Atlas

Antes de usar la herramienta, el primer paso es loguearte y para ello simplemente ejecuta el siguiente comando:

1
atlas auth login

Autenticarse

OpciónUso principalAutenticación
UserAccountPara uso no programáticoLogin con navegador (OAuth)
ServiceAccountMejor para uso programáticoCredenciales de servicio
APIKeysIdeal para uso programático con una clave APIPublic Key + Private Key

Selecciona la primera opción y presiona Enter. Guarda o copia el código de activación que se genera en la Terminal para usarlo pronto:

código generado

Luego, ingresa tu correo que registraste la cuenta en Atlas o selecciona el proveedor (recomendado usar Google o GitHub):

Seleccionar proveedor

Pega el código de activación en el navegador:

Pegar el código

Y confirma haciendo clic en Confirm Authorization:

Confirmar la autorización

Una vez autenticado, se debe seleccionar la organización:

Seleccionar organizacion

Eso es todo, para confirmar ejecuta el siguiente comando:

1
atlas auth whoami

La salida:

1
Logged in as <tu.correo@mail.com> account

Configurar MongoDB local con Atlas CLI

Ya tienes instalado Atlas CLI y logueado con tu cuenta de MongoDB Atlas.

Ahora vamos a levantar una implementación local de MongoDB y es un procedimiento bastante simple. Primero revisa la versión de Atlas CLI:

1
atlas --version

Version Atlas CLI

Desde la versión 1.25.0 de Atlas CLI, la forma de configurar entornos locales cambió. Por eso, al usar comandos antiguos (aunque todavía funcionan), pueden aparecer advertencias de deprecación.

Por ejemplo, si utilizamos el siguiente comando funcionará pero lanzando advertencias:

1
atlas local setup myDeploymentMongoDB --mdbVersion 8.0 --port 27018

Advertencia comando deprecado

Lo correcto sería usar el comando de la siguiente manera:

1
atlas setup local --mdbVersion 8.0 --port 27018

Atlas local setup with default settings

Al presionar Enter, el comando hace lo siguiente:

  1. Crea una implementación llamada “myDeploymentMongoDB”
  2. Levanta un contenedor de Docker
  3. Instala MongoDB versiónn 8.0
  4. Expone el puerto 27018 (en caso que tengas una instalación previa que use ya el puerto predeterminado 27017)
  5. Lo deja listo como si fuera un entorno “tipo cloud”

Conexión a la implementación local

Al finalizar el proceso anterior, nos da la opción de conectarnos a la implementación, selecciona la opción que tengas disponible, podemos verificar con MongoDB Compass:

Finish setup local

De igual manera, puedes conectarte directo desde la Terminal usando mongosh:

Conectar con MongoDB usando mongosh

Como se puede observar, ya existía una instancia de mongod utilizando el puerto predeterminado (27017), por lo que se especificó el puerto 27018. En caso de no indicar esta opción, el sistema intentará usar el puerto por defecto. De igual forma, si no se proporciona un nombre para el deployment, el CLI asignará uno automáticamente.


Cargar datos de muestra

Con el siguiente comando se puede instalar las herramientas de MongoDB Database Tools:

1
2
brew tap mongodb/brew
brew install mongodb-database-tools

Luego, ejecuta el siguiente comando para cargar los datos de muestra:

1
2
curl https://atlas-education.s3.amazonaws.com/sampledata.archive -o sampledata.archive
mongorestore --archive=sampledata.archive --port <PORT>

Sustituir el marcador <PORT>con el número de puerto de la implementación. Puedes encontrar el número de puerto en Docker Desktop.


Eliminar una implementación local

Borrar una implementación local también elimina los datos de volúmenes locales.

El siguiente comando elimina una implementación local por su nombre:

1
atlas local delete <nombre-implementación>
Esta entrada está licenciada bajo CC BY 4.0 por el autor.