Cloud Computing (Computação em Nuvem) – Entendendo um pouco do modelo EC2

Com certeza, um dos assuntos do momento é a Computação em Nuvem (Cloud Computing), mas mesmo estando em destaque agora, ele não é um tema relativamente novo, seus conceitos começaram a ser mencionados em 2007, ou seja a 5 anos atrás. Mas por que só agora ele está sendo mais discutido? A resposta vem de um outro conceito que começou a se consolidar na época em que começaram as principais discussão sobre Nuvem, que é a Virtualização.

Ok, mas o que Virtualização tem a ver com Nuvem? E o que ela tem a ver com o crescimento das discussões sobre Nuvem? A resposta é: TUDO! E explico. Um dos conceitos de virtualização, é otimizar os recursos de um servidor ao máximo possível, ou seja, a grosso modo, você transformar dois ou mais servidores físicos, que não estão utilizando todos os seus recursos em um que utilize todos os seus recursos.

Na Computação em Nuvem, este também é um dos conceitos, porém, com um incremento: a velocidade de implantação/transferência de recursos. Dando um exemplo prático: você possui 1 servidor em nuvem que possui X GB de memória, porém, em um determinado tempo ele precisa de mais memória, então em questão de minutos você pode colocar X + 1 GB de memória em seu servidor, para o determinado tempo que ele precisar e depois volta ao estado original que era, sem ter o delay de ter que parar a sua estrutura toda para essa ação.

Informação: A realização desse tipo de ação deve-se a um dos serviços que englobam a nuvem, que é o IaaS (Infrastructure as a Service ou Infraestrutura como um serviço), em que você possui uma série de recursos definidos para esse fim e então define onde eles serão alocados para melhorar o desempenho da sua Infraestrutura de Cloud.

Existem outros dois tipos de serviços: o PaaS (Plataform as a Service ou Plataforma como um Serviço) que é voltado mais para desenvolvedores e SaaS (Software as a Service ou Software como um Serviço) voltado mais para aplicações finais em que o cliente não quer saber onde ela está rodando, mas sim se ela está sendo entregue. Mas esses conceitos não serão comentados nesse artigo.

Como podem ver existem conceitos em comum entre essas tecnologias e eles não são comuns por coincidências e sim porque a virtualização é a base da Computação em Nuvem. Por isso que as discussões sobre o assunto se intensificaram recentemente, pois é de conhecimento de todos que a virtualização é uma realidade na maioria das empresas e como a evolução no mundo da tecnologia é algo muito rápido o assunto Cloud está mais frequente agora, pois é a evolução do mundo virtualizado.

Nota: Algumas pessoas até confundem virtualização com Computação em Nuvem pelos conceitos quase idênticos, porém, uma diferença básica entre eles é a velocidade de implementação de recursos, a automação como eles são implementados e você mesmo poder fazer isso, sem precisar de um terceiro para isso.

Após essa pequena introdução, vamos falar um pouco sobre uma das mais aceitáveis estruturas de Cloud, que é a EC2 ou Elastic Compute Cloud da Amazon. Mas por que falar dela? Simples, ela te dá todas as ferramentas que uma nuvem precisa e dependendo do seu uso pode até sair de graça, com isso ela é uma ótima escolha para realizar testes para tarefas não criticas da empresa e até mesmo saber como uma nuvem funciona.

Nota: O EC2 usa o modelo de nuvem pública, em que os recursos que você utiliza estão fora do seu ambiente, e que para acessá-lo você precisa de um IP Público para o mesmo, porém, você pode “transformá-lo” em um recurso local através do VPC, recurso que será falado mais a frente.

Uma das principais características do EC2, e que está ligado diretamente a outro conceito de nuvem, é você pagar somente por aquilo que utilizar. Esse recurso é chamado de Instancia On-Demand e permite que você não tenha um preço fixo mensal e pague somente pela hora que utilizar o serviço. Exemplo: se o seu serviço não demanda de uso no período não comercial, você não pagará por esse tempo ocioso.

Existem outros dois tipos de instâncias: As Reservadas, em que você tem um preço fixo mensal, porém, o preço pago pela hora utilizada é menor que o preço da hora utilizada na instância On-Demand, e a outra é a Spot, em que você dá um lance de um valor que quer pagar por hora, se o seu lance for igual ou maior ao Preço Spot do período, você utilizará o serviço, senão ele será desativado, como se fosse um leilão.

Mas o grande lance da instância Spot é que ela deve ser utilizada por serviços que demandam acessos imediatos, mas não acessados frequentemente. Vamos a um exemplo: uma pessoa precisa acessar um serviço que está na nuvem por um período de no máximo 2 horas no dia, ela vê qual o preço Spot e dá o lance que ela sabe que vai permanecer pelo tempo que ela vai utilizar o recurso. Mas você deve estar se perguntando por que ela não usa uma instância On-demand? Por um simples motivo: o valor da hora Spot é menor que o valor da hora On-Demand e ela também não precisa do serviço ativo por um período fixo, ele é flexivel, o que deixa a instancia On-Demand inviável, já que ela é a melhor escolha para períodos fixos de utilização.

