Rss

  • flickr
  • linkedin
  • google

Archives for : Linux

Acelerar linux disminuyendo el uso de swap y mejorando la gestion de caché

Vamos a ver como podemos aumentar la velocidad de nuestro sistema linux, bien sea un un equipo de escritorio, o un servidor, aplicando una sencilla configuración para que el sistema operativo no “abuse” del uso de swap.

 

Que es la swap

La swap también llamada espacio de intercambio, es na partición de no de nuestros discos duros, que podríamos decir que se usa del mismo modo que la RAM, para complementar a esta. Esto que en principio es una solución para cuando andamos justos de memoria RAM, puede llegar a ser un problema, dado que las tasas de lectura y escritura en nuestro disco duro son infinitamente menores que las memorias RAM. Se pueden tener en cuenta diferentes factores para incrementar la velocidad de la swap:

  • Si disponemos de varios discos duros, debemos de tener la partición de la swap en el disco que menos uso tenga, normalmente uno en el cual no esté situado el sistema operativo.
  • Si tenemos la posibilidad de situar la swap en un disco de estado sólido (SSD), también conseguiríamos aumentar  su velocidad.
  • Y por último el caso que vamos a tratar aquí,  modificar el “swappiness

 

Modificar el uso de SWAP

El “encargado” de decidir cuando se comenzará a usar la swap es nuestro kernel, y nosotros (humildes usuarios), podemos decirle al kernel, si queremos que empiece a usar la swap más pronto o más tarde mediante la modificación del valor de swappiness.

El valor de swappiness puede tomar oscila entre 0 y 100, siendo 0 el valor en el cual no se usará swap, y 100, para un uso constante de swap. En la mayoría de de sistemas operativos linux, el valor de swappiness viene fijado en 60, y esto puede provocar situaciones en las que teniendo más de la mitad de la RAM libre, ya estemos usando “considerable” swap.

Comprobar el valor de swappiness

Para comprobar que valor de swappiness tenemos configurado, usaremos el siguiente comando

cat /proc/sys/vm/swappiness

Modificar valor de swappiness, comprobar valor de swappiness

 

 

Cambiar valor de swappiness

El valor de swappiness es pasado al kernel a través del fichero /etc/sysctl.conf. Por tanto, debemos acceder a el y modificarlo con el valor que consideremos oportuno.

sudo nano /etc/sysctl.conf

y al final del archivo añadiremos:

# Disminuir el uso de intercambio a 10
vm.swappiness=10
# Mejorar la gestión de cacahe
vm.vfs_cache_pressure=50

Modificar valor de swappiness

 

 

Una vez guardados los cambios, reiniciaremos nuestro sistema operativo y ya tendremos la nueva configuración de swappiness en funcionamiento. Lo podremos comprobar con el comando anterior.

Con esto aumentaremos el rendimiento en los equipos en los que el rendimiento se ve reducido porque estamos usando swap cuando aún disponemos de memoria RAM libre, obviamente, si el kernel hace uso de swap porque la RAM se ha acabado, esta configuración nova a servir de nada. De todas formas, lo mejor en cada caso es experimentar con diferentes valores de swappiness y ver cual es el que mejor rendimiento nos aporta en nuestro caso.

Usar Amazon EC2 como servidor git para control de versiones

Vamos a ver como usar nuestra instancia de Amazon EC2, para albergar en ella nuestro servidor de control de versiones con git. Aunque del mismo modo, lo podríamos realizar en cualquier otro servidor o incluso en un PC que usemos para dicho propósito.

 

Para los que desconozcan lo que es un sistema de control de versiones (aunque su propio nombre nos lo da a entender),  es un sistema que nos permite la gestión de los diversos cambios que se realizan sobre los elementos de algún producto o una configuración del mismo. Se puede resumir como un sistema de copia de seguridad de nuestro trabajo, que realiza y almacena copias del estado del mismo durante su desarrollo para poder revertirlo, o para poder consultar cambios en cualquier momento.

 

Instalar git en nuestro equipo local

Antes de nada, si no tenemos instalado git en nuestro equipo local, procedemos haciéndolo:

sudo apt-get install git

 

Usar Amazon EC2 como servidor git para control de versiones, instalar git en equipo local

 

Configurar git en el equipo local

git config --global user.name "nombre_usuario" Sustituimos nomre_usuario por nuestro nombre de usuario que deseemos usar

git config --global user.email usuario@email.com Sustituimos usuario@email.com por nuestro correo.

