Hospedagem de sites estática em AWS + Pipeline CI/CD - DevOps | Valentin Despa | Skillshare
Pesquisar

Velocidade de reprodução


1.0x


  • 0.5x
  • 0.75x
  • 1x (Normal)
  • 1.25x
  • 1.5x
  • 1.75x
  • 2x

Hospedagem de sites estática em AWS + Pipeline CI/CD - DevOps

teacher avatar Valentin Despa

Assista a este curso e milhares de outros

Tenha acesso ilimitado a todos os cursos
Oferecidos por líderes do setor e profissionais do mercado
Os temas incluem ilustração, design, fotografia e muito mais

Assista a este curso e milhares de outros

Tenha acesso ilimitado a todos os cursos
Oferecidos por líderes do setor e profissionais do mercado
Os temas incluem ilustração, design, fotografia e muito mais

Aulas neste curso

    • 1.

      Apresentação

      1:33

    • 2.

      Como criar uma conta da AWS

      3:28

    • 3.

      Como criar o bucket do AWS S3

      5:26

    • 4.

      Como modificar registros de nomes de domínio (registros DNS)

      1:47

    • 5.

      Como fazer com que o domínio funcione sem www

      2:47

    • 6.

      Como habilitar registros de acesso

      1:44

    • 7.

      Configuração de projeto no GitLab

      2:46

    • 8.

      Como definir o pipeline CI/CD no GitLab

      7:38

    • 9.

      Como criar credenciais de usuário da AWS

      4:19

    • 10.

      Como executar o pipeline GitLab

      4:29

    • 11.

      O processo para fazer uma mudança

      1:19

    • 12.

      Conclusão

      3:20

  • --
  • Nível iniciante
  • Nível intermediário
  • Nível avançado
  • Todos os níveis

Gerado pela comunidade

O nível é determinado pela opinião da maioria dos estudantes que avaliaram este curso. Mostramos a recomendação do professor até que sejam coletadas as respostas de pelo menos 5 estudantes.

189

Estudantes

1

Projetos

Sobre este curso

Neste curso, vamos implantar um site estático no AWS S3. Este pode ser um site estático com HTML e CSS ou algo mais avançado como React ou Angular.

Esta abordagem não funciona para sites que exigem PHP e um banco de dados (como WordPress).

Depois que o nome de domínio estiver configurado e funcionando, vamos construir um processo de implantação automático simples usando GitLab CI. O projeto completo com o pipeline GitLab CI/CD pode ser encontrado aqui:

https://gitlab.com/vdespa/www.learndevops.link/

Conheça seu professor

Teacher Profile Image

Valentin Despa

Professor
Level: All Levels

Nota do curso

As expectativas foram atingidas?
    Superou!
  • 0%
  • Sim
  • 0%
  • Um pouco
  • 0%
  • Não
  • 0%

Por que fazer parte da Skillshare?

Faça cursos premiados Skillshare Original

Cada curso possui aulas curtas e projetos práticos

Sua assinatura apoia os professores da Skillshare

Aprenda em qualquer lugar

Faça cursos em qualquer lugar com o aplicativo da Skillshare. Assista no avião, no metrô ou em qualquer lugar que funcione melhor para você, por streaming ou download.

Transcrições

