Infraestrutura

O que é melhor para você: Amazon AWS ou Digital Ocean?

Por em

Todo projeto de desenvolvimento de software chega a um ponto em que você se depara com a seguinte pergunta: Onde eu vou hospedar a minha solução? Ao mesmo tempo pode vir em sua cabeça inúmeras alternativas, como Hostgator, GoDaddy, Locaweb e etc. Porém, bem sabemos que as soluções de hospedagem compartilhada deixaram de ser atrativas devido a sua escalabilidade e performance. Diante deste cenário e com a evolução da tecnologia, podemos recorrer a provedores de nuvem que podem atender as nossas necessidades. Neste post falaremos sobre duas dessas soluções: Amazon Web Services e a Digital Ocean. Também faremos uma breve comparação entre elas.
 

Digital Ocean: A VPS para desenvolvedores

A Digital Ocean é uma provedora americana de infraestrutura de nuvem, sediada em Nova York e com centros de dados em vários lugares do mundo. Ela fornece aos desenvolvedores serviços em nuvem, como servidores virtuais privados, que ajudam ao desenvolvedor implantar e dimensionar aplicativos rapidamente. Um dos grandes atrativos da Digital Ocean, são os seus valores acessíveis para aquisição de servidores virtuais. Com apenas 5 dólares, você consegue adquirir um servidor virtual com 1 giga de memória, 1 cpu virtual, 25 gigas de armazenamento e 1 Terabyte de transferência de dados. Esta é uma configuração suficiente para quem deseja hospedar os seus sites estáticos, blogs e aplicações de baixo tráfego em um servidor na nuvem.

Porém, um dos pré-requisitos que é recomendado para quem deseja hospedar suas soluções na Digital Ocean, é ter um conhecimento mínimo relacionado a infraestrutura de servidores web. Aqui na School of Net, nós temos um curso com o título de LAMP na Digital Ocean, onde abordamos os principais conceitos da plataforma e configuramos uma pilha de softwares pra serviços web chamada de LAMP (Linux, Apache, MySQL, PHP) junto com uma instalação do WordPress em um servidor na Digital Ocean.

A Digital Ocean também possui imagens com softwares pré-instalados, onde você consegue implantar aplicações pré-configuradas, como o WordPress, o Docker, o PHPmyAdmin e outras aplicações populares com apenas um clique. Então você deve estar se perguntando: Então, eu não preciso mais aprender a configurar um servidor web pra usar a Digital Ocean? Sim, você precisa. Porque no momento em que precisar realizar uma resolução de problemas, você sabe exatamente de quais softwares é composta a sua solução, como eles funcionam além de ter como saber o status dos seus serviços. Tudo isso porque o suporte que a Digital Ocean oferece para você, é um suporte relacionado a hardware e redes, ou seja, eles tem a obrigação apenas de manter a infraestrutura funcionando, uma vez que eles não dão suporte para a configuração da sua aplicação.

Um dos pontos que é importante destacar é que a Digital Ocean está sempre evoluindo e melhorando os seus serviços. A Digital Ocean começou apenas como uma provedora de VPS (servidores virtuais privados), porém hoje, ela agregou em sua plataforma, muito mais recursos que facilitam a vida do desenvolvedor. Abaixo listaremos algum desses recursos:

Balanceador de carga – Hoje, se você possui um tráfego mais recorrente e precisa garantir uma disponibilidade mínima para as suas aplicações, o recurso do Balanceador de carga ajuda você a distribuir o tráfego dos seus sites e aplicações entre vários servidores.

Firewall gerenciado – Na Digital Ocean, você não precisa ficar gerenciando firewalls Linux como Iptables ou UFW de forma manual. Você tem um recurso nativo da própria plataforma, onde através da própria console web, você consegue adicionar regras para controlar o tráfego para o seu servidor.

Gerenciamento de domínios – Você pode transferir o seu domínio que está em um provedor de hospedagem ou empresas registradoras de domínio, e gerenciar todos os seus registros DNS, centralizando e facilitando o gerenciamento dos seus sites e aplicações.

Monitoramento – É possível coletar métricas de usabilidade, monitorar o desempenho do seu servidor e receber alertas quando surge problemas na sua infraestrutura, sem nenhum custo adicional.

Como material complementar, para ajudar você a aprender a gerenciar esses recursos que a Digital Ocean oferece, sugerimos o curso Escalando aplicações na Digital Ocean aqui da School of Net.
 

AWS: A plataforma de computação em nuvem da Amazon

A Amazon Web Services oferece tudo que a Digital Ocean oferece e muito mais. A infraestrutura da Nuvem AWS é criada em torno de regiões e das zonas de disponibilidade (AZs). As regiões da AWS são regiões geográficas que disponibilizam várias zonas de disponibilidade separadas, ou seja, instalações separadas de datacenter, isoladas fisicamente, que são conectadas com baixa latência, alto throughput (armazenamento) e redes altamente redundantes. Essas zonas de disponibilidade oferecem aos clientes da AWS uma maneira mais fácil e eficiente de projetar e operar aplicativos e bancos de dados. Além disto, torna-os mais altamente disponíveis, tolerantes a falhas e com ajuste de escala muito melhor em comparação com infraestruturas tradicionais de datacenter único ou multidatacenter. Hoje, a AWS abrange 53 zonas de disponibilidade em 18 regiões em todo o mundo.

A Digital Ocean também tem este mesmo conceito de regiões e zonas de disponibilidade que a AWS, porém ela não abrange o mesmo número de regiões da AWS. Um exemplo disso, é a América do Sul, onde a Digital Ocean não possui datacenters e também não possui mais de uma zona de disponibilidade em todas as regiões, assim como a região da França.