git config --global core.editor "sublw" Configuramos el editor que deseemos usar por defecto, en este caso Sublime Text

 

Usar Amazon EC2 como servidor git para control de versiones, configurar git en el equipo local

 

Iniciar repositorio en equipo local

cd directorio_repositorio accederemos al repositorio que deseemos usar como repositorio local sustituyendo directorio_repositorio por la ruta correspondiente.

git init Inicializamos el repositorio

 

Usar Amazon EC2 como servidor git para control de versiones, iniciar repositorio en equipo local

 

Añadir archivos y directorios al repositorio

Vamos a crear unos archivos y carpetas de ejemplo para poder añadirlos al repositorio

mkdir js css Creamos dos carpetas

touch index.html js/main.js css/style.css Creamos tres archivos vacios

 

Usar Amazon EC2 como servidor git para control de versiones, crear archivos de ejemplo

 

git add . Añadimos todos los archivos del directorio al repositorio

git commit -m "Primer commit de prueba" Validamos los cambios en el repositorio

 

Usar Amazon EC2 como servidor git para control de versiones, añadir archivos al repositorio y realizar el primer commit

 

Crear repositorio remoto

ssh usuario@servidor Accederemos por ssh a nuestro servidor remoto, en este caso, nuestra instancia de Amazon EC2 con Ubuntu Server instalado  aquí.

sudo apt-get install git Instalaremos git en el servidor

 

Usar Amazon EC2 como servidor git para control de versiones, instalar git en el servidor

 

cd directorio_servidor_remoto Nos situaremos en el directorio que deseemos usar como repositorio remoto, podemos crear uno previamente.

 

Usar Amazon EC2 como servidor git para control de versiones, acceder al directorio remoto para usar como repositorio

 

git --bare init Iniciamos el repositorio remoto

 

Usar Amazon EC2 como servidor git para control de versiones, iniciar repositorio remoto

 

Asociar repositorio local a uno remoto

cd directorio_repositorio En el equipo local nos volvemos a situar en el directorio en el que hemos creado el repositorio al principio

git remote add nombre_repositorio usuario@servidor:git/directorio_remoto Asociamos el repositorio local al remoto

repositorio_prueba Nombre dado al repositorio

usuario Nuestro nombre de usuario para ssh

servidor Dirección de nuestro servidor ssh para acceso ssh

nombre_repositorio Directorio remoto en el que se encuentra el repositorio

git push  nombre_repositorio master Realizamos los cambios en el repositorio remoto

 

Usar Amazon EC2 como servidor git para control de versiones, asociar repositorio local con repositorio remoto

 

De este modo, tendremos nuestros datos a salvo de cualquier problema con nuestro equipo, además de poder trabajar varias personas en el mismo proyecto, o poder revertir el estado del mismo a cualquier versión anterior de la que se haya hecho un commit.

Es muy recomendable trabajar usando control de versiones, no solo programadores, esto es extensible casi todo tipo de proyectos, y aunque al principio pueda resultar un poco lioso, pronto se le coge el truco y el hábito.

 

Aquí tenéis una chuleta de comandos útiles para usar con git.

 

Chuleta de comandos git (cheat sheet)

 

Esta es una chuleta de comandos útiles para usar con el sistema de control de versiones git.

 

Configurar git

git config --global user.name "David" Establece el nombre de usuario

git config --global user.email "usuario@email.com" Establece el correo del usuario

git config --global core.editor "editor" Configura el editor de texto sustituyendo “editor” por el editor correspondiente, por ejemplo:

sublw: SublimeText

gvim -f: gVim en linux

emacs

git config --global merge.tool meld Configura la herramienta de diferencias en este caso Meld

git config --list Muestra un listado con las configuraciones

 

Crear repositorio

cd ~/git/.... Nos situamos en directorio que deseemos

git init Inicializamos el directorio

 

Añadir archivos a un repositorio

git add .  Añade todos los archivos del directorio

git add *.c  Añade todos los archivos con extensión .c

git add README Añade el archivo README

 

Excluir archivos o directorios explicitamente

touch .gitignore Creamos el fichero .gitignore  en el cual vamos a definir los archivos o directorios que excluiremos

Ejemplo para ignorar JPG’s y PNG’s