Nota: A instância Spot utililiza uma estrutura de oferta e procura, ou seja, se no período que você precisar do serviço, a procura pelos recursos do EC2 estão baixos, o valor da hora é mais baixo, porém, se ele estiver com mais procura o valor aumentará, mas lembrando o valor frequentemente será mais baixo que a hora On-Demand. Para mais informações acesse: http://aws.amazon.com/pt/ec2/spot-instances/

Outro recurso, também da nuvem, presente no EC2 é o conceito de Elasticidade (Elastic) em que você pode em questão de minutos aumentar ou diminuir os recursos do seu serviço. Se preferir, pode também verificar os momentos em que ele recebe mais acessos e programar para que esse aumento aconteça e retirar no momento de menor movimento. Tudo isso através de uma API Web e de fácil acesso.

Esses recursos de escalonamento por nível de uso se deve a duas ferramentas disponíveis no EC2: uma é o Amazon CloudWatch que resumindo é a ferramenta de monitoramento de uso de seus recursos, em que ele te dá os dados estatísticos deles, além dos dados em tempo real e o Auto Scaling, que permite você escalonar melhor os seus recursos através da analise dos dados coletados do CloudWatch.

Outro recurso escalonável é o Amazon Elastic Block Store (EBS), que é um bloco de armazenamento de dados, em que você também só paga pelo espaço que utilizar, porém, ele possui outro recurso: ele pode ser alocado em qualquer recurso da sua nuvem, não ficando preso somente a um. Dando um exemplo: você tem um servidor que possui um EBS instalado, porém, esse espaço não é mais necessário, então você pode realocá-lo para outro servidor que precisa. Fazendo uma analogia ao mundo físico, o EBS é como um HD Externo. Mais informações em: http://aws.amazon.com/pt/ebs/

A questão de segurança, tão discutida, também é considerada no EC2. Particularmente duas ferramentas devem ser levadas em consideração. A primeira é a Virtual Private Cloud (VPC), que é um recurso onde você faz uma ligação direta da sua empresa aos recursos de nuvem do EC2, ligando ele através de uma VPN. Com isso os recursos utilizados ficam em uma parte isolada da estrutura da Amazon, transformando a nuvem pública em um recurso dentro da sua empresa. Outro recurso é a configuração do firewall onde você define quem pode e quem não pode acessar os recursos da nuvem. Mais informações sobre o VPC em: http://aws.amazon.com/pt/vpc/

Nota: Essa segurança não aborda a questão da confidencialidade dos dados, já que eles não estão totalmente nas suas mãos. Essa questão vai além do assunto desse artigo.

A questão de disponibilidade é um dos grandes trunfos da EC2, principalmente pelo conceito de zonas de disponibilidade e região, que faz com que você aloque seus recursos em locais geograficamente diferentes. Quando você coloca seus recursos na nuvem é sempre bom colocar em no minimo 2 regiões diferentes, pois mesmo que a Amazon fale que possui um disponibilidade de 99,5% do tempo, nunca se sabe quando algo pode ocorrer.

Informação: Em Abril do ano passado uma das regiões da Amazon, a região Leste dos EUA, deixou uma grande parte dos serviços paralisados por quase 4 dias. Mesmo um datacenter como o da Amazon pode sofrer falhas.

Outras duas opções importantes de disponibilidade são os recursos de Load Balancing e Cluster e eles funcionam da mesma forma que os convencionais, onde no Load Balancing irá fazer o balanceamento de cargas entre as suas instâncias e executará onde a carga de trabalho está menor e o Cluster fornecendo o alto desempenho para a aplicação em execução.

Mas e se eu tiver uma máquina rodando em minha rede e quiser passá-la para as nuvens, eu consigo? A resposta é sim, existe a ferramenta de importação de VM, que faz a conversão da sua máquina virtual para uma compatível no padrão EC2.

Mas se você não quiser converter uma máquina sua, você pode baixar uma AMI do site dos fornecedores e dar um upload para o site da Amazon.

Nota: Fornecedores como o Ubuntu, Microsoft e Red Hat, fornecem essas imagens, você pode vê-las no link: https://aws.amazon.com/amis/

Uma outra grande vantagem do EC2 é ser um modelo já com um nível de maturidade. Ele integra facilmente com outras plataformas, como a Juju do Ubuntu, onde você pode gerenciar a sua nuvem EC2 e também as plataformas, OpenStack, Eucaliptus e Cloud Stack, todas elas comunicam-se com a API da Amazon.

Então como podemos ver, a EC2 é uma API com um nível de maturidade muito grande, podendo comportar a maioria dos fornecedores atuais, além da integração com eles e o poder de “transformar” a nuvem pública em uma nuvem privada. Se você quer começar nas Nuvens o EC2 é uma boa opção.


Deixe seu comentário

Seu endereço de e-mail não será publicado. Campos com * são obrigatórios!