Selecione suas preferências de cookies

Usamos cookies essenciais e ferramentas semelhantes que são necessárias para fornecer nosso site e serviços. Usamos cookies de desempenho para coletar estatísticas anônimas, para que possamos entender como os clientes usam nosso site e fazer as devidas melhorias. Cookies essenciais não podem ser desativados, mas você pode clicar em “Personalizar” ou “Recusar” para recusar cookies de desempenho.

Se você concordar, a AWS e terceiros aprovados também usarão cookies para fornecer recursos úteis do site, lembrar suas preferências e exibir conteúdo relevante, incluindo publicidade relevante. Para aceitar ou recusar todos os cookies não essenciais, clique em “Aceitar” ou “Recusar”. Para fazer escolhas mais detalhadas, clique em “Personalizar”.

Solução de problemas de erros internos do servidor no Amazon DynamoDB

Modo de foco
Solução de problemas de erros internos do servidor no Amazon DynamoDB - Amazon DynamoDB

No DynamoDB, erros internos do servidor (500 erros) indicam que o serviço não consegue atender à solicitação. Esses erros podem ocorrer por vários motivos, como problemas transitórios de rede na frota, problemas de infraestrutura, problemas relacionados ao nó de armazenamento e muito mais.

Você pode encontrar alguns erros internos do servidor durante o ciclo de vida da sua tabela do DynamoDB. Isso está previsto devido à natureza distribuída do serviço e geralmente não deve ser motivo de preocupação. O DynamoDB repara e corrige automaticamente quaisquer problemas transitórios com o serviço em tempo real, sem exigir sua intervenção. No entanto, se você observar um número consistentemente alto de erros internos do servidor nas solicitações à tabela (conforme visto na métrica SystemErrors), investigue mais a fundo.

Investigar erros internos do servidor

Se você encontrar erros internos do servidor na tabela do DynamoDB, considere estas opções:

  1. Verifique o AWS Health Dashboard.

    Para identificar o problema, a primeira etapa é verificar o AWSService Health Dashboard e o AWS Account Health Dashboard. Esses painéis fornecem informações valiosas sobre quaisquer problemas no serviço como um todo, tabelas afetadas, problemas contínuos e a causa raiz depois que o problema é resolvido.

    A análise dos detalhes nesses painéis fornecerá uma melhor compreensão do status atual dos Serviços da AWS que você está usando e de quaisquer possíveis problemas que estejam afetando sua conta. Essas informações podem ajudar você a determinar as próximas etapas para resolver o problema e minimizar quaisquer interrupções nas operações.

  2. Entre em contato com o Suporte.

    Se você observar erros prolongados e persistentes nas solicitações, isso pode indicar um problema com o serviço. Como regra geral, se você observar uma taxa geral de falhas de 1% ou mais nos últimos 15 minutos, é o momento apropriado para encaminhar o problema para a equipe do AWS Support. Consulte o Contrato de nível de serviço do Amazon DynamoDB para saber mais.

    Ao abrir um caso com a equipe do AWS Support, forneça os seguintes detalhes para ajudar a acelerar o processo de solução de problemas:

    • DDB afetado; tabelas ou índices secundários

    • Janela de tempo em que os erros foram observados

    • IDs de solicitação do DynamoDB, como 4KBNVRGD25RG1KEO9UT4V3FQDJVV4KQNSO5AEMVJF66Q9ASUAAJG, que você pode encontrar nos logs da aplicação.

    Incluir esses detalhes no caso de suporte ajudará a equipe da AWS a entender o problema e fornecer uma solução mais rápida. Se você não tiver os IDs de solicitação, ainda assim deverá registrar o caso com os outros detalhes disponíveis.

Minimizar o impacto dos erros internos do servidor

Se ocorrerem erros internos do servidor ao usar o DynamoDB, minimize o impacto deles na aplicação. Considere as seguintes práticas recomendadas:

  • Use recuos e novas tentativas: os comportamentos padrão do SDK foram projetados para encontrar o equilíbrio certo para a maioria das aplicações em termos de estratégia de recuo e nova tentativa. No entanto, você pode ajustar essas configurações com base na tolerância da aplicação aos requisitos de tempo de inatividade e desempenho. Saiba mais sobre recuos e novas tentativas para entender como você pode ajustar as respectivas configurações.

  • Use leituras finais consistentes: se a aplicação não exigir leituras altamente consistentes, considere usar as leituras finais consistentes. Essas leituras custam menos e têm menor probabilidade de apresentar problemas transitórios devido a erros internos do servidor, pois seriam atendidas por qualquer um dos nós de armazenamento disponíveis. Para ter mais informações, consulte Consistência de leitura do DynamoDB.

Melhorar o reconhecimento operacional

Manter a alta disponibilidade e confiabilidade das aplicações é crucial no cenário digital atual. Um aspecto importante disso é o monitoramento proativo de erros internos do servidor (ISEs) nas tabelas do DynamoDB e nos índices secundários globais (GSIs). Ao criar alarmes do CloudWatch para monitorar esses erros, você pode obter melhor reconhecimento operacional e receber alertas sobre possíveis problemas antes que eles afetem os usuários finais. Essa abordagem se alinha ao pilar de excelência operacional do AWS Well-Architected Framework, garantindo que o workload do DynamoDB seja otimizado para apresentar desempenho, segurança e confiabilidade.

Criar alarmes do CloudWatch

