<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Diego Cravo Teixeira</title>
    <description>The latest articles on DEV Community by Diego Cravo Teixeira (@diegocravo).</description>
    <link>https://dev.to/diegocravo</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F910693%2Ffedc304a-c272-4b0b-93d3-4ec05043b62a.jpeg</url>
      <title>DEV Community: Diego Cravo Teixeira</title>
      <link>https://dev.to/diegocravo</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/diegocravo"/>
    <language>en</language>
    <item>
      <title>Ferramentas de CI/CD na AWS</title>
      <dc:creator>Diego Cravo Teixeira</dc:creator>
      <pubDate>Fri, 16 Sep 2022 19:06:39 +0000</pubDate>
      <link>https://dev.to/diegocravo/ferramentas-de-cicd-na-aws-kik</link>
      <guid>https://dev.to/diegocravo/ferramentas-de-cicd-na-aws-kik</guid>
      <description>&lt;p&gt;Nesta série de posts teremos uma visão geral das ferramentas de CI/CD (Continuous Integration e Continuous Delivery) na AWS. Neste primeiro post falaremos sobre os conceitos de CI e CD e como isso pode aumentar a capacidade de uma empresa em fornecer aplicativos e serviços em alta velocidade e melhor qualidade. Também veremos os serviços da AWS para CI e CD.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;CI - Continuous Integration&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Integração contínua é uma prática de desenvolvimento de software onde os desenvolvedores mesclam regularmente suas alterações de código em um repositório central (o famoso merge), após o qual compilações e testes automatizados são executados.&lt;/p&gt;

&lt;p&gt;Uma CI ajuda a encontrar e solucionar bugs de maneira mais rápida, melhorar a qualidade do software e reduzir o tempo necessário para validar e lançar novas atualizações do mesmo.&lt;/p&gt;

&lt;p&gt;A AWS oferece os seguintes serviços para integração contínua:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://docs.aws.amazon.com/pt_br/whitepapers/latest/introduction-devops-aws/aws-codecommit.html"&gt;AWS CodeCommit&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.aws.amazon.com/pt_br/whitepapers/latest/introduction-devops-aws/aws-codebuild.html"&gt;AWS CodeBuild&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.aws.amazon.com/pt_br/whitepapers/latest/introduction-devops-aws/aws-codeartifact.html"&gt;AWS CodeArtifact&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;CD - Continuous Delivery&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Entrega contínua é uma prática de desenvolvimento de software em que as alterações de código são criadas, testadas e preparadas automaticamente para uma versão de produção.&lt;/p&gt;

&lt;p&gt;Um pilar do desenvolvimento de aplicativos modernos, a entrega contínua expande a integração contínua, implantando todas as alterações de código em um ambiente de teste e/ou de produção após o estágio de compilação. Quando implementado corretamente, os desenvolvedores sempre terão um artefato de compilação pronto para implantação que passou por um processo de teste padronizado.&lt;/p&gt;

&lt;p&gt;A entrega contínua permite que os desenvolvedores automatizem os testes além de apenas testes de unidade para que possam verificar as atualizações das suas aplicações em várias dimensões antes de implantar nos clientes. Esses testes podem incluir testes de UI, testes de carga, testes de integração, testes de API, etc.&lt;/p&gt;

&lt;p&gt;A AWS oferece os seguintes serviços para entrega contínua:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://docs.aws.amazon.com/pt_br/whitepapers/latest/introduction-devops-aws/aws-codebuild.html"&gt;AWS CodeBuild&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.aws.amazon.com/pt_br/whitepapers/latest/introduction-devops-aws/aws-codedeploy.html"&gt;AWS CodeDeploy&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.aws.amazon.com/pt_br/whitepapers/latest/introduction-devops-aws/aws-codepipeline.html"&gt;AWS CodePipeline&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Um caminho para integração contínua/entrega contínua&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;CI/CD pode ser retratado como um pipeline (figura abaixo), onde o novo código é enviado por um lado, testado em uma série de estágios (fonte, compilação, preparação e produção) e, em seguida, publicado como código pronto para produção.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--tJxq3VD---/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2krcibo6vlir3095j4sd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--tJxq3VD---/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2krcibo6vlir3095j4sd.png" alt="CI/CD pipeline" width="880" height="164"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;O Pipeline CI/CD&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Cada estágio do pipeline de CI/CD é estruturado como uma unidade lógica no processo de entrega. Além disso, cada estágio atua como um portão que verifica um determinado aspecto do código. À medida que o código progride pelo pipeline, supõe-se que a qualidade do código é maior nos estágios posteriores pois mais aspectos dele continuam a ser verificados. Problemas descobertos em um estágio inicial impedem que o código progrida pelo pipeline. Os resultados dos testes são enviados imediatamente para a equipe e todas as compilações e lançamentos posteriores são interrompidos se o software não passar por um determinado estágio.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--pUmuiUzo--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/cr154rwu8lc15iu8apoq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--pUmuiUzo--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/cr154rwu8lc15iu8apoq.png" alt="Pipeline AWS" width="880" height="261"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Conclusão&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Integração Contínua e Entrega Contínua fornecem um cenário ideal para o time de desenvolvimento dentro de uma empresa. Seus desenvolvedores simplesmente enviam o código para um repositório. Esse código será integrado, testado, implantado, testado novamente, mesclado com a infraestrutura, passará por análises de segurança e qualidade e estará pronto para ser implantado com uma confiança extremamente alta.&lt;/p&gt;

&lt;p&gt;Quando o CI/CD é usado, a qualidade do código é melhorada e as atualizações de software são entregues de maneira mais rápida e com alta confiança de que não haverá alterações significativas.&lt;/p&gt;

&lt;p&gt;Espero que tenham gostado e até a próxima!&lt;/p&gt;

