Concrete Logo
Hamburger button

Ampliando sua arquitetura na AWS conforme a necessidade de demanda

  • Blog
  • 24 de Junho de 2013
Share

A Amazon Web Services (AWS) se tornou a maior empresa do mercado de cloud computing por sua qualidade, confiabilidade e gama de produtos. Visando explicar como podemos utilizar a nuvem para que haja um crescimento da infraestrutura conforme a demanda de acessos, serão gerados alguns modelos de arquitetura, evoluindo fase a fase. Esses modelos serão desenvolvidos até que se chegue a uma arquitetura onde haja robustez necessária para atender um alto volume de usuários simultâneos, com o máximo de qualidade e o menor custo possível.

Fase 1: No passo inicial, configuramos sua aplicação localmente em uma instância EC2 com um Elastic IP e uma zona DNS utilizando o serviço Route53. Dessa maneira você poderá acessar sua aplicação publicamente e entenderá os fundamentos básicos dos serviços.

fase1

Fase 2: Com a sua aplicação em funcionamento, podemos utilizar o serviço RDS separando seu banco de dados de sua aplicação. O Amazon RDS é um serviço especializado para banco de dados e tem os melhores parâmetros de configuração, além de não ter concorrência de processamento da aplicação e do banco de dados em sua instância EC2.

fase2

Fase 3: Eis que surge a necessidade de colocarmos sua aplicação em alta disponibilidade, então colocamos uma instância EC2 em cada Availability Zone (AZ) e deixamos seu banco de dados com alta disponibilidade ativando a opção de Multi-AZ, o que significa que seu banco de dados estará disponível independente da AZ. É necessário configurarmos um balanceador de carga com o serviço Amazon ELB para que possamos distribuir as requisições entre as instâncias EC2 de forma mais equilibrada.

fase3

Fase 4: Entendendo que a sua aplicação é indispensável para seu negócio, você solicitou no passo anterior a criação de um modelo com alta disponibilidade, porém naquele modelo não estávamos preparados para um alto volume de requisições. Visando atender essa necessidade, nessa fase configuramos o Auto Scaling, um serviço que irá ampliar ou reduzir a quantidade de instâncias EC2 em seu ambiente conforme a necessidade, baseado em métricas de monitoramento.

fase4

Fase 5: Sua aplicação tem necessidade de alto volume de dados inseridos simultaneamente em um banco de dados, assim adicionamos o DynamoDB, um serviço de banco de dados NoSQL gerenciado pela própria AWS. Com este serviço sua aplicação poderá ser muito mais robusta em cadastro e alteração dos dados.

fase5

Fase 6: Sua aplicação será acessada por um alto volume de usuários simultâneos para a consulta aos dados, então adicionamos à sua arquitetura um serviço de Content Delivery Network (CDN) da AWS chamado Amazon CloudFront. Ele pode trabalhar em conjunto com o Amazon S3 onde irá buscar os dados que serão distribuídos.

fase6

Esse modelo de arquitetura foi desenhado para um de nossos clientes e o seu desenvolvimento foi explicado passo a passo neste artigo. O trabalho envolveu a criação de um ambiente com alta disponibilidade na nuvem para a inserção de dados do consumo de bateria de milhões de dispositivos móveis (tablets e celulares) em banco de dados. Após o cadastramento dos dados, um arquivo XML ou JSON é gerado e enviado para um bucket S3, onde o CloudFront consulta e disponibiliza o arquivo para os milhares de dispositivos móveis presentes na solução.