Mongo DB – Instalación


Mongo db es una base de datos NoSQL que se está volviendo cada vez más popular, en este post explicaremos como iniciar un servidor mongo en tu equipo.

Paso 1 Descargar mongo

Entra al sitio https://www.mongodb.com/download-center#community para ver las versiones de Mongodb disponibles, en este caso instalaremos la versión Community.

wget https://fastdl.mongodb.org/osx/mongodb-osx-ssl-x86_64-3.6.5.tgz

Wget te permitirá descargar el tar desde la consola en tu directorio local.

Paso 2 Descomprimir el archivo

Una vez que tienes el archivo en tu maquina el siguiente paso es descomprimirlo, para esto ejecutaremos el siguiente comando:

tar -zxvf mongodb-osx-ssl-x86_64-3.6.5.tgz

Esto descomprimirá el archivo en el directorio en el que te encuentres, el nombre de la carpeta será el mismo que el del archivo sin la extensión .tgz.

Paso 3 Re nombrar el folder

Aveces es un poco complicado lidiar con nombres de folders complejos así que lo re nombraremos a uno más sencillo utilizando el siguiente comando:

mv mongodb-osx-ssl-x86_64-3.6.5 mongodb

Con esto tendremos un nombre simple para nuestro directorio.

Paso 4 Agregar mongo a las variables de entorno

El siguiente paso será agregar los comandos de mongo a nuestras variables de entorno, para esto editaremos el archivo ~/.bash_profile agregando las siguientes dos líneas de código:

export MONGO=/mongodb/bin/
PATH=$PATH:$MONGO

Lo anterior hará disponibles los comandos de mongo desde cualquier directorio, lo único que debemos hacer es actualizar utilizando el siguiente comando:

source ~/.bash_profile

Con lo anterior las variables de entorno quedarán configuradas de forma correcta.

Paso 4 Crear un directorio para almacenar los datos

Por default, mongo tratará de almacenar los datos en el directorio /data/db , así que debes dar permiso a tu usuario para escribir sobre ese directorio. Si deseas utilizar otro directorio puedes ejecutar mongo utilizando la bandera –dbpath como se muestra en el siguiente ejemplo:

mongod --dbpath 

Hecho esto el servicio de mongo quedará iniciado y solo tendremos que conectarnos a este.

Paso 5 Conectarse al servidor

Por ultimo tendremos que conectarnos al servidor de mongo, para esto ejecutaremos el siguiente comando:

mongo --host 127.0.0.1:27017

Una vez hecho esto veremos un prompt que indicará que ya estamos conectados a mongo y nuestra instalación estará completada.

En siguientes posts hablaremos sobre las acciones que podemos realizar en el shell de mongo, síguenos en nuestras redes sociales  https://twitter.com/geeks_mx y https://www.facebook.com/geeksJavaMexico/ para estar al pendiente.

Autor: Alejandro Agapito Bautista

Twitter: @raidentrance

Contacto:raidentrance@gmail.com

Introducción a Amazon Web Services en español parte 1


Introducción

Amazon web services es la plataforma de nube de Amazon, la cual provee diferentes servicios en la nube, en este post se mostrarán algunos de estos servicios y sus casos de uso comunes.

Infraestructura Global

La infraestructura de Amazon opera a nivel global, lo cuál significa que existen diferentes centros de datos a nivel mundial, estos centros de datos están organizados del siguiente modo.

  • Regions (regiones) :  Es una región física en el mundo, cada región contiene múltiples availability zones
  • Availability Zones (Zonas de disponibilidad) : Una zona de disponibilidad consiste en uno o más data centers (centros de datos)
  • Edge Locations: Son puntos finales de CDN, más detalles sobre este punto cuando se explique el servicio CDN.

Productos disponibles

A continuación se muestra una lista categorizada con los principales productos disponibles y una descripción breve sobre los mismos:

Compute

  • Amazon Elastic Compute Cloud (Amazon EC2)

ec2-logo-full

Servicio diseñado para crear servidores virtuales en la nube en minutos tipos de instancias prefabricadas como : Propósito general, Computo optimizado, Memoria optimizada, Computación acelerada, Almacenamiento optimizado. Puedes encontrar una lista completa de los tipos de instancia con sus descripciones en el siguiente link https://aws.amazon.com/ec2/instance-types/.

Casos de uso:

  1. Despliegue de aplicaciones
  2. Creación de entornos de desarrollo
  3. Creación de máquinas virtuales en diferentes Sistemas operativos
  • Elastic Beanstalk

elastic_beanstalk_logoEs un servicio fácil de utilizar para el despliegue de aplicaciones y servicios escalables desarrollados en : Java, .NET, PHP, Node.js, Python, Ruby, Go, y Docker. Solo tienes que subir tu código y Elastic Beanstalk manejará de forma automática el despliegue, la capacidad, balanceo de carga, auto escala y monitoreo de salud, más información en el siguiente link https://aws.amazon.com/elasticbeanstalk/.

Casos de uso:

  1. Despliegue de aplicaciones en diferentes lenguajes de programación
  • Amazon VPC

vpc-vpn-logoPermite crear una nube privada y aislada donde es posible definir las redes donde se desplegarán los recursos. Se tiene un control total sobre la VPC que se defina, es posible definir : Rangos de IP, creación de sub redes,  si se tendrá acceso o no a internet en las diferentes redes, Firewalls a nivel de sub red, una conexión con VPN corporativas, más información en el siguiente link https://aws.amazon.com/vpc/.

