Hosting compartido a VPS

ricm

Quería pedir que me compartieran su experiencia en el tema. Mi experiencia con proveedores chilenos ha sido mayormente negativa, sobre todo por un servicio al cliente paupérrimo.

Así es que decidí mudarme a digitalocean con un servidor LAMP. El punto es que soy novato en Linux y sobre todo en administrar un servidor. Generalmente sigo guías, pero en realidad hay mucho más que hacer de lo que parece. Entonces tengo un par de preguntas.
En que me debería fijar primordialmente luego de instalar apache, php 7.4 y mysql?
Hay alguno mas que sea un MUST HAVE para mejorar mi experiencia?

Por ejemplo, uso HTOP para monitorear el uso de recursos. Uso phpmyadmin para casi todo lo relacionado a la DB. Certbot para el certificado SSL.

También me he dado cuenta de que hay una millonada de intentos de accesos automatizados (asumo) a urls que pudieran ser vulnérales, tales como url.com/wp-admin, etc. ¿Hay algo que me pudiera ayudar contra eso? Pd: no uso wordpress, es a modo de ejemplo.

También quisiera averiguar cuales son mas o menos los cuellos de botella que voy a enfrentar. Mi sitio recibe algo así como medio millón de visitas al mes.
 
teniendo cero conocimientos me arme en un par de dias un e-commerce en amazon con una instancia t2.micro de ubuntu 18.10 LTS, corriendo wordpress+woocommerce+certbot+webpay plus. La tienda lleva corriendo ya casi dos años.

Al menos amazon EC2 es super facil de usar y monitorear, y la maquina es administrada basicamente a pura consola por ssh, lo unico que hay que hacer es generar snapshots de la instancia (requiere 2 clics) y luego hacer sudo apt-get update/upgrade/install/remove/purge periodicamente para tener los paquetes de ubuntu y los plugins de wordpress actualizados.

No tenemos todo "full" automatizado porque la gente de soporte de transbank es media quisquillosa con las versiones soportadas por webpay plus, por ende "revisamos" las dependencias "a mano" antes de actualizar cualquier cosa.

Tanto la instancia de amazon, como la tienda de wordpress las administramos por sus respectivas apps de celular y salvo pegas especificas hay que meterse tarde mal y nunca a hacer algo en el VPS, es ultra estable y seguro.
 

unreal4u

I solve problems.
Miembro del Equipo
ADMIN
Yo en lo personal he migrado a un sistema con docker-compose, donde cada cliente tiene su set de imágenes. De esta forma, si a uno de mis clientes los hackean, sólo se quedan dentro de su burbuja y nada los sacará del container. Las bases de datos también sólo ese cliente tiene acceso y tampoco tengo que andar webeando con permisos. Lo único que sí corro nativo en la máquina es un nginx (que hace de proxy) y que además arma y desarma TLS. Además, tengo certbot corriendo para ir actualizando los certificados que necesite.

Si estás recién empezando, te recomiendo instalar algo como un cpanel que hace muchas cosas por ti. De lo contrario, prepárate para años de aprendizaje, que (y sólo estoy hablando por php) el mundo en estos dos últimos años ha cambiado muchísimo, tanto así que hasta yo estoy medio atrasado. Uno de estos días, quiero montar un sitio para un cliente que tengo pero utilizando kubernetes a ver qué tal me anda. En términos generales, sería como un director de Docker donde tú le dices que quieres 3 instancias que escuchen por servicios web, y él te configura solito un load balancer por delante y está continuamente revisando que todo esté corriendo de acuerdo a la configuración que le pasé.

O sea, es como un traefik pero más automatizado... o quizás utilice traefik por debajo, no sé todavía :zippy

En fin, volviendo al topic... correr en fierro pelao ya es cosa del pasado. Containers la llevan, así puedes correr tb una copia local con exactamente la misma configuración.

Saludos.
 
Al menos en el mundo amazon, han avanzado harto en el ultimo tiempo:


Aunque creo que de pajero, haria mas instancias t2.micro en vez de una gran instancia con hartos dockers.

Si es solo por administrar imagenes en wordpress en una instancia multi-sitio, creo que no es taaan complejo el tema de asignar permisos en ubuntu para que los end-users solo lean/escriban ese directorio y se conecten por filezilla o winscp. Eso a menos que necesites trabajar en paralelo con distintas versiones de php y wordpress, dependiendo de cada sitio y tengas que manejar multiples configuraciones en una misma maquina con ubuntu.
 

miguelwill

Matrix Operator
Miembro del Equipo
MOD
Yo en lo personal he migrado a un sistema con docker-compose, donde cada cliente tiene su set de imágenes. De esta forma, si a uno de mis clientes los hackean, sólo se quedan dentro de su burbuja y nada los sacará del container. Las bases de datos también sólo ese cliente tiene acceso y tampoco tengo que andar webeando con permisos. Lo único que sí corro nativo en la máquina es un nginx (que hace de proxy) y que además arma y desarma TLS. Además, tengo certbot corriendo para ir actualizando los certificados que necesite.

Si estás recién empezando, te recomiendo instalar algo como un cpanel que hace muchas cosas por ti. De lo contrario, prepárate para años de aprendizaje, que (y sólo estoy hablando por php) el mundo en estos dos últimos años ha cambiado muchísimo, tanto así que hasta yo estoy medio atrasado. Uno de estos días, quiero montar un sitio para un cliente que tengo pero utilizando kubernetes a ver qué tal me anda. En términos generales, sería como un director de Docker donde tú le dices que quieres 3 instancias que escuchen por servicios web, y él te configura solito un load balancer por delante y está continuamente revisando que todo esté corriendo de acuerdo a la configuración que le pasé.

