Descrever passo a passo, a instrução para criação de um pipeline na AWS, de um site estático (HTML, CSS e JavaScript) de exemplo, que tem como proposta a arquitetura abaixo:
- Abrangência:
- Aplica-se a criação de pipeline de qualquer site estático (HTML, CSS e JavaScript) que tenha como objetivo sua infraestrutura na Cloud AWS.
- Pré-requisitos:
- Acesso a console da AWS com privilégios administrativos
- Conhecimentos em administração/criação de recursos na AWS
- Bucket S3 - Para armazenamento do conteúdo do site
- CloudFront - Para distribuição rápida do conteúdo nas regiões da AWS
- Route53 - Para resolução de nomes
- CodeBuild - Para o projeto de compilação do site
- CodePipeline - Para automação da entrega contínua
- Certificate Manager - Para uso de certificado SSL válido
- AWS Backup - Para backup do conteúdo da bucket S3
- Grafana - Para dashboad
- Justificativas de uso:
- Oferecer atualizações rápidas, confiáveis, automatizar a fase de compilação e implantação sempre que ocorrer mudanças no código, sem que haja a necessidade de alocação de um profissional de infraestrutura, diminuir o custo operacional e tornar o ambiente mais resiliente.
Descrição
-
Crie uma bucket S3, no exemplo a seguir criei a bucket www-xpto.techroute.com.br.
-
Desça a barra de rolagem para baixo e clique em [Create bucket]
-
Ainda nas definições da bucket criada, na guia [Management], clique em [Create lifecycle rule]
-
Na tela de configurações do lifecycle, em Choose a rule scope, selecione a opção Apply to all objects in the object conforme imagem abaixo
-
Desça a barra de rolagem para baixo e em Lifecycle rule actions selecione a opção
-
Permanently delete noncurrent versions of objects Logo abaixo, em Permanently delete noncurrent versions of objects defina as os valores das propriedades de acordo com as suas necessidades, nesse exemplo, determinei manter 3 versões dos objetos por um período de 30 dias cada versão.
Nota: Vale lembrar que, já possuímos todo o conteúdo do site no github em uma ou mais branchs.
Ainda em S3, crie uma nova bucket com o mesmo nome alterando o sufixo, acrescente -log Exemplo: www-xpto.techroute.com.br-log, nesse momento, não será necessário tornar essa bucket pública, mas defina as configurações de Object Owership como [ACLs enabled] e [Object writer]
- Na console da AWS busque por CloudFront
- Nas definições/configurações do CloudFront clique em [Create distribution]
- Em Origin domain busque e selecione a bucket que foi criada em passos anteriores.
- Desça a barra de rolagem para baixo, selecione a opção Yes use OAI (bucket can restrict access to only CloudFront clique em [Create new OAI] e por fim marque a opção Yes, update the bucket policy
- Em Default cache behavior em Viewer selecione a opção GET, HEAD
- Mais abaixo, em Settings selecione o certificado SSL Wilcard correspondente ao domínio que está trabalhando.
-
Desça a barra de rolagem para baixo e preencha os campos conforme image abaixo:
-
Em Default root object - optional informe o nome do objeto que corresponde as requisições do site em "/"
-
Em Standard logging marque a opção On e selecione uma bucket que armazenará os logs do CloudFront, por fim no campo Description - optional adicione uma breve descrição para identificar com a facildade essa distribuição de CDN.
- Ainda nas configurações do CloudFront, na terceira guia em [Error pages] clique em [Create custom error response], na próxima tela em [HTTP error code] selecione 404: Not Found em Custom response code selecione Yes e em Response page path informe "/404" sem as aspas e em HTTP response code, selecione 404: Not Found