Hola buenas!
No soy muy amigo del cloud (pierdes recursos "I/O de disco"), pues lo mejor es un servidor dedicado en exclusiva. Pues los recursos, son en exclusiva para ti y tienes un mayor nivel de seguridad y de CONTROL TOTAL. (La máquina es toda tuya y los recursos también)
Lo más serio a día de hoy en cloud, es: AWS. Infrastructure as a Service (IaaS)
Hostgator, solo ofrece vps (no cloud) y está manejado por el player EIG Internet. Así que no...
Linode, es un proveedor de vps (no cloud) a bajo/mediano costo. Para lo que dan, bueno...
Heroku es un producto de Plataforma como Servicio (PaaS) basado en AWS, y es muy diferente de Elastic Compute Cloud. Es muy importante diferenciar las soluciones de "Infraestructura como servicio" y "Plataforma como servicio", ya que consideramos la implementación y el soporte de nuestra aplicación utilizando estas dos soluciones.
Heroku es mucho más simple de usar que AWS Elastic Compute Cloud. Quizás es incluso demasiado simple. Pero hay una buena razón para esta simplicidad. Esta plataforma nos equipa con un entorno de tiempo de ejecución listo y servidores de aplicaciones. Además, nos beneficiamos de una integración perfecta con varios instrumentos de desarrollo, un sistema operativo preinstalado y servidores redundantes.
Por lo tanto, no necesitamos pensar en la administración de la infraestructura, a diferencia de AWS EC2. Solo necesitamos elegir un plan de suscripción y cambiar nuestro plan cuando sea necesario.
A nivel de España, prefiero soluciones como las de: ADW.es, o swhosting.
A nivel de seguridad, con un firewall SPI como iptables, un IDS como snort, cumpliendo con la normativa PCI Compliance y con un buen SSL sería más que suficiente.
Añade estas reglas anti-hack, en el firewall SPI: (Solo si sabes lo que hace cada y una de ellas)
Código:
Forcing SYN packets check
/sbin/iptables -A INPUT -p tcp ! --syn -m state --state NEW -j DROP
Forcing Fragments packets check
/sbin/iptables -A INPUT -f -j DROP
Dropping malformed XMAS packets
/sbin/iptables -A INPUT -p tcp --tcp-flags ALL FIN,PSH,URG -j DROP
Drop all NULL packets
/sbin/iptables -A INPUT -p tcp --tcp-flags ALL NONE -j DROP
Limiting pings to 1 per second
/sbin/iptables -N PACKET
/sbin/iptables -A DEFAULT_RULES -p icmp -m limit --limit 3/sec --limit-burst 25 -j ACCEPT
Setup Connection Tracking
/sbin/iptables -N STATE_TRACK
/sbin/iptables -A STATE_TRACK -m state --state RELATED,ESTABLISHED -j ACCEPT
/sbin/iptables -A STATE_TRACK -m state --state INVALID -j DROP
Discouraging Port Scanning
/sbin/iptables -N PORTSCAN
/sbin/iptables -A PORTSCAN -p tcp --tcp-flags ACK,FIN FIN -j DROP
/sbin/iptables -A PORTSCAN -p tcp --tcp-flags ACK,PSH PSH -j DROP
/sbin/iptables -A PORTSCAN -p tcp --tcp-flags ACK,URG URG -j DROP
/sbin/iptables -A PORTSCAN -p tcp --tcp-flags FIN,RST FIN,RST -j DROP
/sbin/iptables -A PORTSCAN -p tcp --tcp-flags SYN,FIN SYN,FIN -j DROP
/sbin/iptables -A PORTSCAN -p tcp --tcp-flags SYN,RST SYN,RST -j DROP
/sbin/iptables -A PORTSCAN -p tcp --tcp-flags ALL ALL -j DROP
/sbin/iptables -A PORTSCAN -p tcp --tcp-flags ALL NONE -j DROP
/sbin/iptables -A PORTSCAN -p tcp --tcp-flags ALL FIN,PSH,URG -j DROP
/sbin/iptables -A PORTSCAN -p tcp --tcp-flags ALL SYN,FIN,PSH,URG -j DROP
/sbin/iptables -A PORTSCAN -p tcp --tcp-flags ALL SYN,RST,ACK,FIN,URG -j DROP
Performing Final Configurations
/sbin/iptables -N COMMON
/sbin/iptables -A COMMON -j STATE_TRACK
/sbin/iptables -A COMMON -j PORTSCAN
/sbin/iptables -A COMMON -j PACKET
/sbin/iptables -A INPUT -j COMMON
/sbin/iptables -A OUTPUT -j COMMON
/sbin/iptables -A FORWARD -j COMMON
/sbin/iptables -A FORWARD -j PACKET
Referente a tu caso, habría que evaluar el proyecto para poder darte una respuesta adecuada y adaptada a tus necesidades reales. Pero vamos, creo que sí es para una plataforma, mínimo un dedicado, o dos con balanceador de carga y un sistema failover. Un dedicado, aguanta hasta las 5.000 visitas.
PD: Para deploy, amazon o heroku mismo... No te compliques la vida. Si vas a por vps, adw.es o hasta la francesa OVH.
Para producción: Amazon o
Siento el tocho...
Un saludo.