Antigamente, o poder da computação era tarefa da infraestrutura de hardware local. Agora – se a sua solução de software reside na nuvem – ela está se tornando um trabalho do serviço web Elastic Compute Cloud (EC2).
EC2 traz capacidade computacional redimensionável para a nuvem. Os usuários podem alugar computadores virtuais com instâncias nas quais executam seus aplicativos. As instâncias podem ter diversas configurações, diferentes sistemas operacionais, poder computacional e capacidade de armazenamento.
EC2 é um componente central da Amazon Web Services (AWS). Como tal, é amplamente utilizado para quase todas as implementações de projetos possíveis na nuvem. Obviamente, a menos que você esteja atrás de uma arquitetura sem servidor, nesse caso o EC2 está, pelo contrário, fora de questão.
últimas postagens
Componentes principais do EC2
Fonte: docs.aws.amazon.com
Cada AWS EC2 que você decidir usar em seu projeto deve consistir em outros componentes AWS. Eles definem os parâmetros exatos da sua configuração.
#1. Instâncias
Uma instância EC2 é basicamente uma interpretação em nuvem de uma máquina virtual. A instância pode ser preparada e iniciada em diversas configurações. Você também precisa definir um sistema operacional específico para a instância, bem como quão forte a instância deve ser (quantidade de CPU, RAM, etc.).
Por último, você pode especificar a quantidade de capacidade de armazenamento que deve ser permanentemente anexada à instância EC2.
#2. Imagens de máquina da Amazon (AMIs)
AMI é um modelo pré-configurado que contém todas as informações necessárias para uma inicialização bem-sucedida da instância. Aqui, você especifica em qual sistema operacional deseja executar os aplicativos, como será a aparência do servidor de aplicativos e quais aplicativos exatos serão instalados.
#3. Armazenamento de blocos elásticos (EBS)
Este é um serviço de armazenamento que fornece volumes de armazenamento persistentes para usar com a instância EC2. É aqui que todos os dados do aplicativo, bem como os dados do cliente, residirão quando os aplicativos nas instâncias do EC2 estiverem em uso.
#4. Grupos de segurança
Para cada instância do EC2, você precisará de acesso de segurança controlado. Isso se aplica à comunicação do mundo externo para a instância EC2 (tráfego de saída), bem como entre os serviços AWS dentro de sua infraestrutura de nuvem (tráfego de entrada).
#5. Pares de Chaves
Para maior segurança, você precisa gerar pares de chaves públicas e privadas que você usa para conectar-se com segurança às instâncias do EC2.
#6. Endereços IP elásticos
Para permitir que você acesse sua nova instância do EC2 de fora da Internet ou até mesmo consulte-a dentro de sua infraestrutura na nuvem, você precisa atribuir um endereço IP estático às instâncias do EC2. A partir daí, a máquina virtual com uma instância EC2 fica acessível.
#7. Grupos de canais
Com a ajuda deles, você pode criar agrupamentos lógicos de instâncias. Eles são projetados para fornecer conexões de rede de baixa latência e alta largura de banda. Isso serve tanto por razões organizacionais quanto de desempenho.
#8. Dimensionamento automático
Este é um serviço – único entre os vários provedores de nuvem – que ajusta automaticamente o número de instâncias EC2 em um grupo com base nas necessidades de sua carga de trabalho. Isso significa que, depois de ativar o escalonamento automático, suas instâncias EC2 podem ser multiplicadas ou aumentadas como hardware para atender ao aumento da demanda.
Alternativamente, você pode diminuir ou reduzir se a demanda for significativamente menor do que o normal. A principal razão por trás disso é não ser lento durante o pico de carga. Mas também para economizar dinheiro quando não há muito o que fazer.
#9. Balanceadores de carga
Simplificando e de alto nível, este é um serviço que distribui o tráfego de entrada em várias instâncias do EC2 e, com isso, melhora a disponibilidade e escalabilidade.
#10. Nuvem privada virtual (VPC)
VPC é uma rede virtual separada logicamente que fornece um ambiente seguro e isolado para instâncias EC2. Você pode organizar várias instâncias do EC2 nas mesmas ou em VPCs diferentes e, em seguida, definir regras para o tráfego de entrada e saída entre as VPCs e, portanto, também entre as diferentes instâncias do EC2 em sua infraestrutura de nuvem.
Normalmente, você deseja manter algumas instâncias do EC2 privadas e acessadas apenas pelo código do seu aplicativo. Ao mesmo tempo, outros EC2s você deseja manter disponíveis na internet. VPC é uma solução perfeita.
Principais características do EC2
Fonte: aws.amazon.com
As instâncias EC2 fornecem capacidade de computação escalonável na nuvem AWS. As empresas podem lançar rapidamente máquinas virtuais com o poder computacional e a capacidade de armazenamento de que necessitam, sem investir em hardware físico. Este é o verdadeiro benefício da infraestrutura em nuvem, e o EC2 desempenha um papel significativo.
A finalidade usual das instâncias EC2 é hospedar vários aplicativos ou sites na nuvem. Você pode usá-los para satisfazer suas cargas de trabalho, sejam elas de natureza em lote, requisitos de processamento em tempo real, aplicativos da web ou móveis.
A natureza do trabalho para o qual você usa o EC2 é praticamente infinita. Você pode precisar de muita potência para processamento de dados, aprendizado de máquina ou jogos. Talvez você precise de ambientes adicionais de desenvolvimento ou teste para sua infraestrutura. Então, você pode definitivamente aproveitar todos os benefícios das instâncias EC2.
O melhor de tudo é que você pode destruí-los e recriá-los sempre que precisar. Nesse caso, você economiza dinheiro para sua infraestrutura de desenvolvimento e teste nos momentos em que não precisar dela. A terminação e recreação sob demanda têm, é claro, muitas outras aplicações para o negócio.
Fundamentos da computação em nuvem
Como já falamos sobre EC2, talvez um pequeno passo atrás possa ser útil para explicar um pouco o que é exatamente a computação em nuvem.
Você pode vê-lo como um modelo de entrega de recursos de computação pela Internet, que é sob demanda e construído como um serviço. É o mecanismo de como acessar o poder da computação com toda a sua infraestrutura e aplicações sem ter que investir em hardware ou infraestrutura física. A computação em nuvem é baseada em um conjunto de princípios fundamentais, incluindo:
- Os usuários têm autoatendimento sob demanda disponível a qualquer momento. Servidores e armazenamento estão disponíveis sem a necessidade de passar por um longo processo de aquisição.
- tabletsOs recursos da nuvem podem ser acessados de qualquer lugar e por qualquer coisa (por exemplo, laptops, desktops, tablets, dispositivos móveis).
- Os recursos computacionais ou toda a infraestrutura podem ser compartilhados e alocados dinamicamente para atender a ambientes e requisitos em constante mudança.
- Você pode aumentar ou diminuir rapidamente quaisquer recursos com base na sua demanda atual.
- A computação em nuvem em tempo real significa essencialmente um modelo de preços pré-pago, onde os usuários pagam apenas pelos recursos que realmente usam. Além disso, o uso gasto você pode acompanhar em tempo real.
Modelos de serviço de computação em nuvem
A computação em nuvem pode ter três modelos principais de serviços:
Modelos de implantação de computação em nuvem
A computação em nuvem também se diferencia pela forma como você implanta e acessa os recursos:
Elasticidade do EC2
Fonte: aws.amazon.com
A elasticidade é uma característica fundamental da computação em nuvem. Refere-se à capacidade da infraestrutura em nuvem de alocar e desalocar dinamicamente recursos de computação em resposta às suas necessidades em constante mudança. Usando a elasticidade, você pode aumentar ou diminuir a infraestrutura conforme necessário. Tudo isso sem precisar investir em hardware físico ou infraestrutura.
Junto com isso vem outra propriedade da nuvem, que é a escalabilidade. É a capacidade de um sistema de lidar com quantidades crescentes de cargas ou tráfego sem sofrer diminuição no desempenho.
Por exemplo, se sua página inicial estiver enfrentando um tráfego repentino incomumente alto devido ao lançamento de um produto novo e altamente aguardado. Este é o momento em que a escalabilidade entrará em ação e aumentará todos os seus recursos e potência para se sentir confortável com essa alta carga.
A escalabilidade é alcançada por meio do uso de recursos elásticos, como máquinas virtuais, armazenamento e rede, que podem ser ampliados ou reduzidos de forma rápida e fácil.
O escalonamento automático é então um recurso exagerado que aproveita a capacidade de escalonamento e o automatiza com base em expectativas de carga predefinidas. Ele ajustará automaticamente o número de recursos de computação a serem usados com base na demanda. Isso também significa que você não precisa monitorar e ajustar manualmente os recursos. O aumento ou redução de recursos pode ser baseado em várias métricas, como utilização da CPU, tráfego de rede ou tempo de resposta do aplicativo.
Por fim, os recursos são alocados de forma dinâmica e em tempo real. Isso lhe dá a possibilidade de otimizar o uso da infraestrutura. Aloque seus recursos somente quando precisar deles e libere-os quando não precisar mais deles.
A alocação dinâmica de recursos é uma característica fundamental da computação em nuvem, pois permite atingir altos níveis de utilização e eficiência e, ao mesmo tempo, minimizar custos.
Benefícios do EC2
Alguns dos principais benefícios do EC2 já são óbvios. Mas apenas para colocar isso em um contexto explícito, os seguintes são os mais importantes a serem observados:
Flexibilidade
Use o EC2 para aumentar ou diminuir facilmente os recursos de computação para atender aos níveis de carga atuais. Inicie ou destrua instâncias conforme necessário agora. Pause e reinicie as instâncias sempre que for mais conveniente para você. Tenha certeza de que você sempre terá um backup caso algo dê errado.
Eficiência de custos
Um resultado directo da flexibilidade é a maior oportunidade de poupar dinheiro para o provisionamento de infra-estruturas. Se configuradas corretamente, suas instâncias EC2 serão iniciadas e encerradas no momento certo. Como consequência, você evitará os custos associados a custos injustificados de provisionamento de recursos.
Alta disponibilidade
Com o EC2, você obtém infraestrutura altamente disponível com o objetivo de minimizar o tempo de inatividade e garantir que aplicações e serviços estejam sempre acessíveis.
Confiabilidade
O EC2 fornece uma infraestrutura confiável cuja intenção é funcionar praticamente sem interrupções e garante que os aplicativos e serviços estejam sempre disponíveis e com bom desempenho.
Acessibilidade
Você pode ter acesso de qualquer lugar, usando desktops, laptops, tablets ou smartphones. Da mesma forma, você tem total liberdade para aplicar quaisquer restrições ao acesso que desejar.
Alcance global
O EC2 está disponível em diversas regiões em todo o mundo, para que você possa implantar aplicativos e serviços mais perto de seus clientes e cumprir as regulamentações locais de privacidade de dados.
Agilidade
Você tem uma infraestrutura verdadeiramente ágil que oferece opções para responder rapidamente às mudanças nas condições do mercado e inovar com mais rapidez.
Segurança de dados
O EC2 oferece uma infraestrutura segura criada originalmente para proteger dados e aplicativos contra acesso não autorizado e ameaças cibernéticas.
Conformidade
O EC2 está em conformidade com uma ampla variedade de padrões e regulamentações do setor, incluindo HIPAA, PCI DSS e GDPR.
Colaboração
O EC2 fornece um ambiente colaborativo que permite que as equipes trabalhem juntas em projetos e compartilhem recursos e dados.
Desafios com EC2
Com certeza, também existem alguns desafios que você deve conhecer ao usar o EC2.
#1. Gestão do Custo
A natureza essencial de todo o modelo de custos da AWS é torná-lo o mais complexo possível, e a precificação do EC2 não é exceção a isso. Você precisa gerenciar cuidadosamente seu uso para evitar custos inesperados e ter algumas ferramentas confiáveis prontas para monitorá-lo continuamente. Você pode usar algumas ferramentas de otimização de custos, por exemplo, AWS Cost Explorer ou AWS Trusted Advisor.
#2. Segurança
Embora o EC2 forneça uma infraestrutura segura, você ainda é responsável por proteger seus próprios aplicativos e dados. Você deve implementar práticas recomendadas de segurança, como usar senhas fortes, criptografar dados e implementar controles de acesso.
#3. Conformidade
Com o EC2, você precisa garantir que o uso esteja em conformidade com os padrões e regulamentações do setor. Portanto, é essencial revisar regularmente a documentação de conformidade da AWS e trabalhar com especialistas em conformidade da AWS para garantir que você atenda aos requisitos de conformidade solicitados por seus clientes.
#4. Desempenho
Você pode afetar o desempenho do EC2 por diferentes fatores, como, por exemplo, latência de rede, E/S de disco ou utilização de CPU. Monitore sistematicamente o desempenho da sua infraestrutura e use ferramentas de otimização de desempenho, como AWS CloudWatch e AWS X-Ray, para identificar e resolver problemas de desempenho.
#5. Disponibilidade
É verdade que o EC2 fornece uma infraestrutura altamente disponível, mas ainda assim você precisa garantir que os aplicativos e serviços que você está provisionando também sejam projetados para alta disponibilidade. Use para isso serviços da AWS como Elastic Load Balancing ou Auto Scaling para garantir que os aplicativos e serviços estejam sempre disponíveis.
#6. Transferências de dados
Esteja ciente dos custos de transferência de dados ao usar o EC2, pois a transferência de dados entre instâncias do EC2 e outros serviços da AWS pode incorrer em cobranças adicionais. Isso significa que não se trata apenas de troca de dados entre sua infraestrutura e a Internet. Use o Amazon S3 e o Amazon CloudFront para minimizar os custos de transferência de dados.
#7. Bloqueio do fornecedor
A consciência do potencial de dependência do fornecedor ao usar o EC2 deve estar na sua lista de prioridades. Projete os aplicativos e serviços para serem portáteis entre provedores de nuvem e use padrões abertos e APIs para garantir a interoperabilidade. É assim que sua solução se tornará independente da nuvem, tornando-se uma camada adicional de flexibilidade que ainda é uma vantagem substancial de mercado.
EC2 e tendências futuras
Fonte: aws.amazon.com
Curioso sobre as tendências e inovações futuras que você pode esperar que moldarão o futuro do EC2? Aqui estão eles.
Sem servidor
A computação sem servidor ainda é um novo paradigma na computação em nuvem, mesmo que já tenha sido implementada há vários anos por algumas das equipes de desenvolvimento mais progressistas. Os desenvolvedores executam o código sem precisar gerenciar servidores ou infraestrutura. A função AWS Lambda ou AWS Step é um exemplo de serviço de computação sem servidor que você pode construir sobre EC2.
Aprendizado de máquina
EC2 é uma infraestrutura perfeita para executar modelos, previsões e cargas de trabalho de machine learning. Você pode literalmente gerar data lakes impressionantemente grandes de previsões de dados de modelo em minutos. Além disso, a AWS oferece uma variedade de serviços de machine learning prontos para uso, como Amazon SageMaker e Amazon Rekognition, desenvolvidos com base no EC2.
Computação de borda
A edge computing é um novo paradigma na computação em nuvem e trata do processamento de dados mais próximo da fonte, e não em um data center centralizado. Isso significa que você faz todos os carregamentos extensos de dados na área onde os dados são gerados. Então, com a ajuda de vários serviços de cache, você transfere os dados para um armazenamento de dados central, o que realmente não afeta mais o processamento das operações do usuário. A AWS oferece uma variedade de serviços de computação de ponta, como AWS Greengrass e AWS IoT, que você pode implantar no EC2.
Conteinerização
A conteinerização é uma estratégia de empacotamento de aplicativos e serviços em contêineres, que podem ser facilmente implantados e gerenciados. Você obtém garantia de compatibilidade quando o transporte de serviço é necessário entre instâncias ou infraestruturas. A AWS oferece uma variedade de serviços de conteinerização, como Amazon ECS e Amazon EKS, desenvolvidos com base no EC2.
Computação quântica
A computação quântica é novamente um paradigma bastante novo que envolve o uso de fenômenos da mecânica quântica, como superposição e emaranhamento, para realizar cálculos. A AWS oferece uma variedade de serviços de computação quântica, como Amazon Braket, e você pode tê-los além do EC2.
Palavras Finais
EC2 é a parte fundamental de toda infraestrutura de nuvem séria e isso não irá desaparecer tão cedo. Normalmente, você provavelmente verá isso em seus três principais serviços com maior geração de custos, mas tudo por um motivo.
EC2 é a espinha dorsal da infraestrutura em nuvem, que captura todos os outros serviços em sua superfície. Compreender o EC2 é, portanto, crucial se o seu objetivo é ter sucesso no mundo da computação em nuvem.
A seguir, confira as melhores práticas para segurança AWS EC2.