Servidor de base de datos de mysql en digitalocean ?
Este tutorial fue desarrollado con las siguientes tecnologias:
- Ubuntu Server 14.04 x64
- PHP 5.5.9
- Mysql 5.5.0
En ocasiones el escalar un servidor de forma vertical no siempre es 100% rentable debido a que las diferentes partes de los programas requieren diferentes recusos como disco duro, memoria ram o procesador; para esos casos una arquitectura vertical es lo ideal, en este caso abordaremos el tema de crear un servidor de base de datos, en otras palabras VAMOS A MOVER LA BASE DE DATOS A OTRO SERVIDOR PARA AHORRAR RECURSOS DE NUESTRO SERVIDOR.
Partiendo de la idea de que nuestra arquitectura es la siguiente
Pros de esta arquitectura:
Contras de esta arquitectura
- La aplicacion y la bd están contenidos en el mismo servidor lo cual puede dar como resultado poca flexibilidad a la hora de administrar los recursos (Disco duro,RAM, Procesador).
- No facilita la esca-labilidad horizontal.
ARQUITECTURA QUE QUEREMOS OBTENER
Al separa la bd de la aplicación, aumenta la seguridad ya que los datos se encuentra fuera del acceso del internet publico, ademas de los pros mencionados anteriormente.
La arquitectura de base de datos separada se veria de la siguiente manera:
Esta practica parte del supuesto que ya tenemos nuestro wordpress instalado en un solo servidor, en dicho caso lo que tenemos que hacer son los siguientes pasos:
1.- Creamos un nuevo droplet en este caso le llamaremos server-bd.
2.- Habilitar la ip privada de nuestros 2 servidores server-aplicacion (es el servidor que esta wordpress) y server-bd
3.- Configurar manualmente la red privada de nuestros 2 servidores.
4.- Movemos la bd de server-aplicacion a server-db.
5.- Configuramos worpres para que se conecte al nuevo servidor.
1.- Creamos un nuevo droplet en este caso le llamaremos server-bd.
De preferencia los servidores deben de estar en el mismo datacenter asi que el nuevo droplet (server-db) debe estar en el mismo datacenter que server-aplicacion.
2.- Habilitar la ip privada de nuestros 2 servidores server-aplicacion (es el servidor que esta wordpress) y server-bd.
Hacemos click en nuestro droplet server-aplicacion, una vez adentro hacemos click Private ip: “Enable now”
Hacemos click en Power off
Una vez apagado el servidor hacemos click en Enable y al terminar ese proceso encendemos de nuevo el servidor haciendo click aqui.
Listo aqui tenemos nuestra ip-privada de oceandigital, ahora realizamos el mismo procedimiento para server-db
3.- Configurar manualmente la red privada de nuestros 2 servidores.
En el caso de Ubuntu 14.0.4 la configuracion manual de la red es asi:
Nos logueamos via ssh y editamos el archivo interfaces como root asi:
sudo nano /etc/network/interfaces
Una ves dentro agregamos la ip privada y la mascara al final de archivo quedando de esta manera
auto eth1
iface eth1 inet static
address 10.132.69.178
netmask 255.255.0.0
Qudando nuestro archivo asi
Reiniciamos nuestro servidor asi:
sudo shutdown -r now
Y hacemos el mismo proceso para server-db.
Ahora comprobamos que entre los 2 servidores se vean ataves de la ip-privada haciendo ping
4.- Movemos la bd de server-aplicacion a server-db.
Hacemos un dump de mysql de la bd de wordpress en el server-apicacion asi
/usr/bin/mysqldump –user=user_mysql –password=pass_mysql bd > /path_publico_web/nombre_bd.sql
Vamos a server-db y hacemos unu wget http://dominio-server-aplicacion.com/nombre_bd.sql
Y cargamos la bd en mysql con los siguientes comandos:
mysql> use nombre_bd;
mysql> source nombre_bd.sql
Ademas debemos de editar nuetro archivo “/etc/mysql/my.cnf”.
sudo vim /etc/mysql/my.cnf
Buscamos la siguiente linea:
bind-address = 127.0.0.1
Remplazamos 127.0.0.1 por :
bind-address = mysql_1_private_IP
Reiniciamos mysql asi:
sudo service mysql restart
5.- Configuramos worpres de server-aplicacion para que se conecte al nuevo servidor.
Nos logueamos via ssh al server-aplicacion.
Nos movemos a la raiz de wordpres y editamos el archivo wp-config.php donde vamos a poner en lugar de localhost la ip-privada de server-bd y los accesos a la bd de server-bd.