Grandes startups e empresas consolidadas usam a AWS como sua provedora de nuvem, como a Netflix, a Gol Linhas Aéreas, a Rede Globo, AirBnb e inclusive órgãos públicos. Todos estes exemplos mostram como a infraestrutura da AWS é robusta e transmite confiabilidade e segurança para as grandes empresas. Hoje a AWS fornece 12 meses gratuitos para você testar os serviços da plataforma, porém com algumas limitações. Detalhes sobre o uso do período gratuito da AWS você pode saber mais através deste link.
 

Recursos da AWS

A AWS fornece serviços de computação, armazenamento, banco de dados, redes e entrega de conteúdo, ferramentas para desenvolvedores, serviços de aprendizado de máquina, Internet das Coisas, Realidade aumentada e muito mais. Que legal não é? Mas por onde eu começo?

Abaixo, se encontra uma descrição dos principais serviços da AWS mais utilizados e uma direção por onde você deve iniciar.

Amazon EC2 – É o serviço de servidores virtuais privados da AWS, onde você pode provisionar máquinas Windows e Linux, assim como softwares pré-configurados disponibilizados nas imagens da comunidade e no Marketplace da AWS. É um dos principais serviços da plataforma. Além do provisionamento padrão do seu servidor virtual privado, você pode integrar o Amazon EC2 com outros serviços da AWS como o AutoScalling e o Load Balancer provendo assim escalabilidade e alta disponibilidade para os seus servidores. Aqui na School of Net, nós temos um curso fantástico de Amazon EC2, que lhe ensina como você pode provisionar e configurar esse serviço.

Amazon RDS – É o serviço gerenciado de banco de dados da Amazon. Com ele você pode operar e escalar o seu banco de dados, com apenas alguns cliques, ou seja, você não precisa instalar e realizar toda uma manutenção para a sua infraestrutura de banco de dados, quem faz isso para você é a própria Amazon. Através da própria plataforma você consegue automatizar backup e atualização de patches da sua infraestrutura. Você se preocupa apenas em gerenciar os dados da sua aplicação. Além disso, o Amazon RDS fornece um recurso chamado de Multi-AZ, onde ele fornece alta disponibilidade para a sua infraestrutura em caso de falhas. O Amazon RDS é compatível com os bancos de dados : MySQL, SQL Server, PostGreSQL e Oracle. Como material complementar, é sugerido o curso de Amazon RDS aqui da School of Net, que demonstra passo-a-passo como utilizar esse serviço.

Amazon S3 – O Amazon S3 é um armazenamento de objetos criado para armazenar e recuperar qualquer quantidade de dados de qualquer local: sites e aplicativos móveis, aplicativos corporativos e dados de sensores ou dispositivos da IoT. O serviço foi projetado para oferecer resiliência de 99,999999999% e armazena dados para milhões de aplicativos no mundo todo. Você pode utilizar ele para diferentes cenários como backup, arquivamento de dados, data lake para análise de big data, dados de aplicativos na nuvem e recuperação de desastres. Aqui na School of Net, temos uma Live Class muito legal sobre como utilizar esse serviço em conjunto com o Amazon CloudFront, que é o serviço de entrega de conteúdo da AWS.

Estes são apenas alguns serviços que são essenciais para quem deseja hospedar a sua solução na nuvem AWS. Mas aí vem a pergunta que não quer calar: O que é melhor para você: Amazon AWS ou Digital Ocean?
 

Amazon AWS x Digital Ocean

A resposta ideal está no nível de maturidade do seu projeto. Se o seu projeto está iniciando e você não tem recursos financeiros suficientes, vá para a Digital Ocean. A Digital Ocean, além de lhe dar uma previsibilidade do seu custo, ela provê recursos computacionais suficientes para você hospedar o seu projeto. A realidade é que em relação a serviços, tudo que a AWS oferece, você pode fazer na Digital Ocean, incluindo serviços mais avançados como aprendizado de máquina e Big Data, porém isso vai exigir um pouco mais de trabalho manual da sua parte e um grande conhecimento em configuração e gerenciamento de serviços. E até você conseguir realizar um certo nível de automação, você vai precisar de ferramentas terceirizadas e tempo.

Um dos grandes benefícios da AWS, com certeza está no sentido de automação. Além de você ter serviços que funcionam como “infraestrutura como serviço”, que é o caso do Amazon EC2, você tem serviços que funcionam como plataforma, (Amazon RDS e o Amazon S3), onde você não precisa se preocupar em gerenciar a infraestrutura que você hospeda, o seu banco de dados ou o armazenamento dos seus objetos.

Outro ponto a se levar em conta sobre qual plataforma escolher, é a escalabilidade. Se o servidor que você provisionou suporta a carga de trabalho de forma tranquila, inclusive alguns picos de demanda, então utilize a Digital Ocean. Porém, se você precisa de escalabilidade e que essa escalabilidade seja automática e confiável, a AWS é a solução. Com o serviço do AutoScalling, a AWS consegue provisionar servidores automaticamente para suprir um grande pico de demanda e remove esses servidores, também automaticamente, assim que esse pico de demanda acabar.

E por último, um dos pontos em questão principal a se analisar é a disponibilidade. A pergunta a ser feita aqui é: A sua aplicação precisa de 99,999999999% de disponibilidade? Se a resposta for SIM, então vá pra AWS. Pois além de você poder montar uma infraestrutura com redundância regional, você consegue montar uma infraestrutura multi-regional, de forma automática e confiável.

Enfim pessoal, espero que vocês tenham aprendido mais sobre qual a melhor plataforma para hospedar o projeto de vocês e o que levar em conta ao fazer essa decisão.