Tempo de leitura: 7 minutos
Esse artigo faz parte de uma série de artigos sobre o Amazon EC2. Para ver a série completa, clique aqui!
Quando falamos de computação em nuvem, estamos nos referindo à capacidade de disponibilizar recursos para o processamento computacional para fazer algum trabalho que precisamos.
O Amazon Elastic Compute Cloud (EC2) é um dos serviços mais conhecidos da AWS e, nessa série de artigos, vamos trabalhar alguns conceitos teóricos importantes antes de partir para a prática.
Vem comigo e descubra:
- O que é o Amazon EC2 e quais são os benefícios dele;
- Quais são os diferentes tipos de instância e quando escolher cada uma delas.
O que é o Amazon EC2 e quais são os benefícios dele
Para fazermos qualquer trabalho em tecnologia, precisaremos de capacidade computacional. E o que significa isso na prática?
Numa arquitetura cliente servidor, precisaremos de servidores que hospedem nossas aplicações de modo a nos fornecer poder computacional para atender as necessidades do nosso negócio.
Ao trabalharmos na nuvem, esses servidores são virtuais. O Amazon EC2 é o serviço da AWS que nos permite configurar servidores virtuais.
No modelo tradicional (On Premise), normalmente precisaremos seguimos os passos abaixo para configurar um servidor:
- Adquirir um servidor e pagar de forma antecipada;
- Esperar dias (ou quem sabe semanas?) para que esse servidor seja entregue;
- Depois disso, precisaríamos instalá-lo e configurá-lo em nosso “data center”.
Com o Amazon EC2, podemos utilizar os servidores virtuais da nuvem AWS. Para fazer isso, precisaríamos, simplesmente, seguir os passos abaixo:
- Podemos provisionar e executar uma máquina virtual, o que chamamos de instância EC2, em minutos;
- Podemos parar a execução desse servidor virtual assim que terminarmos de usar; imaginem a economia feita ao desligar o ambiente de desenvolvimento ao fim do expediente, por exemplo;
- A cobrança é feita apenas pelo tempo que a instância estiver sendo executada. Se ela estiver com o status de “stopped” ou “terminated”, nenhuma cobrança é feita;
- Com isso, podemos diminuir os custos com infraestrutura, pois a cobrança é feita apenas em cima da capacidade computacional necessária.
Comparado ao modelo tradicional on-premise, com o Amazon EC2, temos uma maneira muito mais flexível, com custos efetivos e de rápido provisionamento.
Agora, vamos entrar mais no detalhe e entender como o Amazon EC2 funciona:
Podemos resumir esse funcionamento em três passos:
Launch
Ao lançarmos uma instância do EC2, precisaremos selecionar um template (um modelo) com configurações básicas.
Qual o sistema operacional? Qual o poder de processamento? Quanto de memória? Todas essas configurações são definidas a partir desse “template” antes de executarmos nossa instância.
Existem alguns fatores de segurança que precisarão ser configurados também. Quem terá acesso a essa instância? Por meio de que protocolo?
Trabalharemos todos esses detalhes quando formos colocar a mão na massa, por enquanto, basta saber que precisaremos ter isso em mente quando formos configurar uma instância EC2.
Connect
Quando a instância estiver em execução, poderemos nos conectar a ela para fazer as configurações que precisamos para prover nossa solução.
Existem várias formas de fazer isso tanto por meio de aplicações quanto o próprio usuário fazendo uma conexão SSH, por exemplo.
Use
Estando conectado à máquina virtual, podemos finalmente usá-la para executar comandos para instalar software, adicionar storages, etc.
Quais são os diferentes tipos de instância e quando escolher cada uma delas
O Amazon EC2 é otimizado para diferentes tipos de tarefas. Cada tipo de instância tem uma missão específica.
Por isso, ao prover uma solução na nuvem da AWS, é necessário considerar as necessidades dos “workloads” e aplicações a fim escolher o tipo de instância que mais se adeque a essas necessidades.
E quais são as características que se deve levar em consideração para essa escolha? Os requisitos de capacidade computacional (CPU), memória ou até mesmo armazenamento.
Cada tipo de instância possui um ou mais tamanhos, permitindo, assim, a escalabilidade de recursos de acordo com os requisitos da carga de trabalho a ser executada.
Agora vamos passar por cada um dos tipos de instâncias EC2 disponíveis e entender quando utilizá-los.
Instância de uso geral
Aqui a palavra é equilíbrio!
Com instâncias de uso geral temos um equilíbrio de recursos de computação, memória e rede e podem ser usadas para diversos tipos de “workloads”.
Abaixo cito alguns exemplos de utilização:
- Servidores de aplicação
- Repositórios de código
- Servidores backend para aplicações corporativas
- pequenos e médios banco de dados
A imagem abaixo, mostra a T2 como um exemplo de instância de uso geral e seus diferentes subtipos, assim como suas configurações:
De forma resumida, se você precisa de um servidor com recursos equivalentes em termos de memória, computação e rede, considere a utilização de instância de uso geral.
Instâncias otimizadas para computação
Se o foco de sua carga de trabalho é alto desempenho de processamento, então as instâncias otimizadas para computação são a melhor escolha.
Esse tipo de instância pode ser usada para cargas de trabalho de processamento em lote, transcodificação de mídia, servidores web de alto desempenho, computação de alto desempenho (HPC), modelagem científica, etc.
A questão chave para a utilização desse tipo de instância é o uso intensivo de computação.
Instâncias otimizadas para memória
Existem casos de uso em que precisaremos processar grandes conjuntos de dados em memória com um rápido desempenho.
Para esse cenário, podemos escolher as instâncias otimizadas para memória.
Vejam o foco em memória da instância R5:
A utilização de banco de dados de alta performance, caches em memória distribuídos na escala da web, banco de dados em memória de porte médio, análise de big data em tempo real são exemplos de casos de uso em que podemos utilizar esse tipo de instância.
Instâncias com computação acelerada
Em instâncias com computação acelerada são utilizados aceleradores de hardware, ou co-processadores, para executar funções de forma mais eficiente do que utilizando o software das CPUs normais.
Mas em que cenário isso é utilizado?
Na execução de funções como cálculos de número de ponto flutuante, processamento de gráficos ou correspondência de padrões de dados.
Traduzindo: machine learning, computação de alta performance, análise sísmica, reconhecimento de fala, veículos autônomos, etc.
Instâncias otimizadas para armazenamento
Esse tipo de instância fornece capacidade de leitura e gravação sequencial alto a um conjunto de dados muito grandes, elas são otimizadas para fornecer dezenas de milhares de operações de entrada e saída aleatórias de baixa latência.
Casos de uso:
Sistemas distribuídos de arquivo, bancos de dados NoSQL (p. ex., Cassandra, MongoDB, Redis), bancos de dados em memória (p. ex., Aerospike), bancos de dados transacionais com escalabilidade horizontal, data warehousing, Elasticsearch e cargas de trabalho de análise.
Entender que tipos de instância utilizar para as necessidades de nossas cargas de trabalho é de suma importância, pois permite-nos atender os requisitos técnicos da solução e a otimizar os custos dela.
Afinal de contas, ninguém deseja gastar mais do que o necessário, certo?
Por hoje é só. Até a próxima!
Referências:
https://explore.skillbuilder.aws/learn/course/134/play/31418
Link permanente
Link permanente
Link permanente
Link permanente
Link permanente