Gerenciar uma implantação multi-AZ para o RDS Custom para SQL Server - Amazon Relational Database Service

Gerenciar uma implantação multi-AZ para o RDS Custom para SQL Server

Em uma implantação de instância de banco de dados multi-AZ para RDS para SQL Server, o Amazon RDS provisiona e mantém automaticamente uma réplica em espera síncrona em outra zona de disponibilidade (AZ). A instância de banco de dados primária é sincronicamente replicada nas zonas de disponibilidade para uma réplica em espera a fim de oferecer redundância de dados.

Importante

Uma implantação multi-AZ para RDS Custom para SQL Server é diferente de multi-AZ para RDS para SQL Server. Ao contrário do multi-AZ para RDS para SQL Server, você deve configurar pré-requisitos para o RDS Custom para SQL Server antes de criar sua instância de banco de dados multi-AZ, pois o RDS Custom é executado em sua própria conta, o que exige permissões.

Se você não atender aos pré-requisitos, poderá ocorrer uma falha na execução de sua instância de banco de dados multi-AZ ou ela poderá ser revertida automaticamente para uma instância de banco de dados single-AZ. Para ter mais informações sobre pré-requisitos, consulte Pré-requisitos para uma implantação multi-AZ com RDS Custom para SQL Server.

Executar uma instância de banco de dados com alta disponibilidade pode aumentar a disponibilidade durante a manutenção planejada do sistema. No caso de uma manutenção planejada do banco de dados ou de uma interrupção não planejada do serviço, o Amazon RDS faz failover automático para a instância de banco de dados secundário atualizada. Essa funcionalidade permite que as operações do banco de dados sejam retomadas rapidamente sem intervenção manual. As instâncias primária e em espera usam o mesmo endpoint, cujo endereço de rede física faz a transição para a réplica secundária como parte do processo de failover. Não é necessário reconfigurar seu aplicativo quando ocorre um failover.

O RDS Custom para SQL Server é compatível com multi-AZ.

Você pode criar uma implantação multi-AZ do RDS Custom para SQL Server ao especificar multi-AZ ao criar uma instância de banco de dados do RDS Custom. Você pode usar o console para converter instâncias de banco de dados existentes do RDS Custom para SQL Server em implantações multi-AZ modificando a instância de banco de dados e especificando a opção multi-AZ. Você também pode especificar uma implantação de instância de banco de dados multi-AZ com a CLI da AWS ou a API do Amazon RDS.

O console do RDS mostra a zona de disponibilidade da réplica em espera (a AZ secundária). Você também pode usar o comando describe-db-instances da CLI ou a operação DescribeDBInstances da API para localizar a AZ secundária.

Instâncias de banco de dados do RDS Custom para SQL Server com implantação multi-AZ podem ter maior latência de gravação e confirmação em comparação com uma implantação single-AZ. Esse aumento pode acontecer devido à replicação de dados síncrona entre as instâncias de banco de dados. É possível ter uma alteração na latência se sua implantação falhar na réplica em espera, ainda que o AWS seja desenvolvido com conectividade de rede de baixa latência entre zonas de disponibilidade.

nota

Para workloads de produção, recomendamos usar uma classe de instância de banco de dados com IOPS provisionadas (operações de entrada/saída por segundo) para obter uma performance rápida e consistente. Para ter mais informações sobre classes de instância de banco de dados, consulte Requisitos e limitações do Amazon RDS Custom for SQL Server.

Disponibilidade de região e versão

As implantações multi-AZ do RDS Custom para SQL Server são compatíveis com as seguintes edições do SQL Server:

  • SQL Server 2022 e 2019, edições Enterprise, Standard, Web e Developer

nota

Implantações multi-AZ para RDS Custom para SQL Server não são aceitas no SQL Server 2019 CU8 (15.00.4073.23) ou versões inferiores.

