

# Modificar uma implantação single-AZ do RDS Custom para SQL Server para uma implantação multi-AZ
<a name="custom-sqlserver-multiaz.modify-saztomaz"></a>

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

**nota**  
Se você criou a instância de banco de dados do RDS Custom para SQL Server antes de 29 de agosto de 2024, aplique o patch para a versão secundária mais recente antes de modificá-la.  
Para instâncias do SQL Server 2019, atualize a versão do mecanismo de banco de dados para `15.00.4410.1.v1` ou posterior.
Para instâncias do SQL Server 2022, atualize a versão do mecanismo de banco de dados para `16.00.4150.1.v1` ou posterior.

**Topics**
+ [Configurar pré-requisitos para modificar uma implantação single-AZ para multi-AZ usando o CloudFormation](#custom-sqlserver-multiaz.modify-saztomaz-prereqs.cf)
+ [Configurar pré-requisitos para modificar uma implantação single-AZ para multi-AZ manualmente](#custom-sqlserver-multiaz.modify-saztomaz-prereqs.manual)
+ [Modifique usando o console do RDS, a CLI da AWS ou a API do RDS.](#custom-sqlserver-multiaz.modify-saztomaz-afterprereqs)

## Configurar pré-requisitos para modificar uma implantação single-AZ para multi-AZ usando o CloudFormation
<a name="custom-sqlserver-multiaz.modify-saztomaz-prereqs.cf"></a>

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](https://console.aws.amazon.com/cloudformation/).

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

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

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

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

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

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

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

1. Escolha **Próximo**.

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

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

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

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

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

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

   1. Em **Recursos**, marque a caixa de seleção ****Eu confirmo que o CloudFormation pode criar os recursos do IAM com nomes personalizados****.

   1. Selecione **Enviar**.

1. 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
<a name="custom-sqlserver-multiaz.modify-saztomaz-prereqs.manual"></a>

**Importante**  
Para simplificar a configuração, recomendamos que você use o arquivo de modelo 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](#custom-sqlserver-multiaz.modify-saztomaz-prereqs.cf).

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/](https://console.aws.amazon.com/vpc/).

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

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

1. Em **Serviços**, pesquise *SQS*

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

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

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

1. Em **Política**, selecione **Personalizada**

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

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Condition": {
                   "StringLike": {
                       "aws:ResourceTag/AWSRDSCustom": "custom-sqlserver"
                   }
               },
               "Action": [
                   "SQS:SendMessage",
                   "SQS:ReceiveMessage",
                   "SQS:DeleteMessage",
                   "SQS:GetQueueUrl"
               ],
               "Resource": "arn:aws:sqs:us-east-1:111122223333:do-not-delete-rds-custom-*",
               "Effect": "Allow",
               "Principal": {
                   "AWS": "arn:aws:iam::111122223333:role/{IAM-Instance-role}"
               }
           }
       ]
   }
   ```

------

1.  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"
         }
       }
     } 
                           >
   ```

1. 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*.

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

   1. 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*.

1. 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*.

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

   1. 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.
<a name="custom-sqlserver-multiaz.modify-saztomaz-afterprereqs"></a>

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.

### Console
<a name="custom-sqlserver-multiaz.modify-saztomaz.Console"></a>

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

1. Faça login no Console de gerenciamento da AWS e abra o console do Amazon RDS em [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

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

   O painel **Databases** (Bancos de dados) é exibido.

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

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

1. 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 [Usar a configuração de programação de modificações](USER_ModifyInstance.ApplyImmediately.md).

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

### AWS CLI
<a name="custom-sqlserver-multiaz.modify-saztomaz.CLI"></a>

Para converter em uma implantação de instância de banco de dados multi-AZ usando oAWS CLI, chame o comando [modify-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html) 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](USER_ModifyInstance.Settings.md). 

**Example**  
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 obter mais informações, consulte [Usar a configuração de programação de modificações](USER_ModifyInstance.ApplyImmediately.md).   
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
```

### API do RDS
<a name="custom-sqlserver-multiaz.modify-saztomaz.API"></a>

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](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBInstance.html) e defina o parâmetro `MultiAZ` como verdadeiro.