

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

# Remover um agente de um cluster do Amazon MSK
<a name="msk-remove-broker"></a>

Use esta operação do Amazon MSK quando quiser remover agentes dos clusters provisionados do Amazon Managed Streaming for Apache Kafka (MSK). Você pode reduzir a capacidade de armazenamento e computação do cluster removendo conjuntos de agentes, sem impacto na disponibilidade, risco de durabilidade de dados ou interrupção nas aplicações de fluxo de dados.

Você pode adicionar mais agentes ao cluster para lidar com o aumento do tráfego e remover agentes quando o tráfego diminuir. Com a capacidade de adição e remoção de agentes, você pode utilizar melhor a capacidade do cluster e otimizar os custos de infraestrutura do MSK. A remoção do agente lhe dá o controle no nível do agente sobre a capacidade existente do cluster para atender às suas necessidades de workload e evitar a migração para outro cluster.

Use o AWS console, a interface de linha de comando (CLI), o SDK ou CloudFormation para reduzir o número de agentes do seu cluster provisionado. O MSK escolhe os agentes que não têm nenhuma partição neles (exceto os tópicos de canário) e impede que as aplicações produzam dados para esses agentes, ao mesmo tempo que os remove com segurança do cluster.

Você deve remover um agente por zona de disponibilidade, caso queira reduzir o armazenamento e a computação de um cluster. Por exemplo, você pode remover dois agentes de um cluster de duas zonas de disponibilidade, ou três agentes de um cluster de três zonas de disponibilidade em uma única operação de remoção de agentes.