As implantações multi-AZ para RDS Custom para SQL Server estão disponíveis em todas as regiões em que o RDS Custom para SQL Server está disponível. Para ter mais informações sobre a disponibilidade de regiões de implantações multi-AZ para o RDS Custom para SQL Server, consulte Regiões e mecanismos de banco de dados compatíveis com o RDS Custom para SQL Server.

Gerenciar uma implantação multi-AZ do RDS Custom para SQL Server

As implantações multi-AZ do RDS Custom para SQL Server têm as seguintes limitações:

  • Implantações multi-AZ entre regiões não são compatíveis.

  • Não é possível configurar a instância de banco de dado secundária para aceitar a atividade de leitura de banco de dados.

  • Quando você usa uma versão de mecanismo personalizada (CEV) com uma implantação multi-AZ, sua instância de banco de dados secundária também usa a mesma CEV. A instância de banco de dados secundária não pode usar uma CEV diferente.

Pré-requisitos para uma implantação multi-AZ com RDS Custom para SQL Server

Se você tiver uma implantação single-AZ do RDS Custom para SQL Server existente, os pré-requisitos adicionais a seguir serão necessários antes de modificá-la para uma implantação multi-AZ. Você pode optar por atender aos pré-requisitos manualmente ou com o modelo do CloudFormation fornecido. O modelo mais recente do CloudFormation contém os pré-requisitos para implantações single-AZ e multi-AZ.

Importante

Para simplificar a configuração, recomendamos que você use o arquivo de modelo AWS CloudFormation mais recente fornecido nas instruções de configuração da rede para criar os pré-requisitos. Para ter mais informações, consulte Configurar com o AWS CloudFormation.

nota

Ao modificar uma implantação single-AZ do RDS Custom para SQL Server existente para uma implantação multi-AZ, você deverá cumprir esses pré-requisitos. Se você não cumprir os pré-requisitos, a configuração multi-AZ falhará. Para configurar os pré-requisitos, conclua as etapas em Modificar uma implantação single-AZ do RDS Custom para SQL Server para uma implantação multi-AZ.

  • Atualize as regras de entrada e saída do grupo de segurança do RDS para permitir a porta 1120.

  • Adicione uma regra à sua lista de controle de acesso (ACL) de rede privada que permita portas TCP 0-65535 para a VPC de instância de banco de dados.

  • Crie endpoints de VPC do Amazon SQS que permitam que a instância de banco de dados do RDS Custom para SQL Server se comunique com o SQS.

  • Atualize as permissões do SQS na função do perfil da instância.

Criar uma implantação multi-AZ do RDS Custom para SQL Server

Para criar uma implantação multi-AZ do RDS Custom para SQL Server, siga as etapas em Criar e conectar-se a uma instância de banco de dados Amazon RDS Custom for SQL Server.

Importante

Para simplificar a configuração, recomendamos que você use o arquivo de modelo AWS CloudFormation mais recente fornecido nas instruções de configuração da rede. Para ter mais informações, consulte Configurar com o AWS CloudFormation.

A criação de uma implantação multi-AZ leva alguns minutos para ser concluída.

Modificar uma implantação single-AZ do RDS Custom para SQL Server para uma implantação multi-AZ

É possível modificar uma instância de banco de dados do RDS Custom para SQL Server de uma implantação single-AZ para multi-AZ. Quando você modifica a instância de banco de dados, o Amazon RDS realiza várias ações:

  • Tira um snapshot da instância de banco de dados primária.

  • Cria volumes para a réplica em espera baseados no snapshot. Esses volumes são inicializados em segundo plano e a performance máxima do volume é alcançada depois que os dados são totalmente inicializados.

  • Ativa a replicação síncrona em nível de bloco entre as instâncias de banco de dados primária e secundária.

Importante

Recomendamos que você evite modificar sua instância de banco de dados do RDS Custom para SQL Server de uma implantação single-AZ para multi-AZ em uma instância de banco de dados de produção durante períodos de pico de atividade.

