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

Criado por Janak Vadaria (AWS), RAJNEESH TYAGI (AWS) e Vinodkumar Mandalapu (AWS)

Repositório de código: Goldensignals

Ambiente: produção

Tecnologias: Operações CloudNative; Gestão e governança

Serviços da AWS: AWS CDK; Amazon CloudWatch; AWS CodeBuild; AWS CodePipeline

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.

Na engenharia de confiabilidade de sites (SRE), Golden Signals se refere a um conjunto abrangente de métricas que oferecem uma visão ampla de um serviço do ponto de vista do usuário ou do consumidor. Essas métricas consistem em 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 esse 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

Atualmente, essa 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 os IDs dos recursos em um arquivo local em um CodeBuild ambiente.

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

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

  5. Quando a AWS 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 escalonamento adicional e para criar painéis personalizados, você pode configurar várias chaves e valores de tag.

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

  • AWS CodePipelineajuda você a modelar e configurar rapidamente os diferentes estágios de uma versão de software e automatizar as etapas necessárias para liberar as alterações de software continuamente.

  • AWS CodeBuildé um serviço de compilação totalmente gerenciado que ajuda você a compilar o código-fonte, executar testes de unidade e produzir artefatos prontos para implantação.

  • AWS CodeCommité um serviço de controle de versão que ajuda você a armazenar e gerenciar repositórios Git de forma privada sem precisar gerenciar seu próprio sistema de controle de código-fonte.

  • 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

Como prática recomendada de segurança, você pode usar criptografia e autenticação para os 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

TarefaDescriçãoHabilidades necessárias

Configure e implante o aplicativo 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. Navegue até o repositório clonado em seu computador e abra o src/project-settings.ts arquivo 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 AWS_ACCOUNT as variáveis de GS_DASHBOARD_INSTANCE ambienteAWS_REGION, e:

    • AWS_ACCOUNTDefina o ID da conta da sua AWS conta.

    • AWS_REGIONDefina a região em que você deseja implantar o aplicativo de amostra.

    • GS_DASHBOARD_INSTANCEDefina como devtest, ouprod, dependendo do seu ambiente de desenvolvimento. (Recomendamos test 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 os comandos na AWS CLI documentação.

  6. Execute o comando a seguir para implantar o aplicativo de amostra do painel Golden Signals:

    sh deploy.sh
AWS DevOps

Crie painéis e alarmes automaticamente.

Depois de implantar o aplicativo de amostra, você pode criar qualquer um dos recursos suportados por essa solução com os valores de tag esperados, o que criará automaticamente os painéis e alarmes especificados.

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

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

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

  3. Escolha Criar uma função e, em seguida, insira o nome da função.

  4. No painel Configurações avançadas, selecione Ativar tags e escolha Adicionar nova tag. Insira a chave e o valor a seguir:

    • Chave: AutoDashboard

    • Valor: True

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

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

  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 Lambda para visualizar painéis automatizados adicionais que foram criados como parte dessa 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 para o Amazon RDS, consulte a seção Informações adicionais.

AWS DevOps
TarefaDescriçãoHabilidades necessárias

Remova a golden-signals-dashboard construção.

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

    • AWS_ACCOUNTé o ID da sua AWS conta.

    • AWS_REGIONé a região em que você implantou seu aplicativo de amostra.

    • GS_DASHBOARD_INSTANCEédev,test, ouprod, com base em suas 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 AWS CloudFormation pilhas associadas:

    sh destroy.sh
AWS DevOps

Solução de problemas

ProblemaSolução

Comando Python não encontrado (referindo-se à findresources.sh linha 8).

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

Recursos relacionados

Mais informações

A ilustração a seguir mostra um painel de exemplo para o Amazon RDS criado como parte dessa solução.

Exemplo de painel para Amazon RDS