As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Otimize os custos AWS Fargate das tarefas no Amazon ECS
Visão geral do
AWS Fargate As tarefas de dimensionamento correto são uma etapa importante para a otimização de custos. Muitas vezes, as aplicações são criadas com tamanhos arbitrários para tarefas do Fargate e nunca são revisitadas. Isso pode causar provisionamento excessivo das tarefas do Fargate e gastos desnecessários. Esta seção mostra como usar o AWS Compute Optimizer
Benefícios de custo
O dimensionamento correto das tarefas do Amazon ECS no Fargate pode reduzir os custos em 30 a 70% para tarefas de longa execução. Sem revisar as métricas de performance da aplicação para dimensionar corretamente o tamanho da tarefa, você pode aplicar a mesma lógica usada nas instâncias de computação do EC2 ao dimensionamento de contêineres. Isso resulta em tarefas superdimensionadas do Fargate que aumentam os custos de recursos ociosos. Você pode usar o Compute Optimizer para identificar as oportunidades de dimensionamento correto de forma reativa. O ideal é que o proprietário da aplicação revise as métricas específicas de performance da aplicação e remova a sobrecarga do sistema operacional para garantir que o tamanho adequado da tarefa seja especificado. Para obter mais informações, consulte a seção Migrar aplicações do Windows para contêineres deste guia.
Recomendações de otimização de custos
Esta seção oferece recomendações para usar o Compute Optimizer para dimensionar corretamente seu Amazon ECS nas tarefas do Fargate.
Como parte do processo de otimização de custos, é recomendável fazer o seguinte:
-
Habilitar o Compute Optimizer
-
Utilizar os resultados do Compute Optimizer
-
Marcar as tarefas para serem dimensionadas corretamente
-
Ative a etiqueta de alocação de custos para funcionar com ferramentas de AWS cobrança
-
Implementar recomendações de dimensionamento correto
-
Revisar os custos antes e depois no Cost Explorer
Habilitar o Compute Optimizer
Você pode habilitar o AWS Compute Optimizer no nível da organização ou da conta única no AWS Organizations. A configuração de toda a organização fornece relatórios contínuos para instâncias novas e existentes em toda a sua frota para todas as contas de membros. Isso permite que o dimensionamento correto seja uma atividade recorrente em vez de uma point-in-time atividade.
Nível da organização
Para a maioria das organizações, a forma mais eficiente de usar o Compute Optimizer é no nível organizacional. Isso fornece visibilidade de várias contas e várias regiões em sua organização e centraliza os dados em uma fonte para análise. Para habilitar essa funcionalidade no nível da organização, faça o seguinte:
-
Entre na sua conta gerencial do AWS Organizations com um perfil que tenha as permissões necessárias e opte pela inclusão de todas as contas dessa organização. A organização deve ter todos os recursos habilitados.
-
Depois de habilitar a conta gerencial, você pode entrar na conta, ver todas as outras contas de membros e consultar suas recomendações.
nota
É uma prática recomendada configurar uma conta de administrador delegado para o Compute Optimizer. Isso permite que você exerça o princípio privilégio mínimo, minimizando o acesso à conta gerencial do AWS Organizations e, ao mesmo tempo, fornecendo acesso ao serviço de toda a organização.
Nível de conta única
Se você tem como alvo uma conta com altos custos, mas não tem acesso a ao AWS Organizations, você ainda pode habilitar o Compute Optimizer para essa conta e região. Para saber mais sobre o processo de aceitação, consulte Introdução ao AWS Compute Optimizer.
nota
As recomendações são atualizadas diariamente e podem levar até 12 horas para serem geradas. Lembre-se de que o Compute Optimizer precisa de 24 horas de métricas nos últimos 14 dias para gerar recomendações para o Amazon ECS no Fargate. Para obter mais informações, consulte Requirements for Amazon ECS services on Fargate na documentação do Compute Optimizer.
O Compute Optimizer analisa automaticamente as seguintes métricas de utilização do Amazon e do CloudWatch Amazon ECS para seus serviços do Amazon ECS no Fargate:
-
CPUUtilization: a porcentagem da capacidade da CPU usada no serviço. -
MemoryUtilization: a porcentagem de memória usada no serviço.
Utilizar os resultados do Compute Optimizer
Considere um exemplo que se concentra em fazer as alterações de dimensionamento correto em uma única conta e região. Neste exemplo, o Compute Optimizer está habilitado no nível da organização em todas as contas. Lembre-se de que o dimensionamento correto é um processo disruptivo que, na maioria dos casos, é executado com precisão pelos proprietários da aplicação durante uma janela de manutenção programada de várias semanas.
Se você navegar até o Compute Optimizer de dentro da conta gerencial de uma organização (conforme mostrado nas etapas a seguir), poderá escolher a conta que deseja investigar. Neste exemplo, uma tarefa está sendo executada em uma única conta superprovisionada em us-east-1. O foco é redimensionar para o tamanho recomendado para o serviço do Amazon ECS.
-
Abra o console do Compute Optimizer
. -
Na página Painel, filtre por Descobertas=superprovisionado para ver todos os serviços do Amazon ECS no Fargate.
-
Para revisar as recomendações detalhadas para serviços superprovisionados do ECS no Fargate, role para baixo e escolha Visualizar recomendações.
-
Escolha Exportar e salve o arquivo para uso futuro.
nota
Para salvar recomendações para análise futura, você deve ter um bucket do S3 disponível para que o Compute Optimizer grave em cada região. Para obter mais informações, consulte Amazon S3 bucket policy for AWS Compute Optimizer na documentação do Compute Optimizer.
Para conferir as recomendações do Compute Optimizer, faça o seguinte:
-
No console do Compute Optimizer
, acesse a página de recomendações de exportação. -
Em Destino do bucket do S3, escolha seu bucket do S3.
-
Na seção Filtros de exportação, em Tipo de recurso, escolha Serviços do ECS no Fargate.
-
Na página Recomendações para serviços do ECS no Fargate, analise um dos serviços do ECS no Fargate e confira as recomendações de CPU e memória do Compute Optimizer. Por exemplo, revise as recomendações nas seções Comparar as configurações atuais com o tamanho recomendado da tarefa e Comparar as configurações atuais com o tamanho recomendado do contêiner.
Para obter a lista de serviços do ECS para Fargate que você precisa do tamanho certo, faça o seguinte:
-
Abra o console Amazon S3
. -
No painel de navegação, escolha Buckets e selecione o bucket em que você exportou os resultados.
-
Na guia Objetos, selecione seu objeto e escolha Baixar.
-
Nos resultados baixados, filtre a coluna de descobertas para mostrar somente serviços OVER_PROVISIONED do Amazon ECS no Fargate. Isso mostra os serviços do Amazon ECS que você planeja direcionar para o tamanho certo.
-
Armazene as definições de tarefas em um editor de texto para uso posterior.
Dimensionamento correto das tarefas de marcação
Marcar suas workloads é uma ferramenta poderosa para organizar seus recursos na AWS. Você pode usar tags para obter uma visibilidade detalhada dos custos e possibilitar o estorno. Há muitos métodos e estratégias para adicionar tags aos recursos da AWS
para lidar com o estorno e a automação. Para obter mais informações, consulte o AWS whitepaper Best Practices for AWS tagging Resources. O exemplo a seguir usa o AWS CloudShell
#!/bin/bash # Set variables TAG_KEY="rightsizing" TAG_VALUE="enabled" # Get a list of ECS Clusters ClustersArns=$( aws ecs list-clusters –query 'clusterArns' –output text) for ClustersArn in $ClustersArns; do ServiceArns=$( aws ecs list-services –cluster $ClustersArn –query 'serviceArns' –output text) for ServiceArn in $ServiceArns; do TasksArns=$( aws ecs list-tasks –cluster $ClustersArn –service-name $ServiceArn –query 'taskArns' –output text) for TasksArn in $TasksArns; do aws ecs tag-resource –resource-arn $TasksArn –tags key=$TAG_KEY,value=$TAG_VALUE done done done
O exemplo de código a seguir mostra como habilitar a propagação de tags para todos os serviços do Amazon ECS.
#!/bin/bash # Set variables TAG_KEY="rightsizing" TAG_VALUE="enabled" # Get a list of ECS Clusters ClustersArns=$(aws ecs list-clusters --query 'clusterArns' --output text) for ClustersArn in $ClustersArns; do ServiceArns=$(aws ecs list-services --cluster $ClustersArn --query 'serviceArns' --output text) for ServiceArn in $ServiceArns; do aws ecs update-service --cluster $ClustersArn --service $ServiceArn --propagate-tags SERVICE &>/dev/null aws ecs tag-resource --resource-arn $ServiceArn --tags key=$TAG_KEY,value=$TAG_VALUE done done
Ative a etiqueta de alocação de custos para funcionar com ferramentas de AWS cobrança
Recomendamos ativar a tag de alocação de custos definida pelo usuário. Isso permite que a tag Rightsizing seja reconhecida e filtrável nas ferramentas de AWS cobrança (por exemplo, e). AWS Cost Explorer AWS Cost and Usage Report Se você não habilitar essa funcionalidade, a opção de filtragem de tags e os dados não estarão disponíveis. Para obter informações sobre o uso de tags de alocação de custos, consulte Activating user-defined cost allocation tags na documentação do Gerenciamento de Faturamento e Custos da AWS .
Depois de esperar 24 horas, você pode ver a tag no Cost Explorer antes de implementar as recomendações de dimensionamento correto na próxima seção. Para fazer isso, pesquise a tag Rightsizing no Cost Explorer.
Implementar recomendações de dimensionamento correto
O Compute Optimizer fornecerá recomendações de tamanho de tarefas ou contêineres. Para implementar recomendações de dimensionamento correto, faça o seguinte:
-
Abra o console do Amazon ECS
. -
Na barra de navegação, selecione a região que contém a definição de tarefa.
-
No painel de navegação, escolha Task definitions (Definições de tarefa).
-
Na página Task definitions (Definições de tarefa), escolha a tarefa e, em seguida, escolha Create new revision (Criar nova revisão).
-
Na página Create new task definition revision (Criar nova revisão da definição de tarefa), faça as alterações. Para atualizar a recomendação de tamanho do contêiner, atualize a
cpuememoryno bloco containerDefinitions em sua definição de tarefa do ECS. Por exemplo:"containerDefinitions": [ { "name": "your-container-name", "image": "your-image", "cpu": 1024, "memory": 2048, } ], -
Verifique as informações e escolha Create (Criar).
Para atualizar o serviço do Amazon ECS, faça o seguinte:
-
Abra o console do Amazon ECS
. -
Na página Clusters, selecione o cluster.
-
Na página Cluster overview (Visão geral do cluster), selecione o serviço e escolha Update (Atualizar).
-
Em Task definition (Definição de tarefa), escolha a família de definição de tarefa e a revisão que serão usadas.
Para operadores avançados, você pode usar CloudShell para atualizar o serviço Amazon ECS. Por exemplo:
bash #!/bin/bash # Set variables ClustersName="workshop-cluster" ServiceName="lab7-fargate-service" TaskDefinition="lab7-fargate-demo:3" # update the service aws ecs update-service --cluster $ClustersName --service $ServiceName --task-definition $TaskDefinition
Analisar os custos antes e depois
Depois de dimensionar corretamente seus recursos, você pode usar o Cost Explorer para mostrar os custos antes e depois usando a tag Rightsizing. Lembre-se de que você pode usar tags de recursos para controlar os custos. Ao usar várias camadas de tags, você pode obter visibilidade granular de seus custos. No exemplo abordado neste guia, a tag Rightsizing é usada para aplicar uma tag genérica a todas as instâncias de destino. Em seguida, uma tag de team é usada para organizar ainda mais os recursos. A próxima etapa é introduzir tags de aplicação para mostrar ainda mais o impacto nos custos de operar uma aplicação específica.
Considere um exemplo da redução de custos que pode ser alcançada usando a tag Rightsizing para um único nível de conta. Neste exemplo, os custos operacionais vão de USD 30,26 por dia para USD 7,56 por dia. Supondo 744 horas por mês, o custo anual antes do dimensionamento correto é de USD 11.044,90. Após o dimensionamento correto, o custo anual cai para USD 2.759,40. Isso se traduz em uma redução de 75% nos custos de computação dessa conta. Imagine o impacto dessa redução em uma grande organização.
Antes de embarcar em sua jornada do dimensionamento correto, considere o seguinte:
-
AWS oferece muitas opções para redução de custos. Isso inclui o AWS OLA
, onde AWS analisa suas instâncias locais antes de migrar para o. AWS O AWS OLA também fornece recomendações de dimensionamento e orientação de licenciamento corretos. -
Conclua todo o dimensionamento correto antes de adquirir os Savings Plans
. Isso pode ajudar você a evitar aquisições excessivas em seu compromisso com os Savings Plans.
Próximas etapas
Recomendamos as próximas etapas abaixo:
-
Analise seu cenário atual e considere a conversão de volumes gp2 do Amazon EBS em volumes gp3.
-
Revise os Savings Plans
.
Recursos adicionais do
-
Introdução ao Compute AWS Optimizer (
documentação) -
Melhores práticas para a marcação de AWS recursos (AWS whitepapers)
-
Contêineres Windows ativados AWS
(AWS Workshop Studio)