A AWS usa um snapshot para criar a instância em espera para evitar tempo de inatividade ao converter da implantação single-AZ em multi-AZ. No entanto, poderá haver um impacto na performance durante e após a conversão em multi-AZ. Esse impacto pode ser significativo para workloads sensíveis à latência de gravação. Embora esse recurso permita que grandes volumes sejam restaurados rapidamente de snapshots, ele pode causar aumento na latência das operações de E/S devido à replicação síncrona. Essa latência pode afetar a performance do seu banco de dados.

Configurar pré-requisitos para modificar uma implantação single-AZ para multi-AZ usando o CloudFormation

Para usar uma implantação multi-AZ, você deve garantir que aplicou o modelo mais recente do CloudFormation com pré-requisitos ou configurar manualmente os pré-requisitos mais recentes. Se você já tiver aplicado o modelo de pré-requisitos mais recente do CloudFormation, poderá ignorar essas etapas.

Como configurar os pré-requisitos de implantação multi-AZ do RDS Custom para SQL Server usando o CloudFormation

  1. Abra o console do CloudFormation em https://console.aws.amazon.com/cloudformation.

  2. Para iniciar o assistente de criação de pilha, selecione a pilha existente que você usou para criar uma implantação single-AZ e escolha Atualizar.

    A página Criar pilha é exibida.

  3. Em Pré-requisito: preparar modelo, selecione O modelo está pronto.

  4. Na página Specify template (Especificar modelo), faça o seguinte:

    1. Baixe o arquivo de modelo do AWS CloudFormation mais recente. Abra o menu de contexto (clique com o botão direito do mouse) do link custom-sqlserver-onboard.zip e selecione Save Link As (Salvar link como).

    2. Salve e extraia o arquivo custom-sqlserver-onboard.json no computador.

    3. Para Template source (Origem do template), escolha Upload a template file (Fazer upload de um arquivo de template).

    4. Em Choose file (Escolher arquivo), acesse custom-sqlserver-onboard.json e escolha essa opção.

  5. Escolha Next (Próximo).

    A página Specify stack details (Especificar detalhes da pilha) é exibida.

  6. Para manter as opções padrão, escolha Next (Próximo).

    A página Opções avançadas é exibida.

  7. Para manter as opções padrão, escolha Next (Próximo).

  8. Para manter as opções padrão, escolha Next (Próximo).

  9. Na página Revisar alterações, faça o seguinte:

    1. Para Capabilities (Recursos), marque a caixa de seleção para confirmar que o AWS CloudFormation pode criar os recursos do IAM com nomes personalizados.

    2. Selecione Enviar.

  10. Verifique se a atualização foi bem-sucedida. O status de uma operação bem-sucedida exibe UPDATE_COMPLETE.

Se a atualização falhar, todas as novas configurações especificadas no processo de atualização serão revertidas. O recurso existente ainda poderá ser usado. Por exemplo, se você adicionar regras de ACL de rede 18 e 19, mas existissem regras com os mesmos números, a atualização retornará o seguinte erro: Resource handler returned message: "The network acl entry identified by 18 already exists. Nesse cenário, você pode modificar as regras de ACL existentes para usar um número menor que 18 e, depois, tentar a atualização novamente.

Configurar pré-requisitos para modificar uma implantação single-AZ para multi-AZ manualmente

Importante

Para simplificar a configuração, recomendamos que você use o arquivo de modelo AWS CloudFormation mais recente fornecido nas instruções de configuração da rede. Para ter mais informações, consulte Configurar pré-requisitos para modificar uma implantação single-AZ para multi-AZ usando o CloudFormation.

