Práticas recomendadas para serviços do Amazon ECS Express Mode - Amazon Elastic Container Service

Práticas recomendadas para serviços do Amazon ECS Express Mode

Conheça as práticas recomendadas e recomendações para usar o serviço Express Mode de forma eficaz em ambientes de produção.

Práticas recomendadas de segurança

Gerenciamento de segredos

  • Usar o Secrets Manager para segredos: armazene dados sensíveis no Secrets Manager (por exemplo, repositório privado ou credenciais de banco de dados).

    Para obter mais informações sobre as práticas recomendadas do Secrets Manager, consulte Práticas recomendadas do Secrets Manager no Guia do usuário do Secrets Manager

  • Ativar criptografia em repouso: garanta que os segredos sejam criptografados quando armazenados nos serviços da AWS.

    O uso de um serviço como o Secrets Manager permite criptografar usando uma chave gerenciada pela AWS ou fornecida pelo cliente.

  • Implementar rotação de segredo: use rotação automática para senhas de banco de dados e chaves de API.

    O uso de um serviço como o Secrets Manager pode gerenciar a rotação de segredo para serviços como Amazon Aurora e Amazon RDS

Exemplo de uso de segredos no serviço Express Mode:

aws ecs update-express-gateway-service \ --primary-container \ ‘{“environment”=[{“name”=“DB_PASSWORD”,”value”=“arn:aws:secretsmanager:us-west-2:123456789012:secret:prod/db/password”}, \ {“name”=“API_KEY”,”value”=“arn:aws:ssm:us-west-2:123456789012:parameter/prod/api-key”}]}’ \

Segurança de rede

  • Usar sub-redes privadas para aplicações confidenciais: implante aplicações que não precisem de acesso direto à internet em sub-redes privadas.

    Para obter mais informações sobre arquiteturas recomendadas, consulte Conectar aplicação do Amazon ECS à internet.

  • Configurar grupos de segurança para serem minimamente permissivos: restrinja o tráfego de entrada e saída somente às portas e origens necessárias.

    Para restringir o tráfego de saída do grupo de segurança do serviço Express Mode, você pode editá-lo diretamente no console de grupos de segurança do Amazon EC2 modificando as regras de saída, ou usar os seguintes comandos:

    aws ec2 authorize-security-group-egress --group-id sg-xxxxxxxx \ --protocol tcp \ --port 443 \ --cidr 0.0.0.0/0 aws ec2 revoke-security-group-egress --group-id sg-xxxxxxxx \ --protocol tcp \ --port 443 \ --cidr 0.0.0.0/0
  • Habilitar fluxo da Amazon VPC: monitore o tráfego da rede para análise de segurança e solução de problemas.

    Você pode habilitar essa opção em cada sub-rede que está sendo utilizada por suas aplicações Express Mode, no console de sub-redes VPC ou usar aws ec2 create-flow-logs --resource-ids subnet-xxx

  • Usar o AWS WAF para aplicações web: proteja-se contra explorações e ataques comuns na web.

    Você pode habilitar essa opção criando uma Web ACL e depois associando-a ao Application Load Balancer usado pelo serviço Express Mode. No console, crie uma Web ACL no WAF & Shield Service e associe-a ao Application Load Balancer. Ou use aws wafv2 create-web-acl e aws wafv2 associate-web-acl --resource-arn <alb>.

Otimização de performance e computação

Dimensionamento de recursos

  • CPU e memória do tamanho certo: monitore a performance da aplicação e ajuste as alocações de CPU e memória com base nos padrões reais de uso.

    O AWS Compute Optimizer gera recomendações para tamanhos de tarefas e contêineres do Amazon ECS. Para obter mais informações, consulte O que é o AWS Compute Optimizer? no Guia do usuário do AWS Compute Optimizer.

  • Teste de desempenho da sua aplicação: para garantir que sua aplicação opere em escala e com os devidos limites de ajuste de escala e alocações de recursos, faça testes de carga.