/*.jpg
/*.jpeg
/*.png

Ejemplo para ignorar carpetas vacías

/empty

Ejemplo para ignorar un archivo individual

/archivo.dumm

Eliminar archivos

git rm README Elimina el archivo README del disco y del repositorio (una vez commiteado).

git rm --cached README Elimina el archivo README del repositorio pero no del disco duro.

 

Renombrar archivos

git mv original novo Cambiamos el nombre del archivo “original” a “nuevo”.

 

Validar los cambios – commit

git commit -m “Mensaje” Añade los archivos y realiza el commit.

git commit -a -m “Mensaje” Añade los archivos y realiza el commit, pero en caso de haber creado o eliminado archivos, se debe de usar el comando add previamente al commit.

git commit --amend Para modificar el último commit y volver a hacerlo. Ejemplo:

git commit -m “mensaje” Añadimos los archivos y realizamos el commit.

git add archivo_del_que_nos_olvidamos_antes Añadimos el archivo archivo_del_que_nos_olvidamos_antes del que nos habíamos olvidado.

git commit –amend Modifica el último commit para incluir el archivo archivo_del_que_nos_olvidamos_antes.

git reset HEAD file Nos permite hacer unstaging sobre file, para que no sea enviado en el próximo commit. Lógicamente ya había sido añadido anteriormente con git add file.

 

Monitorizar proyecto:

git status Muestra el estado del proyecto.

git log Lista todos los commits (con la fecha y hora, el autor y la suma de verificación) realizados en orden cronológico inverso, es decir los más recientes primero.

git log -p -2 La opción -p nos mostrará además las diferencias, y la opción -2 limitará la salida a los dos últimos commits.

git log --stat Muestra estadísticas abreviadas de los commits.

git log --pretty:oneline Muestra estadísticas en una línea

git log --pretty=format:”%h - %an, %ar : %s ” Muestra estadísticas formateadas a nuestro gusto:

%H  Commit hash
%h  Abbreviated commit hash
%T  Tree hash
%t  Abbreviated tree hash
%P  Parent hashes
%p  Abbreviated parent hashes
%an Author name
%ae Author e-mail
%ad Author date (format respects the –date= option)
%ar Author date, relative
%cn Committer name
%ce Committer email
%cd Committer date
%cr Committer date, relative
%s  Subject

gitk Muestra herramienta gráfica con las estadísticas de los commits.

 

Restaurar el estado del último commit:

git checkout -f Forzamos la recuperación total del repositorio al último commit.

git checkout -- file Recuperamos la última versión de file de la que hemos realizado un commit.

 

Crear repositorio remoto usando ssh

ssh usuario@servidor Accedemos por ssh al servidor

cd ~/git/carpeta Nos situamos en la carpeta en la que deseamos ubicar el repositorio

git --bare init Iniciamos el repositorio.

 

Asociar repositorio local a uno remoto

cd ~/git/carpeta Nos situamos en la carpeta correspondiente.

git init Iniciamos el repositorio

git remote add origin david@hptc.davidpuente.es:git/carpeta Asociamos el repositorio local al remoto. origin es el nombre dado al repositorio.

git add . Añadimos todos los ficheros y directorios.

git commit -m “Mensaje” Realizamos el commit en local.

git push origin master Realizamos los cambios en el servidor remoto.

 

Clonar repositorio remoto por ssh

git clone servidor.com:git/proba Clonará el repositorio remoto.

git clone servidor.com:git/proba proba2 Repositorio clonado en carpeta proba2

Diferencias

git diff Muestra las diferencias de los archivos modificados que aún no se han estacionado.

git diff --cached o git diff --staged (versiones posteriores a la 1.6.1) Muestra las diferencias de los archivos modificados y estacionados, a la espera de ser commiteados.

 

Esto es todo de momento, si creéis que falta algo de uso habitual, lo podéis añadir a los comentarios y estaré encantado de añadirlo.

 

Instalar BitTorrent Sync en Ubuntu (alternativa a Dropbox)

 

Vamos a ver como instalar BitTorrent Sync en Ubunu y derivados. Esta aplicación/servicio nos permitirá sustituir o complementar otros sistemas de almacenamiento y sincronización en la nube, como pueden ser Dropbox o Google Drive, Podríamos considerarlo como nuestra nube privada.

BitTorrent Sync es una aplicación disponible para las plataformas Linux, Mac, Windows, Android, IOS y BSD, que permite sincronizar nuestros archivos y carpetas, tanto de forma local como remota, a través de redes seguras. Su sistema se basa en la tecnología P2P, y su trafico está cifrado.

Añadir Repositorio

sudo add-apt-repository ppa:tuxpoldo/btsync

Instalar BitTorrent Sinc, añadir repositorio

Instalación

Actualizamos los paquetes de nuestra lista de repositorios

sudo apt-get update

Y procedemos con la instalación

Si lo instalamos en un equipo de escritorio:

sudo apt-get install btsync-user

Al instalarlo de este modo, tendremos que lanzar la aplicación para que comience a sincronizar los datos

Si lo instalamos en un servidor:

sudo apt-get install btsync

Al instalarlo de este modo, se ejecutará como un servicio al arranque del sistema para tenerlo siempre disponible. Podremos gestionarlo como un servicio más:

sudo service btsync start Para iniciarlo

sudo service btsync stop Para datenerlo

sudo service btsync restart Para reiniciarlo

En este caso caso lo voy a instalar en un equipo de escritorio

 

Instalar BitTorrent Sinc, instalación

Acceder a la aplicación

Tendremos dos formas de acceder a la aplicación, dependiendo de que tipo de instalación hemos llevado a cabo.

Si hemos realizado una instalación de Escritorio accederemos al menú de aplicaciones, y en la entrada Internet o en Otras, tendremos nuestra aplicación

 

Instalar BitTorrent Sinc, localizar aplicación

A continuación, la aplicación se nos quedará en la barra de notificaciones, desde donde podremos abrir su interfaz web

 

Instalar BitTorrent Sinc, abrir desde barra tareas

Si hemos realizado una instalación de servidor el servicio se debería de iniciar solo, de no ser así usamos sudo service btsync start, y a continuación introduciremos la siguiente dirección directamente en nuestro navegador

https://127.0.0.1:8888/gui/ si estamos en la propia máquina, o si lo hacemos desde otro terminal, sustituiremos 127.0.0.1 por la dirección del equipo.

 

Una vez abierto nos mostrará la siguiente ventana

 

Instalar BitTorrent Sinc, ventana del programa

Desde la cual podremos añadir carpetas y modificar la configuración

 

Preferencias

Desde la pantalla principal haciendo clic sobre “Preferences” se nos abrirá la siguiente ventana

 

Instalar BitTorrent Sinc Preference - Settings

Aquí vemos que tenemos arriba de todo dos pestañas, en la que nos encontramos, “Settings”, tenemos las siguientes opciones:

  • Device Name: Nombre que identifica nuestro equipo.
  • Listening port: Puerto en el que escucha la aplicación, esto es importante si lo queremos usar para sincronizar con equipos que estén fuera de nuestra red local, ya que tendremos  que abrir el puerto aquí indicado.
  • Use UPnP port mapping: Si activamos esta opción, y la tenemos activada también en nuestro router (si este dispone de ella), no será necesario abrir el puerto arriba indicado. Si solo lo vamos a usar de forma local no es recomendable tenerla activada.
  •  Download limit (kB/s): Aquí podremos imponer un límite de velocidad de bajada, si dejamos 0, no tendrá límite. (Si tendrá, el que nos imponga nuestro ISP).
  • Upload limit (kB/s): Aquí podremos imponer un límite de velocidad de subida, si dejamos 0, no tendrá límite. (Si tendrá, el que nos imponga nuestro ISP).
  • Language: Obviamente es el idioma.

 

Si nos dirigimos a la segunda pestaña, “Authorization”, veremos la siguiente ventana:

 

Instalar BitTorrent Sinc Preference - Authorization

 

Desde esta ventana podremos especificar un nombre de usuario y una contraseña (muy recomendable si vamos a tener acceso a el desde el exterior de nuestra red local).

 

Añadir una carpeta para sincronizar

Para añadir una carpeta, desde la pantalla principal, debemos de pulsar sobre “Add Folder”, lo que nos abrirá la siguiente ventana:

 

Instalar BitTorrent Sinc, añadir carpeta

 

En ella deberemos seleccionar la carpeta que deseamos sincronizar en el árbol de directorios, y a continuación pulsar sobre “Generate”, lo cual generará una secuencia alfanumérica que precisaremos más tarde. A continuación pulsamos en “Add”, y nuestra carpeta ya está lista para sincronizar con otro equipo:

 

Instalar BitTorrent Sinc, carpeta añadida

 

Sincronizar la carpeta añadida desde otro equipo

En este caso voy a sincroniza esta carpeta con portátil viejo que uso como servidor para el desarrollo de páginas web antes de subirlas a otros servidores, y para otras cosillas. Abro su interfaz web:

 

Instalar BitTorrent Sinc, interfaz web segundo servidor

 

Pulso sobre añadir una nueva carpeta, selecciono en el árbol de directorios la carpeta con la que quiero sincronizar, y en este caso, en vez de generar el código alfanumérico, pegamos el se nos ha generado antes:

Instalar BitTorrent Sinc, añadir carpeta servidor

Para volver a ver un código ya creado, desde la ventana principal de la aplicación, pulsamos sobre “Secret/QR”, y se nos abrirá la siguiente ventana:

Instalar BitTorrent Sinc. Secret/QR

Desde aquí podremos ver el código alfanumérico con el cual tendremos permisos totales sobre los archivos (si los eliminamos en cualquier de los equipos sincronizados se eliminarán en los dos y si los editamos se modificarán en dos), o un código alfanumérico con solo permisos de lectura, seleccionando “Read only”. También nos aparece un código QR que podremos escanear desde un teléfono o tablet para sincronizarlo con el.

 

Y ya tendremos las carpetas sincronizadas:

 

Instalar BitTorrent Sinc, carpetas sincronizadas

 

 

Podremos añadir todos las carpetas que deseemos, y sincronizarlas con todos los equipos que deseemos, teniendo como únicos límites la velocidad de nuestra conexión, y el tamaño de nuestros discos duros.

 

También podemos instalar la aplicación correspondiente en nuestros dispositivos móviles, para disponer de nuestros archivos en ellos (acordaos de abrir los puertos de vuestro router si queréis tener acceso desde el exterior). La tendremos disponible para dispositivos Android e IOS:

 

 

Espero que le saquéis partido.

 

Instalar jdk java 8 de forma fácil y rápida en Ubuntu

 

En esta entrada vamos a ver como instalar java fácilmente en en ubuntu (o en xubuntu, kubuntu, etc.).

 

Añadir repositorio para java

Añadiremos un repositorio desde el que instalar java con el comando:

sudo add-apt-repository ppa:webupd8team/java

Instalar Java en ubuntu, añadir repositorio java

Instalar java

A continuación realizamos un update de los paquetes de nuestra lista de repositorios:

sudo apt-get update

Y ya podremos proceder con la instalación (en realidad lo que hace el siguiente comando es descargar el instalador de java y lanzarlo)

sudo apt-get install oracle-java8-installer

También podríamos instalar java 6 o java 7 sustituyendo el comando anterior por uno de los siguientes comandos:

sudo apt-get install oracle-java6-installer

o

sudo apt-get install oracle-java7-installer

Nos comunicará que para continuar con la instalación, debemos aceptar la licencia disponible en java.com/license, (podemos echarle un vistazo, y si estamos de acuerdo con ella) aceptamos.

Instalar Java en ubuntu, aceptar licencia

 

Nos volverá a preguntar por otra licencia, en este caso “Oracle binary code license terms”, respondemos que si.

Instalar Java en ubuntu, aceptar licencia 2

 

Y comenzará el proceso de descarga del jdk de java

 

Instalar Java en ubuntu, descarga jdk java

 

Normalmente en el proceso de instalación, ya se configura como la opción predeterminada de java la que estamos instalando. Podremos comprobar la versión de java y javac en uso con:

java -version

y

javac -version

Instalar Java en ubuntu, comprobar versión java y javac

 

Pero en caso de no estar como predeterminado nuestro java recién instalado, lo podremos seleccionar entre alternativas disponibles con:

sudo update-alternatives –config java para java

y

sudo update-alternatives –config javac para javac

 

Y ya está listo nuestro java para ser usado, en este caso su primer uso va a ser con Android Studio

 

Instalar LAMP (linux, apache, MySQL, PHP) en Amazon EC2

Vamos a instalar LAMP en nuestro servidor, pero antes de nada, ¿qué es LAMP?

LAMP  es el acrónimo usado para describir un sistema de infraestructura de internet que usa las siguientes herramientas:

  • Linux – El sistema operativo usado
  • Apache – El servidor web usado
  • MySQL – El gestor de bases de datos usado
  • PHP – El sistema de programación usado

LAMP_software_bundle.svg

 

 

La instalación la vamos a llevar a cabo sobre nuestro servidor Ubuntu Server que hemos instalado en una instancia Amazon EC2 aquí, pero se podría llevar a cabo en cualquier servidor Ubuntu o con base Debian del mismo modo.

 

Para la instalación vamos a usar una herramienta maravillosa, tasksel

tasksel es una herramienta de debian/ubuntu que realiza la tarea de instalación de diversos grupos de programas de una forma cómoda y automatizada en el sistema

 

Nos conectamos por ssh a nuestro servidor

amazon_ec2_lamp_01

 

Ejecutamos

sudo tasksel install lamp-server

 

Nos pedirá la contraseña para el usuario root de MySQL

amazon_ec2_lamp_02

 

Nos pedirá que la volvamos a introducir

amazon_ec2_lamp_03

 

Y ya estará instalado nuestro servidor, podemos comprobar que están instalador y activos

sudo service apache2 status

sudo service mysql status

amazon_ec2_lamp_04

 

Solo nos queda abrir los puerto necesarios para apache, por defecto el 80. Nos vamos al panel de administración de Amazon EC2, y en el menú lateral izquierdo nos vamos a “Security Groups”

amazon_ec2_lamp_05

 

Selecionamos el grupo de seguridad asignado a nuestro servidor, en este caso “quizqlaunch-1”, y en la parte inferior nos aparecerán los detalles, pulsaremos sobre la pestaña “Inbound”

amazon_ec2_lamp_06

 

Aquí tendremos la posibilidad de abrir redireccionar a nuestro servidor los puertos que queramos, por defecto tenemos unas reglas preestablecidas que podemos usar, y par https tenemos una, por lo que la seleccionamos

amazon_ec2_lamp_07

 

Y la añadimos pulsando sobre “Add rule”

amazon_ec2_lamp_08

 

Solo nos quedará aplicar los cambios pulsando sobre “Apply Rule Changes”

amazon_ec2_lamp_09

 

Si abrimos un navegador y nos vamos a nuestra dirección IP varemos la página por defecto de Apache

 

amazon_ec2_lamp_10

 

Ya tenemos nuestro servidor web funcionando y listo para servir nuestras páginas.

 

Usar Amazon EC2 como servidor git para control de versiones/

Crear un servidor en Amazon EC2

En esta entrada vamos a crear una cuenta en Amazon EC2, crear una instancia e instalar ubuntu server en ella.

¿Por qué en Amazon EC2?

Pues para empezar, porqué Amazon nos permite probar su instancia más básica durante un año de forma gratuita. También podemos argumentar su alta escalabilidad, estabilidad y disponibilidad, pero sobre todo, porque es una alternativa a un vps, o a un servidor dedicado, que en mi opinión merece la pena probar. Para los que no sepan de que va esto de Amazon EC2 (elastic compute cloud), podríamos resumirlo mucho diciendo que es una modalidad de servidores en los que pagas por el tiempo de uso que le des al equipo. Podemos ver los detalles en su página oficial, o en la Wikipedia.

 

 ¿Por qué Ubuntu server?

Esto ya es una elección personal, pero me decido por Ubuntu server, en este caso elegiré la última versión LTS, porque es un servidor para “pruebas” y alguna cosilla más, si fuese para un servidor que necesitase ante todo estabilidad quiza eligiese un Debian estable, pero para hacer pruebas prefiero Ubuntu server, por estar más actualizado y poseer una estabilidad bastante alta en su versión LTS. Debian Testing, en este caso lo descarto por ser demasiado “testing” en mi opinión para usar en un servidor. Creo que ya ha quedado claro que soy más de sistemas con base Debian al no haber nombrado otras alternativas perfectamente válidas.

 

 Crear cuenta Amazon EC2

Crearemos una cuenta en Amazon EC2 en la siguiente dirección https://aws.amazon.com/es/ec2/ pulsando en el botón “Crear una cuenta gratuita”

crear_cuenta_amazon_ec2_1

 

 

Introducimos nuestra dirección de correo, e indicamos que somos nuevos usuarios

crear_cuenta_amazon_ec2_2

 

 

Rellenamos nuestros datos

crear_cuenta_amazon_ec2_3

 

En la siguiente pantalla nos pedirá más datos personales y de contacto

crear_cuenta_amazon_ec2_4

 

 

A continuación nos pedirá los datos de una tarjeta de crédito (no nos cobrarán por los servicios gratuitos, que serán los que seleccionaremos mas adelante), que es necesaria para crear la cuenta.

crear_cuenta_amazon_ec2_5

 

 

En la siguiente pantalla nos pedirán la identificación fiscal, por si somos una empresa, para declarar el IVA. Podemos seleccionar  “no aplico IVA”, ya que de todas formas vamos a usar una cuenta sin coste durante un año, y  si decidimos continuar con ella, o ampliarla antes de que finalice el año, siempre podremos introducir la identificación fiscal más tarde

crear_cuenta_amazon_ec2_6

 

 

Ahora nos pedirán confirmar nuestro número de teléfono para que nos llamen y verifiquen nuestra identidad (No olvidarse de seleccionar el país correcto)

crear_cuenta_amazon_ec2_7

 

 

Al pulsar sobre llamar ahora, nos aparecerá un código de cuatro números en la pantalla, y en breve recibiremos una llamada en inglés, los que no dominéis el idioma, tranquilos, lo único que os dice es que introduzcáis el código que os apareceió en la pantalla, esperáis a que termine de hablar e introducís el código en el teléfono.

A continuación nos indicará en la pantalla de nuestro PC que nuestra identidad a sido verificada, y podremos continuar a la siguiente pantalla, en la que deberemos seleccionar el tipo de plan que queremos, nosotros seleccionaremos el Básico, por ser el gratuito

crear_cuenta_amazon_ec2_8

 

 

Y ya tendremos nuestra cuenta lista.

crear_cuenta_amazon_ec2_9

Para acceder a la consola de administración, haremos click en el enlace “Lanzar AWS Management Console”, y a continuación en “Inicie sesion en AWS Console”, o accederemos a la url httpss://console.aws.amazon.com/console

 

Crear nuestra instancia

Ahora vamos a crear nuestra instancia, que es como si fuese nuestra máquina. Este es aspecto de la consola de administración

crear_instancia_amazon_ec2_1

 

Arriba a la derecha tenemos la región en la que estamos, ya que podemos crear instancias en distintas regiones, lo ideal es seleccionar una región lo más próxima a nuestra localización (o quizás mejor dicho a la de nuestros visitantes o usuarios), para tener una latencia menor. En este caso la mejor opción para mi sería la de Irlanda, ya que es la única disponible en Europa, sin embargo, voy a dejar la de Virginia, que aparece por defecto, ya que como es para usar haciendo pruebas y test, me interesa tener una IP pública en EEUU.

En el lado izquierdo tenemos un menú con algunas partes que voy a comentar, aunque más tarde las usaremos:

  • EC2 Dashboard: Es el panel de administración en el que estamos.
  • Instances: Son nuestras instancias, tanto las que tengamos lanzadas como las que estén paradas se encontrarán aquí. Es importante saber que si creamos más de una, por la segunda nos cobrarán.
  • AMIs: Es en donde encontraremos las imágenes para la instalación de nuestro servidor.
  • Volumes: Aquí aparecerán los volúmenes (discos duros) que tengamos creados, tanto si  los tenemos conectados a nuestra maquina como si no. Al igual que con las instancias, si creamos más de uno, nos cobrarán por el segundo.
  • Snapshots: Amazon nos permite crear imágenes de nuestro volúmenes. Estas se almacenarán aquí.
  • Security Groups: Aquí aparecerán los grupos de seguridad que hayamos creado. Un grupo de seguridad es en donde definiremos las políticas de NAT y redirecciones.
  • Elastic IPs: Son las direcciones IP públicas que tengamos añadidas. Si tenemos una dirección IP sin asignar a alguna instancia, se nos cobrará por ella.
  • Keys Pairs: Son los pares de claves publica-privada que usaremos por defecto para acceder de forma segura a nuestro servidor.

 

Para crear nuestra instancia, pulsamos sobre “Launch Instance”

crear_instancia_amazon_ec2_2

 

Seleccionaremos en las opciones de la izquierda “Quick Launch Wizard”. En la derecha arriba del todo pondremos el nombre que identificará en el panel de control nuestra instancia, debajo seleccionaremos “Create new”, debajo pondremos un nombre para nuestra clave privada, y a continuación la descargaremos (Es importante conservarla en un lugar seguro, ya que es la clave privada que nos dará acceso a nuestra máquina). El último paso en esta pantalla es seleccionar el sistema operativo que queremos, en este caso seleccioné Ubuntu Server 12.04 LTS. Si seleccionáis otro, tened en cuenta que no todos son gratuitos, solo los que tienen la estrella y ponen debajo “Free tier eligible”. Ya podremos continuar.

 

En esta pantalla pulsamos sobre “Edit details”

crear_instancia_amazon_ec2_3

 

 

Aquí podremos editar los detalles de nuestra instancia como la zona, el tipo (solo la t1.micro es gratuita), etc. Cambiamos solo la zona, y vemos que solo nos dejará seleccionar zona de USA

crear_instancia_amazon_ec2_4

 

Guardamos los cambios con “save details” y la lanzamos con “Launch”

 

crear_instancia_amazon_ec2_5

 

Ya podemos cerrar este asistente y volveremos al panel de control al apartado “Instances”, en “state” podremos comprobar que la instancia está corriendo, y en “Status Checks”, que se está inicializando. Toca esperar a que se inicialice

crear_instancia_amazon_ec2_6

 

 

Cuando el campo “Status Checks” nos salga lo siguiente ya estará lista la instancia

crear_instancia_amazon_ec2_7

 

 

En el menú “Elastic IPs” creamos una nueva

crear_elastic_ip_amazon_ec2_1

 

 

Hacemos click derecho sobre ella y seleccionamos “Associate”, seleccionamos nuestra instancia para asociarla a ella, yt pulsamos “Yes, Associate”

crear_elastic_ip_amazon_ec2_2

 

 

Y ya podremos acceder a nuestra máquina por ssh (debemos aplicar permisos 700 a nuestra clave, de no hacerlo, además de ser un riesgo, no nos podremos conectar, para hacerlo chmod 700 archivo.pem)

ssh -i ruta_a_nuestra_key_pair.pem ubuntu@direccion_ip

amazon_ec2_ssh

 

Bueno, para esta entrada creo que ya es suficiente, más a delante si os interesa podremos profundizar más temas sobre EC2, su configuración y uso. Espero que os sea útil y vuestros comentarios para ver si continuo con el tema.

 

Instalar LAMP (linux, apache, MySQL, PHP) en Amazon EC2

Usar Amazon EC2 como servidor git para control de versiones/

Truco editor vi, guardar un archivo que hemos abierto sin permisos

Seguramente que no soy el único que se ha olvidado el sudo abriendo un fichero protegido alguna vez, ha modificado el fichero, y a la hora de guardarlo, zas, en toda la boca! (Bazzinga).

Pues hay una solución muy interesante para estos casos, bastará con ejecutar el siguiente comando dentro de vi:

:w  !sudo  tee  %

 

Sencillo y muy útil , por lo menos para mi. Hay que ver que corto se hizo este artículo…

Ejecutar el último comando usado o el ultimo que empieza por … con !!

Vamos a ver un un comando muy simple y que a primera vista parece que no tiene mucha utilidad, pero en realidad puede tener más de la que parece, el comando en cuestión es !!, y lo que hace es repetir la última orden introducida en el terminal.

!!

repetir_comando

En este ejemplo podemos ver una utilidad del comando !!, en la primera linea, he intentado recargar el servicio de apache con service apache2 reload, con un usuario sin privilegios,  y he recibido el correspondiente mensaje de error. A continuación podía haber escrito el comando correctamente sudo service apache2 reload, podía haber pulsado la tecla arriba para que me apareciese la última linea escrita, desplazarme al principio de la linea y añadir sudo, o hacer uso de !!, escribiendo sudo !!, lo que me parece lo más rápido.

También podemos ejecutar el último comando que empiece por determinada letra.

!c

Ejecutará el último comando introducido que empiece por la letra c

 

Espero que os sea útil.

Netstat: conexiones activas, sus procesos y los puertos abiertos

Netstat es una herramienta de consola muy útil para administradores de sistemas (y para todo el mundo en general), que nos permite ver un listado de las conexiones activas (entrantes y salientes) en un equipo. La podemos encontrar para sistemas linux y windows, aunque sus opciones varían entre los dos sistemas. Aquí vamos a ver algunos usos que le podemos dar en nuestros equipos linux.

 

Vamos a colocar al final de algunos comandos | less, esto es porque la salida que genera este programa puede ser demasiado grande, y de esta manera, la visualizaremos más cómodamente (para avanzar hacia abajo usaremos la tecla abajo del teclado y para salir antes de llegar al fina la letra q.)

Mostrar todas las conexiones activas del sistema (TCP y UDP)

netstat -a | less

netstat_a

 

Mostrar conexiones TCP activas

netstat -t | less

netstat_t

 

Mostrar conexiones UDP activas

netstat -u

Mostrar estadísticas de uso para todos los tipos de conexión

netstat -s

netstat_s

 

Mostrar la tabla de encaminamiento

netstat -r

 

Mostrar los grupos de multidifusión

netstat -g

 netstat_g

 

Mostrar tabla de interfaces de red

netstat -i

netstat_i

 

También podemos combinar las opciones, por ejemplo si queremos mostrar las estadísticas de TCP

netstat -s -t | less

Y para finalizar, una combinación de opciones fácil de recordar y útil

netstat -putona | less

p: Muestra las estadísticas para el protocolo especificado

u: Puerto UDP

t: Puertos TCP

o: Muestra los timers

n: Muestra el estado del puerto

a: Muestra las conexiones activas

netstat_putona

 

 

Espero que le saquéis partido.