Se você optar por configurar recursos manualmente, realize as tarefas a seguir.

  1. Abra o console da Amazon VPC em https://console.aws.amazon.com/vpc/.

  2. Selecione Endpoint. Aparecerá a página Create Endpoint (Criar endpoint).

  3. Em Categoria do serviço, selecione Serviços da AWS.

  4. Em Serviços, pesquise SQS

  5. Na VPC, selecione a VPC em que sua instância de banco de dados do RDS Custom para SQL Server é implantada.

  6. Em Sub-redes, selecione as sub-redes em que sua instância de banco de dados do RDS Custom para SQL Server está implantada.

  7. Em Grupos de segurança, selecione o grupo -vpc-endpoint-sg.

  8. Em Política, selecione Personalizada

  9. Em sua política personalizada, substitua a partição da AWS, a região, o accountId e o perfil da instância do IAM por seus próprios valores.

    { "Version": "2012-10-17", "Statement": [ { "Condition": { "StringLike": { "aws:ResourceTag/AWSRDSCustom": "custom-sqlserver" } }, "Action": [ "SQS:SendMessage", "SQS:ReceiveMessage", "SQS:DeleteMessage", "SQS:GetQueueUrl" ], "Resource": "arn:${AWS::Partition}:sqs:${AWS::Region}:${AWS::AccountId}:do-not-delete-rds-custom-*", "Effect": "Allow", "Principal": { "AWS": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/{IAM-Instance-role}" } } ] }
  10. Atualize o Perfil da instância com permissão para acessar o Amazon SQS. Substitua a partição da AWS, a região e o accountId por seus próprios valores.

    { "Sid": "SendMessageToSQSQueue", "Effect": "Allow", "Action": [ "SQS:SendMessage", "SQS:ReceiveMessage", "SQS:DeleteMessage", "SQS:GetQueueUrl" ], "Resource": [ { "Fn::Sub": "arn:${AWS::Partition}:sqs:${AWS::Region}:${AWS::AccountId}:do-not-delete-rds-custom-*" } ], "Condition": { "StringLike": { "aws:ResourceTag/AWSRDSCustom": "custom-sqlserver" } } } >
  11. Atualize as regras de entrada e saída do grupo de segurança do Amazon RDS para permitir a porta 1120.

    1. Em Grupos de segurança, selecione o grupo -rds-custom-instance-sg.

    2. Em Regras de entrada, crie uma regra TCP personalizada para permitir a porta 1120 do grupo de origem -rds-custom-instance-sg.

    3. Em Regras de saída, crie uma regra TCP personalizada a fim de permitir a porta 1120 ao grupo de destino -rds-custom-instance-sg.

  12. Adicione uma regra à sua lista de controle de acesso (ACL) de rede privada que permita portas TCP 0-65535 para a sub-rede de origem da instância de banco de dados.

    nota

    Ao criar uma regra de entrada e uma regra de saída, anote o maior número de regra existente. As novas regras que você criar devem ter um número de regra menor que 100 e não corresponder a nenhum número de regra existente.

    1. Em ACLs de rede, selecione o grupo -private-network-acl.

    2. Em Regras de entrada, crie uma regra Todas TCP para permitir portas TCP 0-65535 com uma fonte de privatesubnet1 e privatesubnet2.

    3. Em Regras de saída, crie uma regra Todas TCP para permitir portas TCP 0-65535 para privatesubnet1 e privatesubnet2 de destino.

Modifique usando o console do RDS, a CLI da AWS ou a API do RDS.

Depois de concluir os pré-requisitos, você pode modificar uma instância de banco de dados do RDS Custom para SQL Server de uma implantação single-AZ para multi-AZ usando o console do RDS, a CLI da AWS ou a API do RDS.

Como modificar uma implantação do RDS Custom para SQL Server de single-AZ para multi-AZ
  1. Faça login no AWS Management Console e abra o console do Amazon RDS em https://console.aws.amazon.com/rds/.

  2. No console do Amazon RDS, escolha Databases (Bancos de dados).

    O painel Databases (Bancos de dados) é exibido.

  3. Selecione a instância de banco de dados do RDS Custom para SQL Server que você deseja modificar.

  4. Em Ações, selecione Converter em implantação multi-AZ.

  5. Na página Confirmação, selecione Aplicar imediatamente para aplicar as alterações imediatamente. A escolha dessa opção não causa tempo de inatividade, mas pode causar um possível impacto na performance. Você também pode optar por aplicar a atualização durante a próxima janela de manutenção. Para ter mais informações, consulte Configuração de agendamento de modificações.

  6. Na página Confirmação, selecione Converter em multi-AZ.

Para converter em uma implantação de instância de banco de dados multi-AZ usando oAWS CLI, chame o comando modify-db-instance e defina a opção --multi-az. Especifique o identificador da instância de banco de dados e os valores para as outras opções que deseja modificar. Para ter mais informações sobre cada opção, consulte Configurações para instâncias de banco de dados.

exemplo

O código a seguir modifica mycustomdbinstance incluindo a opção --multi-az. As alterações serão aplicadas durante a janela de manutenção usando --no-apply-immediately. Use --apply-immediately para aplicar as alterações imediatamente. Para ter mais informações, consulte Configuração de agendamento de modificações.

Para Linux, macOS ou Unix:

aws rds modify-db-instance \ --db-instance-identifier mycustomdbinstance \ --multi-az \ --no-apply-immediately

Para Windows:

aws rds modify-db-instance ^ --db-instance-identifier mycustomdbinstance ^ --multi-az \ ^ --no-apply-immediately

Para converter em uma implantação de instância de banco de dados multi-AZ com a API do RDS, chame a operação ModifyDBInstance e defina o parâmetro MultiAZ como verdadeiro.

Modificar uma implantação do RDS Custom para SQL Server de uma implantação multi-AZ para single-AZ

É possível modificar uma instância de banco de dados do RDS Custom para SQL Server de uma implantação multi-AZ para single-AZ.

Como modificar uma instância de banco de dados do RDS Custom para SQL Server de uma implantação multi-AZ para single-AZ.
  1. Faça login no AWS Management Console e abra o console do Amazon RDS em https://console.aws.amazon.com/rds/.

  2. No console do Amazon RDS, escolha Databases (Bancos de dados).

    O painel Databases (Bancos de dados) é exibido.

  3. Selecione a instância de banco de dados do RDS Custom para SQL Server que você deseja modificar.

  4. Em Implantação multi-AZ, selecione Não.

  5. Na página Confirmação, selecione Aplicar imediatamente para aplicar as alterações imediatamente. A escolha dessa opção não causa tempo de inatividade, mas pode causar um possível impacto na performance. Você também pode optar por aplicar a atualização durante a próxima janela de manutenção. Para ter mais informações, consulte Configuração de agendamento de modificações.

  6. Na página Confirmação, selecione Modificar instância de banco de dados.

Para modificar uma implantação multi-AZ para single-AZ usando oAWS CLI, chame o comando modify-db-instance e inclua a opção --no-multi-az. Especifique o identificador da instância de banco de dados e os valores para as outras opções que deseja modificar. Para ter mais informações sobre cada opção, consulte Configurações para instâncias de banco de dados.

exemplo

O código a seguir modifica mycustomdbinstance incluindo a opção --no-multi-az. As alterações serão aplicadas durante a janela de manutenção usando --no-apply-immediately. Use --apply-immediately para aplicar as alterações imediatamente. Para ter mais informações, consulte Configuração de agendamento de modificações.

Para Linux, macOS ou Unix:

aws rds modify-db-instance \ --db-instance-identifier mycustomdbinstance \ --no-multi-az \ --no-apply-immediately

Para Windows:

aws rds modify-db-instance ^ --db-instance-identifier mycustomdbinstance ^ --no-multi-az \ ^ --no-apply-immediately

Para modificar uma implantação multi-AZ para single-AZ usando a API do RDS, chame a operação ModifyDBInstance e defina o parâmetro MultiAZ como false.

Processo de failover para uma implantação multi-AZ do RDS Custom para SQL Server

Se uma interrupção planejada ou não planejada da sua instância de banco de dados for o resultado de um defeito de infraestrutura, o Amazon RDS alternará automaticamente para uma réplica em espera em outra zona de disponibilidade se você tiver ativado o multi-AZ. O tempo de conclusão do failover depende da atividade do banco de dados e de outras condições no momento em que a instância de banco de dados primária se tornou indisponível. Em geral, os tempos de failover variam de 60 a 120 segundos. No entanto, transações grandes ou um processo de recuperação longo podem aumentar o tempo de failover. Quando o failover é concluído, o console do RDS pode levar mais um tempo para mostrar a nova zona de disponibilidade.

nota

Você pode forçar um failover manualmente ao reinicializar uma instância de banco de dados com failover. Para ter mais informações sobre como reinicializar uma instância de banco de dados, consulte Reinicializar uma instância de banco de dados .

O Amazon RDS processa os failovers automaticamente para que você possa retomar as operações de banco de dados o mais rápido possível e sem intervenção administrativa. A instância de banco de dados principal muda automaticamente para a réplica em espera se alguma das condições descritas na tabela a seguir ocorrer. Os motivos do failover podem ser visualizados no log de eventos do RDS.

Motivo do failover Descrição

The operating system for the RDS Custom for SQL Server Multi-AZ DB instance is being patched in an offline operation

Um failover foi acionado durante a janela de manutenção para um patch de SO ou uma atualização de segurança. Para ter mais informações, consulte Manutenção de uma instância de banco de dados.

The primary host of the RDS Custom for SQL Server Multi-AZ DB instance is unhealthy.

A implantação de instância de banco de dados multi-AZ detectou uma instância de banco de dados primária danificada e executou failover.

The primary host of the RDS Custom for SQL Server Multi-AZ DB instance is unreachable due to loss of network connectivity.

O monitoramento do RDS detectou uma falha de alcançabilidade de rede na instância de banco de dados principal e acionou um failover.

The RDS Custom for SQL Server Multi-AZ DB instance was modified by the customer.

Uma modificação da instância de banco de dados acionou um failover. Para ter mais informações, consulte Modificar uma instância de banco de dados do RDS Custom for SQL Server.

The storage volume of the primary host of the RDS Custom for SQL Server Multi-AZ DB instance experienced a failure.

A implantação de instância de banco de dados multi-AZ detectou um problema de armazenamento na instância de banco de dados primária e executou o failover.

The user requested a failover of the RDS Custom for SQL Server Multi-AZ DB instance.

A instância de banco de dados multi-AZ do RDS Custom para SQL Server foi reinicializada com failover. Para ter mais informações, consulte Reinicializar uma instância de banco de dados .

The RDS Custom for SQL Server Multi-AZ primary DB instance is busy or unresponsive.

A instância de banco de dados principal não responde. Recomendamos tentar as seguintes etapas:

Para determinar se ocorreu failover na instância de banco de dados multi-AZ, faça o seguinte:

  • Configure assinaturas de eventos de banco de dados para notificar você por e-mail ou SMS de que um failover foi iniciado. Para ter mais informações sobre eventos do , consulte Trabalhar com a notificação de eventos do Amazon RDS.

  • Visualize seus eventos de banco de dados usando o console do RDS ou operações de API.

  • Visualize o estado atual da implantação de instância de banco de dados multi-AZ do RDS Custom para SQL Server usando o console do RDS, a CLI ou operações de API.

Configurações de tempo de vida (TTL) com aplicações usando uma implantação multi-AZ do RDS Custom para SQL Server

O mecanismo de failover modifica automaticamente o registro de Domain Name System (DNS) da instância de banco de dados para apontar para a instância de banco de dados em espera. Como resultado, você precisará restabelecer todas as conexões existentes para sua instância de banco de dados. Garanta que qualquer valor de configuração de tempo de vida útil do cache DNS (TTL) seja baixo e confirme que sua aplicação não armazene o DNS em cache por um período prolongado. Um valor alto de TTL pode impedir que sua aplicação se reconecte rapidamente à instância de banco de dados após o failover.