1. Introdução: Olá, aqui é Valentine. E hoje eu queria rever o processo de hospedagem de um site com a AWS. Acabei de trazer um novo nome de domínio. E mostrarei passo a passo como hospedar um site HTML e JavaScript simples com o AWS S3 ou passar pelo processo de hospedagem de um domínio real. E juntos vamos configurar um bucket do AWS S3, fazer upload de alguns arquivos e configurar tudo para ser executado corretamente. Na segunda parte do tutorial, mostrarei como automatizar todo o processo com o GitLab CI. E juntos vamos construir um pipeline CICD simples. Confie em mim, é mais fácil do que você pensa e a automação é tão importante. Hoje. Trabalharemos a partir de um repositório Git e todas as alterações que fizermos serão implantadas automaticamente no site. Mas primeiro, vamos nos certificar de que estamos na mesma página desde o início deste tutorial, supõe que você tenha uma conta da AWS hospedando seus arquivos com a AWS. O S3 não funciona se seu site for mais complexo e precisar de um banco de dados onde você precisa executar uma linguagem de programação como PHP, SPX ou qualquer coisa semelhante. Isso também não funcionará se você estiver tentando hospedar um site WordPress. Isso funcionará muito bem para o projeto Angular ou React. Hospedando um site na AWS, S3 também não oferece suporte a HTTPS. Se você precisar disso, você precisa configurar o AWS Cloudfront Além do que estou mostrando aqui. Com isso dito, vamos pular direto para o tutorial. 2. Como criar uma conta AWS: Amazon Web Services, ou simplesmente a AWS, é uma plataforma em nuvem que oferece mais de 170 serviços disponíveis em data centers em todo o mundo. Esses serviços incluem servidores virtuais, bancos de dados gerenciados, armazenamento de arquivos, entrega de conteúdo e muitos outros. Se você ainda não tiver uma conta da AWS, é muito fácil criar 10. Insira seus dados pessoais e clique em Continuar. Se você estiver usando essa conta para fins profissionais, como dentro da sua organização ou planeja fazer implantações ou usar a AWS em sua organização. Profissional. Caso contrário, se você estiver apenas aprendendo a AWS e experimentando com ela, não há problema em começar com uma conta pessoal. E ws é um serviço pago. E mesmo que no início haja um nível gratuito que tenha alguns limites e é ideal para aprender a AWS e experimentar este cartão teórico, um cartão de crédito ou débito de você, caso ultrapasse o limite livre. Então, sim, eventualmente, a AWS é um negócio, então eles estão tentando ganhar dinheiro. É por isso que você precisa inserir as informações do seu cartão de crédito aqui. Caso contrário, você não poderá usar a AWS. E vou adicionar essas informações de cartão de crédito. Além disso, também preciso verificar meu número de telefone. Agora minha identidade foi verificada e posso começar a usar minha conta da AWS. A AWS também tem um sistema de suporte e você pode selecionar o plano de suporte. Pessoalmente, acho que o apoio deles é realmente muito, muito bom. Mas você só precisará de suporte deles se estiver implantando a AWS em sua organização. Portanto, apenas para fins de aprendizado e começar, você não precisa de nenhum suporte deles. Você terá todo o suporte do meu lado quando se trata do conteúdo deste curso. Então, simplesmente clicaremos gratuitamente e continuaremos com um plano básico gratuito. Agora temos uma conta da AWS verificada. Ele tem um método de pagamento. E o que precisamos fazer a seguir é fazer login no console porque, a partir do console, podemos acessar todos os serviços que a AWS tem. Você acha que o console de gerenciamento da AWS significa que você configurou tudo corretamente e pode continuar com o resto do curso e começar a usar a AWS imediatamente. A AWS é distribuída em vários datacenters. E você tem a possibilidade de selecionar o datacenter que você gostaria de usar aqui no lado direito, na parte superior do menu. Atualmente, no meu caso, tenho US East Ohio. Normalmente, os data centers dos EUA nos EUA têm um custo menor do que em qualquer outro lugar do mundo. Mas você pode querer verificar seu motivo específico se estiver interessado em tê-los em suas regiões específicas. Por exemplo, por motivos de segurança de dados, muitas empresas na Europa preferiram ter seus data centers e seus dados da AWS fisicamente localizados na Europa. Portanto, por esse motivo, a AWS oferece esse serviço, mas é muito mais caro do que os datacenters localizados nos EUA. 3. Como criar o balde AWS S3: Por que estou aqui no chamado Chip.com. Isso é o que eu uso para registrar e gerenciar domínios. Normalmente, eles têm preços muito, muito bons e a interface para gerenciar os domínios, tudo bem. Por esse motivo, é isso que estou usando e você não precisa usá-los. Este tutorial funcionará com qualquer domínio independentemente de onde você tenha se registrado na GoDaddy, domínios do Google, quaisquer que sejam os princípios, absolutamente a equipe. Então, o domínio que estou tentando usar hoje é esse. Aprenda o link de pontos DevOps. Abra uma nova guia e mostre o conteúdo deste site. Você verá que atualmente está hospedado aqui nesta landing page do navio nomeado. Nada de especial nisso. Então, o que eu faço? Tento fazer a seguir é criar um bucket do AWS S3 para esse nome de domínio. Estou aqui dentro do meu console de gerenciamento da AWS. E o serviço que estou tentando usar é o S3. Então, vou procurar aqui no armazenamento e você verá o S3. E eu vou clicar aqui no botão Criar bucket. Agora queremos ter certeza de que o nome do bucket é apropriado. Então, tipo aqui, www dot aprendeu DevOps, esse link. Portanto, esse é o nome de domínio que estou tentando registrar. Selecione uma região mais apropriada no seu caso e lembre-se dessa região, especialmente desta parte. Então, o nome técnico da região. E depois disso, você pode simplesmente escrever aqui, passar por configurações diferentes, mas simplesmente vá em frente e crie um bucket da lista de buckets disponíveis, você deve poder clicar nele. E, claro, você verá que está vazio. Agora, apenas uma observação geral, AWS mudou muito. A interface do S3 desta parte de gerenciamento aqui. Se você estiver assistindo a este tutorial um pouco mais tarde, ele pode parecer um pouco diferente, mas os princípios devem ser automaticamente os mesmos. Apenas uma cabeça para cima nessa direção. Como você pode ver normalmente neste momento, não temos arquivos aqui dentro. Então, o que vou fazer aqui é primeiro ir em frente e fazer o upload do arquivo simples. Vou clicar aqui em Adicionar arquivos. E vou começar com um arquivo HTML simples que contém algo como hello world. Então, apenas para testar as coisas e garantir que tudo funcione corretamente. Será carregado, deve funcionar em um segundo. Além disso, o que vamos fazer é olhar aqui para as propriedades. E em algum lugar aqui você deve ver a hospedagem estática do site. Então, vou clicar aqui em Editar porque agora ele está desativado. Então, vou ativá-lo, especificando qual é o documento. Então, o que é o documento de índice? No meu caso, o documento de índice é index.html. E vou especificar exatamente a mesma página também para o documento de erro também é útil se você não tiver um documento de erro e estiver tentando hospedar um site angular ou reagir ao site. O documento de índice deve ser o mesmo que o documento de seta. Temos aqui configurar tudo. Este é exatamente o nome que temos. E eu vou clicar aqui em salvar alterações. Além disso, indo para permissões, você verá aqui que o acesso público está sendo bloqueado no momento. Assim, podemos desbloquear tudo, salvar alterações, confirmar. Se você está tentando obter o link para isso ou temos que fazer é ir para as propriedades. Então, as propriedades estão aqui. E em uma seção com hospedagem estática de sites, esse será o endereço temporário que teremos para o site. Então, vamos clicar nele e ver nosso site. Oh, isso não parece bom. O que aconteceu? Bem, o que aconteceu é que ainda precisamos descobrir algumas permissões. Portanto, não basta simplesmente fazer aqui esse acesso público. Mas, além disso, quando especificar uma política. Para especificar essa política que será escrita em JSON. Vai clicar aqui na política de bucket em Editar. E vamos dar uma olhada em alguns exemplos de políticas. A política que somos interessantes na adaptação é algo como essa permissão somente leitura para um usuário anônimo porque não sabemos quem está visitando ou o bucket quem está tentando obter essas informações. Então, vamos simplesmente copiar essa permissão daqui. Volte para o console de gerenciamento. Vou colá-lo aqui. Originalmente, o que nos interessamos é obter esse nome de recurso, certo? Então você verá aqui, AWS está tornando nossa vida um pouco mais fácil. Então, com o fornecimento aqui o nome exato do recurso do bucket. Então, podemos simplesmente copiar isso e garantir que não estamos substituindo tudo. É assim que ele deve se parecer. Então você tem que adaptá-lo praticamente seu próprio nome de domínio neste momento. Então, vamos salvar as alterações. E você verá aqui agora que o acesso está em vermelho, está apenas tentando alertá-lo de que, ei, a propósito, tudo o que você tem neste bucket é público. E, na verdade, não recomendo que você armazene nada neste bucket que não se destina a ser público. Então, seja que estamos muito cientes disso. Se você precisar armazenar outros arquivos, não use o site, não use o bucket para este site para armazenar outra coisa. Vamos visitar novamente o site e você verá aqui, meu novo site. Parece estar funcionando e isso é absolutamente ótimo. 4. Modificando registros de nomes de domínio (registros DNS): Agora, isso não é tudo o que precisamos porque você não quer dar aos seus clientes ou a ninguém e endereço parecido com isso. Você realmente comprou seu próprio nome de domínio e estamos tentando hospedá-lo. Então agora vamos copiar isso. As etapas a seguir serão diferentes dependendo de como exatamente você está gerenciando seus registros de domínio. Então, vou voltar para o Nim trip.com e vou clicar aqui sobre como gerenciar esse domínio. O que estamos realmente interessados é gerenciar o DNS. Portanto, há algumas entradas de DNS que queremos alterar. E o que vamos tentar fazer é adicionar um registro de alias ou um registro CNAME para esse domínio. Então, vou simplesmente remover qualquer coisa que já esteja aqui porque não estamos interessados nisso. E adicione aqui um novo registro. Vou chamá-lo de registro de alias. Isso será válido para www e o alvo será este. Então, vou me certificar de que não tenho nada como HTTP. Devemos começar com www, deve terminar em.com. E, claro, fazendo essa mudança, leva um pouco até que você possa realmente ver seu site atualizado. Meu conselho é verificar em cinco a dez minutos para ver se isso muda uma palavra. Mas na pior das hipóteses, pode até levar até 24 horas para que essa mudança se propaga. Seja um pouco paciente. Mas, idealmente, você deve ver algo em apenas alguns minutos após algumas tentativas de atualização. E às vezes vale a pena experimentar o seu navegador. Você deve ser capaz de ver agora que seu novo site está disponível. Então, esta página é veiculada pelo AWS S3. 5. Como funcionar sem www: Então, vamos ver a seguinte coisa agora. Você verá que esse nome de domínio tem www na frente dele. Agora é possível que, no seu caso, se você estiver tentando visitar um domínio como ele está, que ele não funcione. Então, se você estiver tentando sem o www, neste caso, ele será adicionado automaticamente. Você pode receber uma página de erro. Você pode receber uma página de erro da AWS dizendo que ele não faz nada configurado com esse nome de domínio sem o www. Então, se for esse o caso, deixe-me mostrar o que você precisa fazer. Então, voltando para o console S3, e vou simplesmente seguir em frente aqui, criar um novo bucket. Esse nome do bucket agora será o nome de domínio exato, mas desta vez sem o www na frente dele. E vou simplesmente passar por cima dos padrões como eles são. Vou criar um balde. Agora, a diferença com esse bucket é que não conterá nenhum arquivo, mas ainda queremos usar o AWS S3 para hospedagem estática de sites. Então, vamos editar aqui as configurações. Então eu habilito isso. Mas desta vez vamos redirecionar para solicitações para outro bucket ou para outro domínio. Portanto, nesse caso, queremos habilitar a hospedagem estática e redirecionar a solicitação. Mas o nome do host que vamos inserir aqui é o domínio com www, porque você já sabe que isso funciona. Então, no meu caso, será o link de pontos DevOps aprendido por ponto www. E o protocolo que vamos escolher é HTTP. Como você se lembra, o AWS S3 não oferece suporte a HTTPS no EC2, algumas configurações adicionais. Então, vou salvar as alterações aqui. E devemos conseguir um link para esse novo bucket que criamos. E você verá agora que ele está redirecionando para o domínio com www, meu navegador. Esse tipo de detalhes são automaticamente ocultos. Então, se você clicar nele, verá aqui que ele ainda vai para www. Agora, ainda assim, isso não funcionará automaticamente para você ainda precisa de uma entrada. Então, voltando aqui para as entradas DNS avançadas, vamos adicionar uma entrada adicional. Isso será novamente um alias e usará aqui AT. E o destino será o endereço novamente removendo HTTP antes disso. Então você verá que a primeira entrada é com www dot learn, DevOps e assim por diante. E o segundo é que duvidamos do ponto W, W. Como eu disse, se estiver funcionando automaticamente, você também precisa fazer essa etapa adicional. E então ele reconhecerá o que fazer em cada situação. Então eles são praticamente como dois domínios diferentes, mas há vários pontos, maneiras de ler ou escrever de um para o outro. 6. Ativando logos de acesso: Além disso, eu queria configurar algo muito importante e isso também é registro em log. Portanto, a menos que você tenha uma política de não Logging, eu recomendo que você tenha alguns registros para seus domínios. Por esse motivo, vamos criar um novo bucket. Vou chamar o bucket WW, meu nome de domínio e, em seguida, simplesmente adicionar logs de traço. Deixe as configurações como estão e praticamente esqueça por um segundo. Vou voltar ao meu bucket contendo o site real, revisitar as permissões. E em algum lugar nessas permissões, você deve ver algo como registro de acesso ao servidor. Portanto, ele praticamente começará a escrever qualquer solicitação de bloqueio, qualquer acesso ao seu bucket. E normalmente é uma boa prática ter alguns registros para o caso de algo saber exatamente o que está acontecendo com sua hospedagem. Então, vou seguir em frente e habilitar isso. E o que podemos fazer aqui é especificar nosso intervalo de destino. Portanto, nosso bucket de destino será o bucket com logs. Vou escolher simplesmente este. Este é o nome do bucket, e podemos simplesmente especificar um prefixo como logs ou acesso e simplesmente salvar as alterações. O que acontecerá? E isso normalmente leva um tempo. Você entra nesse intervalo, você deve ser capaz de ver depois de algum tempo alguns arquivos de acesso sendo registrados lá. Esqueça isso agora e voltaremos a isso mais tarde para ver se funcionou corretamente. A ideia principal é que eu recomendo que você habilite isso. 7. Configuração de projetos no GitLab: Então agora que meu site está funcionando com e sem www e realmente conseguiu ver tudo. E estou muito feliz que tudo esteja funcionando corretamente. Quero passar para a segunda parte e isso é automatizado. Então, o que eu tenho aqui é essencialmente um projeto que contém arquivos HTML e JavaScript. É um projeto Gatsby que está usando algum JavaScript para construir dinamicamente algumas páginas. Mas, essencialmente, no final, terei aqui uma pasta pública que contém todo o HTML e todas as páginas JavaScript necessárias. Porque este é um processo de compilação. Quero automatizar isso. Não quero ir da CLI para poder criar tudo e depois ir ao site, ao servidor e, em seguida, ir para a AWS para arrastar e soltar manualmente arquivos e coisas assim. O que vamos fazer é usar GitLab CI para automatizar todo esse processo de compilação. E vou levá-lo passo a passo e explicar o que quero dizer com isso. Agora, o primeiro passo é ir para GitHub.com e se registrar em uma conta. Quando você estiver dentro da sua conta, você deve ser capaz de ver algo como um novo projeto. E vamos criar um projeto em branco. Então, vou nomear meu projeto exatamente como o nome de domínio. E é claro que vou remover qualquer coisa como HTTP e coisas assim. Então www e meu nome de domínio. E vou deixar este privado. E não vou inicializar com um leia-me porque já tenho um repositório Git. Então agora este é o repositório que foi criado para o meu código. E posso olhar aqui para enviar um repositório Git existente. Então, praticamente o comando em que estou interessado é adicionar um novo controle remoto. E, claro, o que preciso fazer também é empurrar todas as mudanças. Agora, no meu caso, tudo está funcionando com dúvidas em configurações adicionais porque eu tenho o Git instalado localmente. Configurei minha chave privada e minha chave pública com gitlab.com. Então, neste caso, tudo está integrado. Se você está apenas começando com isso, provavelmente mais fácil se você apenas fizer uma cópia do projeto que encontrará na descrição do vídeo e usar a interface da getline HCI para editar esses arquivos. Então, se eu atualizar esta página, poderemos ver isso. Não, vejo todos os meus arquivos. Caso você queira fazer algo daqui, você pode simplesmente clicar em qualquer arquivo ou clicar no mais aqui para adicionar um novo arquivo. E se você quiser apenas editar algo, você pode clicar nele. Clique em editar. E você não precisa ter o Git instalado e tudo o que estou mostrando a você a partir do meu ID. 8. Definindo o pipeline CI/CD no GitLab: Então este é o site que estou tentando implantar. Ele é baseado no React e está usando o Gatsby para fazer algumas coisas facilmente. Vou me aprofundar nisso. Mas, essencialmente, o que tenho aqui é que tenho minha pasta de origem, que contém as páginas e tudo o que estou usando aqui. Há também essa pasta pública que é gerada quando está executando um comando específico. Então deixe-me mostrar o que quero dizer com isso. Por exemplo, se eu for em frente, exclua uma pasta pública e executar a compilação do Gatsby. Gatsby começará a regenerar essa pasta pública. E, essencialmente, o que estou tentando implantar aqui é o conteúdo do fórum público ou ser puxado contém arquivos JavaScript que são pequenos o suficiente para que o carregamento seja rápido. Eles compilam e fazem tudo de bom para um ambiente de produção, mas colocam assim. Portanto, esse é essencialmente meu processo de compilação. Estou usando o Gatsby para gerar essa pasta pública. E, essencialmente, muitos aplicativos JavaScript hoje em dia também têm essa guia. Se você está realmente apenas hospedando arquivos HTML, como você pode ver este aqui, index.html. Não temos processo de compilação para colocá-lo assim. Você não precisa disso, os constrói. Mas como eu precisava e quero automatizá-lo, vamos seguir em frente aqui e na parte raiz do site, vou criar um novo arquivo. E você tem que ter cuidado para nomear esse arquivo exatamente como eu mencionei aqui. Então, o nome do arquivo, começaremos com dot git, lab, dash, ci, dot YAML. Portanto, se você não o nomear exatamente como você vê aqui, esse arquivo não será detectado e o pipeline em si não será executado. Neste pipeline, tenho aqui dois estágios simples. Há esse estágio de sites de compilação. No segundo estado que tenho é implantar no AWS S3. Vamos começar com o primeiro. Então, essencialmente, o que está acontecendo aqui é esse estágio. E eu recuei aqui dois espaços apenas para mostrar que tudo está abaixo da compilação do site, haverá parte do estágio de construção. Além disso, porque este é um projeto que precisa do npm para instalar dependências e não precisa de JS para executar mpm. Também vou usar uma imagem de encaixe. Então, vou especificar uma imagem de largura de imagem e o nome da imagem será nó. Vamos usar o nó na versão dez. Agora, quando eu tiver isso, posso usar o bloco de script. E dentro do script, OK, posso adicionar todos os comentários que eu quiser. Então, o comando principal em que estou interessado é npm install. Isso instalará todas as dependências que eu preciso. Além disso, o que estamos fazendo é que precisamos de uma ferramenta, chamada FASB CLI. Então, vamos instalar isso também. É sempre uma boa prática quando você tem alguma ferramenta. Apenas para uma versão mais curta, apenas para ter uma ideia como o que estamos instalando, especialmente se você não estiver instalando uma versão específica. E então eu vou fazer a construção do Gatsby. Portanto, esse é exatamente o mesmo comando que executei localmente. Então, estou tentando replicar no meu pipeline de CD de CI, exatamente as mesmas etapas que eu faria localmente. Essa é praticamente a chave para a automação. Assim que você souber exatamente quais comandos você precisa executar, você pode colocá-los facilmente dentro de um pipeline. Portanto, esse é o estado das contas essencialmente. E os estágios são criados dentro de imagens do Docker que não têm, elas não compartilham informações umas com as outras. Também precisamos de uma maneira de trocar essas informações. Então, praticamente, o que não discutimos é criar um artefato, ou essencialmente nossa pasta pública são os artefatos. Então, vou defini-lo sob caminhos de artefatos. Então vamos definir um caminho, esse artefato de que o caminho será público não terá esse caminho. Então, sabemos que quando a compilação do Gatsby for executada, essa pasta pública será criada. Não faz parte do nosso repositório git, então nunca está lá. E como queremos salvá-lo após a conclusão do trabalho, temos que especificá-lo como um artefato no Weizmann, o trabalho termina, a imagem do Docker é destruída e todas as informações são perdidas. Portanto, definitivamente não queremos isso porque queremos usar isso para implantar no AWS S3. Este novo quer manter as coisas tão separadas umas das outras, uma para ter como um grande trabalho que faz tudo em um manter as coisas tão limpas quanto possível. Além disso, a ferramenta de implantação como três, isso fará parte do estágio de implantação. Com o estágio de implantação, usaremos uma imagem oficial da AWS. É chamado Amazon AWS CLI. Temos que fazer algo um pouco diferente. Então essa imagem tem uma coisa estranha. É chamado de ponto de entrada. Eu não quero me envolver muito nisso, mas isso entra em conflito com uma maneira como o GitLab CI funciona com imagens. Então, teremos que substituir esses pontos de entrada. Então, para fazer isso, vou especificar aqui o nome. E também vamos especificar um ponto de entrada vazio. Portanto, certifique-se de que isso pareça exatamente como você vê aqui. Caso contrário, você receberá alguns erros estranhos quando estiver tentando iniciar isso. Neste ponto, o que temos? Bem, temos essa AWS CLI e a AWS CLI nos permite interagir com os serviços da Web da AWS. Mas desta vez não estamos usando a interface. Isso é algo que será devido manualmente. Estamos usando esta interface de linha de comando para dizer praticamente ao S3, Ei, aqui estão alguns arquivos, hospedá-los para nós, ok? Só para garantir que tudo funcionasse corretamente, vamos exibir aqui a versão da AWS, e esse é o nome do programa, então ele será simplesmente AWS. E o que estamos fazendo aqui é que estou tentando copiar todos os arquivos. Então, praticamente temos aqui a AWS. O S3 é um serviço que estamos tentando usar. Vendo aqui, copie público. E você pode ver aqui que estamos referenciando esse artefato que publicamos aqui. Então, quando esta imagem do Docker for iniciada, essa pasta também estará disponível lá. Caso contrário, se eu não especificá-lo aqui, pois um artefato também não está disponível aqui. Na coisa toda não funcionará. O que estamos fazendo aqui é que temos que especificar o caminho. Portanto, o caminho no S3 começa com barra de barra do S3. E então teremos que especificar o nome do bucket. I. Normalmente, poderíamos inserir aqui o nome do bucket como ele está. Não gosto de ter coisas parecidas que fornecem informações sobre o ambiente em si no pipeline. Por esse motivo, vou usar aqui uma variável de ambiente. Vou simplesmente nomeá-lo como bucket do S3. Certifique-se de colocar um cifrão na frente obedecido. Caso contrário, ele não será reconhecido como variável. E também estamos interessados em copiar todos os arquivos como você viu aqui na pasta pública. Há muitos arquivos, portanto, todos os dias ou subpastas e não queremos copiar ou especificar no arquivo. Então, por esse motivo, vou usar aqui uma bandeira chamada recursiva. Ainda há outra coisa que eu gostaria de fazer só para me sentir um pouco mais confortável. Provavelmente não é necessário, mas eu só quero começar toda vez com um estado vazio do bucket. Quero fazer algo como a AWS como três. E eu quero remover praticamente tudo o que está dentro do balde. Antes de adicionar novos arquivos. Por esse motivo, vou simplesmente especificar aqui remover, e também vou usar esse plano recursivo. Então, isso é essencialmente o que estamos fazendo aqui. Estamos usando essa imagem oficial do Docker da AWS, produzindo a versão, estamos simplesmente excluindo tudo o que está dentro do bucket apenas para garantir que não tenhamos nenhum conflito. E então estamos copiando todo o conteúdo da pasta pública. É assim que o pipeline se parece, mas isso não significa que ele funcionará. 9. Como criar credenciais de usuário da AWS: Agora, o que acontece aqui é que precisamos dizer à AWS CLI como quem somos nós? Qual, onde está o balde? Qual região é o balde e assim por diante. Portanto, ainda há um nível de configuração. E para concluir essa configuração, precisamos voltar para a AWS. Este é o bucket principal que está hospedando o site. E você verá aqui que definimos essa região. Normalmente, o que eu recomendo é que você selecione uma região mais próxima você ou mais próxima do público pretendido. Mas isso realmente não importa. Isso foi selecionado automaticamente para mim porque moro na Europa. E isso seria como se a região mais próxima que eu tenho e estou interessado em lembrar em qual região eu sou. E isso é como o código dessa região. Então, vou copiar isso e vou para git lab ci e precisamos especificar algumas variáveis apenas para ajudar a AWS CLI com algumas coisas deste menu à esquerda, você deve ser capaz de ver aqui algo como configurações, CICD. Você verá aqui um bloco de variáveis. Vou adicionar aqui uma variável, e essas variáveis estarão disponíveis para o trabalho em si. Então, se eu começar a digitar algo como a AWS sempre verá algumas variáveis e usaremos todas elas. Então, antes de tudo, estou interessado na região padrão. A região padrão que eu quero usar esta Central dos EUA. Então, vou simplesmente adicionar essa variável, inicialmente especificando duas outras variáveis. Voltando para a AWS, precisamos usar um serviço chamado IAM. Isso é para gerenciamento de identidades. Aqui no painel do IAM, vamos clicar aqui nos usuários. E vamos criar um novo usuário que só tenha acesso aos buckets do S3. Vamos chamar esse usuário GitLab CI. Isso nos ajudará a identificar o que esse usuário deve fazer ou o quê, onde essas provisões são usadas? E muito importante, você precisa selecionar aqui o acesso programático. Portanto, isso nos dá acesso à AWS CLI. Esta é exatamente a ferramenta que temos dentro da pré-eclâmpsia. Vou clicar em Avançar nas permissões e seguirei o caminho fácil de anexar uma permissão existente. Portanto, se eu pesquisar aqui o S3, selecionarei essa permissão, Amazon S3, acesso total. Essa permissão significa que você está dando a esse usuário acesso a todos os seus buckets. E, essencialmente, o usuário pode excluir todos os buckets e assim por diante. Só estou usando essa permissão porque está apenas demonstrando o princípio. Mas se você tiver um pequeno intervalo que contém dados confidenciais, pode ser aconselhável criar suas próprias políticas que restringam o acesso a apenas um bucket específico. Vai clicar aqui no próximo. Não tenho tags. E vou simplesmente ir em frente e criar esse usuário. Assim que você criar esse usuário, você verá aqui que tem como um ID de chave de acesso e também uma chave de acesso secreta. E eu estou te mostrando apenas para ter uma ideia como eles se parecem. Vou remover esse usuário logo após gravar este tutorial. Então, no caso de você estar se perguntando por que estou mostrando esse segredo aqui. O que vou fazer a seguir é copiar aqui o ID da chave de acesso, acessar o GitLab CI e adicionar uma nova variável. E essa variável começará aqui com a AWS. E você pode ver que estou usando o ID da chave de acesso da AWS. Este é um nome especial e essa variável será automaticamente escolhida pela AWS CLI quando você estiver executando isso. Portanto, todas as variáveis estarão nas variáveis de ambiente e na AWS. Vamos analisar, ei, existe uma variável chamada ID da chave de acesso da AWS? E usarei essa variável para estabelecer quem está tentando usar a AWS CLI. E o mesmo acontece com o segredo. Só quero ter certeza de que copio todo o segredo. E variável AWS e cole aqui o valor também. E eu simplesmente sou adicionado. Essencialmente, o que fizemos foi estabelecer uma conexão entre nossa conta da AWS, os recursos que estamos tentando acessar, neste caso, S3 e GitLab CI, ao mesmo tempo em que fornecemos apenas um acesso limitado a esse usuário. Portanto, esse usuário não terá acesso, por exemplo, para Usar a interface de gerenciamento, mas por meio da CLI, é possível fazer muitas coisas, mas elas estão limitadas apenas ao bucket. Praticamente o GitLab CI injetará essa variável. Então, vou mostrar a vocês em um pouco como isso funciona. 10. Como executar o pipeline GitLab CI: Então, agora que temos nosso pipeline no lugar e minha esperança de que tudo esteja bom, caso contrário, vamos depurá-lo mais tarde. Não é possível simplesmente comitês e dizer adicionar pipeline. E vou empurrar as mudanças logo que fiz isso. Se eu voltar para a página do projeto, você deve ser capaz de ver algo assim aqui, como o pipeline está sendo executado originalmente. Se você não vir aqui ou algo está acontecendo, você pode ir aqui para o pipeline CICD. Este é o primeiro pipeline que está sendo executado no momento, e você verá que ele tem dois estágios. Portanto, o primeiro estágio é simplesmente o estágio de construção, e o segundo estágio é o estágio de implantação. Veja aqui que o site de criação de empregos começou. Então, se você quiser ver exatamente o que está acontecendo, pode simplesmente clicar nele. Isso mostrará que você é como o que está fazendo atualmente. Está praticamente iniciando esta imagem do Docker do nó. Depois que isso for iniciado, ele começa a passar pelos comandos que temos. Então, vou aqui para a página de visão geral. Vou deixá-lo por alguns minutos para correr. Normalmente, não deve demorar mais de dois ou três minutos. Aqui, voltando alguns minutos depois, você está olhando para o seu pipeline. Nesse caso, algo deu errado, então isso não é um problema. Vai ser um bom exemplo de tentar entender como o que está acontecendo. E sempre que você estiver escrevendo algum script, as coisas podem dar errado. E o que aconteceu aqui é que você pode ver a primeira parte com o cinto que funciona sem problemas. Então, veremos aqui que todos os comandos foram executados, inclusive são reconstruídos. E podemos até aqui, dar uma olhada em artefatos de trabalho. Então, se você clicar aqui em Procurar, verá aqui que temos uma pasta pública para praticamente conter todo o site. Mas duvidamos, porém, por exemplo, um bom pipeline de CI de laboratório e coisas assim. Portanto, somente a pasta pública foi adicionada aqui. Então isso definitivamente parece certo. Agora vamos ver o que aconteceu com a segunda parte do pipeline que deve ser implantada no S3. E não posso enfatizar o quão importante é ter essa capacidade de examinar os logs do console e tentar entender como o que está acontecendo aqui. Então, veremos nesta etapa e, neste caso tipicamente, a última coisa que falhou também é o motivo de nossos, todos os nossos problemas. Nesse caso, você verá que nenhuma AWS está sendo executada no sentido de que a CLI está disponível aqui, que é a versão. Então esse é um primeiro passo. Certo, sabemos que temos a ferramenta certa. E assim que tentamos fazer algo, por exemplo, tentamos remover todos os arquivos do bucket. Veremos aqui algo como nome de bucket inválido e diz vazio. Então, essencialmente, diz, ei, o nome do bucket está vazio. Então, está vazio porque fui um pouco rápido ao tentar fazer é, e esqueci de definir essa variável. Então, como você se lembra, definimos outras variáveis aqui em Configurações, o ICD, mas eu realmente não encontrei o nome do bucket. Essa também é uma variável que é necessária aqui. Então, vou simplesmente clicar aqui em Adicionar variável. E do jeito que você o nomeia, depende totalmente de você. Não é uma dessas variáveis que realmente importa como você as chama. É só que eles têm que combinar com o que você está usando em tal script aqui, o valor que estou usando é este. Portanto, esse é o nome do bucket. Tão normal, basta clicar aqui em Adicionar variáveis. E como não tem sido um problema com o script de pipeline em si, posso simplesmente seguir em frente aqui no pipeline, no trabalho de Implantar e clicar aqui nesta nova tentativa. E você pode até acompanhar se clicar agora, você poderá ver exatamente o que está acontecendo. Isso levou apenas alguns segundos para ser executado. Verei desta vez que o trabalho em si passou, então tudo está parecendo corretamente. Essencialmente, removemos tudo e ele está dizendo exatamente o que foi removido e, em seguida, iniciamos o upload. Então, ele passará por cada arquivo individual e carregará. E assim, de apenas olhar para vários arquivos que foram carregados aqui parece, como se tudo funcionasse corretamente. Podemos voltar ao nosso domínio aqui e clicar no botão Atualizar. E você deve poder ver o site. Então este é o site que eu estava tentando implantar. Também é uma boa ideia verificar se todas as páginas estão funcionando corretamente. É isso, é assim que é suposto funcionar. Agora temos tudo configurado por meio do nosso pipeline de integração contínua aqui. 11. O processo para fazer uma mudança: Vamos nos certificar de que também podemos fazer uma pequena alteração. Então, vou aqui dentro do ID, vou clicar no código-fonte, meio que vá para as páginas index.html. E em vez de pessoas altas vão dizer algo como olá mundo. Alterações muito pequenas, como indicam como é fácil depois fazer alterações e implantadas. E então vou dizer aqui como mensagem alterada. E vamos empurrar. E, claro, novamente, o pipeline é responsável por garantir que eu não quebrei nada. Então, igualmente importante, é também construir um processo que verificará novamente se algo der errado. Também lhe enviaremos uma notificação por e-mail se algo não der certo. Então, provavelmente, você pode simplesmente fazer suas alterações e continuar fazendo outra coisa sem se preocupar muito com isso. Então, isso é como o poder da automação por completo. Apenas alguns minutos depois, o pipeline foi bem-sucedido. Vamos voltar ao site. Diz pessoas altas, nos atualizamos. E agora diz Hello World. Isso é o que significa ter um pipeline de implantação contínua simples, mas muito poderoso simplesmente leva uma mudança que você tem e colocá-los em sua infraestrutura. 12. CONCLUSÃO: Já que estamos chegando ao final deste tutorial, vamos fazer uma pequena recapitulação do que fizemos até agora. Voltando aos serviços da AWS, podemos examinar o S3. S3 temos essencialmente quais nossos três buckets. Portanto, um deles é o bucket principal com www e o nome de domínio que contém todos os arquivos que estamos usando no projeto. E essencial para isso, especificamos algumas coisas, algumas permissões aqui em relação ao acesso público. Mas também assim, essa configuração adicional para a política de bucket que permite essencialmente qualquer pessoa obter informações daqui. E o que eu normalmente recomendo é que você não armazene nenhuma outra pasta aqui. Então, essencialmente, você poderia ter uma subpasta se você for para sua configuração para obter propriedades. E você pode especificar, se você estiver olhando aqui para hospedagem estática de sites, você pode especificá-lo facilmente em uma subpasta. Então, poderíamos ter algo como barra pública index.html. Isso funcionaria. Mas a questão é o que você gostaria de ter na parte raiz? Porque isso, teoricamente, ainda acessível. Então isso é algo que eu não recomendo que você armazene mais nada aqui dentro. É só por motivos de segurança. Parte das coisas de permissão nas propriedades que também configuramos aqui alguns registros de acesso ao servidor. E essa é a parte do Access Logging. E, como você se lembra, usamos outro bucket nem para armazenar registros de acesso a dados para levar um pouco até que os logs estejam disponíveis. Então, normalmente, espere 24 horas para ver algo dentro da pasta. E o outro bucket sem o www está simplesmente lá para criar esse leitor. Ok, Então, dentro daqui, as configurações de DNS. Você verá aqui que eu criei esse registro de alias. Muito parecido. Você poderia ter criado um registro CNAME. Meu entendimento, não sou um especialista por nenhum meio. Meu entendimento é que um CNAME, faremos outra pesquisa de DNS. Portanto, por esse motivo, o registro de alias geralmente é mais rápido. A maneira como eu fiz isso aqui é bem semelhante. Antes do DNS, estou usando a Cloudflare. Eles têm como uma interface muito poderosa e também se preparam para armazenamento em cache e muitos outros mecanismos. Desde aqui, o serviço de registro de domínios me permitiu adicionar diretamente. Isso não precisava de nada mais avançado do que este. Desde que estabelecemos como fazer upload de arquivos para o S3 e como praticamente vincular como 32 ou nome de domínio. Na segunda parte, analisamos a construção desse pipeline. Então, essencialmente, o pipeline leva qualquer processo de compilação que você tenha se tiver um. E na segunda parte, ele usa a AWS CLI para implantar automaticamente todos os arquivos que você tenha no S3. Portanto, essencialmente, você não precisa fazer logback na interface do S3. E especialmente se você já estiver usando o Git para seus fluxos de trabalho, pode ser uma solução muito mais rápida. Obrigado por ficar até o final. Sei que este tem sido um longo tutorial e espero ter conseguido acompanhar. Você encontrará um arquivo de projeto, incluindo o pipeline GitLab CI na descrição do período. Eu integrei um pipeline de implantação contínua neste exemplo para demonstrar a você como pode ser fácil automatizar tarefas manuais. Vejo você na próxima vez. Adeus.