</description>
      <category>aws</category>
      <category>devops</category>
      <category>cloud</category>
      <category>braziliandevs</category>
    </item>
    <item>
      <title>Badges de aprendizado da AWS - Adquira o seu de maneira gratuita</title>
      <dc:creator>Diego Cravo Teixeira</dc:creator>
      <pubDate>Fri, 09 Sep 2022 18:23:26 +0000</pubDate>
      <link>https://dev.to/diegocravo/badges-de-aprendizado-da-aws-adquira-o-seu-de-maneira-gratuita-3l26</link>
      <guid>https://dev.to/diegocravo/badges-de-aprendizado-da-aws-adquira-o-seu-de-maneira-gratuita-3l26</guid>
      <description>&lt;p&gt;Neste post vamos entender o que são os badges da AWS e como conseguir eles de maneira gratuita.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;O que é um Badge de aprendizado da AWS?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Um badge digital (ou selo / credencial / emblema digital) fornece uma maneira verificável para indivíduos mostrarem seus conhecimento, habilidades ou realizações, seja por meio de um currículo, rede social ou assinatura de e-mail. Os ganhadores do badge podem exibir a imagem do selo com um link exclusivo no qual qualquer pessoa pode verificar a conquista desse indivíduo específico. Os Badges da AWS ainda oferecem os seguintes benefícios:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Demonstram seu conhecimento e habilidades para tópicos específicos da Nuvem AWS, como Object Storage.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Podem ser compartilhados em redes sociais para ajudar você a se destacar para recrutadores e possíveis gerentes de contratação.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;São gratuitos para ganhar e compartilhar.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Quais tipos de badges da AWS estão disponíveis?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Os Badges do AWS são alinhados aos planos de aprendizado selecionados do &lt;a href="https://explore.skillbuilder.aws/learn" rel="noopener noreferrer"&gt;AWS Skill Builder&lt;/a&gt;, como:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://explore.skillbuilder.aws/learn/public/learning_plan/view/51/storage-learning-plan-object-storage" rel="noopener noreferrer"&gt;Storage Learning Plan - Object&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://explore.skillbuilder.aws/learn/public/learning_plan/view/93/storage-learning-plan-block-storage" rel="noopener noreferrer"&gt;Storage Learning Plan - Block&lt;/a&gt; &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://explore.skillbuilder.aws/learn/public/learning_plan/view/95/storage-learning-plan-file-storage" rel="noopener noreferrer"&gt;Storage Learning Plan - File&lt;/a&gt; &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://explore.skillbuilder.aws/learn/public/learning_plan/view/94/storage-learning-plan-data-migration" rel="noopener noreferrer"&gt;Storage Learning Plan - Data Migration&lt;/a&gt; &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://explore.skillbuilder.aws/learn/public/learning_plan/view/54/storage-learning-plan-data-protection-and-disaster-recovery" rel="noopener noreferrer"&gt;Storage Learning Plan - Data Protection &amp;amp; Disaster Recovery&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjmr79ibe4580lutawia1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjmr79ibe4580lutawia1.png" alt="Badges AWS"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Se você conseguir os badges de &lt;u&gt;Object&lt;/u&gt;, &lt;u&gt;Block &lt;/u&gt;e &lt;u&gt;File&lt;/u&gt;, ganhará automaticamente o badge de Storage Core. Se você ganhar todos os badges de &lt;u&gt;Storage&lt;/u&gt;, você automaticamente ganhará o badge de Storage Technologist.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Como ganhar um Badge de aprendizado da AWS&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A seguir estão as etapas para se obter um badge digital da AWS:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Registre-se para uma conta gratuita do &lt;a href="https://skillbuilder.aws/" rel="noopener noreferrer"&gt;AWS Skill Builder&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Inscreva-se em um dos planos de aprendizado listados acima. &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Complete a avaliação associada ao plano de aprendizagem com pontuação igual ou superior a 80%.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Crie uma conta &lt;a href="https://www.credly.com/users/sign_up" rel="noopener noreferrer"&gt;Credly&lt;/a&gt; para reivindicar seu badge digital.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Conclusão&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Neste post conseguimos entender o que são as badges digitais da AWS e como conseguir as mesmas.&lt;/p&gt;

&lt;p&gt;Espero que tenham gostado e até a próxima!&lt;/p&gt;

</description>
      <category>aws</category>
      <category>cloud</category>
      <category>braziliandevs</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Começando com AWS Cloud</title>
      <dc:creator>Diego Cravo Teixeira</dc:creator>
      <pubDate>Wed, 07 Sep 2022 15:00:40 +0000</pubDate>
      <link>https://dev.to/diegocravo/comecando-com-aws-cloud-47h6</link>
      <guid>https://dev.to/diegocravo/comecando-com-aws-cloud-47h6</guid>
      <description>&lt;p&gt;Nest post iremos entender melhor o que é a nuvem AWS. Mas antes vamos entender melhor o que é computação em nuvem de uma maneira geral.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;O que é computação em nuvem&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A computação em nuvem (cloud computing) é a entrega sob demanda de poder de computação, banco de dados, armazenamento, aplicativos e outros recursos de TI por meio de uma plataforma de serviços em nuvem pela Internet com preços pagos conforme o uso (on demand). Tradicionalmente, um desenvolvedor que procurava criar um aplicativo precisava adquirir, configurar e manter uma infraestrutura física além do próprio o aplicativo. É aí que entra a computação em nuvem.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--aRptS5tg--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/51ng496z6fuxg1tswogt.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--aRptS5tg--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/51ng496z6fuxg1tswogt.png" alt="Cloud" width="673" height="464"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Uma plataforma de serviços em nuvem fornece acesso rápido a recursos de TI flexíveis e de baixo custo que você pode usar para criar e manter software e bancos de dados e criar aplicativos. Você não precisa fazer grandes investimentos iniciais em hardware e gastar muito tempo no trabalho pesado de gerenciar esse hardware. Você pode acessar quantos recursos precisar, quase instantaneamente, e pagar apenas pelo que usar. O acesso a serviços sob demanda e com pagamento conforme o uso é fundamental para o modelo de computação em nuvem.&lt;/p&gt;

&lt;p&gt;Alguns provedores de nuvem são a Amazon AWS, Microsoft Azure, Google Cloud Platform, Alibaba Cloud, Oracle Cloud Infrastructure e Tencent Cloud. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--g2uvAMSW--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/btb03zuw4kz4q9zky50k.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--g2uvAMSW--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/btb03zuw4kz4q9zky50k.png" alt="Cloud Providers" width="880" height="350"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Vantagens da computação em nuvem&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A nuvem oferece aos desenvolvedores uma maior flexibilidade, escalabilidade e tempo para inovação mais rápido. Com a computação em nuvem, você pode&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;u&gt;Pague conforme o uso&lt;/u&gt; - Pague apenas quando usar os recursos de computação e apenas por quanto usar.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;u&gt;Economias de escala&lt;/u&gt; - Um provedor de nuvem tem centenas de milhares de clientes na nuvem, o que leva a maiores economias de escala. Isso se traduz em preços mais baixos de pagamento conforme o uso.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;u&gt;Pare de adivinhar a capacidade&lt;/u&gt; - Com a computação em nuvem, você pode acessar o máximo ou o mínimo de capacidade que precisar e aumentar e diminuir conforme necessário com apenas alguns minutos de antecedência.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;u&gt;Velocidade e a agilidade&lt;/u&gt; - Os recursos de TI estão a apenas um clique de distância, o que significa que você reduz o tempo para disponibilizar recursos para seus desenvolvedores de semanas para minutos. Isso aumenta drasticamente a agilidade para a organização, porque o custo e o tempo necessários para experimentar e desenvolver são significativamente menores.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;u&gt;Obtenha economia de custos&lt;/u&gt; - As empresas podem se concentrar em projetos que diferenciam seus negócios em vez de manter data centers. Com a computação em nuvem, você pode se concentrar em seus clientes, em vez do trabalho pesado de armazenamento em rack, empilhamento e alimentação da infraestrutura física.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;u&gt;Torne-se global em minutos&lt;/u&gt; - Os aplicativos podem ser implantados em várias regiões ao redor do mundo com apenas alguns cliques. Isso significa que você pode fornecer menor latência e uma melhor experiência para seus clientes a um custo mínimo.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;O que é a nuvem AWS?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A AWS fornece serviços de tecnologia sob demanda por meio da Internet com preços de pagamento conforme o uso. Isso é conhecido como computação em nuvem.&lt;/p&gt;

&lt;p&gt;A Nuvem AWS abrange um amplo conjunto de produtos globais baseados em nuvem que incluem computação, armazenamento, bancos de dados, análise, rede, dispositivos móveis, ferramentas para desenvolvedores, ferramentas de gerenciamento, IoT, segurança e aplicativos empresariais: sob demanda, disponíveis em segundos, com preços de pagamento conforme o uso. Com mais de 200 serviços completos disponíveis em data centers em todo o mundo, a Nuvem AWS tem o que é necessário para desenvolver, implantar e operar seus aplicativos, reduzindo custos, tornando-se mais ágil e inovando mais rapidamente.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--5Ftjdet5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ktd9qcksxv8fxwy8v2nw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--5Ftjdet5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ktd9qcksxv8fxwy8v2nw.png" alt="AWS Cloud" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Por exemplo, com a Nuvem AWS, você pode ativar uma máquina virtual, especificando o número de núcleos de vCPU, memória, armazenamento e outras características em segundos, e pagar pela infraestrutura em incrementos por segundo apenas enquanto estiver em execução. Um benefício da rede de infraestrutura global da AWS é que você pode provisionar recursos na região ou regiões que melhor atendem ao seu caso de uso específico. Quando terminar com os recursos, você pode simplesmente excluí-los. &lt;/p&gt;

