Quando se trata de hospedar aplicações na Amazon Web Services (AWS), uma das decisões mais importantes que você precisará tomar é qual tipo de instância do Amazon Elastic Compute Cloud (EC2) escolher. As instâncias de EC2 são máquinas virtuais que permitem executar suas aplicações na AWS. Elas vêm em vários tamanhos e configurações, conhecidas como famílias de instâncias, cada uma projetada para uma finalidade específica. A escolha da oferta e do tamanho das instâncias corretos para sua aplicação é crítico para otimizar o desempenho e reduzir os custos. No entanto, como o perfil de demanda de cada aplicação é único — e pode mudar com o tempo — essa tarefa é muito mais fácil declarada do que resolvida. A instância 2xlarge de uma determinada família pode não ser necessária, mas quando as equipes de aplicações encarregam as operações de nuvem de manter o tempo de atividade, o tamanho de instância maior e mais caro se torna atraente — isto é, até que as contas da nuvem aumentem.
Neste post de blog, vamos explorar os desafios de selecionar o melhor tipo de instância do Amazon EC2 para sua aplicação e fornecer algumas melhores práticas para tomar a decisão certa. Além disso, explicaremos como uma solução como o ibm turbonomic pode ajudar na adequação de seus aplicativos de nuvem da AWS usando aprendizado de máquina, auto-scaling e automação. Se você está familiarizado com o Turbonomic e deseja começar a otimizar seu ambiente AWS agora, comece hoje mesmo sua avaliação sem custo de 30 dias.
As instâncias de EC2 são classificadas com base em suas características, como CPU, memória, armazenamento e capacidade de rede. Cada tipo de instância é projetado para otimizar cargas de trabalho específicas, como computação de uso geral, aplicações com uso intensivo de memória ou tarefas com uso intensivo de computação. Veja a seguir alguns exemplos de tipos de instância de EC2 e seus principais casos de uso:
Escolher o tipo de instância de EC2 certo para sua aplicação pode ser uma tarefa assustadora. Aqui estão alguns dos desafios que você pode enfrentar:
Agora que você conhece os desafios mais comuns na escolha da melhor instância de EC2, aqui estão algumas das melhores práticas que incentivamos nossos clientes e parceiros a seguir.
A primeira e mais importante etapa para selecionar o tipo de instância de EC2 correto é entender sua carga de trabalho. Cada aplicação tem requisitos diferentes em termos de CPU, memória, rede e armazenamento, e é fundamental saber o que sua aplicação precisa para funcionar sem problemas.
Por exemplo, se você estiver executando uma aplicação de banco de dados, poderá precisar de uma grande quantidade de RAM para lidar com consultas de forma eficiente. Por outro lado, se você estiver executando uma aplicação de uso intensivo de computação, talvez precise de uma CPU de alto desempenho.
Para entender melhor sua carga de trabalho, você pode usar ferramentas como o AWS CloudWatch ou soluções de monitoramento de terceiros para coletar dados sobre a utilização de recursos. Esses dados podem ser usados para determinar o tipo de instância ideal para sua aplicação.
A CPU é um dos componentes mais críticos de uma instância de EC2, pois determina a capacidade de processamento da instância. Se a sua aplicação exigir alto desempenho de CPU, procure um tipo de instância que tenha um número maior de CPUs e velocidade de clock.
A AWS oferece uma variedade de tipos de instâncias otimizadas para CPUs (link externo a ibm.com), como as famílias C5, M5 e R5, projetadas para cargas de trabalho de computação de alto desempenho. Essas instâncias apresentam os processadores AWS Graviton3 personalizados de última geração (link externo a ibm.com) (upgrades significativos para o Graviton2) e são otimizadas para aplicações que exigem alta utilização de CPU. No entanto, se sua aplicação não exigir alto desempenho de CPU, você poderá optar por um tipo de instância mais barato, sem GPU e com um número menor de CPUs, como a família T3.
A memória é outro componente crítico de uma instância de EC2, pois determina a quantidade de dados que a instância pode processar de cada vez. Se a sua aplicação precisar de muita memória, você deverá procurar um tipo de instância que tenha uma capacidade de memória maior.
No entanto, se a sua aplicação não precisar de muita memória, você pode optar por um tipo de instância mais barato que tenha uma capacidade de memória menor, como a família T3.
A AWS oferece uma variedade de tipos de instância otimizados para memória (link externo a ibm.com), como as famílias X1, R4 e z1d, projetadas para cargas de trabalho com uso intenso de memória. Essas instâncias apresentam grandes quantidades de memória e são otimizadas para aplicações que exigem alta utilização de memória, como bancos de dados na memória.
No entanto, se a sua aplicação não precisar de muita memória, você pode optar por um tipo de instância mais barato que tenha uma capacidade de memória menor, como a família T3.
A rede é outro componente crítico de uma instância de EC2, pois determina a velocidade com que os dados rápidos podem ser transferidos de e para a instância. Se a sua aplicação exigir um alto desempenho de rede, procure um tipo de instância que tenha uma largura de banda de rede maior.
A AWS oferece uma variedade de tipos de instâncias otimizadas para rede, como as famílias C5n e HPC de computação de alto desempenho, que são projetadas para cargas de trabalho que fazem uso intenso da rede. Essas instâncias têm a funcionalidade de interfaces de rede de alta velocidade e são otimizadas para aplicação que exigem alta utilização de rede.
No entanto, se sua aplicação não exigir um alto desempenho de rede, você poderá optar por um tipo de instância mais barato que tenha uma largura de banda de rede menor, como a família T3.
O armazenamento é o componente crítico final de uma instância de EC2, pois determina quantos dados podem ser armazenados na instância. Se sua aplicação exigir muito armazenamento, você deverá procurar um tipo de instância que tenha uma capacidade de armazenamento maior (Elastic Block Store, ou EBS). No entanto, proceda com cautela - o armazenamento também está entre os recursos de nuvem mais caros e pode facilmente gerar gastos desnecessários por meio de volumes EBS ociosos e não conectados.
A AWS oferece uma variedade de tipos de instâncias otimizadas para armazenamento, como as famílias I3 e D2, que são projetadas para cargas de trabalho com uso intensivo de armazenamento. Essas instâncias têm a funcionalidade de grandes quantidades de armazenamento SSD e armazenamento local e são otimizadas para aplicação que exigem alta taxa de transferência de IOPS.
No entanto, se sua aplicação não exigir muito armazenamento, você pode optar por um tipo de instância mais barato que tenha uma capacidade de armazenamento menor baseada em HDD, como a família T3.
A AWS oferece vários modelos de preços para instâncias de EC2, incluindo sob demanda, instâncias reservadas e instâncias Spot. Cada modelo tem suas próprias vantagens e desvantagens, e é essencial escolher o que melhor se adaptar à sua carga de trabalho e ao seu orçamento.
As instâncias sob demanda são precificadas por hora e não exigem nenhum compromisso antecipado. Eles são mais adequados para cargas de trabalho com demanda variável ou projetos de curto prazo.
As instâncias reservadas oferecem um desconto significativo na taxa horária em troca de um pagamento único antecipado. Eles são mais adequados para cargas de trabalho com uso previsível e exigem compromisso de longo prazo.
As instâncias spot permitem que você ofereça lances de capacidade EC2 não utilizada e podem proporcionar economias significativas. No entanto, elas são mais adequadas para cargas de trabalho que podem lidar com interrupções e têm horários de início e de término flexíveis.
Depois de selecionar um tipo de instância de EC2, é essencial testar e otimizar sua aplicação para garantir que ela esteja sendo executada com eficiência. Você pode usar ferramentas como AWS CloudWatch ou IBM Instana para monitorar o desempenho da sua aplicação e identificar quaisquer gargalos ou áreas para melhoria.
A seleção do tipo de instância de EC2 certo é crucial para o desempenho e a relação custo/benefício de sua infraestrutura AWS. Ao conhecer sua carga de trabalho, considerando os requisitos de CPU, memória, rede e armazenamento, escolhendo o modelo de preços certo e testando e otimizando sua aplicação, você pode ter certeza de que está obtendo o máximo de suas instâncias de EC2.
Lembre-se de que a seleção do melhor tipo de instância não é uma decisão única, pois suas necessidades de carga de trabalho e infraestrutura podem mudar com o tempo. Avaliar e otimizar continuamente os tipos de instâncias de EC2 pode ajudar a alcançar o desempenho ideal e a relação custo/benefício para sua infraestrutura AWS.
O IBM Turbonomic pode ajudar você a gerenciar esse processo automaticamente, avaliando de forma contínua os requisitos de recursos de suas aplicações AWS e gerando ações específicas que economizam dinheiro e mantêm suas instâncias de EC2 com o dimensionamento correto. O Turbonomic usa aprendizado de máquina e automação, integrando-se facilmente às suas contas do AWS e do AWS Billing, e gera ações de otimização em 30 minutos.