Configuração do ajuste de escala automático

  • Definir limites de ajuste de escala apropriados: configure limites de CPU ou memória que acionem o ajuste de escala antes que a performance diminua.

    Você pode modificar o valor de destino da métrica de serviço no console de serviços Express Mode.

    Considere adicionar uma política de ajuste de escala preditivo, especialmente se o seu tráfego seguir um padrão baseado em tempo. Consulte Ajuste de escala automático preditivo para obter mais informações.

  • Usar várias métricas de ajuste de escala: considere usar CPU ou memória e ajuste de escala baseado em solicitação para obter um ajuste de escala mais responsivo.

    É possível adicionar várias políticas a um serviço. O Express Mode adiciona uma por padrão, mas você pode anexar políticas adicionais diretamente ao seu serviço.

  • Configurar limites mínimo e máximo de tarefas: estabeleça limites razoáveis para controlar custos e garantir disponibilidade.

    Para workloads de produção, após a conclusão do teste inicial, recomendamos a execução em três zonas de disponibilidade para seguir as práticas recomendadas de disponibilidade. Você pode atualizar o número mínimo de tarefas no console do Express Mode ou usando update-express-gateway-service --scaling-target '{“minTaskCount”=3}'.

Verificações de integridade

  • Implementar verificações de integridade significativas: crie endpoints de verificação de integridade que verifiquem dependências de aplicações críticas.

    Você pode atualizar o caminho da verificação de integridade no console do Express Mode. Ou usando update-express-gateway-service --health-check-path "/health".

    Para obter mais informações sobre como formar verificações de integridade para sua aplicação, consulte Implementar verificações de integridade

  • Manter verificações de integridade leves: evite operações caras em endpoints de verificação de integridade.

    Os exemplos podem incluir chamadas de API externas, operações com uso intenso de CPU ou memória, ou de longa duração, com possibilidade de atingir o tempo limite.

  • Usar tempos limite apropriados: configure tempos limite de verificação de integridade que permitam tempos de resposta normais e, ao mesmo tempo, detectem falhas rapidamente.

    Os tempos limite da verificação de integridade para o Express Mode podem ser configurados no grupo de destino do Application Load Balancer. No console do Amazon EC2, navegue até a seção Grupos de destino e selecione o seu grupo de destino do Express Mode. Selecione a guia Verificações de integridade e clique em Editar. Em Configurações avançadas de verificação de integridade, você pode ajustar o tempo limite. Ou use aws elbv2 modify-target-group --target-group-arn <targetgroup> --health-check-timeout.

  • Retornar códigos de status HTTP corretos: use 200 para estados íntegros e 4xx/5xx para não íntegros.

Melhores práticas operacionais

Monitorar e registrar em log

  • Habilitar o Enhanced Container Insights: use o CloudWatch; Enhanced Container Insights para um monitoramento abrangente de suas aplicações de serviço Express Mode.

    Consulte Configurar Container Insights no Amazon ECS para obter mais informações.

  • Configure métricas personalizadas: publique métricas específicas da aplicação no CloudWatch para monitoramento da lógica de negócios.

    Consulte Publicar métricas personalizadas no Guia do usuário do Amazon CloudWatch para obter mais informações.

  • Configurar retenção de logs: defina períodos adequados de retenção de logs para equilibrar os requisitos de custo e conformidade.

    Os grupos de logs do CloudWatch criados pelo Express Mode são configurados para nunca expirar e são retidos quando o serviço Express Mode é excluído. Você pode ajustar essa configuração no grupo de logs do CloudWatch.

  • Criar painéis e alertas: configure painéis e alarmes do CloudWatch para monitoramento proativo.

Estratégias de implantação

  • Implementar tempos de incorporação: o Express Mode implementa um tempo de incorporação canário para garantir que as implantações tenham tempo de se estabilizar e, ao mesmo tempo, reduzir o raio de explosão de implantações problemáticas. Se sua aplicação precisar de mais tempo para se estabilizar, isso poderá ser configurado na definição do serviço do Amazon ECS do seu serviço Express Mode. Consulte Criar uma implantação canário do Amazon ECS para obter mais detalhes.

  • Implementar procedimentos de reversão: tenha um plano para reverter rapidamente para as versões anteriores se ocorrerem problemas.

    Verificações de integridade significativas e reversões baseadas em alarmes podem ajudar na reversão. A estratégia de implantação canário do Express Mode, combinada com reversões baseadas em alarme no tráfego 4xx e 5xx, configura suas implantações para reversões rápidas em caso de falha no código ou na configuração da aplicação.