Crie CloudWatch painéis da Amazon baseados em tags automaticamente - Recomendações da AWS

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á.

Crie CloudWatch painéis da Amazon baseados em tags automaticamente

Janak Vadaria, Vinodkumar Mandalapu e Rajneesh Tyagi, Amazon Web Services

Resumo

Criar diferentes CloudWatch painéis da Amazon manualmente pode ser demorado, especialmente quando você precisa criar e atualizar vários recursos para escalar automaticamente seu ambiente. Uma solução que cria e atualiza seus CloudWatch painéis automaticamente pode economizar seu tempo. Esse padrão ajuda você a implantar um AWS Cloud Development Kit (AWS CDK) pipeline totalmente automatizado que cria e atualiza CloudWatch painéis para seus AWS recursos com base em eventos de alteração de tag, para exibir as métricas do Golden Signals.

Em engenharia de confiabilidade de sites (SRE), Golden Signals se refere a um conjunto abrangente de métricas que oferece uma visão geral de um serviço sob a perspectiva do usuário ou do consumidor. O conjunto dessas métricas abrange latência, tráfego, erros e saturação. Para obter mais informações, consulte O que é engenharia de confiabilidade do site (SRE)? no AWS site.

A solução fornecida por este padrão é orientada por eventos. Depois de implantado, ele monitora continuamente os eventos de alteração da tag e atualiza automaticamente os CloudWatch painéis e os alarmes.

Pré-requisitos e limitações

Pré-requisitos

Limitações

No momento, esta solução cria painéis automatizados somente para os seguintes serviços da AWS:

Arquitetura

Pilha de tecnologias de destino

Arquitetura de destino

Arquitetura de destino para criar painéis baseados em tags CloudWatch
  1. Um evento de alteração de AWS tag para as tags de aplicativo configuradas ou alterações de código inicia um pipeline AWS CodePipeline para criar e implantar CloudWatch painéis atualizados.

  2. AWS CodeBuild executa um script Python para encontrar os recursos que têm tags configuradas e armazena o recurso IDs em um arquivo local em um CodeBuild ambiente.

  3. CodeBuild executa o cdk synth para gerar CloudFormation modelos que implantam CloudWatch painéis e alarmes.

  4. CodePipeline implanta os CloudFormation modelos na região especificada Conta da AWS .

  5. Quando a CloudFormation pilha for implantada com sucesso, você poderá visualizar os CloudWatch painéis e os alarmes.

Automação e escala

Essa solução foi automatizada usando AWS CDK o. Você pode encontrar o código nos painéis GitHub Golden Signals no CloudWatch repositório da Amazon. Para obter escalabilidade adicional e criar painéis personalizados, é possível configurar diversas chaves e valores de etiquetas.

Ferramentas

Serviço da Amazon

  • EventBridgeA Amazon é um serviço de barramento de eventos sem servidor que ajuda você a conectar seus aplicativos a dados em tempo real de várias fontes, incluindo AWS Lambda funções, endpoints de invocação HTTP usando destinos de API ou barramentos de eventos em outras. Contas da AWS

  • O AWS CodePipeline ajuda você a modelar e configurar rapidamente os diferentes estágios de uma versão de software, além de automatizar as etapas necessárias para a implantação contínua de alterações.

  • O AWS CodeBuild é um serviço de compilação totalmente gerenciado que permite compilar o código-fonte, realizar testes de unidade e produzir artefatos preparados para a implantação.

  • AWS Command Line Interface (AWS CLI) é uma ferramenta de código aberto que ajuda você a interagir com os serviços da AWS por meio de comandos em seu shell de linha de comando.

  • AWS Identity and Access Management (IAM) ajuda você a gerenciar com segurança o acesso aos seus AWS recursos controlando quem está autenticado e autorizado a usá-los.

  • O Amazon Simple Storage Service (Amazon S3) é um serviço de armazenamento de objetos baseado na nuvem que ajuda você a armazenar, proteger e recuperar qualquer quantidade de dados.

Práticas recomendadas

Para seguir as práticas recomendadas de segurança, você pode usar criptografia e autenticação nos repositórios de origem que se conectam aos seus pipelines. Para obter mais práticas recomendadas, consulte as CodePipeline melhores práticas e os casos de uso na CodePipeline documentação.

Épicos