Você deve ter os alarmes do CloudWatch definidos nas tabelas do DynamoDB para receber notificações sobre números consistentemente altos de erros internos do servidor, em vez de observar as métricas manualmente. Isso está relacionado ao pilar de excelência operacional da estrutura Well-Architected para qualquer workload em AWS. Consulte Usar Lentes do Well-Architected para DynamoDB para otimizar uma workload do DynamoDB para saber mais sobre Well-Architecting de tabelas do DynamoDB.

Esses alarmes usam métrica (matemática) personalizada para calcular a porcentagem de solicitações com falha em uma janela de cinco minutos. A prática recomendada é configurar o alarme para entrar no estado ALARM em que 3 pontos de dados consecutivos ultrapassam o limite de 1%, o que significa que 1% das solicitações falham em um período de 15 minutos.

O exemplo abaixo é um modelo do AWS CloudFormation que pode ajudar você a criar alarmes do CloudWatch na tabela e o GSI na tabela.

AWSTemplateFormatVersion: "2010-09-09" Description: Sample template for monitoring DynamoDB Parameters: DynamoDBProvisionedTableName: Description: Name of DynamoDB Provisioned Table to create Type: String MinLength: 3 MaxLength: 255 ConstraintDescription : https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Limits.html#limits-naming-rules DynamoDBSNSEmail: Description : Email Address subscribed to newly created SNS Topic Type: String AllowedPattern: "^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\\.[a-zA-Z0-9-.]+$" MinLength: 1 MaxLength: 255 Resources: DynamoDBMonitoringSNSTopic: Type: AWS::SNS::Topic Properties: DisplayName: DynamoDB Monitoring SNS Topic Subscription: - Endpoint: !Ref DynamoDBSNSEmail Protocol: email TopicName: dynamodb-monitoring DynamoDBTableSystemErrorAlarm: Type: 'AWS::CloudWatch::Alarm' Properties: AlarmName: 'DynamoDBTableSystemErrorAlarm' AlarmDescription: 'Alarm when system errors exceed 1% of total number of requests for 15 minutes' AlarmActions: - !Ref DynamoDBMonitoringSNSTopic Metrics: - Id: 'e1' Expression: 'm1/(m1+m2+m3)' Label: SystemErrorsOverTotalRequests - Id: 'm1' MetricStat: Metric: Namespace: 'AWS/DynamoDB' MetricName: 'SystemErrors' Dimensions: - Name: 'TableName' Value: !Ref DynamoDBProvisionedTableName Period: 300 Stat: 'SampleCount' Unit: 'Count' ReturnData: False - Id: 'm2' MetricStat: Metric: Namespace: 'AWS/DynamoDB' MetricName: 'ConsumedReadCapacityUnits' Dimensions: - Name: 'TableName' Value: !Ref DynamoDBProvisionedTableName Period: 300 Stat: 'SampleCount' Unit: 'Count' ReturnData: False - Id: 'm3' MetricStat: Metric: Namespace: 'AWS/DynamoDB' MetricName: 'ConsumedWriteCapacityUnits' Dimensions: - Name: 'TableName' Value: !Ref DynamoDBProvisionedTableName Period: 300 Stat: 'SampleCount' Unit: 'Count' ReturnData: False EvaluationPeriods: 3 Threshold: 1.0 ComparisonOperator: 'GreaterThanThreshold' DynamoDBGSISystemErrorAlarm: Type: 'AWS::CloudWatch::Alarm' Properties: AlarmName: 'DynamoDBGSISystemErrorAlarm' AlarmDescription: 'Alarm when GSI system errors exceed 2% of total number of requests for 15 minutes' AlarmActions: - !Ref DynamoDBMonitoringSNSTopic Metrics: - Id: 'e1' Expression: 'm1/(m1+m2+m3)' Label: GSISystemErrorsOverTotalRequests - Id: 'm1' MetricStat: Metric: Namespace: 'AWS/DynamoDB' MetricName: 'SystemErrors' Dimensions: - Name: 'TableName' Value: !Ref DynamoDBProvisionedTableName - Name: 'GlobalSecondaryIndexName' Value: !Join [ '-', [!Ref DynamoDBProvisionedTableName, 'gsi1'] ] Period: 300 Stat: 'SampleCount' Unit: 'Count' ReturnData: False - Id: 'm2' MetricStat: Metric: Namespace: 'AWS/DynamoDB' MetricName: 'ConsumedReadCapacityUnits' Dimensions: - Name: 'TableName' Value: !Ref DynamoDBProvisionedTableName - Name: 'GlobalSecondaryIndexName' Value: !Join [ '-', [!Ref DynamoDBProvisionedTableName, 'gsi1'] ] Period: 300 Stat: 'SampleCount' Unit: 'Count' ReturnData: False - Id: 'm3' MetricStat: Metric: Namespace: 'AWS/DynamoDB' MetricName: 'ConsumedWriteCapacityUnits' Dimensions: - Name: 'TableName' Value: !Ref DynamoDBProvisionedTableName - Name: 'GlobalSecondaryIndexName' Value: !Join [ '-', [!Ref DynamoDBProvisionedTableName, 'gsi1'] ] Period: 300 Stat: 'SampleCount' Unit: 'Count' ReturnData: False EvaluationPeriods: 3 Threshold: 1.0 ComparisonOperator: 'GreaterThanThreshold'
PrivacidadeTermos do sitePreferências de cookies
© 2025, Amazon Web Services, Inc. ou suas afiliadas. Todos os direitos reservados.