&lt;p&gt;E como a própria AWS diz,&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Com essa flexibilidade e escalabilidade integradas, você pode criar um aplicativo para atender seu primeiro cliente e, em seguida, dimensioná-lo para atender aos próximos 100 milhões.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;IaaS, PaaS e SaaS&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A computação em nuvem fornece aos desenvolvedores a capacidade de se concentrar no que é mais importante e evitar aquisição de infraestrutura, manutenção e planejamento de capacidade.&lt;/p&gt;

&lt;p&gt;Com a crescente popularidade da computação em nuvem, vários modelos de serviços surgiram para ajudar a atender às necessidades específicas de diferentes usuários. Cada tipo de serviço de nuvem oferece diferentes níveis de abstração, controle, flexibilidade e gerenciamento. A seguir vamos entender as diferenças entre Infraestrutura como Serviço (IaaS), Plataforma como Serviço (PaaS) e Software como Serviço (SaaS).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Infraestrutura como Serviço (IaaS)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A infraestrutura como serviço (IaaS) contém os blocos de construção básicos para a TI em nuvem e normalmente fornece acesso a recursos de rede, computadores (virtuais ou em hardware dedicado) e espaço de armazenamento de dados. IaaS fornece o mais alto nível de flexibilidade e controle de gerenciamento sobre seus recursos de TI e é mais parecido com os recursos de TI existentes com os quais muitos desenvolvedores já estão familiarizados.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--E2QVDTVZ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1uri1k3j20dttan56q52.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--E2QVDTVZ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1uri1k3j20dttan56q52.png" alt="IaaS" width="158" height="80"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Plataforma como Serviço (PaaS)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A plataforma como serviço (PaaS) elimina a necessidade de você gerenciar a infraestrutura subjacente (geralmente hardware e sistemas operacionais) e permite que você se concentre na implantação e no gerenciamento de seus aplicativos. Isso ajuda você a ser mais eficiente porque não precisa se preocupar com aquisição de recursos, planejamento de capacidade, manutenção de software, aplicação de patches ou qualquer outro trabalho pesado envolvido na execução de seu aplicativo.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--4DgwZrwT--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/mdlhbwzm2x73mrgy0fa8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--4DgwZrwT--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/mdlhbwzm2x73mrgy0fa8.png" alt="PaaS" width="157" height="83"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Software como Serviço (SaaS)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Software como Serviço (SaaS) fornece a você um produto completo que é executado e gerenciado pelo provedor de serviços. Na maioria dos casos, as pessoas que se referem a SaaS estão se referindo a aplicativos de usuário final. Com uma oferta de SaaS, você não precisa pensar em como o serviço é mantido ou como a infraestrutura subjacente é gerenciada, você só precisa pensar em como usará esse software. Um exemplo comum de um aplicativo SaaS é o e-mail baseado na Web (Gmail por exemplo) que você pode usar para enviar e receber e-mail sem precisar gerenciar adições de recursos ao produto de e-mail ou manter os servidores e sistemas operacionais nos quais o programa de e-mail está sendo executado.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--EH9S_hVn--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/wci85w4y3fun4lyoitfm.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--EH9S_hVn--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/wci85w4y3fun4lyoitfm.png" alt="SaaS" width="149" height="76"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Conclusão&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Neste post conseguimos entender o que é computação em Nuvem e, mais especificamente, o que é a nuvem AWS. Também vimos alguns tipos de serviços que os provedores de nuvem podem oferecer. &lt;/p&gt;

&lt;p&gt;Espero que tenham gostado, até a próxima!&lt;/p&gt;

</description>
      <category>aws</category>
      <category>cloud</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Terraform - O que é Infraestrutura como Código?</title>
      <dc:creator>Diego Cravo Teixeira</dc:creator>
      <pubDate>Sat, 03 Sep 2022 05:47:23 +0000</pubDate>
      <link>https://dev.to/diegocravo/terraform-o-que-e-infraestrutura-como-codigo-1h98</link>
      <guid>https://dev.to/diegocravo/terraform-o-que-e-infraestrutura-como-codigo-1h98</guid>
      <description>&lt;p&gt;Neste atigo iremos entender melhor o que é Infraestrutura como Código, ou simplesmente IaC (infrastructure as code). &lt;/p&gt;

&lt;p&gt;Infraestrutura como código permitem gerenciar a infraestrutura com arquivos de configuração em vez de por meio de uma interface gráfica do usuário. IaC permite que você crie, altere e gerencie sua infraestrutura de maneira segura, consistente e repetitível, definindo configurações de recursos que você pode versionar, reutilizar e compartilhar.&lt;/p&gt;

&lt;p&gt;Terraform é a ferramena de infraestrutura como código da HashiCorp. Esta ferramente permite que você defina recursos e infraestrutura em arquivos de configuração declarativos de maneira legível por humanos e gerencie o ciclo de vida de sua infraestrutura. O uso do Terraform tem várias vantagens em relação ao gerenciamento manual de sua infraestrutura:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Terraform pode gerenciar a infraestrutura em várias plataformas de nuvem (AWS, Azure, GCP, Oracle, entre outros).&lt;/li&gt;
&lt;li&gt;A linguagem de configuração legível por humanos ajuda você a rapidamente escrever infraestrutura como código.&lt;/li&gt;
&lt;li&gt;O gerenciamente de estado do Terraform permite o rastrear alterações de recursos em todas os seus deploys.&lt;/li&gt;
&lt;li&gt;Você pode commitar suas configurações com o controle de versão para colaborar com segurança na infraestrutura.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s---qtbUCal--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qyg9b7y31bfsqj03697d.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s---qtbUCal--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qyg9b7y31bfsqj03697d.png" alt="Terraform" width="245" height="245"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Manage any infrastructure&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Os plugins do Terraform chamados de providers permitem que o Terraform interaja com as plataformas de nuvem e outros serviços por meio de APIs (Application Programming Interface). A HashiCorp e a comunidade Terraform já escreveram mais de 1.000 providers para gerenciar recursos na Amazon Web Services (AWS), Azure, Google Cloud Platform (GCP), Kubernetes, Helm, GitHub, Splunk e DataDog, só para citar alguns. Você pode Encontrar providers para as plataformas e serviços que você já usa no &lt;a href="https://registry.terraform.io/browse/providers?_gl=1*14d5v34*_ga*MTU2ODY5MDUyMS4xNjYyMTgxNzA5*_ga_P7S46ZYEKW*MTY2MjE4MTcwOS4xLjEuMTY2MjE4MjA3OS4wLjAuMA.."&gt;Terraform Registry&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--sd64eN4o--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/j4m164iea6zgssqidm6z.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--sd64eN4o--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/j4m164iea6zgssqidm6z.png" alt="Terraform Providers" width="880" height="504"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Padronize o workflow de Deploy&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Os providers definem unidades individuais de infraestrutura, por exemplo, instâncias de computação (Amazon EC2 ou Azure Virtual Machines) ou redes privadas (Amazon VPC ou Azure Virtual Network) como recursos.&lt;/p&gt;

