Amazon Web Services - Arquitetura Básica
Esta é a estrutura básica do AWS EC2, Onde EC2significa Elastic Compute Cloud. O EC2 permite que os usuários usem máquinas virtuais de diferentes configurações de acordo com seus requisitos. Ele permite várias opções de configuração, mapeamento de servidor individual, várias opções de preços, etc. Discutiremos isso em detalhes na seção Produtos da AWS. A seguir está a representação esquemática da arquitetura.
Note - No diagrama acima S3significa Simple Storage Service. Ele permite que os usuários armazenem e recuperem vários tipos de dados usando chamadas de API. Não contém nenhum elemento de computação. Discutiremos esse tópico em detalhes na seção de produtos da AWS.
Balanceamento de carga
Load balancingsignifica simplesmente carregar hardware ou software em servidores web, o que melhora a eficiência do servidor e também do aplicativo. A seguir está a representação esquemática da arquitetura AWS com balanceamento de carga.
O balanceador de carga de hardware é um dispositivo de rede muito comum usado em arquiteturas tradicionais de aplicativos da web.
A AWS fornece o serviço Elastic Load Balancing, distribui o tráfego para instâncias EC2 em várias fontes disponíveis e adição e remoção dinâmicas de hosts Amazon EC2 da rotação de balanceamento de carga.
Elastic Load Balancing pode aumentar e diminuir dinamicamente a capacidade de balanceamento de carga para se ajustar às demandas de tráfego e também oferecer suporte a sessões persistentes para atender às necessidades de roteamento mais avançadas.
Amazon Cloud-front
É responsável pela entrega de conteúdo, ou seja, usado para entregar o site. Ele pode conter conteúdo dinâmico, estático e de streaming usando uma rede global de pontos de presença. As solicitações de conteúdo na extremidade do usuário são encaminhadas automaticamente para o ponto de presença mais próximo, o que melhora o desempenho.
O Amazon Cloud-front é otimizado para funcionar com outros Amazon Web Services, como Amazon S3 e Amazon EC2. Ele também funciona bem com qualquer servidor de origem não AWS e armazena os arquivos originais de maneira semelhante.
Na Amazon Web Services, não há contratos ou compromissos mensais. Pagamos apenas pelo conteúdo que fornecemos por meio do serviço.
Elastic Load Balancer
É usado para espalhar o tráfego para servidores da web, o que melhora o desempenho. A AWS fornece o serviço Elastic Load Balancing, no qual o tráfego é distribuído para instâncias EC2 em várias zonas disponíveis e adição e remoção dinâmicas de hosts Amazon EC2 da rotação de balanceamento de carga.
O Elastic Load Balancing pode aumentar e diminuir dinamicamente a capacidade de balanceamento de carga de acordo com as condições de tráfego.
Gerenciamento de segurança
O Elastic Compute Cloud (EC2) da Amazon fornece um recurso chamado grupos de segurança, que é semelhante a um firewall de rede de entrada, no qual temos que especificar os protocolos, portas e intervalos de IP de origem que têm permissão para alcançar suas instâncias EC2.
Cada instância EC2 pode ser atribuída a um ou mais grupos de segurança, cada um dos quais roteia o tráfego apropriado para cada instância. Os grupos de segurança podem ser configurados usando sub-redes específicas ou endereços IP que limitam o acesso a instâncias EC2.
Elastic Caches
Amazon Elastic Cache é um serviço da web que gerencia o cache de memória na nuvem. No gerenciamento de memória, o cache tem uma função muito importante e ajuda a reduzir a carga nos serviços, melhora o desempenho e a escalabilidade na camada do banco de dados, armazenando em cache as informações usadas com frequência.
Amazon RDS
O Amazon RDS (Relational Database Service) fornece um acesso semelhante ao do mecanismo de banco de dados MySQL, Oracle ou Microsoft SQL Server. As mesmas consultas, aplicativos e ferramentas podem ser usados com o Amazon RDS.
Ele corrige automaticamente o software de banco de dados e gerencia os backups de acordo com as instruções do usuário. Ele também oferece suporte à recuperação pontual. Não há necessidade de investimentos iniciais e pagamos apenas pelos recursos que usamos.
Hospedando RDMS em instâncias EC2
O Amazon RDS permite que os usuários instalem um RDBMS (Relational Database Management System) de sua escolha, como MySQL, Oracle, SQL Server, DB2, etc. em uma instância EC2 e pode gerenciar conforme necessário.
O Amazon EC2 usa Amazon EBS (Elastic Block Storage) semelhante ao armazenamento conectado à rede. Todos os dados e logs em execução em instâncias EC2 devem ser colocados em volumes Amazon EBS, que estarão disponíveis mesmo se o host do banco de dados falhar.
Os volumes do Amazon EBS fornecem redundância automaticamente dentro da zona de disponibilidade, o que aumenta a disponibilidade de discos simples. Além disso, se o volume não for suficiente para as necessidades de nossos bancos de dados, o volume pode ser adicionado para aumentar o desempenho de nosso banco de dados.
Usando o Amazon RDS, o provedor de serviços gerencia o armazenamento e nós apenas nos concentramos no gerenciamento dos dados.
Armazenamento e backups
A nuvem da AWS oferece várias opções para armazenar, acessar e fazer backup de dados e ativos de aplicativos da web. O Amazon S3 (Simple Storage Service) fornece uma interface simples de serviços da web que pode ser usada para armazenar e recuperar qualquer quantidade de dados, a qualquer momento, de qualquer lugar na web.
Amazon S3 armazena dados como objetos dentro de recursos chamados buckets. O usuário pode armazenar tantos objetos quanto por necessidade dentro do intervalo e pode ler, gravar e excluir objetos do intervalo.
O Amazon EBS é eficaz para dados que precisam ser acessados como armazenamento em bloco e requer persistência além da vida da instância em execução, como partições de banco de dados e logs de aplicativo.
Os volumes do Amazon EBS podem ser maximizados até 1 TB, e esses volumes podem ser divididos para volumes maiores e melhor desempenho. Os volumes de IOPS provisionados são projetados para atender às necessidades de cargas de trabalho de banco de dados que são sensíveis ao desempenho e consistência do armazenamento.
O Amazon EBS atualmente oferece suporte a até 1.000 IOPS por volume. Podemos distribuir vários volumes juntos para fornecer milhares de IOPS por instância para um aplicativo.
Auto Scaling
A diferença entre a arquitetura em nuvem da AWS e o modelo de hospedagem tradicional é que a AWS pode dimensionar dinamicamente a frota de aplicativos da web sob demanda para lidar com as mudanças no tráfego.
No modelo de hospedagem tradicional, os modelos de previsão de tráfego geralmente são usados para provisionar hosts antes do tráfego projetado. Na AWS, as instâncias podem ser provisionadas em tempo real de acordo com um conjunto de gatilhos para dimensionar a frota de volta ao normal. O Amazon Auto Scaling pode criar grupos de capacidade de servidores que podem aumentar ou diminuir sob demanda.
Principais considerações para hospedagem na web na AWS
A seguir estão algumas das principais considerações para hospedagem na web -
Não são necessários dispositivos físicos de rede
Na AWS, os dispositivos de rede como firewalls, roteadores e balanceadores de carga para aplicativos da AWS não residem mais em dispositivos físicos e são substituídos por soluções de software.
Várias opções estão disponíveis para garantir soluções de software de qualidade. Para balanceamento de carga, escolha Zeus, HAProxy, Nginx, Pound, etc. Para estabelecer uma conexão VPN, escolha OpenVPN, OpenSwan, Vyatta, etc.
Sem preocupações de segurança
A AWS fornece um modelo mais seguro, no qual cada host é bloqueado. No Amazon EC2, os grupos de segurança são projetados para cada tipo de host na arquitetura, e uma grande variedade de modelos de segurança simples e em camadas podem ser criados para permitir o acesso mínimo entre os hosts em sua arquitetura conforme o requisito.
Disponibilidade de data centers
As instâncias do EC2 estão facilmente disponíveis na maioria das zonas de disponibilidade na região da AWS e fornecem um modelo para implantar seu aplicativo em data centers para alta disponibilidade e confiabilidade.