

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

# Usando a solução Blue/Green Neptune para realizar atualizações azul-esverdeadas
<a name="neptune-BG-deployments"></a>

As atualizações do mecanismo do Amazon Neptune podem precisar de tempo de inatividade da aplicação porque o banco de dados não fica disponível enquanto as atualizações estão sendo instaladas e verificadas. Isso será fato se eles forem iniciados manualmente ou automaticamente.

O Neptune fornece Blue/Green uma solução de implantação que você pode executar usando CloudFormation uma pilha e que reduz consideravelmente esse tempo de inatividade. Ela cria um ambiente de preparação verde que é sincronizado com o ambiente de produção azul. Depois, é possível atualizar esse ambiente de preparação para realizar uma atualização secundária ou principal da versão do mecanismo, uma alteração no modelo de dados de grafos ou uma atualização do sistema operacional e testar o resultado. Por fim, é possível migrá-lo rapidamente para se tornar seu ambiente de produção, com muito pouco tempo de inatividade.

A solução Blue/Green Neptune passa por duas fases, conforme ilustrado neste diagrama:

![\[Fluxograma geral da estratégia de implantação azul/verde\]](http://docs.aws.amazon.com/pt_br/neptune/latest/userguide/images/BG-flow.png)


**A fase 1 cria um cluster de banco de dados verde idêntico ao cluster de produção**

A solução cria um cluster de banco de dados com um identificador de blue/green implantação exclusivo e com a mesma topologia de cluster do seu cluster de produção. Ou seja, ele tem o mesmo número e tamanho de instâncias de banco de dados, os mesmos grupos de parâmetros e todas as mesmas configurações do cluster de banco de dados de produção (azul), exceto que ele foi atualizado para a versão do mecanismo de destino que você especificou, que deve ser superior à versão atual do mecanismo (azul). É possível especificar uma versão secundária e principal do mecanismo para o destino. Se necessário, a solução executará todas as atualizações intermediárias necessárias para alcançar a versão especificada do mecanismo de destino. Esse novo cluster se torna o ambiente de preparação verde.

**A fase 2 configura a sincronização contínua de dados**

Depois que o ambiente verde estiver totalmente preparado, a solução vai configurar a replicação contínua entre o cluster de origem (azul) e o cluster de destino (verde) usando fluxos do Neptune. Quando a diferença de replicação entre eles chegar a zero, o ambiente de teste estará pronto para testes. Nesse ponto, você deve pausar a gravação no cluster azul para evitar mais atrasos na replicação.

A versão do mecanismo de destino pode ter novos recursos ou dependências que afetam as aplicações. Confira a página de versão do mecanismo de destino e as páginas de versão do mecanismo de intervenção em [Versões do mecanismo](engine-releases.md) para ver o que mudou desde a versão atual do mecanismo. É melhor executar testes de integração ou verificar as aplicações manualmente no cluster verde antes de promovê-lo ao ambiente de produção.

Depois de testar e qualificar as alterações no cluster verde, basta mudar o endpoint do banco de dados nas aplicações do cluster azul para o verde.

Após a transição, a Blue/Green solução Neptune não exclui o antigo ambiente de produção azul. Você ainda terá acesso a ele para validação e testes adicionais, se necessário. As cobranças de faturamento padrão se aplicam às instâncias até a exclusão. A Blue/Green solução também usa outros AWS serviços, cujos custos são cobrados a preços normais. Os detalhes sobre como excluir a solução quando terminar de usá-la são abordados na [seção sobre limpeza](neptune-BG-cleanup.md).

## Pré-requisitos para executar a pilha Neptune Blue/Green
<a name="neptune-BG-prereqs"></a>

Antes de lançar a pilha Blue/Green Neptune:
+ [Habilite os fluxos do Neptune](streams-using.md) no cluster de produção (azul).
+ Todas as instâncias no cluster azul devem estar no estado **disponível**. Você pode verificar os estados da instância no console do [Neptune](https://console.aws.amazon.com/neptune) ou usando a API. [describe-db-instances](https://docs.aws.amazon.com/cli/latest/reference/neptune/describe-db-instances.html)
+ Todas as instâncias também devem estar sincronizadas com o [grupo de parâmetros do cluster de banco de dados](parameter-groups.md).
+ A solução Blue/Green Neptune requer um endpoint VPC do DynamoDB na VPC em que seu cluster azul está localizado. Consulte [Usar endpoints da Amazon VPC para acessar o DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/network-isolation.html#vpc-endpoints-dynamodb).
+ Selecione um momento para executar a solução quando a workload de gravação no cluster de banco de dados azul de produção for a mais leve possível. Evite, por exemplo, executar a solução durante um carregamento em massa ou quando houver probabilidade de um grande número de operações de gravação por qualquer outro motivo.

# Usando um CloudFormation modelo para executar a solução Neptune Blue/Green
<a name="neptune-BG-console-cfn"></a>

Você pode usar AWS CloudFormation para implantar a solução Blue/Green Neptune. O CloudFormation modelo cria uma instância do Amazon EC2 na mesma VPC do seu banco de dados Blue Source Neptune, instala a solução lá e a executa. Você pode monitorar seu progresso em CloudWatch registros, conforme explicado em [Monitoramento do progresso](neptune-BG-monitoring.md).

Você pode usar esses links para revisar o modelo de solução ou selecionar o botão **Launch Stack** para iniciá-lo no CloudFormation console:


|  |  |  | 
| --- |--- |--- |
| [Visão](https://aws-neptune-customer-samples-us-east-1.s3.amazonaws.com/neptune-bg/bg.yaml) | [Visualizar no Designer](https://console.aws.amazon.com/cloudformation/designer/home?templateURL=https://aws-neptune-customer-samples-us-east-1.s3.amazonaws.com/neptune-bg/bg.yaml) | [https://console.aws.amazon.com/cloudformation/home?region=us-east-1#/stacks/new?stackName=NeptuneBG&templateURL=https://aws-neptune-customer-samples-us-east-1.s3.amazonaws.com/neptune-bg/bg.yaml](https://console.aws.amazon.com/cloudformation/home?region=us-east-1#/stacks/new?stackName=NeptuneBG&templateURL=https://aws-neptune-customer-samples-us-east-1.s3.amazonaws.com/neptune-bg/bg.yaml)  | 

No console, escolha a AWS região em que você deseja executar a solução no menu suspenso no canto superior direito da janela.

Defina os parâmetros da pilha da seguinte forma:
+ **`DeploymentID`**— Um identificador exclusivo para cada implantação do Blue/Green Neptune.

  Ele é usado como o identificador verde do cluster de banco de dados e como um prefixo para nomear novos recursos criados durante a implantação.
+ **`NeptuneSourceClusterId`**: o identificador do cluster de banco de dados azul que você deseja atualizar.
+ **`NeptuneTargetClusterVersion:`**: a [versão do mecanismo do Neptune](engine-releases.md) para a qual você deseja atualizar o cluster de banco de dados azul.

  Esse valor deve ser mais recente do que a versão do mecanismo atual do cluster de banco de dados azul.
+ **`DeploymentMode`**: indica se essa é uma nova implantação ou uma tentativa de retomar uma implantação anterior. Quando você estiver usando o mesmo `DeploymentID` de uma implantação anterior, defina `DeploymentMode` como `resume`.

  Os valores válidos são: `new` (o padrão) e `resume`.
+ **`GraphQueryType`**: o tipo de dados de grafos para o banco de dados.

  Os valores válidos são: `propertygraph` (o padrão) e `rdf`.
+ **`SubnetId`**: um ID de sub-rede da mesma VPC em que o cluster de banco de dados azul está localizado. (Consulte [Connecting to a Neptune DB Cluster from an Amazon EC2 instance in the same VPC](get-started-connect-ec2-same-vpc.md).)

  Forneça o ID de uma sub-rede pública se você quiser usar o SSH para a instância por meio do [EC2 Connect](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Connect-using-EC2-Instance-Connect.html).
+ **`InstanceSecurityGroup`**: um grupo de segurança para a instância do EC2.

  O grupo de segurança deve ter acesso ao cluster de banco de dados azul e você deve poder usar SSH para a instância. Consulte [Criar um grupo de segurança usando o console da VPC](get-started-vpc.md#security-vpc-security-group).

Espere até que a pilha esteja completa. Assim que finalizar, a solução será iniciada. Em seguida, você pode monitorar o processo de implantação usando CloudWatch registros, conforme descrito na próxima seção.

# Monitorando o progresso de uma implantação do Neptune Blue/Green
<a name="neptune-BG-monitoring"></a>

Você pode monitorar o progresso da solução Blue/Green Neptune acessando o console e examinando [CloudWatch os](https://console.aws.amazon.com/cloudwatch/) registros no `/aws/neptune/(Neptune Blue/Green deployment ID)` CloudWatch grupo de registros. Você pode encontrar um link para os CloudWatch registros nas saídas da CloudFormation pilha da solução:

![\[Captura de tela da saída da pilha azul/verde CloudFormation\]](http://docs.aws.amazon.com/pt_br/neptune/latest/userguide/images/BG-stack-output.png)


Se você forneceu uma sub-rede pública como parâmetro de pilha, também poderá usar SSH para a instância do Amazon EC2 criada como parte da pilha e consultar o login em `/var/log/cloud-init-output.log`.

O registro mostra as ações tomadas pela solução Blue/Green Neptune, conforme mostrado nesta captura de tela:

![\[Captura de tela da tela de registro do Neptune Blue/Green\]](http://docs.aws.amazon.com/pt_br/neptune/latest/userguide/images/BG-log-screenshot.png)


As mensagens de log mostram o status de sincronização entre os clusters azul e verde:

![\[Captura de tela das mensagens de log da solução Blue/Green Neptune\]](http://docs.aws.amazon.com/pt_br/neptune/latest/userguide/images/BG-log-messages.png)


O processo de sincronização verifica o atraso de replicação calculando a diferença entre o fluxo mais recente `eventID` no cluster azul e o ponto de verificação de replicação presente na tabela de pontos de verificação do DynamoDB criada pela pilha de replicação. Neptune-to-Neptune Usando essas mensagens, é possível monitorar a diferença de replicação atual.

# Passar do cluster azul de produção para o cluster verde atualizado
<a name="neptune-BG-cutover"></a>

Antes de promover o cluster verde para produção, garanta que a diferença de confirmação entre os clusters azul e verde seja zero e, depois, desabilite todo o tráfego de gravação no cluster azul. Continuar gravando no cluster azul e alternando o endpoint do banco de dados para o cluster verde pode ocasionar a corrupção de dados causada pela gravação parcial de dados nos dois clusters. Talvez você ainda não precise desabilitar o tráfego de leitura.

Se você habilitou a autenticação do IAM no cluster de origem (azul), atualize todas as políticas do IAM usadas nas aplicações para apontar para o cluster verde (para ver um exemplo dessa política, consulte esta [política de acesso irrestrito](iam-data-access-examples.md#iam-auth-data-policy-example-general)).

Depois de desabilitar o tráfego de gravação, aguarde a conclusão da replicação e habilite o tráfego de gravação no cluster verde (mas não no cluster azul). Também alterne o tráfego de leitura do cluster azul para o verde.

# Limpando após a conclusão da solução Blue/Green Neptune
<a name="neptune-BG-cleanup"></a>

Depois de promover o cluster de teste (verde) para produção, limpe os recursos criados pela solução Neptune Blue/Green :
+ Exclua a instância do Amazon EC2 que foi criada para executar a solução.
+ Exclua os CloudFormation modelos da replicação [baseada em Neptune Streams](streams-consumer-setup.md) que manteve o cluster verde sincronizado com o cluster azul. O principal tem o nome da pilha que você forneceu anteriormente e o outro é composto pelo ID de implantação seguida por “-replication”: ou seja, `(DeploymentID)-replication`.

A exclusão de CloudFormation modelos não exclui os clusters em si. Depois de verificar se o cluster verde está funcionando conforme o esperado, você pode criar um snapshot antes de excluir manualmente o cluster azul.

# Melhores práticas da solução Blue/Green Neptune
<a name="neptune-BG-best-practices"></a>
+ Antes de mudar o cluster verde para produção, vale a pena verificar minuciosamente se ele está funcionando da forma correta. Confira a consistência dos dados e a configuração do banco de dados. É possível que algumas das novas versões do mecanismo também exijam atualizações do cliente. Confira as notas de versão do mecanismo antes de fazer a atualização. Vale a pena testar tudo isso em ambientes de desenvolvimento, teste e pré-produção antes de iniciar uma blue/green atualização na produção.
+ É melhor realizar a transição do servidor azul para o verde durante a janela de manutenção.
+ Para garantir que tudo esteja funcionando corretamente após a atualização e a sincronização, vale a pena manter o cluster original por algum tempo antes de excluí-lo. Isso poderá ser útil se surgir um problema imprevisto.
+ Evite operações de gravação pesadas, como cargas em massa, ao executar a solução Blue/Green Neptune, pois elas podem causar atrasos na replicação que introduzem um tempo de inatividade significativo. Preferencialmente, o tempo entre desativar as gravações no cluster azul e ativá-las no cluster verde deve ser de apenas alguns instantes.

# Solução de problemas da solução Neptune Blue/Green
<a name="neptune-BG-troubleshooting"></a>

 As informações a seguir destacam problemas que podem surgir durante o processo de implantação da Blue/Green solução, como conflitos com clusters existentes, a necessidade de habilitar fluxos do Neptune, operações contínuas de carregamento em massa e requisitos de compatibilidade de versões. Ao abordar esses possíveis problemas, você pode garantir uma implantação tranquila e bem-sucedida da solução Blue/Green Neptune. 

**Erros gerados pela solução Neptune Blue/Green**
+ **`Cluster with id = (blue_green_deployment_id) already exists`**— Existe um cluster existente com identificador*(blue\$1green\$1deployment\$1id)*.

  Forneça uma nova ID de implantação ou defina o modo de implantação como `resume` se o cluster tivesse sido criado em uma execução anterior do Blue/Green Neptune.
+ **`Streams should be enabled on the source Cluster for Blue Green Deployment`**: ative os [fluxos do Neptune](streams-using-enabling.md) no cluster azul (de origem).
+ **`No Bulkload should be in progress on source cluster: (cluster_id)`**— A solução Blue/Green Neptune termina se identificar uma carga em massa contínua.

  O objetivo é garantir que o processo de sincronização seja capaz de acompanhar as gravações feitas. Evite ou cancele qualquer trabalho de carregamento em massa em andamento antes de iniciar a solução Blue/Green Neptune.
+ **`Blue Green deployment requires instances to be in sync with db cluster parameter group`**: qualquer alteração no grupo de parâmetros do cluster deve estar sincronizada em todo o cluster de banco de dados. Consulte [Grupos de parâmetros do Amazon Neptune](parameter-groups.md).
+ **`Invalid target engine version for Blue Green Deployment`**: a versão do mecanismo de destino deve estar listada como ativa em [Versões do mecanismo do Amazon Neptune](engine-releases.md) e deve ser superior à versão atual do mecanismo do cluster de origem (azul).