&lt;p&gt;A linguagem de configuração do Terraform é declarativa, o que significa que descreve o estado final desejado para sua infraestrutura. Os providers do Terraform calculam automaticamente as dependências entre os recursos para criá-los ou destruí-los na ordem correta.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--U1YV-gqq--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/mdf5g47myxhtiotaj27i.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--U1YV-gqq--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/mdf5g47myxhtiotaj27i.png" alt="Terraform workflow" width="880" height="325"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Para fazer o deploy de infraestrutura com o Terraform:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Escopo - Identifique a infraestrutura para o seu projeto.&lt;/li&gt;
&lt;li&gt;Autor - Escreva a configuração para sua infraestrutura.&lt;/li&gt;
&lt;li&gt;Inicializar - Instale os plugins que o Terraform precisa para gerenciar a infraestrutura.&lt;/li&gt;
&lt;li&gt;Planejar - Visualize as alterações que o Terraform fará para corresponder à sua configuração.&lt;/li&gt;
&lt;li&gt;Aplicar - Faça as alterações planejadas.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Acompanhe sua infraestrutura&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;O Terraform rastreia sua infraestrutura real em um arquivo de estado, que atua como uma fonte de "verdade" para o seu ambiente. O Terraform usa o arquivo de estado para determinar as alterações a serem feitas em sua infraestrutura para que ela corresponda à sua configuração.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Conclusão&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Neste artigo vimos alguns conceitos básicos sobre Infraestrutura como Código e Terraform, uma ferramenta de software de código aberto, criada pela HashiCorp. &lt;/p&gt;

&lt;p&gt;Espero que tenham gostado e até a próxima.&lt;/p&gt;

</description>
      <category>terraform</category>
      <category>aws</category>
      <category>iaac</category>
      <category>cloud</category>
    </item>
    <item>
      <title>Deploy de uma aplicação React no AWS Amplify</title>
      <dc:creator>Diego Cravo Teixeira</dc:creator>
      <pubDate>Wed, 31 Aug 2022 05:34:53 +0000</pubDate>
      <link>https://dev.to/diegocravo/deploy-de-uma-aplicacao-react-no-aws-amplify-1h30</link>
      <guid>https://dev.to/diegocravo/deploy-de-uma-aplicacao-react-no-aws-amplify-1h30</guid>
      <description>&lt;p&gt;Neste tutorial iremos aprender como fazer o deploy de uma aplicação React no AWS Amplify. Mas antes de por a mão na massa, vamos entender melhor alguns conceitos básicos sobre o React e o AWS Amplify, os pré requisitos do tutorial e os custos.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pré Requisitos&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Conta da &lt;a href="https://aws.amazon.com/pt/"&gt;AWS&lt;/a&gt; com acesso de administrador*&lt;/li&gt;
&lt;li&gt;Node.js: &lt;a href="//nodejs.org/en/download/"&gt;Node.js&lt;/a&gt; versão 10.x ou posterior&lt;/li&gt;
&lt;li&gt;Conta no &lt;a href="https://github.com/"&gt;GitHub&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Git: Usuários do Windows precisarão instalar o &lt;a href="https://git-scm.com/downloads"&gt;Git&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Editor de texto de sua escolha. Neste tutorial iremos usar o &lt;a href="https://code.visualstudio.com/download"&gt;Visual Studio Code&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;O que é React?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;React é uma biblioteca JavaScript para construir interfaces de usuário interativas. Por interfaces de usuário, queremos dizer os elementos que os usuários veem e interagem na tela. Por biblioteca, queremos dizer que o React fornece funções úteis para construir a interface do usuário, mas deixa para o desenvolvedor onde usar essas funções em seu aplicativo.&lt;/p&gt;

&lt;p&gt;O React possui as seguintes características:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Declarativo: React faz com que a criação de UIs interativas seja uma tarefa fácil. Crie views simples para cada estado na sua aplicação, e o React irá atualizar e renderizar de forma eficiente apenas os componentes necessários na medida em que os dados mudam.&lt;/li&gt;
&lt;li&gt;Baseado em Componentes: Crie componentes encapsulados que gerenciam seu próprio estado e então, combine-os para criar UIs complexas.&lt;/li&gt;
&lt;li&gt;Aprenda uma vez, use em qualquer lugar: Você pode desenvolver novos recursos com React sem reescrever o código existente.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--zxuVZYCc--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0kzjqccjzpuje6ipnsse.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--zxuVZYCc--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0kzjqccjzpuje6ipnsse.png" alt="React Logo" width="310" height="104"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;O que é AWS Amplify&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;O AWS Amplify fornece um fluxo de trabalho CI/CD baseado em Git para criar, implantar e hospedar aplicações Webs. Ao conectar-se a um repositório Git, o Amplify determina automaticamente as configurações de compilação para a estrutura de trabalho do front-end e implanta automaticamente atualizações a cada commit de código. Ou seja, ao atualizar o nosso código no repositório Git, as atualização serão automaticamente implantadas na nossa aplicação Web. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--e4r5M3PE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4xtxrw0rv3ka3pgb7562.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--e4r5M3PE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4xtxrw0rv3ka3pgb7562.png" alt="Amplify Logo" width="723" height="102"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Criar uma aplicação React&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A maneira mais fácil de criar uma aplicatição React é utlizando o comando create-react-app. Instale este pacote usando os seguintes comandos em seu prompt de comando ou terminal:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npx create-react-app amplify-app
cd amplifyapp
npm start
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Em seguida, abra &lt;a href="http://localhost:3000/"&gt;http://localhost:3000/&lt;/a&gt; para ver seu aplicativo.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--gfxo9TV_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ql22k3qf876cy1trii45.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--gfxo9TV_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ql22k3qf876cy1trii45.png" alt="React App" width="880" height="492"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Criar Repositório no GitHub&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Nesta etapa, vamos criar um repositório GitHub e enviar nosso código para o repositório. Lembre-se que você precisa de uma conta do GitHub para concluir esta etapa – se você não tiver uma conta, inscreva-se &lt;a href="https://github.com/"&gt;aqui&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Crie um novo repositório GitHub para seu aplicativo neste &lt;a href="https://github.com/new"&gt;link&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--yZkFCVdc--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5zd7kaid5u6gq3pb731s.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--yZkFCVdc--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5zd7kaid5u6gq3pb731s.png" alt="Novo Repositório" width="880" height="505"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Inicialize o git e faça um push do aplicativo para o novo repositório GitHub executando os seguintes comandos no seu terminal (não esquece de substituir o username e o reponame pelo seu usuário e nome do repositório):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git init
git remote add origin git@github.com:username/reponame.git
git add .
git commit -m “initial commit”
git push origin master
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Após concluir todos os comandos, atualiza a página do seu repositório no gitHub e veja que o código da sua aplicação React já se encontra por lá. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--5nX4YS6U--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/xa4jtl083k0pqsxyelai.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--5nX4YS6U--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/xa4jtl083k0pqsxyelai.png" alt="Github updated" width="880" height="336"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Entre no Console do AWS Amplify&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Abra o &lt;a href="https://aws.amazon.com/pt/"&gt;Console de gerenciamento da AWS&lt;/a&gt; em uma nova janela do navegador. Quando a página carregar, digite suas credenciais para começar. Em seguida, digite "Amplify" na barra de pesquisa e selecione AWS Amplify para abrir o console de serviço.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--_8E5iAJm--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/kc3268yb08c7awte7q6u.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--_8E5iAJm--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/kc3268yb08c7awte7q6u.png" alt="Get Started" width="880" height="369"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Deploy da aplicação com AWS Amplify&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Finalmente chegamos na parte do deply de nossa aplicação. Nesta etapa, vamos conectar o repositório GitHub que acabamos de criar ao serviço AWS Amplify. Isso permitirá que você crie, implante e hospede seu aplicativo na AWS.&lt;/p&gt;

