Arquivo para a tag ‘cloudwatch’
AWS Parte 1 – Entendendo alguns termos
Faz um tempo já que estou mexendo com os serviços da Amazon AWS. Fiquei muito contente com os resultados dos meus testes, eles hoje já comportam uma infraestrutura completa por lá, que acaba por suprir toda a minha necessidade de infra. Nos próximos projetos aqui da nova empresa, estaremos investindo pesado nisso, e confiando nossa infraestrutura por lá.
Pra quem ainda não viu nada disso, vou colocar aqui alguns dos serviços que iremos utilizar deles, e o que exatamente são eles.
- EC2: Elastic Compute Cloud – São as instâncias de máquinas virtualizadas, propriamente ditos, os “servidores” que iremos utilizar.
- EBS: Elastic Block Storage – Um EBS é attachado (conectado) a uma instância EC2 como um HD que é conectado em sua máquina, é um disco de fato, onde sua instância dá o boot.
- S3: Simple Storage Service – É um mecanismo de armazenamento de arquivos “nas nuvens”. Um storage que independe de máquina ou servidor. É como se fosse daqueles antigos discos virtuais, mas com uma confiabilidade e durabilidade muito maior, além de controle de ACL (segurança) para cada object (arquivo) ou bucket (pasta) lá dentro.
- CloudFront: O CloudFront se posiciona junto com o S3, servindo como uma forma de cache para estes arquivos. Ele possui nós espalhados pelo mundo todo, e é ideal para servir arquivos estáticos como CSS, JS, e imagens de maneira rápida, muito rápida.
- ELB: Elastic Load Balancer – Utilizado para balancear a carga entre suas instâncias na requisição a sua aplicação. Com isso você escala sua aplicação muito facilmente, por exemplo: Quando você tem uma carga de acesso muito grande, basta subir novas instâncias (novas máquinas) no seu parque de máquinas, e disponibilizá-las jutno a este ELB. É possível duplicar ou triplicar a capacidade de sua infraestrutura apenas com alguns cliques, copiando servidores e aumentando a capacidade de seu parque.
- RDS: Relational Database Service – Trocando em miúdos, é um “mysql elástico”. Ele está na infra da propria Amazon, e consegue se dimensionar dependendo de sua necessidade, são vários tipos (small, large, extra, etc) de instâncias de banco de dados que você pode contratar dele. Para quem desenvolve, e para a aplicação, nada muda, o mesmo driver JDBC do banco, e apenas uma URL JDBC diferenciada.
- CloudWatch: Um servico de monitoramento que você pode usar para acompanhar a saúde de suas instâncias EC2, dos discos EBS e até do seu banco RDS. Métricas como IO, memória, CPU, etc estão disponíveis e você pode setar alarmes para elas.
- Route 53: Um servico de DNS, foi o último a ser testado, era uma grande reclamação do pessoal, pois ainda dependiam de um DNS externo, agora já não precisam, podem usar o próprio DNS da Amazon.
Todos os serviços tem uma característica que eu acho muito legal, que é o tal do pay-as-you-go, ou seja, você paga o que utilizar e quanto utilizar. No caso das máquinas (instâncias), paga por quantas horas elas estiverem sendo utilizadas. No caso de um disco EBS, paga por quantos GB estiver alocando, no caso do DNS Route 53, paga por queries em cima do serviço. Ou seja, nada de custos exorbitantes quando não se tem um retorno (acesso) exorbitante. Seu orçamento acompanha o real uso desta infraestrutura.
É muito legal entender como estes serviços funcionam, e mais que isso, como podem trabalhar juntos. Principalmente quando se fala em autoscaling desta arquitetura. É possível definir métricas para o CloudWatch (monitoramento), para que caso sua infraestrutura esteja chegando no limite, ele automaticamente aumente esta infra subindo novas máquinas por exemplo. Também é possível o contrário, ou seja, baixar máquinas que não estejam sendo necessárias no determinado momento para uma economia de dinheiro.
Cloud Computing tem virado um super buzz ultimamente, tem que ser visto e analisado com cuidado, mas não podemos deixar passar em branco. E com certeza, a Amazon lidera este segmento desde o seu lançamento.
Até mais,