O sea, es como un traefik pero más automatizado... o quizás utilice traefik por debajo, no sé todavía :zippy

En fin, volviendo al topic... correr en fierro pelao ya es cosa del pasado. Containers la llevan, así puedes correr tb una copia local con exactamente la misma configuración.

Saludos.
kubernetes quizás sea matar una mosca con un martillo , muchos subprocesos para solo estar en una máquina

sale más económico usar docker con cluster swarm, así se aprovechan un par de máquinas para todo lo que puedas necesitar

aunque si tienes muchas máquinas y muchos recursos, quizás kubernetes/rancher ayuden bastante a gestionar todos los nodos de una forma eficiente
 

ricm

Yo en lo personal he migrado a un sistema con docker-compose, donde cada cliente tiene su set de imágenes. De esta forma, si a uno de mis clientes los hackean, sólo se quedan dentro de su burbuja y nada los sacará del container.
en mi absoluta ignorancia de docker, esto suena a una virtualizacion dentro de otra virtualizacion. Es eso lo que la lleva ahora?
 

unreal4u

I solve problems.
Miembro del Equipo
ADMIN
kubernetes quizás sea matar una mosca con un martillo , muchos subprocesos para solo estar en una máquina

sale más económico usar docker con cluster swarm, así se aprovechan un par de máquinas para todo lo que puedas necesitar

aunque si tienes muchas máquinas y muchos recursos, quizás kubernetes/rancher ayuden bastante a gestionar todos los nodos de una forma eficiente
Quizás, por eso mismo quiero jugar un poco para ver qué es mejor jajajaj La verdad es que tengo un cliente que tiene piques de tráfico y me gustaría darle más o menos recursos de forma automática.

en mi absoluta ignorancia de docker, esto suena a una virtualizacion dentro de otra virtualizacion. Es eso lo que la lleva ahora?
nope, k8s simplemente administra las máquinas con Docker, y Docker en sí no es virtualización exactamente, sino que son contenedores de (preferiblemente) corta vida que se pueden crear y destruir en cualquier momento, donde cada servicio o pedazo de funcionalidad sería un contenedor. Entre varios contenedores haces una aplicación.

Saludos.
 

ricm

nope, k8s simplemente administra las máquinas con Docker, y Docker en sí no es virtualización exactamente, sino que son contenedores de (preferiblemente) corta vida que se pueden crear y destruir en cualquier momento, donde cada servicio o pedazo de funcionalidad sería un contenedor. Entre varios contenedores haces una aplicación.

Saludos.
Para efectos practicos, usar docker varia mucho de usar una VM LAMP? o mejor dicho, voy a tener que aprender todo de cero o es un paso evolutivo de lo que ya sabia?
 

unreal4u

I solve problems.
Miembro del Equipo
ADMIN
Para efectos practicos, usar docker varia mucho de usar una VM LAMP? o mejor dicho, voy a tener que aprender todo de cero o es un paso evolutivo de lo que ya sabia?
No varía tanto, es lijeramente distinto el enfoque. Una VM tiene todo incluido, la idea de una imagen en Docker es que sólo haga una cosa muy específica. Si requieres para tu aplicación por ejemplo php, nginx, mariadb y redis en docker serán 4 containers distintos mientras que en VM sería todo una sola gran máquina.

Si necesitas por ejemplo otro redis pq has crecido, necesitarás dos containers adicionales: uno con otro redis y el otro con un haproxy por ejemplo para que haga de loadbalancer entre las dos instancias de redis.

Saludos.
 

ricm

No varía tanto, es lijeramente distinto el enfoque. Una VM tiene todo incluido, la idea de una imagen en Docker es que sólo haga una cosa muy específica. Si requieres para tu aplicación por ejemplo php, nginx, mariadb y redis en docker serán 4 containers distintos mientras que en VM sería todo una sola gran máquina.

Si necesitas por ejemplo otro redis pq has crecido, necesitarás dos containers adicionales: uno con otro redis y el otro con un haproxy por ejemplo para que haga de loadbalancer entre las dos instancias de redis.

Saludos.
Gracias Unreal, estuve leyendo unas guías al respecto, suena interesante. La parte que si no me quedo clara es que dice ser más liviana pq no tendría que instalar un SO completo, sino que se cuelga del kernel y otras cosas de la máquina nativa. No se si fue mal interpretación mía o no eso.
Lo pregunto pq veo que a la hora de crear una máquina en la nube, igula me pregunta si quiero poner una vm con Ubuntu.
 

unreal4u

I solve problems.
Miembro del Equipo
ADMIN
Gracias Unreal, estuve leyendo unas guías al respecto, suena interesante. La parte que si no me quedo clara es que dice ser más liviana pq no tendría que instalar un SO completo, sino que se cuelga del kernel y otras cosas de la máquina nativa. No se si fue mal interpretación mía o no eso.
Lo pregunto pq veo que a la hora de crear una máquina en la nube, igula me pregunta si quiero poner una vm con Ubuntu.
La interpretación tuya es correcta, sólo que 'máquina nativa' cámbialo por 'host'. Lo que no entiendo muy bien es de qué sistema en la nube me estás hablando xD
 
Subir