&lt;p&gt;No console de serviço do AWS Amplify, selecione "Get Started" abaixo de Deploy.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--1DvblnSh--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1clth68n28h93hlbifd0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--1DvblnSh--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1clth68n28h93hlbifd0.png" alt="Amplify Hosting" width="880" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Selecione GitHub como o serviço de repositório e clique em Continue.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--6RELcn9j--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4o1dz3kff23zczxsjy34.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--6RELcn9j--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4o1dz3kff23zczxsjy34.png" alt="GitHub Select" width="880" height="526"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Faça a autenticação com o GitHub e retorne ao console do Amplify. Escolha o repositório e a branch master que criamos anteriormente e clique em Next.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--I_YaCqeA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/lto1jvlgn7ylgz5zmchr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--I_YaCqeA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/lto1jvlgn7ylgz5zmchr.png" alt="Repositório" width="880" height="755"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Aceite as configurações de build padrão e selecione Next.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--W07IvEyB--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9nc52txfugde0usncyj8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--W07IvEyB--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9nc52txfugde0usncyj8.png" alt="configurações de build padrão" width="880" height="783"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Revise os detalhes finais e selecione Save and deploy.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--MmPXZD0i--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qe5ckha29s30u5srtqwh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--MmPXZD0i--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qe5ckha29s30u5srtqwh.png" alt="Save and Deploy" width="880" height="712"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;O AWS Amplify irá fazer o build de seu código-fonte e deployar seu aplicativo em https://...amplifyapp.com.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--x7gbwkex--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/s1rda0rp2tgr1xmb84li.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--x7gbwkex--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/s1rda0rp2tgr1xmb84li.png" alt="App Deploy" width="880" height="446"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Depois que o buid for concluído, clique no link para ver sua aplicação Web funcionando.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--_TGqhDVQ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/lzamln7rqvmog747whdr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--_TGqhDVQ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/lzamln7rqvmog747whdr.png" alt="App funcionando" width="880" height="461"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;*&lt;em&gt;Deploy de alterações de código automaticas&lt;br&gt;
*&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Estamos quase no fim do tutorial. Nesta etapa, faremos algumas alterações no código usando seu editor de texto e enviaremos as alterações para o branch master da nossa aplicação.&lt;/p&gt;

&lt;p&gt;Edite o arquivo src/App.js com o código abaixo e salve esta alteração.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import logo from './logo.svg';
import './App.css';

function App() {
  return (
    &amp;lt;div className="App"&amp;gt;
      &amp;lt;header className="App-header"&amp;gt;
        &amp;lt;img src={logo} className="App-logo" alt="logo" /&amp;gt;
        &amp;lt;h1&amp;gt;Hello AWS Amplify&amp;lt;/h1&amp;gt;
      &amp;lt;/header&amp;gt;
    &amp;lt;/div&amp;gt;
  );
}

export default App;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Envie as alterações para o GitHub utilizando o Terminal para iniciar automaticamente um novo build:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git add .
git commit -m “novas alteracoes”
git push origin master
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Depois que o buid for concluído, clique no link para ver sua aplicação Web alterada funcionando.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--h3bujsN5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ukmaj60efd03g75t6yzn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--h3bujsN5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ukmaj60efd03g75t6yzn.png" alt="Image description" width="880" height="454"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Excluir Recurso&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Para evitar qualquer dor de cabeça, não esquece de deletar a aplicação. Para isto, entre no painel da aplicação que criamos, clique em action e em seguida selecine Delete App.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Conclusão&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Neste tutorial implantamos uma aplicação React na Nuvem AWS integrando-se ao GitHub e usando o AWS Amplify. Com o AWS Amplify, podemos implantar continuamente um aplicativo na nuvem e hospedá-lo em uma CDN disponível globalmente.&lt;/p&gt;

&lt;p&gt;Espero que tenham gostado, até a próxima!&lt;/p&gt;

</description>
      <category>aws</category>
      <category>react</category>
      <category>javascript</category>
      <category>cloud</category>
    </item>
    <item>
      <title>Utilizando cache para otimizar o desempenho do Amazon S3</title>
      <dc:creator>Diego Cravo Teixeira</dc:creator>
      <pubDate>Sat, 27 Aug 2022 05:51:30 +0000</pubDate>
      <link>https://dev.to/diegocravo/utilizando-cache-para-otimizar-o-desempenho-do-amazon-s3-46il</link>
      <guid>https://dev.to/diegocravo/utilizando-cache-para-otimizar-o-desempenho-do-amazon-s3-46il</guid>
      <description>&lt;p&gt;&lt;strong&gt;Intro&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Fala galera, neste post veermos algumas maneiras de utilizar cache para otimizar o desempenho do Amazon S3. Mas antes, vamos entender melhor o que é o Amazon S3 e o que é cache.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Amazon S3&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;O Amazon Simple Storage Service (Amazon S3) é um serviço de armazenamento de objetos que oferece escalabilidade, disponibilidade de dados, segurança e performance líderes do setor. Clientes de todos os portes e setores podem armazenar e proteger qualquer quantidade de dados de praticamente qualquer caso de uso, como data lakes, aplicações nativas da nuvem e aplicações móveis. Na figura abaixo, podemos ver as várias utilidades do Amazon S3.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Pp8PElc2--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4tbqm3t32eu0cmeea58d.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Pp8PElc2--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4tbqm3t32eu0cmeea58d.png" alt="Possibilidades do Amazon S3" width="880" height="317"&gt;&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Amazon S3 Free Tier&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;O nível gratuito da AWS oferece aos clientes a capacidade de explorar e testar gratuitamente produtos da AWS até os limites especificados para cada serviço. O nível gratuito é composto por três tipos diferentes de ofertas: um nível gratuito de 12 meses, uma oferta sempre gratuita e testes de curto prazo.&lt;/p&gt;

&lt;p&gt;O free tier do Amazon S3 possui um nível gratuito de 12 meses e conta com 5GB de armazenamento padrão, 20000 solicitações do tipo GET e 2000 solicitações do tipo PUT.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ZFP5LLT5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6cmnh7k6h1bcdk8epum6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ZFP5LLT5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6cmnh7k6h1bcdk8epum6.png" alt="Free Tier Amazon S3" width="267" height="364"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;O que é o armazenamento em cache?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Na área de computação, um cache é uma camada de armazenamento físico de dados de alta velocidade que guarda um subconjunto de dados, geralmente temporário por natureza, para que futuras solicitações referentes a esses dados sejam atendidas de modo mais rápido do que é possível fazer ao acessar o local de armazenamento principal de dados. O armazenamento em cache permite reutilizar com eficiência dados recuperados ou computados anteriormente.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--J7xm03pU--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/pwgw1jwwhyi3tnov6n3z.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--J7xm03pU--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/pwgw1jwwhyi3tnov6n3z.png" alt="Cache" width="377" height="187"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Como funciona o armazenamento em cache?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Os dados em um cache geralmente são armazenados no hardware de acesso rápido, como uma Random-access memory (RAM – Memória de acesso aleatório), e também podem ser usados em paralelo com um componente de software. O principal objetivo de um cache é aumentar a performance da recuperação de dados ao reduzir a necessidade de acessar a camada subjacente mais lenta de armazenamento.&lt;/p&gt;

&lt;p&gt;A substituição de capacidade por velocidade geralmente faz com que um cache armazene um subconjunto de dados de modo temporário, em comparação com bancos de dados, cujos dados são, de modo geral, completos e duráveis.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Utilizando o cache para conteúdo acessado com frequência&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Muitos aplicativos que armazenam dados no Amazon S3 atendem a um “conjunto de trabalho” de dados solicitados repetidamente pelos usuários. Por exemplo, se uma carga de trabalho estiver enviando solicitações GET repetidas para um conjunto comum de objetos, você poderá usar um cache como Amazon &lt;a href="https://docs.aws.amazon.com/cloudfront/index.html"&gt;CloudFront&lt;/a&gt;, &lt;a href="https://docs.aws.amazon.com/elasticache/index.html"&gt;Amazon ElastiCache&lt;/a&gt; ou &lt;a href="https://docs.aws.amazon.com/mediastore/index.html"&gt;AWS Elemental MediaStore&lt;/a&gt; para otimizar o desempenho.&lt;/p&gt;

