

# Implantação de serviços do Amazon ECS por meio da substituição de tarefas
<a name="deployment-type-ecs"></a>

Ao criar um serviço que usa o tipo de implantação *atualização cumulativa* (`ECS`), o agendador de serviços do Amazon ECS substitui as tarefas que estão em execução por novas tarefas. O número de tarefas que o Amazon ECS adiciona ou remove do serviço durante uma atualização contínua é controlado pela configuração de implantação do serviço. 

O Amazon ECS usa os seguintes parâmetros para determinar o número de tarefas:
+ O `minimumHealthyPercent` representa o limite inferior do número de tarefas que devem estar sendo executadas e íntegras para um serviço durante uma implantação incremental ou quando uma instância de contêiner está sendo drenada, como porcentagem do número desejado de tarefas para o serviço. Esse valor é arredondado para cima. Por exemplo, se a porcentagem mínima de integridade é `50` e a contagem de tarefas desejadas é quatro, o programador pode interromper duas tarefas existentes antes de iniciar duas novas tarefas. Da mesma forma, se a porcentagem mínima de integridade é 75% e a contagem de tarefas desejada é dois, o programador não pode parar quaisquer tarefas porque o valor resultante também é dois.
+ O `maximumPercent` representa o limite superior do número de tarefas que devem estar sendo executadas para um serviço durante uma implantação incremental ou quando uma instância de contêiner está sendo drenada, como porcentagem do número desejado de tarefas para um serviço. Esse valor é arredondado para baixo. Por exemplo, se a porcentagem máxima for `200` e a contagem de tarefas desejadas for quatro, o programador poderá iniciar quatro novas tarefas antes de interromper quatro tarefas existentes. Da mesma forma, se a porcentagem máxima de integridade é `125` e a contagem de tarefas desejada é três, o programador não pode iniciar quaisquer tarefas porque o valor resultante também é três.

Durante uma implantação incremental, quando a integridade das tarefas é perdida, o Amazon ECS as substitui para manter a definição `minimumHealthyPercent` do serviço e proteger a disponibilidade. As tarefas não íntegras são substituídas usando a mesma revisão de serviço à qual pertencem. Isso garante que a substituição de tarefas não íntegras na revisão de origem seja independente de falhas das tarefas na revisão de destino. Quando a definição `maximumPercent` permite, o programador inicia as tarefas de substituição antes de interromper as não íntegras. Se o parâmetro `maximumPercent` limitar o programador a iniciar uma tarefa de substituição primeiro, o programador interromperá uma tarefa não íntegra, uma de cada vez, para liberar capacidade antes de iniciar uma tarefa de substituição.