Casos de uso:

  1. Creación de datacenters privados
  2. Creación de sub redes públicas  (Todos los recursos dentro de esta sub red tendrán acceso a internet)
  3. Creación de sub redes privadas (Los recursos dentro de estas sub redes no  tendrán acceso a internet)
  4. Creación de firewalls a nivel de sub red (Es posible cerrar o abrir puertos para todas las máquinas dentro de la sub red, además del firewall que pueda tener el recurso)
  • AWS Lambda

lambdaLambda permite ejecutar código utilizando la arquitectura server less lo cual significa que no es necesario tener un servidor para ejecutar ese fragmento de código. De este modo solo se tiene que pagar por ejecución de código y no por tener un servidor prendido por un determinado tiempo, con esto si el código nunca se ejecuta no se hará ningún cargo si se ejecuta una vez solo se ejecutará esa ejecución, más información en el siguiente link https://aws.amazon.com/lambda/.

Casos de uso:

  1. Ejecución de código bajo demanda
  2. Ejecución de código cuando se generen eventos en recursos de AWS
  3. Ejecución de funciones bajo invocación sobre HTTPS
  4. Eventos programados
  • Auto Scaling

aws_autoscalingAuto scaling permite mantener las aplicaciones disponibles todo el tiempo con el mayor beneficio posible, esto debido a que es posible crecer o disminuir el número de equipos detrás de un balanceador de carga acuerdo a la demanda a través del uso de métricas, por ejemplo es posible decir si el uso del CPU es mayor a 70% crea una máquina nueva con la aplicación y colócala detrás del balanceador para atender las peticiones y si el uso del CPU es menor al 30% quita una de las instancias, más información en el siguiente link https://aws.amazon.com/autoscaling/.

Casos de uso:

  1. Crecer o disminuir el número de maquinas de acuerdo al uso

Storage

  • S3 (Simple Storage Service)

amazons3Amazon Simple Storage service permite hacer almacenamiento de objetos con una interfaz web simple que permite subir y descargar cantidades grandes de archivos. Esta diseñado para tener una durabilidad de 99.999999999% y una disponibilidad de 99.99%. más información en el siguiente link https://aws.amazon.com/s3/.

Casos de uso:

  1. Almacenamiento de imágenes en aplicaciones web
  2. Almacenamiento de videos
  3. Almacenamiento de archivos
  • Glacier

glacier.pngEs un durable, seguro y súper barato servicio de almacenamiento a largo plazo. Con el fin de mantener los costos bajos descargar un archivo puede tomar incluso horas. Por esto se recomienda para guardar información histórica, más información en el siguiente link https://aws.amazon.com/glacier/.

Casos de uso:

  1. Almacenamiento de datos históricos
  2. Almacenamiento de información que debe ser guardada por fines legales
  • EBS (Elastic block storage)

ebsElastic block storage provee un almacenamiento persistente para ser utilizado como volumen en instancias EC2, con Amazon EBS es posible escalar o disminuir el tamaño en solo unos minutos, más información en el siguiente link https://aws.amazon.com/ebs/.

Casos de uso:

  1. Bases de datos no soportadas por Amazon
  2. Almacenamiento

 Database

  • RDS (Relational Database Service)

aws_simple_icons_database_amazonrds-svg_-20160325070440RDS Hace simple la instalación, configuración y escalabilidad de  bases de datos relacionales en la nube.  Amazon RDS provee 6 motores de bases de datos comunes entre los que se encuentra : Amazon Aurora, PostgreSQL, MySQL, MariaDB, Oracle y Microsoft SQL server.

Es importante mencionar que para las bases de datos que requieren licencia es posible utilizarlas con BYOL (Bring your own license), lo cual significa que si ya se cuenta con una licencia puede ser utilizada en su ambiente en la nube, más información en el siguiente link https://aws.amazon.com/rds.

Casos de uso:

  1. Configuración de bases de datos relacionales en la nube
  • DynamoDB

aws-dynamodb-logo-cf7bcc577d-seeklogo-comDynamoDB es la base de datos NoSQL rápida y flexible de Amazon. Diseñada para aplicaciones que necesitan consistencia y latencia de mili segundos a cualquier escala.

Casos de uso:

  1. Configuración de bases de datos NoSQL rápidas y flexibles
  • ElasticCache

elasticcacheElasticCache es un servicio que hace fácil desplegar, operar y escalar información en cache en la nube. Este servicio mejora el performance de las aplicaciones permitiendo obtener la información de una forma rápida, administrada y almacenada en memoria. Soporta 2 motores open source  Redis y Memcached.

Casos de uso:

  1. Mantener información de acceso común en memoria para un acceso rápido

AWS Free tier (Capa gratuita de Amazon)

Amazon provee una capa gratuita para que los desarrolladores aprendan a utilizar la plataforma de AWS, los productos y los servicios. A continuación se presentan los límites de los principales productos para la capa gratuita al 30 de enero del 2017.

captura-de-pantalla-2017-01-30-a-las-2-18-44-p-m

captura-de-pantalla-2017-01-30-a-las-2-17-55-p-m

Más información sobre los límites de la capa gratuita en el siguiente link https://aws.amazon.com/free/

Siguientes pasos

En siguientes posts se explicarán otros servicios de Amazon Web services, a continuación se presenta una lista de algunos de los servicios restantes de los que se hablarán en el futuro:

  • Networking
    • CloudFront
    • Route 53
    • Direct Connect
    • Elastic Load Balancing
  • Developer Tools
    • Code commit
    • PipeLine
    • Code deploy
  • Management tools
    • Cloud watch
    • Cloud trail
    • Cloud formation
    • OpsWorks
  • Messaging
    • SQS
    • SNS
    • SES

Autor: Alejandro Agapito Bautista

Twitter: @raidentrance

Contacto:raidentrance@gmail.com