Use todo o deslocamento de tráfego de uma só vez
Com o deslocamento de tráfego, tudo de uma vez, você pode implementar rapidamente uma atualização de endpoint usando as barreiras de proteção de uma implantação azul/verde. Você pode usar essa opção de deslocamento de tráfego para minimizar a duração da atualização e, ao mesmo tempo, aproveitar as garantias de disponibilidade das implantações azul/verde. O atributo de período de baking ajuda você a monitorar o desempenho e a funcionalidade de suas novas instâncias antes de encerrar suas instâncias antigas, garantindo que sua nova frota esteja totalmente operacional.
O diagrama a seguir mostra como, o deslocamento de tráfego de uma só vez gerencia as frotas antigas e novas.
Quando você usa o deslocamento de tráfego de uma só vez, o SageMaker roteia 100% do tráfego para a nova frota (frota verde). Quando a frota verde começa a receber tráfego, o período de baking começa. O período de baking é um período definido em que os alarmes pré-especificados do Amazon CloudWatch monitoram o desempenho da frota verde. Se nenhum alarme disparar durante o período de baking, o SageMaker encerra a frota antiga (frota azul). Se algum alarme disparar durante o período de baking, uma reversão automática será iniciada e 100% do tráfego se deslocará de volta para a frota azul.
Pré-requisitos
Antes de configurar uma implantação com tudo de uma vez, você deve criar alarmes do Amazon CloudWatch para monitorar as métricas a partir do seu endpoint. Se qualquer alarme for disparado durante o período de baking, o tráfego começará a se reverter para sua frota azul. Para saber como configurar os alarmes do CloudWatch em um endpoint, consulte a página de pré-requisitos Configuração de reversão automática e monitoramento. Para obter mais informações sobre alarmes do CloudWatch, consulte Usando alarmes do Amazon CloudWatch no Guia do usuário do Amazon CloudWatch.
Configuração de todo o deslocamento de tráfego de uma só vez
Quando estiver pronto para a implantação e tiver configurado os alarmes do CloudWatch para o seu endpoint, você pode usar a API UpdateEndpoint do SageMaker ou o comando atualizar endpoint no AWS Command Line Interface para iniciar a implantação.
Tópicos
Como atualizar um endpoint (API)
O exemplo a seguir mostra como você pode atualizar seu endpoint com um deslocamento de tráfego de uma só vez usando o UpdateEndpoint na API do Amazon SageMaker.
import boto3 client = boto3.client("sagemaker") response = client.update_endpoint( EndpointName="
<your-endpoint-name>
", EndpointConfigName="<your-config-name>
", DeploymentConfig={ "BlueGreenUpdatePolicy": { "TrafficRoutingConfiguration": { "Type": "ALL_AT_ONCE" }, "TerminationWaitInSeconds": 600, "MaximumExecutionTimeoutInSeconds": 1800 }, "AutoRollbackConfiguration": { "Alarms": [ { "AlarmName": "<your-cw-alarm>
" }, ] } } )
Para configurar a opção de deslocamento de tráfego de uma só vez, faça o seguinte:
Em
EndpointName
, use o nome do endpoint existente que você deseja atualizar.Em
EndpointConfigName
, use o nome da configuração de endpoint que deseja usar.Em
DeploymentConfig
eBlueGreenUpdatePolicy
, noTrafficRoutingConfiguration
, defina o parâmetroType
comoALL_AT_ONCE
. Isso especifica que a implantação usa o modo de deslocamento de tráfego de uma só vez.Para
TerminationWaitInSeconds
, use600
. Esse parâmetro diz ao SageMaker que aguarde pelo tempo especificado (em segundos) depois que sua frota verde estiver totalmente ativa antes de encerrar as instâncias na frota azul. Neste exemplo, o SageMaker espera 10 minutos após o período final de baking antes de encerrar a frota azul.Para
MaximumExecutionTimeoutInSeconds
, use1800
. Esse parâmetro define o tempo máximo em que a implantação pode ser executada antes de o tempo limite ser atingido. No exemplo anterior, sua implantação tem um limite de 30 minutos para ser concluída.Em
AutoRollbackConfiguration
, dentro do campoAlarms
, você pode adicionar seus alarmes do CloudWatch por nome. Crie uma entradaAlarmName:
para cada alarme que você deseja usar.<your-cw-alarm>
Como atualizar um endpoint com uma política de atualização azul/verde existente (API)
Ao usar a API CreateEndpoint para criar um endpoint, você pode, opcionalmente, especificar uma configuração de implantação para reutilizar em futuras atualizações de endpoint. Você pode usar as mesmas opções DeploymentConfig
do exemplo anterior da API UpdateEndpoint. Não há alterações no comportamento da API CreateEndpoint. Especificar a configuração da implantação não executa automaticamente uma atualização azul/verde no seu endpoint.
A opção de usar uma configuração de implantação anterior acontece ao usar a API UpdateEndpoint para atualizar seu endpoint. Ao atualizar seu endpoint, você pode usar a opção RetainDeploymentConfig
para manter a configuração da implantação especificada ao criar o endpoint.
Ao chamar a API UpdateEndpoint, defina RetainDeploymentConfig
como True
para manter as opções DeploymentConfig
da configuração de endpoint originais.
response = client.update_endpoint( EndpointName="
<your-endpoint-name>
", EndpointConfigName="<your-config-name>
", RetainDeploymentConfig=True )
Como atualizar um endpoint (CLI)
Se você estiver usando o AWS CLI, o exemplo a seguir mostra como iniciar uma implantação azul/verde de uma só vez usando o comando update-endpoint.
update-endpoint --endpoint-name
<your-endpoint-name>
--endpoint-config-name<your-config-name>
--deployment-config '"BlueGreenUpdatePolicy": {"TrafficRoutingConfiguration": {"Type": "ALL_AT_ONCE"}, "TerminationWaitInSeconds": 600, "MaximumExecutionTimeoutInSeconds": 1800}, "AutoRollbackConfiguration": {"Alarms": [{"AlarmName": "<your-alarm>
"}]}'
Para configurar a opção de deslocamento de tráfego de uma só vez, faça o seguinte:
Em
endpoint-name
, use o nome do endpoint que você deseja atualizar.Em
endpoint-config-name
, use o nome da configuração de endpoint que deseja usar.Para
deployment-config
, use um objeto JSON da BlueGreenUpdatePolicy.
nota
Se você preferir salvar seu objeto JSON em um arquivo, consulte a Geração de esqueleto AWS CLI e parâmetros de entrada no Guia do usuário AWS CLI.