TarefaDescriptionHabilidades necessárias

Configure e implemente a aplicação de amostra.

  1. Clone o repositório de código de GitHub amostra usando o comando:

    git clone https://github.com/aws-samples/golden-signals-dashboards-sample-app
  2. Acesse o repositório clonado no seu computador e abra o arquivo src/project-settings.ts com o editor de sua preferência.

  3. Altere o valor projectSettings constante de acordo com suas tags AWS de recursos e mapeamentos de aplicativos.

  4. Defina as variáveis de ambiente AWS_ACCOUNT, AWS_REGION e GS_DASHBOARD_INSTANCE:

    • AWS_ACCOUNTDefina o ID da conta da sua AWS conta.

    • Defina AWS_REGION para a região em que deseja implantar a aplicação de amostra.

    • Defina GS_DASHBOARD_INSTANCE como dev, test ou prod, dependendo do seu ambiente de desenvolvimento. (Recomendamos o uso de test para o procedimento de teste descrito neste padrão.)

  5. Configure o AWS CLI com suas AWS credenciais. Para obter mais informações, consulte Definir e visualizar as configurações usando comandos na AWS CLI documentação.

  6. Execute o seguinte comando para implantar a aplicação de amostra do painel com métricas do tipo Golden Signals:

    sh deploy.sh
AWS DevOps

Crie painéis e alarmes automaticamente.

Após implantar a aplicação de amostra, é possível criar qualquer recurso compatível com esta solução com os valores de etiquetas esperados, o que criará automaticamente os painéis e os alarmes especificados.

Para testar essa solução, crie uma AWS Lambda função:

  1. Faça login no local Console de gerenciamento da AWS em Região da AWS que você implantou o aplicativo de amostra.

  2. Abra o console Lambda em. https://console.aws.amazon.com/lambda/

  3. Selecione Criar uma função e, em seguida, insira um nome para a função.

  4. No painel Configurações avançadas, selecione Habilitar etiquetas e, em seguida, escolha Adicionar nova etiqueta. Insira a seguinte chave e valor:

    • Chave: AutoDashboard

    • Valor: True

  5. Escolha a opção Criar função.

    A função do Lambda inicia imediatamente um pipeline de código, que cria automaticamente os painéis e os alarmes para essa função do Lambda específica.

  6. Para ver os painéis e alarmes automatizados, abra o CloudWatch console em. https://console.aws.amazon.com/cloudwatch/ Você pode visualizar os painéis e alarmes personalizados para a função especificada na projectSettings constante (APP1-lambda por padrão).

  7. Selecione o painel da função do Lambda para visualizar os painéis automatizados adicionais que foram criados como parte desta solução.

  8. Repita essas etapas para outros serviços, como Amazon RDS, Amazon SNS e DynamoDB AWS Auto Scaling, para gerar os painéis associados. Para obter um exemplo com Amazon RDS, consulte a seção Informações adicionais.

AWS DevOps
TarefaDescriptionHabilidades necessárias

Remova o constructo golden-signals-dashboard.

  1. Para remover todas as CloudFormation pilhas criadas pelo aplicativo de amostra, você precisa reconfigurar as variáveis de GS_DASHBOARD_INSTANCE ambiente AWS_ACCOUNTAWS_REGION, e. O comando destroy.sh requer essas configurações.

    • AWS_ACCOUNTé o ID da sua AWS conta.

    • AWS_REGION é a região em que você implantou a aplicação de amostra.

    • GS_DASHBOARD_INSTANCE pode ser dev, test ou prod, de acordo com as configurações anteriores.

  2. Configure AWS CLI com suas AWS credenciais.

  3. Execute o comando a seguir para remover o aplicativo de amostra e todas as CloudFormation pilhas associadas:

    sh destroy.sh
AWS DevOps

Solução de problemas

ProblemaSolução

Não foi possível encontrar o comando Python (referindo-se à linha 8 do findresources.sh).

Verifique a versão da sua instalação do Python. Se você instalou a versão 3 do Python, substitua python por python3 na linha 8 do arquivo resources.sh, e execute novamente o comando sh deploy.sh para implantar a solução.

Recursos relacionados

Mais informações

A ilustração apresentada a seguir mostra um painel de amostra para o Amazon RDS, criado como parte desta solução.

Painel de amostra para o Amazon RDS