**Importante**  
Ao definir um percentual mínimo ou um percentual máximo de integridade, você deve garantir que o programador possa interromper ou iniciar pelo menos uma tarefa quando uma implantação for iniciada. Se seu serviço tiver uma implantação travada devido a uma configuração de implantação inválida, será enviada uma mensagem de evento de serviço. Para obter mais informações, consulte [O serviço (*service-name*) não conseguiu interromper ou iniciar tarefas durante uma implantação devido à configuração de implantação do serviço. Atualize o valor minimumHealthyPercent ou maximumPercent e tente novamente.](service-event-messages-list.md#service-event-messages-7).

As implantações contínuas têm dois métodos que fornecem uma maneira de identificar rapidamente quando uma implantação de serviço falhou:
+ [Como o disjuntor de implantação do Amazon ECS realiza a detecção de falhas](deployment-circuit-breaker.md)
+ [Como os alarmes do CloudWatch realizam a detecção de falhas de implantação do Amazon ECS](deployment-alarm-failure.md)

Os métodos podem ser usados separadamente ou em conjunto. Quando ambos os métodos são usados, a implantação é definida como falha assim que os critérios de falha de qualquer um dos métodos de falha são satisfeitos.

Siga as diretrizes a seguir para ajudar a determinar qual método será usado:
+ Disjuntor: use este método se quiser interromper uma implantação quando as tarefas não puderem ser iniciadas.
+ Alarmes do CloudWatch: use este método quando quiser interromper uma implantação com base nas métricas da aplicação.

Ambos os métodos permitem a reversão para a revisão de serviço anterior.

## Resolução da imagem do contêiner
<a name="deployment-container-image-stability"></a>

Por padrão, o Amazon ECS resolve tags de imagem de contêiner especificadas na definição da tarefa para resumos de imagens de contêiner. Se você criar um serviço que executa e mantém uma única tarefa, essa tarefa será usada para estabelecer resumos de imagem para as imagens no contêiner. Se você criar um serviço que executa e mantém várias tarefas, a primeira tarefa iniciada pelo agendador de serviços durante a implantação será usada para estabelecer resumos de imagens para os contêineres nas tarefas.

Se três ou mais tentativas de estabelecer os resumos de imagens no contêiner falharem, a implantação continuará sem a resolução do resumo da imagem. Se o disjuntor de implantação estiver habilitado, a implantação também falhará e será revertida.

Depois que os resumos de imagens no contêiner forem estabelecidos, o Amazon ECS usará os resumos para iniciar qualquer outra tarefa desejada e para qualquer atualização futura do serviço. Isso faz com que todas as tarefas em um serviço sempre executem imagens de contêiner idênticas, o que resultará na consistência de versões do seu software.

É possível configurar esse comportamento para cada contêiner em sua tarefa usando o parâmetro `versionConsistency` na definição do contêiner. Para obter mais informações, consulte [versionConsistency](task_definition_parameters.md#ContainerDefinition-versionconsistency).

**nota**  
Versões do Amazon ECS Agent anteriores à `1.31.0` não oferecem suporte à resolução de resumos de imagens. As versões do agente `1.31.0` a `1.69.0` oferecem suporte à resolução de resumos de imagens somente para imagens enviadas aos repositórios do Amazon ECR. As versões do agente `1.70.0` ou superiores oferecem suporte à resolução de resumos de imagens para todas as imagens. 
A versão mínima da plataforma Linux para o Fargate para resolução de resumos de imagens é `1.3.0`. A versão mínima da plataforma Windows para o Fargate para resolução de resumos de imagens é `1.0.0`.
O Amazon ECS não captura resumos de contêineres auxiliares gerenciados pelo Amazon ECS, como o agente de segurança do Amazon GuardDuty ou o proxy do Service Connect.
Para reduzir a latência potencial associada à resolução de imagens de contêineres em serviços com várias tarefas, execute o agente do Amazon ECS versão `1.83.0` ou superior em instâncias de contêiner do EC2. Para evitar latência potencial, especifique os resumos de imagens do contêiner na definição da tarefa.
Se você criar um serviço com uma contagem de tarefas desejada igual a zero, o Amazon ECS não poderá estabelecer resumos do contêiner até que você acione outra implantação do serviço com uma contagem de tarefas desejada maior que zero.
Para estabelecer resumos de imagens atualizados, é possível forçar uma nova implantação. Os resumos atualizados serão usados para iniciar novas tarefas e não afetará as tarefas já em execução. Para obter mais informações sobre forçar novas implantações, consulte [forceNewDeployment](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_UpdateService.html#ECS-UpdateService-request-forceNewDeployment) na *referência da API do Amazon ECS*.
Ao usar provedores de capacidade do EC2, se não houver capacidade suficiente para iniciar uma tarefa durante a implantação inicial, a consistência da versão do software poderá falhar. Para garantir que a consistência da versão seja mantida mesmo quando a capacidade é limitada, defina explicitamente `versionConsistency: "enabled"` na configuração do contêiner da definição de tarefas em vez de confiar no comportamento padrão. Isso faz com que o Amazon ECS espere até que a capacidade esteja disponível antes de continuar com a implantação.

# Práticas recomendadas para parâmetros de serviço do Amazon ECS
<a name="service-options"></a>

Para garantir que não haja tempo de inatividade da aplicação, o processo de implantação é o seguinte:

1. Inicie os novos contêineres de aplicações enquanto mantém os contêineres existentes em execução.

1. Verifique se os novos contêineres estão íntegros.

1. Interrompa os contêineres antigos.

 Dependendo da configuração de implantação e da quantidade de espaço livre e não reservado no cluster, podem ser necessárias várias rodadas para concluir a substituição de todas as tarefas antigas por novas. 

Há duas opções de configuração do serviço que podem ser usadas para modificar o número:
+ `minimumHealthyPercent`: 100% (padrão)

  O limite inferior do número de tarefas do serviço que devem permanecer no estado `RUNNING` durante uma implantação. Essa é uma porcentagem da `desiredCount` arredondada para o número inteiro superior mais próximo. Esse parâmetro permite implantar sem usar a capacidade adicional de cluster.
+ `maximumPercent`: 200% (padrão)

   O limite superior do número de tarefas do serviço que são permitidas no estado `RUNNING` ou `PENDING` durante uma implantação. Essa é uma porcentagem da `desiredCount` arredondada para o número inteiro inferior mais próximo.

**Exemplo: opções de configuração padrão**

Considere o serviço a seguir, que tem seis tarefas, implantadas em um cluster com espaço para oito tarefas no total. As opções de configuração padrão do serviço não permitem que a implantação fique abaixo de 100% das seis tarefas desejadas.

O processo de implantação é o seguinte:

1. O objetivo é substituir as seis tarefas.

1. O programador inicia duas novas tarefas porque as configurações padrão exigem que haja seis tarefas em execução.

   Agora há seis tarefas existentes e duas tarefas novas.

1. O programador interrompe duas das tarefas existentes.

   Agora há quatro tarefas existentes e duas novas.

1. O programador inicia duas tarefas novas adicionais.

   Agora há quatro tarefas existentes e quatro tarefas novas.

1. O programador encerra duas das tarefas existentes.

   Agora há duas tarefas existentes e quatro novas.

1. O programador inicia duas tarefas novas adicionais.

   Agora há duas tarefas existentes e seis tarefas novas.

1. O programador encerra as duas tarefas existentes restantes.

   Agora há seis tarefas novas.

No exemplo acima, ao usar os valores padrão das opções, há uma espera de 2,5 minutos para cada nova tarefa iniciada. Além disso, o balanceador de carga pode ter que esperar cinco minutos para que a tarefa antiga seja encerrada. 

**Exemplo: Modificar `minimumHealthyPercent`**

Você pode acelerar a implantação definindo o valor do `minimumHealthyPercent` como 50%.

Considere o serviço a seguir, que tem seis tarefas, implantadas em um cluster com espaço para oito tarefas no total. O processo de implantação é o seguinte:

1. O objetivo é substituir seis tarefas.

1. O programador interrompe três das tarefas existentes. 

   Ainda há três tarefas existentes em execução que atendem ao valor de `minimumHealthyPercent`.

1. O programador inicia cinco tarefas novas.

   Há três tarefas existentes e cinco tarefas novas.

1. O programador interrompe as três tarefas existentes restantes.

   Há cinco novas tarefas

1. O programador inicia as tarefas novas finais.

   Há seis tarefas novas.

**Exemplo: modificar o espaço livre do cluster**

Você também pode adicionar mais espaço livre para executar tarefas adicionais. 

Considere o serviço a seguir, que tem seis tarefas, implantadas em um cluster com espaço para dez tarefas no total. O processo de implantação é o seguinte:

1. O objetivo é substituir as tarefas existentes.

1. O programador interrompe três das tarefas existentes.

   Há três tarefas existentes.

1. O programador inicia seis tarefas novas.

   Há três tarefas existentes e seis tarefas novas.

1. O programador interrompe as três tarefas existentes.

   Há seis tarefas novas.

**Recomendações**

Use os valores a seguir nas opções de configuração do serviço quando as tarefas estiverem ociosas por algum tempo e não tiverem uma alta taxa de utilização.
+ `minimumHealthyPercent`: 50%
+ `maximumPercent`: 200% 

# Criação de uma implantação de atualização contínua do Amazon ECS
<a name="create-service-console-v2"></a>

Crie um serviço para executar e manter simultaneamente um número especificado de instâncias de uma definição de tarefa em um cluster. Se uma das suas tarefas falhar ou for interrompida, o programador de serviços do Amazon ECS executará outra instância da sua definição de tarefa para substituí-la. Isso ajuda a manter o número desejado de tarefas no serviço.

Escolha os seguintes parâmetros de configuração antes de criar um serviço:
+ Há duas opções de computação que distribuem as tarefas.
  + Uma **estratégia de provedor de capacidade** faz com que o Amazon ECS distribua as tarefas em um ou entre vários provedores de capacidade. 

    Para executar suas workloads nas instâncias gerenciadas do Amazon ECS, use a opção de estratégia do provedor de capacidade.
  + Um **tipo de execução** faz com que o Amazon ECS inicie as tarefas diretamente no Fargate ou nas instâncias do EC2 registradas nos seus clusters.

    Para executar suas workloads nas instâncias gerenciadas do Amazon ECS, use a opção de estratégia do provedor de capacidade.
+ Definições de tarefa que usam o modo de rede `awsvpc` ou serviços configurados para usar um balanceador de carga devem ter uma configuração de rede. Por padrão, o console seleciona a Amazon VPC padrão juntamente com todas as sub-redes e o grupo de segurança padrão na Amazon VPC padrão. 
+ A estratégia padrão de posicionamento de tarefas distribui as tarefas uniformemente nas zonas de disponibilidade. 

  Recomendamos usar o rebalanceamento de zonas de disponibilidade para ajudar a garantir a alta disponibilidade do seu serviço. Para obter mais informações, consulte [Balancear um serviço do Amazon ECS entre zonas de disponibilidade](service-rebalancing.md).
+ Quando você usa o **Launch Type** (Tipo de inicialização) para a implantação do serviço, por padrão, o serviço começa nas sub-redes da VPC do cluster.
+ Para **capacity provider strategy** (estratégia de provedor de capacidade), por padrão, o console seleciona uma opção de computação. Veja, a seguir, a descrição da ordem que o console usa para selecionar um padrão:
  + Se o cluster tiver uma estratégia padrão de provedor de capacidade definida, ela será selecionada.
  + Se o cluster não tiver uma estratégia de provedor de capacidade padrão definida, mas você tiver os provedores de capacidade do Fargate adicionados ao cluster, será selecionada uma estratégia de provedor de capacidade personalizada que use o provedor de capacidade do `FARGATE`.
  + Se o cluster não tiver uma estratégia de provedor de capacidade padrão definida, mas você tiver um ou mais provedores de capacidade do grupo do Auto Scaling adicionados ao cluster, será selecionada a opção **Usar personalizada (Avançado)** e a estratégia precisará ser definida manualmente.
  + Se o cluster não tiver uma estratégia de provedor de capacidade padrão definida e nenhum provedor de capacidade for adicionado ao cluster, será selecionado o tipo de inicialização do Fargate.
+ As opções padrão de detecção de falhas de implantação são usar a opção **Disjuntor de implantação do Amazon ECS** com a opção **Reverter em caso de falhas**.

  Para obter mais informações, consulte [Como o disjuntor de implantação do Amazon ECS realiza a detecção de falhas](deployment-circuit-breaker.md).
+ Decida se você deseja que o Amazon ECS aumente ou diminua automaticamente o número de tarefas desejadas no serviço. Para mais informações, consulte ., [Como escalar automaticamente o serviço do Amazon ECS](service-auto-scaling.md).
+ Se você precisar que uma aplicação se conecte a outras aplicações executadas no Amazon ECS, determine a opção mais adequada à sua arquitetura. Para obter mais informações, consulte [Interconexão de serviços do Amazon ECS](interconnecting-services.md). 
+ Quando você cria um serviço que usa o disjuntor do Amazon ECS, o Amazon ECS cria uma implantação e uma revisão do serviço. Esses recursos permitem que você visualize informações detalhadas sobre o histórico de serviços. Para obter mais informações, consulte [Visualize o histórico de serviços usando implantações de serviços do Amazon ECS](service-deployment.md).

  Para obter informações sobre como criar um serviço usando a AWS CLI, consulte [https://docs.aws.amazon.com/cli/latest/reference/ecs/create-service.html](https://docs.aws.amazon.com/cli/latest/reference/ecs/create-service.html) na *Referência da AWS Command Line Interface*.

  Para obter informações sobre como criar um serviço usando o AWS CloudFormation, consulte [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-service.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-service.html) no *Guia do usuário do AWS CloudFormation*.

## Criar um serviço com as opções padrão
<a name="create-default-service"></a>

É possível usar o console para criar e implantar um serviço rapidamente. O serviço conta com a seguinte configuração:
+ É implantado na VPC e nas sub-redes associadas ao cluster
+ Implanta uma tarefa
+ Usa a implantação contínua
+ Usa a estratégia de provedor de capacidade com o provedor de capacidade padrão
+ Usa o disjuntor de implantação para detectar falhas e define a opção de reverter automaticamente a implantação em caso de falha

Para implantar um serviço usando os parâmetros padrão, siga estas etapas.

**Para criar um serviço (console do Amazon ECS)**

1. Abra o console em [https://console.aws.amazon.com/ecs/v2](https://console.aws.amazon.com/ecs/v2).

1. Na página de navegação, escolha **Clusters**.

1. Na página **Clusters**, selecione o cluster no qual o serviço será criado.

1. Na guia **Services** (Serviços), escolha **Create** (Criar).

   A página **Criar pilha** é exibida.

1. Em **Detalhes do serviço**, faça o seguinte:

   1. Em **Definição de tarefa**, insira a família e a revisão das definições de tarefa a serem usadas.

   1. Em **Service name** (Nome do serviço), insira um nome para o serviço.

1. Para usar o ECS Exec para depurar o serviço, em **Solucionar problemas de configuração**, selecione **Ativar o ECS Exec**.

1. Em **Configuração de implantação**, faça o seguinte:

   1. Em **Desired tasks** (Tarefas desejadas), insira o número de tarefas que serão iniciadas e mantidas no serviço.

1. (Opcional) Para ajudar a identificar seu serviço e tarefas, expanda a seção **Tags** (Etiquetas) e configure suas etiquetas.

   Para que o Amazon ECS marque automaticamente todas as tarefas recém-iniciadas com o nome do cluster e as tags de definição de tarefa, selecione **Turn on Amazon ECS managed tags** (Ativar tags gerenciadas pelo Amazon ECS) e depois **Definições de tarefas**.

   Para que o Amazon ECS marque automaticamente todas as tarefas recém-iniciadas com o nome do cluster e as tags de serviços, selecione **Turn on Amazon ECS managed tags** (Ativar tags gerenciadas pelo Amazon ECS) e depois **Definições de tarefas**.

   Adicione ou remova uma tag.
   + [Adicionar uma etiqueta] Escolha **Add tag** (Adicionar etiqueta) e faça o seguinte:
     + Em **Chave**, insira o nome da chave.
     + Em **Valor** insira o valor da chave.
   + [Remover uma tag] Ao lado da tag, escolha **Remove tag (Remover tag)**.

## Criar um serviço usando parâmetros definidos
<a name="create-custom-service"></a>

Para criar um serviço usando os parâmetros definidos, siga estas etapas.

**Para criar um serviço (console do Amazon ECS)**

1. Abra o console em [https://console.aws.amazon.com/ecs/v2](https://console.aws.amazon.com/ecs/v2).

1. Determine o recurso no qual você inicia o serviço.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/AmazonECS/latest/developerguide/create-service-console-v2.html)

   A página **Criar pilha** é exibida.

1. Em Detalhes do serviço, faça o seguinte:

   1. Em **Definição de tarefa**, insira a definição de tarefa a ser usada. Em seguida, em **Revisão**, escolha a revisão a ser usada.

   1. Em **Service name** (Nome do serviço), insira um nome para o serviço.

1. Em **Cluster existente**, escolha o cluster.

   Escolha **Criar cluster** para executar a tarefa em um novo cluster

1. Escolha como suas tarefas serão distribuídas em toda a infraestrutura do cluster. Expanda **Configuração de computação** e escolha sua opção.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/AmazonECS/latest/developerguide/create-service-console-v2.html)

1. Para usar o ECS Exec para depurar o serviço, em **Solucionar problemas de configuração**, selecione **Ativar o ECS Exec**.

1. Em **Configuração de implantação**, faça o seguinte:

   1. Em **Service type** (Tipo de serviço), escolha a estratégia de programação de serviços.
      + Para o programador implantar exatamente uma tarefa em cada instância de contêiner ativa que atende a todas as restrições de posicionamento de tarefas, escolha **Daemon**.
      + Para que o programador posicione e mantenha o número desejado de tarefas no cluster, escolha **Replica** (Réplica).

   1. Caso escolha **Replica** (Réplica), em **Desired tasks** (Tarefas desejadas), especifique o número de tarefas que serão iniciadas e mantidas no serviço.

   1. Se você escolheu **Replica**, para que o Amazon ECS monitore a distribuição de tarefas entre as zonas de disponibilidade e as redistribua quando houver um desequilíbrio, em **Rebalanceamento do serviço em zonas de disponibilidade**, selecione **Rebalanceamento do serviço em zonas de disponibilidade**.

   1. Em **Período de carência de verificação de integridade**, insira quanto tempo (em segundos) após o início de uma tarefa o agendador do serviço ignorará as verificações de integridade que forem não íntegras para o Elastic Load Balancing, a VPC Lattice e o contêiner. Se você não especificar um valor de período de tolerância de verificação de integridade, o valor padrão 0 será usado.

   1. Determine o tipo de implantação do seu serviço. Expanda **Opções de implantação** e especifique os parâmetros a seguir.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/AmazonECS/latest/developerguide/create-service-console-v2.html)

   1. Para configurar como o Amazon ECS detectará e lidará com falhas de implantação, expanda **Deployment failure detection**(Detecção de falhas de implantação) e escolha suas opções. 

      1. Para interromper uma implantação quando as tarefas não podem ser iniciadas, selecione **Use the Amazon ECS deployment circuit breaker)** (Usar o disjuntor de implantação do Amazon ECS.

         Para que o software reverta automaticamente a implantação para o último estado de implantação concluído quando o disjuntor de implantação definir a implantação para um estado de falha, selecione **Reverter em caso de falha**.

      1. Para interromper uma implantação com base nas métricas da aplicação, selecione **Usar alarmes do CloudWatch**. Em seguida, em **Nomes de alarmes do CloudWatch**, escolha os alarmes. Para criar um alarme, acesse o console do CloudWatch.

         Para que o software reverta automaticamente a implantação para o último estado de implantação concluído quando um alarme do CloudWatch definir a implantação para um estado de falha, selecione **Reverter em caso de falha**.

1. Se a definição de tarefa usar o modo de rede `awsvpc`, você poderá especificar uma configuração de rede personalizada, expandir **Rede** e fazer o seguinte:

   1. Em **VPC**, selecione a VPC a ser usada.

   1. Em **Subnets** (Sub-redes), selecione uma ou mais sub-redes na VPC que o programador de tarefas levará em consideração ao posicionar as tarefas.

   1. Em **Security group** (Grupo de segurança), você pode selecionar um grupo de segurança existente ou criar outro. Para usar um grupo de segurança existente, selecione o grupo de segurança e vá para a próxima etapa. Para criar um novo grupo de segurança, escolha **Create a new security group** (Criar um novo grupo de segurança). Você deve especificar o nome de um grupo de segurança, uma descrição e, em seguida, adicionar uma ou mais regras de entrada para o grupo de segurança.

   1. Em **Public IP** (IP público), escolha se um endereço IP público deve ou não ser atribuído automaticamente à interface de rede elástica (ENI) da tarefa.

      Tarefas do AWS Fargate podem receber um endereço IP público quando são executadas em uma sub-rede pública para terem uma rota para a Internet. As tarefas do EC2 não podem ser atribuídas a um IP público usando esse campo. Para obter mais informações, consulte [Opções de rede de tarefas do Amazon ECS para o Fargate](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/fargate-task-networking.html) e [Alocar uma interface de rede para uma tarefa do Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking-awsvpc.html).

1. (Opcional) Para interconectar o serviço usando o Service Connect, expanda **Service Connect** e especifique o seguinte:

   1.  Selecione **Ativar o Service Connect**.

   1. Em **Service Connect configuration** (Configuração do Service Connect), especifique o modo cliente.
      + Se seu serviço executa uma aplicação cliente de rede que só precisa se conectar a outros serviços no namespace, escolha **Somente no lado do cliente**.
      + Se seu serviço executa uma aplicação de rede ou de serviço Web e precisa fornecer endpoints para esse serviço e se conectar a outros serviços no namespace, escolha **Client and server** (Cliente e servidor).

   1. Para usar um namespace que não seja o namespace padrão do cluster, em **Namespace**, escolha o namespace do serviço. Isso pode ser um namespace criado separadamente na mesma Região da AWS em sua Conta da AWS ou um namespace na mesma região compartilhada com sua conta usando o AWS Resource Access Manager (AWS RAM). Para obter mais informações sobre namespaces compartilhados do AWS Cloud Map, consulte [Compartilhamento de namespaces do AWS Cloud Map entre contas](https://docs.aws.amazon.com/cloud-map/latest/dg/sharing-namespaces.html) no *Guia do desenvolvedor do AWS Cloud Map*.

   1. (Opcional) Especifique uma configuração de log. Selecione **Usar conjunto de logs**. A opção padrão envia os logs do contêiner ao CloudWatch Logs. As outras opções de driver de log são configuradas usando o AWS FireLens. Para obter mais informações, consulte [Envio de logs do Amazon ECS para um serviço da AWS ou para uma AWS Partner](using_firelens.md).

      Veja a seguir a descrição de cada destino de log de contêiner mais detalhadamente.
      + **Amazon CloudWatch**: configura a tarefa para enviar logs de contêiner ao CloudWatch Logs. São fornecidas as opções de driver de log padrão, que criam um grupo de logs do CloudWatch em seu nome. Para especificar um nome de grupo de logs diferente, altere os valores da opção de driver.
      + **Amazon Data Firehose**: configura a tarefa para enviar logs de contêiner ao Firehose. São fornecidas as opções de driver de log padrão, que enviam logs para um fluxo de entrega do Firehose. Para especificar um nome de fluxo de entrega diferente, altere os valores da opção de driver.
      + **Amazon Kinesis Data Streams**: configura a tarefa para enviar logs de contêiner ao Kinesis Data Streams. São fornecidas as opções de driver de log padrão, que enviam logs a um fluxo do Kinesis Data Streams. Para especificar um nome de transmissão diferente, altere os valores da opção de driver.
      + **Amazon OpenSearch Service**: configura a tarefa para enviar logs de contêiner a um domínio do OpenSearch Service. As opções de driver de log devem ser fornecidas. 
      + **Amazon S3**: configura a tarefa para enviar logs de contêiner a um bucket do Amazon S3. As opções de driver de log padrão são fornecidas, mas você deve especificar um nome de bucket válido do Amazon S3.

   1. (Opcional) Para habilitar logs de acesso, siga estas etapas:

      1. Expanda **Configuração do log de acesso**. Em **Formato**, escolha **JSON** ou `TEXT`.

      1. Para incluir parâmetros de consulta nos logs de acesso, selecione **Incluir parâmetros de consulta**.

1. (Opcional) Para interconectar o serviço usando a descoberta de serviços, expanda **Descoberta de serviços** e faça o seguinte:

   1. Selecione **Usar descoberta de serviços**.

   1. Para usar um novo namespace, escolha **Criar um namespace** em **Configurar namespace** e forneça um nome e uma descrição para o namespace. Para usar um namespace existente, escolha **Selecionar um namespace existente** e escolha o namespace desejado.

   1. Forneça as informações de serviço da descoberta de serviços, como nome e descrição do serviço.

   1. Para que o Amazon ECS realize verificações de integridade periódicas em nível de contêiner, selecione **Habilitar propagação de integridade de tarefas do Amazon ECS**.

   1. Em **DNS record type** (Tipo de registro DNS), selecione o tipo de registro DNS a ser criado para o serviço. A descoberta de serviços do Amazon ECS só é compatível com registros **A** e **SRV**, dependendo do modo de rede que a definição de tarefa especifica. Para obter informações sobre esses tipos de registro, consulte [Tipos de registro DNS compatíveis](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/ResourceRecordTypes.html) no *Guia do desenvolvedor do Amazon Route 53*.
      + Se a definição de tarefa que a sua tarefa de serviço especifica usar o modo de rede `bridge` ou `host`, somente haverá suporte para os registros do tipo **SRV**. Escolha o nome do contêiner e a combinação de portas a serem associadas ao registro.
      + Se a definição de tarefa que a sua tarefa de serviço especifica usar o modo de rede `awsvpc`, selecione o tipo de registro **A** ou **SRV**. Caso escolha **A**, vá para a próxima etapa. Se você escolher **SRV**, especifique a porta na qual o serviço pode ser encontrado ou o nome do contêiner e a combinação de portas a serem associadas ao registro.

      Em **TTL**, insira a duração, em segundos, do tempo em que um conjunto de registros é armazenado em cache pelos resolvedores de DNS e pelos navegadores da Web.

1. (Opcional) Para interconectar o serviço usando o VPC Lattice, expanda **VPC Lattice** e faça o seguinte:

   1. Selecione **Ativar o VPC Lattice**

   1. Em **Função de infraestrutura**, escolha o perfil de infraestrutura.

      Se você não criou um perfil, escolha **Criar perfil de infraestrutura**.

   1. Em **Grupos de destino**, escolha um ou mais grupos de destino. Escolha pelo menos um grupo de destino e, no máximo, cinco. Escolha **Adicionar grupo de destino** para adicionar mais grupos de destino. Escolha o **Nome da porta**, o **Protocolo** e a **Porta** para cada grupo de destino escolhido. 

      Para excluir um grupo de destino, escolha **Remover**.
**nota**  
Se desejar adicionar grupos de destino existentes, será necessário usar a AWS CLI. Para obter instruções sobre como adicionar grupos de destino usando o AWS CLI, consulte [register-targets](https://docs.aws.amazon.com/cli/latest/reference/vpc-lattice/register-targets.html) na *Referência do AWS Command Line Interface*.
Embora um serviço do VPC Lattice possa ter vários grupos de destino, cada grupo de destino só pode ser adicionado a um serviço.

   1. Para concluir a configuração do VPC Lattice, inclua seus novos grupos de destino na ação padrão do receptor ou nas regras de um serviço existente do VPC Lattice no console do VPC Lattice. Para obter mais informações, consulte [Regras de receptor para o serviço do VPC Lattice](https://docs.aws.amazon.com/vpc-lattice/latest/ug/listener-rules.html).

1. (Opcional) Para configurar um balanceador de carga para o serviço, expanda **Load balancing** (Balanceamento de carga).

   Selecione o balanceador de carga.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/AmazonECS/latest/developerguide/create-service-console-v2.html)

1. (Opcional) Para configurar o ajuste de escala automático do serviço, expanda **Ajuste de escala automático do serviço** e especifique os parâmetros a seguir. Para usar o ajuste de escala automático preditivo, que utiliza os dados de carga anteriores dos fluxos de tráfego, configure-o depois de criar o serviço. Para obter mais informações, consulte [Usar padrões históricos para escalar os serviços do Amazon ECS com escalabilidade preditiva](predictive-auto-scaling.md).

   1. Para usar a escalabilidade automática do serviço, selecione **Service auto scaling** (Escalabilidade automática do serviço).

   1. Em **Número mínimo de tarefas**, insira o limite inferior do número de tarefas a serem usadas pelo ajuste de escala automático. A contagem desejada não será inferior a essa contagem.

   1. Em **Número máximo de tarefas**, insira o limite superior do número de tarefas a serem usadas pelo ajuste de escala automático. A contagem desejada não ultrapassará essa contagem.

   1. Escolha o tipo de política. Em **Tipo de política de ajuste de escala**, escolha uma das opções a seguir.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/AmazonECS/latest/developerguide/create-service-console-v2.html)

1. (Opcional) Para usar uma estratégia de posicionamento de tarefas diferente da padrão, expanda **Task Placement** (Posicionamento de tarefas) e escolha uma das opções a seguir.

    Para obter mais informações, consulte [Como o Amazon ECS posiciona tarefas em instâncias de contêineres](task-placement.md).
   + **Distribuição balanceada de AZ**: distribua tarefas por zonas de disponibilidade e entre instâncias de contêiner na zona de disponibilidade.
   + **BinPack balanceado de AZ**: distribua tarefas por zonas de disponibilidade e entre instâncias de contêiner com a menor memória disponível.
   + **BinPack**: distribua tarefas com base na menor quantidade disponível de CPU ou memória.
   + **Uma tarefa por host**: posicione, no máximo, uma tarefa do serviço em cada instância de contêiner.
   + **Personalizado**: defina sua própria estratégia de posicionamento de tarefas. 

   Se você escolheu **Custom** (Personalizado), defina o algoritmo de modo a posicionar as tarefas e as regras que serão consideradas durante o posicionamento de tarefas.
   + Em **Strategy** (Estratégia), em **Type** (Tipo) e **Field** (Campo), escolha o algoritmo e a entidade a serem usados com o algoritmo.

     É possível adicionar no máximo cinco estratégias.
   + Em **Restrição**, para **Tipo** e **Expressão**, escolha a regra e o atributo para a restrição.

     Por exemplo, para definir a restrição de modo a posicionar tarefas em instâncias T2, em **Expression** (Expressão), insira **attribute:ecs.instance-type =\$1 t2.\$1**.

     É possível adicionar no máximo dez restrições.

1. Caso a tarefa use um volume de dados compatível com a configuração na implantação, você pode configurar o volume expandindo **Volume**.

   O nome e o tipo do volume são configurados ao criar uma revisão de definição de tarefa e não podem ser alterados ao criar um serviço. Para atualizar o nome e o tipo do volume, você deve criar uma revisão de definição de tarefa e criar um serviço usando a nova revisão.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/AmazonECS/latest/developerguide/create-service-console-v2.html)

1. Para usar o ECS Exec para depurar o serviço, em **Solucionar problemas de configuração**, selecione **Ativar o ECS Exec**.

1. (Opcional) Para ajudar a identificar seu serviço e tarefas, expanda a seção **Tags** (Etiquetas) e configure suas etiquetas.

   Para que o Amazon ECS atribua tags automaticamente a todas as tarefas recém-iniciadas com o nome do cluster e as tags de definição de tarefa, selecione **Ativar tags gerenciadas pelo Amazon ECS** e, para **Propagar tags de**, escolha **Definições de tarefas**.

   Para que o Amazon ECS atribua tags automaticamente a todas as tarefas recém-iniciadas com o nome do cluster e as tags de serviços, selecione **Ativar tags gerenciadas pelo Amazon ECS** e, para **Propagar tags de**, escolha **Serviço**.

   Adicione ou remova uma tag.
   + [Adicionar uma etiqueta] Escolha **Add tag** (Adicionar etiqueta) e faça o seguinte:
     + Em **Chave**, insira o nome da chave.
     + Em **Valor** insira o valor da chave.
   + [Remover uma tag] Ao lado da tag, escolha **Remove tag (Remover tag)**.

1. Selecione **Create** (Criar).

## Próximas etapas
<a name="create-service-next-steps"></a>

A seguir, estão as ações adicionais após criar um serviço.
+ Configure o ajuste de escala automático preditivo, que utiliza os dados de carga anteriores dos fluxos de tráfego. Para obter mais informações, consulte [Usar padrões históricos para escalar os serviços do Amazon ECS com escalabilidade preditiva](predictive-auto-scaling.md).
+ Acompanhe sua implantação e visualize seu histórico de serviços para os disjuntores do Amazon ECS. Para obter mais informações, consulte [Visualize o histórico de serviços usando implantações de serviços do Amazon ECS](service-deployment.md).