Para obter informações sobre como rebalancear as partições depois de remover agentes de um cluster, consulte [Reatribuir partições](bestpractices.md#bestpractices-balance-cluster).

Você pode remover os agentes de todos os clusters provisionados do MSK baseados em M5 e M7g, independentemente do tamanho da instância.

A remoção do broker é suportada nas versões 2.8.1 e superiores do Kafka, inclusive nos KRaft clusters de modo.

**Topics**
+ [Remover as partições dos agentes](#msk-remove-broker-partitions)
+ [Remover um agente com o console](#msk-remove-broker-console)
+ [Remover um agente com a CLI](#msk-remove-broker-cli)
+ [Remover um agente com a API](#msk-remove-broker-api)

## Prepare-se para remover os agentes ao remover todas as partições
<a name="msk-remove-broker-partitions"></a>

Antes de iniciar o processo de remoção do agente, primeiro mova todas as partições, exceto aquelas dos tópicos `__amazon_msk_canary` e `__amazon_msk_canary_state` dos agentes que você planeja remover. Trata-se de tópicos internos que o Amazon MSK cria para métricas de integridade e diagnóstico do cluster.

Você pode usar o Kafka admin APIs ou o Cruise Control para mover partições para outros corretores que você pretende manter no cluster. Consulte [Reatribuir partições](https://docs.aws.amazon.com/msk/latest/developerguide/bestpractices.html#bestpractices-balance-cluster).

### Exemplo de processo para remover partições
<a name="msk-remove-broker-partitions-example"></a>

Esta seção é um exemplo de como remover partições do agente que você pretende remover. Suponha que você tenha um cluster com seis agentes, dois agentes em cada AZ, e ele tenha quatro tópicos:
+ `__amazon_msk_canary`
+ `__consumer_offsets`
+ `__amazon_msk_connect_offsets_my-mskc-connector_12345678-09e7-c657f7e4ff32-2`
+ `msk-brk-rmv`

1. Crie uma máquina cliente conforme descrito em [Criar uma máquina cliente](https://docs.aws.amazon.com/msk/latest/developerguide/create-client-machine.html).

1. Depois de configurar a máquina cliente, execute o comando a seguir para listar todos os tópicos disponíveis no cluster.

   ```
   ./bin/kafka-topics.sh --bootstrap-server “CLUSTER_BOOTSTRAP_STRING” --list
   ```

   Neste exemplo, vemos quatro nomes de tópicos: `__amazon_msk_canary`, `__consumer_offsets`, `__amazon_msk_connect_offsets_my-mskc-connector_12345678-09e7-c657f7e4ff32-2` e `msk-brk-rmv`.

1. Crie um arquivo json chamado `topics.json` na máquina cliente e adicione todos os nomes dos tópicos do usuário, como no exemplo de código a seguir. Você não precisa incluir o nome do tópico `__amazon_msk_canary`, pois é um tópico gerenciado pelo serviço que será movido automaticamente quando necessário.

   ```
   {
   "topics": [
   {"topic": "msk-brk-rmv"},
   {"topic": "__consumer_offsets"},
   {"topic": "__amazon_msk_connect_offsets_my-mskc-connector_12345678-09e7-c657f7e4ff32-2"}
   ],
   "version":1
   }
   ```

1. Execute o comando a seguir para gerar uma proposta para mover partições para apenas três agentes dos seis agentes no cluster.

   ```
   ./bin/kafka-reassign-partitions.sh --bootstrap-server “CLUSTER_BOOTSTRAP_STRING” --topics-to-move-json-file topics.json --broker-list 1,2,3 --generate
   ```

1. Crie um arquivo chamado `reassignment-file.json` e copie a `proposed partition reassignment configuration` que você obteve do comando acima.

1. Execute o comando a seguir para mover as partições que você especificou em `reassignment-file.json`.

   ```
   ./bin/kafka-reassign-partitions.sh --bootstrap-server “CLUSTER_BOOTSTRAP_STRING” --reassignment-json-file reassignment-file.json --execute
   ```

   A saída será semelhante à seguinte:

   ```
   Successfully started partition reassignments for morpheus-test-topic-1-0,test-topic-1-0
   ```

1. Execute o comando a seguir para verificar se todas as partições foram movidas.

   ```
   ./bin/kafka-reassign-partitions.sh --bootstrap-server “CLUSTER_BOOTSTRAP_STRING” --reassignment-json-file reassignment-file.json --verify
   ```

   A saída será semelhante à seguinte. Monitore o status até que todas as partições nos tópicos solicitados tenham sido reatribuídas com êxito:

   ```
   Status of partition reassignment:
   Reassignment of partition msk-brk-rmv-0 is completed.
   Reassignment of partition msk-brk-rmv-1 is completed.
   Reassignment of partition __consumer_offsets-0 is completed.
   Reassignment of partition __consumer_offsets-1 is completed.
   ```

1. Quando o status indicar que a reatribuição de partição de cada partição foi concluída, monitore as métricas `UserPartitionExists` por cinco minutos para garantir que elas exibam `0` para os agentes dos quais você moveu as partições. Depois de confirmar essa questão, você pode prosseguir para remover o agente do cluster.

## Remover um corretor com o AWS Management Console
<a name="msk-remove-broker-console"></a>

**Para remover corretores com o AWS Management Console**

1. Abra o console do Amazon MSK em [https://console.aws.amazon.com/msk/](https://console.aws.amazon.com/msk/).

1. Escolha o cluster do MSK que contém os agentes que deseja remover.

1. Na página de detalhes do cluster, escolha o botão **Ações** e selecione a opção **Editar número de agentes**.

1. Insira o número de agentes que você deseja que o cluster tenha por zona de disponibilidade. O console resume o número de agentes nas zonas de disponibilidade que serão removidos. Certifique-se de que é isso que você deseja.

1. Escolha **Salvar alterações**.

Para evitar a remoção acidental de um agente, o console solicita que você confirme que deseja excluir agentes.

## Remova um corretor com a AWS CLI
<a name="msk-remove-broker-cli"></a>

Execute o comando a seguir, substituindo `ClusterArn` pelo nome do recurso da Amazon (ARN) que você obteve quando criou o cluster. Se você não tiver o ARN do cluster, poderá encontrá-lo listando todos os clusters. Para obter mais informações, verifique [Lista de clusters do Amazon MSK](https://docs.aws.amazon.com/msk/latest/developerguide/msk-list-clusters.html). Substitua `Current-Cluster-Version` pela versão atual do cluster. 

**Importante**  
As versões de cluster não são inteiros simples. Para encontrar a versão atual do cluster, use a [DescribeCluster](https://docs.aws.amazon.com/msk/1.0/apireference/clusters-clusterarn.html#DescribeCluster)operação ou o comando [AWS CLI describe-cluster](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/kafka/describe-cluster.html). Uma versão de exemplo é `KTVPDKIKX0DER`.

O *Target-Number-of-Brokers* parâmetro representa o número total de nós de intermediários que você deseja que o cluster tenha quando essa operação for concluída com êxito. O valor especificado *Target-Number-of-Brokers* deve ser um número inteiro menor que o número atual de corretores no cluster. Também deve ser um múltiplo do número de zonas de disponibilidade.

```
aws kafka update-broker-count --cluster-arn ClusterArn --current-version Current-Cluster-Version --target-number-of-broker-nodes Target-Number-of-Brokers
```

A saída dessa operação `update-broker-count` é semelhante ao seguinte JSON.

```
{
"ClusterOperationInfo": {
"ClientRequestId": "c0b7af47-8591-45b5-9c0c-909a1a2c99ea",
        "ClusterArn": "arn:aws:kafka:us-east-1:012345678012:cluster/exampleClusterName/abcdefab-1234-abcd-5678-cdef0123ab01-2",
        "CreationTime": "2019-09-25T23:48:04.794Z",
        "OperationArn": "arn:aws:kafka:us-east-1:012345678012:cluster-operation/exampleClusterName/abcdefab-1234-abcd-5678-cdef0123ab01-2/0123abcd-abcd-4f7f-1234-9876543210ef",
        "OperationState": "UPDATE_COMPLETE",
        "OperationType": "DECREASE_BROKER_COUNT",
        "SourceClusterInfo": {
"NumberOfBrokerNodes": 12
        },
        "TargetClusterInfo": {
"NumberOfBrokerNodes": 9
        }
    }
}
```

Nesta saída, `OperationType` é `DECREASE_BROKER_COUNT`. Se `OperationState` tiver o valor `UPDATE_IN_PROGRESS`, aguarde um pouco e execute o comando `describe-cluster-operation` novamente.

## Remover um corretor com a AWS API
<a name="msk-remove-broker-api"></a>

Para remover corretores em um cluster usando a API, consulte [UpdateBrokerCount](https://docs.aws.amazon.com/msk/1.0/apireference/clusters-clusterarn-nodes-count.html#clusters-clusterarn-nodes-count-url)a Referência da API *Amazon Managed Streaming for Apache Kafka*.