Estou procurando uma maneira de fazer implantações Blue / Green com CloudFront .
Alguém tem uma boa solução para mudar de uma distribuição do CloudFront para outra ou todos realmente criam sua distribuição e nunca mais a tocam?
Minha distribuição do CloudFront consiste em uma origem S3 para conteúdo estático (javascript, etc) e uma origem personalizada apontando para um AWS ELB.
Nenhuma alteração no CloudFront
Sob circunstâncias normais, não fazemos nenhuma alteração em nossa distribuição do CloudFront. Versão nosso conteúdo estático na origem do S3, alterando o nome dos arquivos de conteúdo estático no S3 e fazendo implantações contínuas para instâncias do EC2 no Elastic Load Balancer (ELB). No entanto, há momentos em que precisamos testar e fazer alterações na própria distribuição do CloudFront ou ter alterações suficientemente significativas em nosso ambiente que precisamos apontar para um novo ELB em um novo ambiente.
Duas distribuições CloudFront
A primeira opção que tentei foi ter duas distribuições Web CloudFront separadas , uma para o meu ambiente atual, ou A, e outra para o meu novo ambiente, ou B. Tentei usar uma política de roteamento ponderada do Route53 em que adicionei dois registros para o meu registro www.domain.com Route53, um apontando para a Distribuição A do CloudFront com peso 1 e o outro apontando para a Distribuição B do CloudFront com peso 0. O valor O plano seria alterar os pesos quando eu quiser passar da distribuição A para a distribuição B. No entanto, apenas uma distribuição do CloudFront por vez pode ter os Nomes de Domínio Alternativo (CNAMEs) www.domain.com registrados ou você recebe o seguinte erro:
com.amazonaws.services.cloudfront.model.CNAMEAlreadyExistsException: One or more of the CNAMEs you provided are already associated with a different resource. (Service: AmazonCloudFront; Status Code: 409; Error Code: CNAMEAlreadyExists; Request ID: ef84a5f0-44e7-11e5-9315-0ba167bb108a)
Distribuição One CloudFront
A segunda opção é manter uma distribuição na web do CloudFront. Tenho S3 e origens personalizadas apontando para meus ambientes A e B e, em seguida, atualizo o Comportamento de cache do CloudFront para apontar para a outra origem quando quero passar de um ambiente para outro. Isso é extremamente confuso, pois essas atualizações levam de 15 a 60 minutos, não há visibilidade do andamento da atualização e, dependendo da natureza da sua alteração, talvez você precise acompanhar isso com uma Invalidação do CloudFront para não exibir o conteúdo em cache do ambiente antigo junto com o novo conteúdo.
Obrigada pelo Conselho!