&lt;p&gt;A adoção bem-sucedida do cache pode resultar em baixa latência e altas taxas de transferência de dados, o que traz uma experiência  muito boa para o usuário. Os aplicativos que usam armazenamento em cache também enviam menos solicitações diretas ao Amazon S3, o que pode ajudar a reduzir os custos de solicitação, o que é excelente.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Amazon Cloudfront&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;O Amazon CloudFront é uma rede de entrega de conteúdo (Content delivery network ou CDN) rápida que armazena em cache de forma transparente os dados do Amazon S3 em um grande conjunto de pontos de presença (PoPs) distribuídos geograficamente. O Amazon CloudFront usa uma rede global de mais de 410 pontos de presença em mais de 90 cidades em 47 países. Quando os objetos podem ser acessados de várias regiões ou pela Internet, o CloudFront permite que os dados sejam armazenados em cache perto dos usuários que estão acessando os objetos. Isso pode resultar em entrega de alto desempenho de conteúdo popular do Amazon S3.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--CSVDvTEJ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6d1dr30cga9nkvpx7lqg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--CSVDvTEJ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6d1dr30cga9nkvpx7lqg.png" alt="Uso do Amazon Cloudfront" width="586" height="292"&gt;&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Amazon Elasticache&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;O Amazon ElastiCache é um cache gerenciado em memória. Com o ElastiCache, é possível provisionar instâncias do Amazon EC2 que armazenam objetos em cache na memória. Esse armazenamento em cache resulta em redução de ordens de magnitude na latência de GET e aumentos substanciais na taxa de transferência de download. Para usar o ElastiCache, você modifica a lógica do aplicativo para preencher o cache com objetos ativos e verificar se há objetos ativos no cache antes de solicitá-los ao Amazon S3. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--XIwbSZ-b--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/91jz8mfazyyx0rd4lyl8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--XIwbSZ-b--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/91jz8mfazyyx0rd4lyl8.png" alt="Amazon Elasticache" width="363" height="185"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;AWS Elemental MediaStore&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;O AWS Elemental MediaStore é um sistema de armazenamento em cache e distribuição de conteúdo criado especificamente para fluxos de trabalho de vídeo e entrega de mídia do Amazon S3. O MediaStore fornece APIs de armazenamento de ponta a ponta especificamente para vídeo e é recomendado para cargas de trabalho de vídeo sensíveis ao desempenho.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--P8zq6Cp---/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/yg8ha5a398ldtukt191o.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--P8zq6Cp---/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/yg8ha5a398ldtukt191o.png" alt="AWS Elemental MediaStore" width="566" height="185"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Conclusão&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Neste post, descrevemos como o uso de cache pode ser vantajoso para o desempenho do Amazon S3, além de ser uma boa prática de design pattern. Também observamos alguns outros serviços da Amazon que podem ser usados em conjunto com o Amazon S3 para a adoção do cache como o Amazon Cloudfront, Amazon Elasticache e AWS Elemental MediaStore.&lt;/p&gt;

&lt;p&gt;Por fim, espero que tenham gostado e fiquem ligados para mais posts como esse. &lt;/p&gt;

&lt;p&gt;Até a próxima! &lt;/p&gt;

</description>
      <category>aws</category>
      <category>amazon</category>
      <category>cloud</category>
      <category>braziliandevs</category>
    </item>
    <item>
      <title>Deploy de um App Next.JS no AWS S3 - Tutorial</title>
      <dc:creator>Diego Cravo Teixeira</dc:creator>
      <pubDate>Wed, 24 Aug 2022 05:02:51 +0000</pubDate>
      <link>https://dev.to/diegocravo/deploy-de-um-app-nextjs-no-aws-s3-tutorial-m7</link>
      <guid>https://dev.to/diegocravo/deploy-de-um-app-nextjs-no-aws-s3-tutorial-m7</guid>
      <description>&lt;p&gt;Neste post iremos aprender como fazer o deploy de uma aplicação estática Next.js no AWS S3. Mas antes de por a mão na massa, vamos entender melhor alguns conceitos básicos. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;O que é Next.js?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;De acordo com a documentação oficial, Next.js é uma framework React flexível que fornece blocos de construção para criar aplicativos Web rápidos.&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fp08tgpebruxdpfefc71g.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fp08tgpebruxdpfefc71g.png" alt="Next.js"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Ok, Mas o que é React? &lt;br&gt;
React é uma biblioteca JavaScript para construir interfaces de usuário interativas. Por interfaces de usuário, queremos dizer os elementos que os usuários veem e interagem na tela. Por biblioteca, queremos dizer que o React fornece funções úteis para construir a interface do usuário, mas deixa para o desenvolvedor onde usar essas funções em seu aplicativo.&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5o63u1iq0ib97sudlrwy.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5o63u1iq0ib97sudlrwy.png" alt="React"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Voltamos então para o começo, o que é Next.js?&lt;br&gt;
Next.js é um framework React que fornece blocos de construção para criar aplicativos da web (sim, eu já tinha escrito isso antes). Por Framework, queremos dizer que o Next.js lida com as ferramentas e configurações necessárias para o React e fornece estrutura, recursos e otimizações adicionais para seu aplicativo.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;O que é AWS S3?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A Amazon Web Services (AWS) é a plataforma de nuvem mais adotada e mais abrangente do mundo, oferecendo mais de 200 serviços completos de datacenters em todo o mundo.&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fx4gmhcjhggvufh8ljmp9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fx4gmhcjhggvufh8ljmp9.png" alt="Amazon Web Services"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;O Amazon Simple Storage Service (Amazon S3) é um serviço de armazenamento de objetos que oferece escalabilidade, disponibilidade de dados, segurança e performance líderes do setor. Clientes de todos os portes e setores podem armazenar e proteger qualquer quantidade de dados de praticamente qualquer caso de uso, como data lakes, &lt;strong&gt;aplicações nativas da nuvem&lt;/strong&gt; e aplicações móveis.&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnjchvm2copv7kyf3n0rz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnjchvm2copv7kyf3n0rz.png" alt="AWS S3"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Criando a aplicação Next.js&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Chegou a hora de criarmos a nossa aplicação Next.js. &lt;br&gt;
Primeiro, vamos garantir que seu ambiente de desenvolvimento esteja pronto. Para isso, precisamos de duas coisas:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Ter o Node.js instalado (caso não tenha, &lt;a href="https://nodejs.org/en/" rel="noopener noreferrer"&gt;instale-o a partir daqui&lt;/a&gt;). &lt;/li&gt;
&lt;li&gt;Um editor de texto e aplicativo de terminal para este tutorial (recomendo o uso do Visual Studio Code, que é um editor de texto que já possui um terminal integrado e que pode ser baixado &lt;a href="https://code.visualstudio.com/download" rel="noopener noreferrer"&gt;aqui&lt;/a&gt;).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Com o VS Code aberto, escolha ou crie uma pasta no local de sua escolha. Neste exemplo, irei criar uma pasta chamada NextJS dentro de da Pasta "C" do windows.&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxmzve4ojcwz5tlp2tltc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxmzve4ojcwz5tlp2tltc.png" alt="Local onde foi criado a pasta NextJS"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Vamos criar um novo aplicativo Next.js usando &lt;em&gt;create-next-app&lt;/em&gt;, que configura tudo automaticamente para você. Para criar um projeto, execute:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npx create-next-app@latest
# ou
yarn create next-app
# ou
pnpm create next-app
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Em seguida, escolha o nome da sua aplicação (neste caso, irei usar s3-app) e aguarde a instalação das dependências. Após a instalação, poderemos ver que várias pastas e aquivos foram criados dentro da nossa pasta:&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi7uk33ycefsspjtfbl64.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi7uk33ycefsspjtfbl64.png" alt="Organização das pastas e arquivos criados."&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Que tal testar o nosso recém criado app localmente? Para isso, basta entrar na pasta do seu aplicativo digitando o seguinte código no terminal:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;cd .\s3-app\
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Em seguida, inicie a sua aplicação localmente digitando um dos comandos a seguir:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# Caso tenha criado a aplicação com npm:
npm run dev
# Caso tenha criado a aplicação com yarn:
yarn dev
# Caso tenha criado a aplicação com pnpm:
pnpm dev
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Pronto, agora é só acessar a url &lt;a href="http://localhost:3000/" rel="noopener noreferrer"&gt;http://localhost:3000/&lt;/a&gt; e ver a aplicação Next.js rodando localmente.&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Feutszswbpkje6gts9ccc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Feutszswbpkje6gts9ccc.png" alt="Página Inicial do app Next.JS"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Antes de seguir com o deploy no AWS S3, temos que fazer algumas alterações em duas partes do nosso código. No arquivo package.json, encontrado na raiz do nosso projeto, altere o comando de build que está dentro de scripts com o seguinte comando:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;"build": "next build &amp;amp;&amp;amp; next export"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;O package.json deve ficar da seguinte maneira:&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkxoir55kwmmm9q8ssgq9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkxoir55kwmmm9q8ssgq9.png" alt="package.json"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Por último, temos que alterar o arquivo next.config.js e adicionar o seguinte código nele:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;  experimental: {
    images: {
        unoptimized: true
    }
  } 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;O arquivo next.config.js deve ficar da seguinte maneira:&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmek6tpqppwlgiisa6cyz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmek6tpqppwlgiisa6cyz.png" alt="next.config.js"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Agora que já fizemos todas alterações necessárias, resta apenas fazer o build da aplicação. Para isto, basta digitar o seguinte comando de build no terminal do VS Code:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# Caso tenha criado a aplicação com npm:
npm run build
# Caso tenha criado a aplicação com yarn:
yarn build
# Caso tenha criado a aplicação com pnpm:
pnpm build
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Após o comando finalizar, podemos vizualizar uma nova pasta chamada "out". Dentro desta página se encontra o build de nossa aplicação.&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3ai2oxndo7g9v569q3qn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3ai2oxndo7g9v569q3qn.png" alt="Build"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Terminamos então a criação e configuração da nossa aplicação Next.JS. Agora vamos configurar o S3 para receber o nosso código!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Upload do Next.js App no AWS S3&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Chegou a hora de levar nosso projeto para a nuvem. Para começar, faça &lt;a href="https://aws.amazon.com/pt/" rel="noopener noreferrer"&gt;login na sua conta AWS&lt;/a&gt; e entre no S3 Management Console (você pode achar ele simplesmente digitando S3 na barra de pesquisa da página inicial).&lt;/p&gt;

&lt;p&gt;Neste momento, precisamos criar um bucket. Um bucket não é nada mais, nada a menos que um contêiner de objetos. Um objeto é um arquivo e qualquer metadado que descreva esse arquivo. No nosso caso, o nosso arquivo será o build da nossa aplicação Next.js. Para criar um bucket, basta clicar no botão "Criar Bucket":&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fh80ssvn27r08lf1hncnz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fh80ssvn27r08lf1hncnz.png" alt="Criar Bucket"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Agora, vamos configurar o nosso bucket. Na configuração geral, digite o nome do bucket (Neste exemplo irei usar deploy-next-app)&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fidwdqnlokxjxskcim8va.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fidwdqnlokxjxskcim8va.png" alt="Configuração Geral Bucket"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Em configurações de bloqueio do acesso público deste bucket desmarque todos os acessos públicos, marque Eu reconheço e clique em "Criar bucket". &lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F83aa81ybqu0vbnhhb9vr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F83aa81ybqu0vbnhhb9vr.png" alt="Configurações de bloqueio do acesso público do bucket"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Selecione o bucket que acabamos de criar e clique na guia de "Permissões". &lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fs7mo0i4pdsvf77op8np7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fs7mo0i4pdsvf77op8np7.png" alt="Permissões do Bucket"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Nesta mesma página, procure por "Política de bucket", onde vamos editar a mesma. Uma política de bucket é baseada em recursos que você pode usar para conceder permissões de acesso ao bucket e aos objetos contidos nele. Só o proprietário do bucket pode associar uma política a um bucket. Vamos editar esta política para conceder acesso a qualquer pessoa que queira acessar o nosso site. Clique em "Editar" para adicinar a permissão.&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fye4f1zi90ij7wjlutjq5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fye4f1zi90ij7wjlutjq5.png" alt="Editar política do bucket"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Na parte de editar instrução, coloque a seguinte permissão, caso tenha criado o nome do bucket como deploy-next-app. Caso contrário, substitua "deploy-next-app" pelo nome do seu bucket. Em seguida clique em "Salvar alterações"&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "Stmt1380877761162",
            "Effect": "Allow",
            "Principal": {
                "AWS": "*"
            },
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::deploy-next-app/*"
        }
    ]
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Agora que já editamos as permissões, clique em "Propriedades", procure por "Hospedagem de site estático" e clique em editar. Nele&lt;br&gt;
Ative a opção de "Hospedagem de site estático", em "Tipo de hospedagem" selecione a opção "Hospedar um site estático" e por último coloque "index.html" e "404.html" como "Documento de índice" e "Documento de erro", respectivamente. Em seguida clique em "Salvar alterações".&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fivjbm71bp9x8wwcwc27d.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fivjbm71bp9x8wwcwc27d.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Após salvar as alterações, ainda na parte de propriedades do bucket, procure por "Hospedagem de site estático" e salve o endpoint que foi criado. Este será o link para acessar o site.&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2ri1nxstipoy6307r45v.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2ri1nxstipoy6307r45v.png" alt="Endpoint do bucket"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Precisamos colocar o arquivo de build que geramos na nossa aplicação Next.js (a pasta out, lembra dela?). Para isso, dentro do seu bucket, selecione a aba "Objetos" e clique em "Carregar".&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fts97s9aa6s6iyh2zt6om.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fts97s9aa6s6iyh2zt6om.png" alt="Upload de objetos"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Selecione todos os arquivos que estão dentro da pasta "out" do diretório da sua aplicação Next.js (São os objetos que estão DENTRO da pasta, e não a pasta). Em seguida clique em "Carregar".&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj9od87ubn3hssnjyeufz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj9od87ubn3hssnjyeufz.png" alt="Upload arquivos"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;É isso! Basta acessar o link que está disponível em Propriedades e acessar a site na nuvem AWS.&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flrhloz5165hdjc14qs0a.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flrhloz5165hdjc14qs0a.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Importante! Como deletar o bucket&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Agora que você já sabe como colocar a sua aplicação Next.js no AWS S3, é importante também saber como excluir o mesmo e evitar qualquer tipo de cobrança pela parte da AWS. Para fazer isso, entre no seu bucket e selecione todos os objetos que estão dentro dele e clique em "Excluir".&lt;br&gt;
 &lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwkki4nwdhwdwgm4ndm3j.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwkki4nwdhwdwgm4ndm3j.png" alt="Objetos dentro do bucket"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Por último, na lista de Buckets, selecione o bucket que foi criado para este tutorial e clique em "Excluir".&lt;br&gt;
 &lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fl2h2ay4jduix3z9na04f.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fl2h2ay4jduix3z9na04f.png" alt="Excluir Bucket"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Desta forma evitamos qualquer surpresa na sua cobrança da AWS e possíveis dores de cabeça.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Conclusão&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Neste tutorial vimos como fazer um deploy de uma aplicação Next.js no provedor de cloud AWS. Lembrando que existem outros recursos da AWS onde você pode fazer o deploy do seu site. &lt;/p&gt;

&lt;p&gt;Espero que tenham gostado e até a próxima! &lt;/p&gt;

</description>
      <category>react</category>
      <category>nextjs</category>
      <category>aws</category>
      <category>cloud</category>
    </item>
    <item>
      <title>Introdução ao AWS Cloudfront.</title>
      <dc:creator>Diego Cravo Teixeira</dc:creator>
      <pubDate>Sat, 20 Aug 2022 05:29:32 +0000</pubDate>
      <link>https://dev.to/diegocravo/introducao-ao-aws-cloudfront-2jl</link>
      <guid>https://dev.to/diegocravo/introducao-ao-aws-cloudfront-2jl</guid>
      <description>&lt;p&gt;Neste post vamos entender melhor sobre o Amazon Cloudfront. &lt;/p&gt;

&lt;p&gt;O Amazon CloudFront é um serviço que acelera a distribuição do conteúdo estático e dinâmico da web, como arquivos .html, .css, .js e arquivos de imagem, para os usuários. O CloudFront distribui o conteúdo por meio de uma rede global de datacenters denominados pontos de presença. Quando um usuário solicita um conteúdo que você está disponibilizando com o CloudFront, a solicitação é roteada para o ponto de presença que fornece a menor latência (atraso), assim o conteúdo é entregue com a melhor performance possível.&lt;/p&gt;

&lt;p&gt;Hoje, o CloudFront possui mais de 400 pontos de presença em 90 cidades e em 47 países diferentes (figura 1). Se o conteúdo já estiver no ponto de presença com a menor latência, o CloudFront o entregará imediatamente. Porém, se o conteúdo não estiver nesse ponto de presença, o CloudFront o recuperará de uma origem definida, que foi identificado como a fonte para a versão definitiva do conteúdo.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--tPPf0Q7_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/n2zom4dncvvtd14n2utd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--tPPf0Q7_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/n2zom4dncvvtd14n2utd.png" alt="Image description" width="873" height="478"&gt;&lt;/a&gt;&lt;br&gt;
Figura 1 - Pontos de presença do Cloudfront.&lt;/p&gt;

&lt;p&gt;O CloudFront acelera a distribuição de seu conteúdo roteando cada solicitação de usuário por meio da rede da AWS para o ponto de presença que pode atender melhor ao seu conteúdo. O uso da rede da AWS reduz drasticamente o número de redes pelas quais as solicitações de seus usuários devem passar, o que melhora o desempenho. Os usuários obtêm latência mais baixa e taxas de transferência de dados mais altas.&lt;/p&gt;

&lt;p&gt;Você também obtém maior confiabilidade e disponibilidade porque as cópias de seus arquivos (também conhecidas como objetos) agora são mantidas (ou armazenadas em cache) em vários pontos de presença ao redor do mundo.&lt;/p&gt;

&lt;p&gt;Alguns casos de uso do Amazon Cloudfront incluem entrega de conteúdo de site estático mais rápido, fornecer vídeos de streaming ao vivo ou sob demanda, Criptografar campos específicos durante todo o processamento do sistema e fornecer conteúdo privado utilizando personalizações do Lambda@Edge.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Nível Gratuito Amazon Cloudfront&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Como parte do nível de uso gratuito da AWS, você pode começar a utilizar o Amazon CloudFront gratuitamente. Ao usar o Amazon CloudFront, você recebe 1 TB de transferência de dados de saída, 10.000.000 de solicitações HTTP e HTTPS e 2.000.000 de invocações do CloudFront Functions a cada mês. Você também pode utilizar a &lt;a href="https://calculator.aws/#/addService"&gt;pricing calculator&lt;/a&gt; da AWS para estimar o custo do uso do cloudfront.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--LN-3ZnTo--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/knnckifeyvyspi0fhr1f.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--LN-3ZnTo--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/knnckifeyvyspi0fhr1f.png" alt="Image description" width="547" height="370"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>aws</category>
      <category>cloud</category>
      <category>beginners</category>
      <category>amazon</category>
    </item>
    <item>
      <title>Infraestrutura Global da AWS - Zonas de Disponibilidade e Regiões</title>
      <dc:creator>Diego Cravo Teixeira</dc:creator>
      <pubDate>Wed, 17 Aug 2022 21:17:53 +0000</pubDate>
      <link>https://dev.to/diegocravo/infraestrutura-global-da-aws-zonas-de-disponibilidade-e-regioes-1ool</link>
      <guid>https://dev.to/diegocravo/infraestrutura-global-da-aws-zonas-de-disponibilidade-e-regioes-1ool</guid>
      <description>&lt;p&gt;Neste post vamos entender um pouco mais sobre a infraestrutura abrangente, confiável e segura da Amazon Web Services (AWS).&lt;/p&gt;

&lt;p&gt;Atualmente, a Nuvem da AWS possui 84 zonas de disponibilidade (availability zones ou AZs) em 26 Regiões (Regions) geográficas ao redor do mundo e já tem planos para mais 24 AZs e 8 regiões. Na figura a seguir, podemos ver as regiões existentes e futuras da AWS.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--3TwoHCW_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/pu8ualg9gimns6ohfqc5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--3TwoHCW_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/pu8ualg9gimns6ohfqc5.png" alt="Image description" width="880" height="471"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Mas afinal de contas, o que são Zonas de Disponibilidade e Regiões?&lt;/p&gt;

&lt;p&gt;De acordo com a AWS, uma região é um local físico em todo o mundo onde datacenters são agrupados. Cada região da AWS consiste em várias AZs isoladas e separadas fisicamente em uma área geográfica. Cada AZ tem energia, refrigeração e segurança física independentes e está conectada por meio de redes redundantes de latência ultrabaixa. &lt;/p&gt;

&lt;p&gt;As AZs proporcionam aos clientes a capacidade de operar aplicativos e bancos de dados de produção com alta disponibilidade, tolerância a falhas e escalabilidade em níveis superiores aos que um único datacenter pode oferecer. As AZs são fisicamente separadas por uma distância significativa (vários quilômetros) das outras AZs, embora todas estejam em um raio de até 100 km entre si.&lt;/p&gt;

&lt;p&gt;Na América do Sul existe uma Região com três Zonas de Disponibilidade, localizada em São Paulo.&lt;/p&gt;

&lt;p&gt;Na figura a seguir, podemos entender melhor como que Regiões e AZs se relacionam. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--3kzpvxNi--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8lttu9w4pnzwqhm9y7k5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--3kzpvxNi--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8lttu9w4pnzwqhm9y7k5.png" alt="Image description" width="758" height="476"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Referência:&lt;br&gt;
Infraestrutura Global da AWS - &lt;a href="https://aws.amazon.com/pt/about-aws/global-infrastructure/?p=ngi&amp;amp;loc=1"&gt;https://aws.amazon.com/pt/about-aws/global-infrastructure/?p=ngi&amp;amp;loc=1&lt;/a&gt;&lt;/p&gt;

</description>
      <category>aws</category>
      <category>cloud</category>
      <category>beginners</category>
    </item>
  </channel>
</rss>
