<?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: Giovana Costa</title>
    <description>The latest articles on DEV Community by Giovana Costa (@giovana_costa).</description>
    <link>https://dev.to/giovana_costa</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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3965304%2Fd7b33808-cadb-4dc1-920c-5abe13ff5d30.jpeg</url>
      <title>DEV Community: Giovana Costa</title>
      <link>https://dev.to/giovana_costa</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/giovana_costa"/>
    <language>en</language>
    <item>
      <title>Como foi minha preparação para a AWS Certified Developer – Associate</title>
      <dc:creator>Giovana Costa</dc:creator>
      <pubDate>Thu, 02 Jul 2026 19:56:43 +0000</pubDate>
      <link>https://dev.to/giovana_costa/como-foi-minha-preparacao-para-a-aws-certified-developer-associate-1pe6</link>
      <guid>https://dev.to/giovana_costa/como-foi-minha-preparacao-para-a-aws-certified-developer-associate-1pe6</guid>
      <description>&lt;p&gt;Fala pessoal!&lt;/p&gt;

&lt;p&gt;Na última segunda-feira (29/06) conquistei a certificação &lt;strong&gt;AWS Certified Developer – Associate (DVA-C02)&lt;/strong&gt;! 🎉&lt;/p&gt;


&lt;div class="crayons-card c-embed text-styles text-styles--secondary"&gt;
    &lt;div class="c-embed__content"&gt;
        &lt;div class="c-embed__cover"&gt;
          &lt;a href="https://www.credly.com/badges/5f1c7ed7-9895-4dda-88af-a631de338510/public_url" class="c-link align-middle" rel="noopener noreferrer"&gt;
            &lt;img alt="" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fimages.credly.com%2Fimages%2Fb9feab85-1a43-4f6c-99a5-631b88d5461b%2Flinkedin_thumb_image.png" height="352" class="m-0" width="672"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="c-embed__body"&gt;
        &lt;h2 class="fs-xl lh-tight"&gt;
          &lt;a href="https://www.credly.com/badges/5f1c7ed7-9895-4dda-88af-a631de338510/public_url" rel="noopener noreferrer" class="c-link"&gt;
            AWS Certified Developer – Associate - Credly
          &lt;/a&gt;
        &lt;/h2&gt;
          &lt;p class="truncate-at-3"&gt;
            Earners of this certification have a comprehensive understanding of application life-cycle management. They demonstrated proficiency in writing applications with AWS service APIs, AWS CLI, and SDKs; using containers; and deploying with a CI/CD pipeline. Badge owners are able to develop, deploy, and debug cloud-based applications that follow AWS best practices.
          &lt;/p&gt;
        &lt;div class="color-secondary fs-s flex items-center"&gt;
          credly.com
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;


&lt;p&gt;Mais do que compartilhar a aprovação, gostaria de contar um pouco sobre como foi minha preparação, quais estratégias funcionaram para mim e o que senti de diferente nesta certificação em comparação às que já conquistei anteriormente. &lt;/p&gt;

&lt;p&gt;Espero que esse relato possa ajudar quem está pensando em tirar essa certificação.&lt;/p&gt;




&lt;h1&gt;
  
  
  Um desafio particular
&lt;/h1&gt;

&lt;p&gt;Mesmo trabalhando diariamente com AWS, quando eu comecei a ler o guia oficial da certificação me deparei com alguns serviços que estavam fora da minha rotina de atuação e outros que estavam completamente fora da minha zona de conforto. &lt;/p&gt;

&lt;p&gt;Foi aí que eu percebi que essa certificação seria diferente das anteriores. A partir disso compreendi também que além de entender a parte teórica do exame, precisaria buscar também aplicar laboratórios que me ajudassem a entender qual problema cada serviço resolvia e em quais cenários fazia sentido utilizá-lo. Essa abordagem mudou completamente minha forma de estudar e fez com que vários conceitos passassem a fazer muito mais sentido.&lt;/p&gt;




&lt;h1&gt;
  
  
  Como organizei meus estudos
&lt;/h1&gt;

&lt;p&gt;Minha preparação foi baseada em quatro pilares:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;📚 Estudo da documentação oficial da AWS e cursos&lt;/li&gt;
&lt;li&gt;📝 Simulados&lt;/li&gt;
&lt;li&gt;🧪 Laboratórios práticos&lt;/li&gt;
&lt;li&gt;🤔 Entender o motivo de cada resposta&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Sempre que eu errava uma questão, tentava responder perguntas como:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Por que essa alternativa é a correta?&lt;/li&gt;
&lt;li&gt;Em qual cenário eu realmente utilizaria esse serviço?&lt;/li&gt;
&lt;li&gt;Qual problema esse recurso resolve?&lt;/li&gt;
&lt;li&gt;Quais são as limitações?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Essa mudança de mentalidade fez muita diferença.&lt;/p&gt;




&lt;h1&gt;
  
  
  O que mais foquei em estudar
&lt;/h1&gt;

&lt;p&gt;Os serviços que mais revisei durante a preparação foram:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Lambda&lt;/li&gt;
&lt;li&gt;API Gateway&lt;/li&gt;
&lt;li&gt;DynamoDB&lt;/li&gt;
&lt;li&gt;AWS SAM&lt;/li&gt;
&lt;li&gt;Estratégias de deployment (Blue/Green, Canary, Linear e In-Place)&lt;/li&gt;
&lt;li&gt;CloudFormation&lt;/li&gt;
&lt;li&gt;Cognito&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Mas o mais importante não foi decorar funcionalidades, e sim entender &lt;strong&gt;quando utilizar cada um&lt;/strong&gt; e o que cada um deles resolve.&lt;/p&gt;




&lt;h1&gt;
  
  
  O que achei da prova
&lt;/h1&gt;

&lt;p&gt;Sem entrar em detalhes específicos das questões, minha percepção foi que a prova avalia muito mais a capacidade de tomar decisões do que decorar comandos.&lt;/p&gt;

&lt;p&gt;Em muitos momentos eu precisava responder perguntas como:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Qual solução exige menos esforço operacional?&lt;/li&gt;
&lt;li&gt;Qual serviço foi criado exatamente para resolver esse problema?&lt;/li&gt;
&lt;li&gt;Qual alternativa segue as boas práticas da AWS?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Outro ponto que achei interessante é que diversas questões envolvem integração entre serviços, e não apenas conhecimento isolado de um único serviço.&lt;/p&gt;




&lt;h1&gt;
  
  
  Algumas dicas para quem vai fazer a certificação
&lt;/h1&gt;

&lt;p&gt;✅ Não tente decorar respostas.&lt;/p&gt;

&lt;p&gt;✅ Entenda o propósito de cada serviço.&lt;/p&gt;

&lt;p&gt;✅ Faça muitos simulados.&lt;/p&gt;

&lt;p&gt;✅ Revise os erros até entender o motivo da resposta correta.&lt;/p&gt;

&lt;p&gt;✅ Estude comparando serviços parecidos.&lt;/p&gt;

&lt;p&gt;Por exemplo:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;SQS × SNS × EventBridge&lt;/li&gt;
&lt;li&gt;Parameter Store × Secrets Manager&lt;/li&gt;
&lt;li&gt;CloudFormation × SAM&lt;/li&gt;
&lt;li&gt;Cognito User Pool × Identity Pool&lt;/li&gt;
&lt;li&gt;Redis × Memcached&lt;/li&gt;
&lt;li&gt;Blue/Green × In-place Deployment&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Essas comparações ajudam a entender não apenas &lt;strong&gt;como&lt;/strong&gt; utilizar um serviço, mas principalmente &lt;strong&gt;quando&lt;/strong&gt; utilizá-lo.&lt;/p&gt;




&lt;h2&gt;
  
  
  Materiais que me ajudaram
&lt;/h2&gt;

&lt;p&gt;Ao longo da preparação, alguns materiais contribuíram bastante para o meu aprendizado. Vou deixar abaixo os que mais utilizei e recomendo:&lt;/p&gt;

&lt;h3&gt;
  
  
  1°. Guia oficial da certificação
&lt;/h3&gt;

&lt;p&gt;Na minha opinião, este é o &lt;strong&gt;primeiro e o principal&lt;/strong&gt; material que qualquer pessoa deveria consultar antes de iniciar a preparação. O guia oficial da AWS apresenta os domínios cobrados na prova, as competências esperadas e o escopo do exame, ajudando a direcionar os estudos para os assuntos que realmente importam.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://aws.amazon.com/certification/certified-developer-associate/" rel="noopener noreferrer"&gt;https://aws.amazon.com/certification/certified-developer-associate/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  2. Ultimate AWS Certified Developer Associate 2026 DVA-C02 (Udemy)
&lt;/h3&gt;

&lt;p&gt;O curso do Stephane Maarek foi um dos principais guias da minha preparação. Além da excelente didática para explicar os conceitos, um dos pontos que mais gostei foi a quantidade de laboratórios práticos (hands-on). Eles me permitiram recriar os mesmos cenários no meu próprio sandbox AWS, fazendo com que eu pudesse aplicar os conhecimentos daquela sessão. &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.udemy.com/course/aws-certified-developer-associate-dva-c01/?couponCode=UDEAFFHP22025" rel="noopener noreferrer"&gt;https://www.udemy.com/course/aws-certified-developer-associate-dva-c01/?couponCode=UDEAFFHP22025&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  3. Simulados (Udemy)
&lt;/h3&gt;

&lt;p&gt;Os simulados foram fundamentais para avaliar minha evolução ao longo da preparação. Cada revisão de questão e explicação das alternativas corretas e &lt;strong&gt;incorretas&lt;/strong&gt; contribuiu para o meu aprendizado aquele ditado: &lt;em&gt;"É errando que se aprende"&lt;/em&gt;. Fez bastante sentido durante essa jornada 😄.&lt;/p&gt;

&lt;p&gt;Além disso, os simulados me ajudaram a treinar o gerenciamento do tempo, a manter o ritmo durante uma prova longa e a me familiarizar com o estilo das questões.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.udemy.com/course/aws-certified-developer-associate-practice-tests-dva-c01/?couponCode=UDEAFFHP22025" rel="noopener noreferrer"&gt;https://www.udemy.com/course/aws-certified-developer-associate-practice-tests-dva-c01/?couponCode=UDEAFFHP22025&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Além disso, algo novo que fez bastante diferença na minha preparação foi utilizar ferramentas de IA como um parceiro de estudos. Eu as utilizava para esclarecer dúvidas, comparar serviços, revisar conceitos e testar meus conhecimentos com perguntas e cenários práticos. Isso acelerou bastante meu aprendizado e me ajudou a consolidar o conteúdo.&lt;/p&gt;




&lt;h1&gt;
  
  
  Próximos passos
&lt;/h1&gt;

&lt;p&gt;Essa certificação representa um marco importante na minha jornada, como comentei no início, foi um desafio que exigiu muita dedicação e consistência. No final, todo o esforço valeu a pena, principalmente por ter me tirado da minha zona de conforto.&lt;/p&gt;

&lt;p&gt;Que venham os próximos desafios! &lt;/p&gt;




&lt;p&gt;Obrigado a todos que, de alguma forma, fizeram parte dessa jornada.&lt;/p&gt;

&lt;p&gt;Agradeço você que leu até aqui! Espero que minha experiência possa, de alguma forma, ajudar na sua preparação. &lt;/p&gt;

&lt;p&gt;Se você está se preparando para a DVA-C02, desejo uma excelente prova e boa sorte no processo! 🚀&lt;/p&gt;

</description>
      <category>aws</category>
      <category>developer</category>
      <category>certification</category>
      <category>cloud</category>
    </item>
    <item>
      <title>PrivateLink na prática: como acessar serviços privados em outra VPC sem VPC Peering</title>
      <dc:creator>Giovana Costa</dc:creator>
      <pubDate>Tue, 30 Jun 2026 02:38:42 +0000</pubDate>
      <link>https://dev.to/giovana_costa/aws-privatelink-na-pratica-acessando-uma-api-privada-em-outra-vpc-sem-peering-1631</link>
      <guid>https://dev.to/giovana_costa/aws-privatelink-na-pratica-acessando-uma-api-privada-em-outra-vpc-sem-peering-1631</guid>
      <description>&lt;p&gt;Quando começamos a trabalhar com conectividade na AWS, é comum pensar em soluções como VPC Peering, Transit Gateway ou até exposição pública via Load Balancer. Mas nem sempre o objetivo é conectar redes inteiras.&lt;/p&gt;

&lt;p&gt;Às vezes, o que precisamos é muito mais específico: permitir que uma aplicação em uma VPC consuma um serviço privado que está em outra VPC, sem expor esse serviço na internet e sem criar roteamento amplo entre os ambientes.&lt;/p&gt;

&lt;p&gt;É exatamente nesse cenário que o &lt;strong&gt;AWS PrivateLink&lt;/strong&gt; se encaixa muito bem.&lt;/p&gt;

&lt;p&gt;Neste artigo, vamos entender o conceito e montar um lab simples para acessar uma aplicação privada em uma VPC Provider a partir de uma VPC Consumer usando PrivateLink.&lt;/p&gt;




&lt;p&gt;Para esse laboratório imagine o seguinte cenário:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;uma aplicação interna (nginx) roda em uma VPC;&lt;/li&gt;
&lt;li&gt;outra VPC precisa consumir essa aplicação;&lt;/li&gt;
&lt;li&gt;você não quer expor a aplicação na internet;&lt;/li&gt;
&lt;li&gt;você também não quer conectar as duas VPCs inteiras com Peering ou Transit Gateway.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Uma forma comum de resolver isso seria criar conectividade entre as VPCs, ajustar rotas, Security Groups e garantir que os CIDRs não tenham sobreposição.&lt;/p&gt;

&lt;p&gt;Mas e se o objetivo for expor apenas um serviço específico?&lt;/p&gt;

&lt;p&gt;Nesse caso, o &lt;strong&gt;AWS PrivateLink&lt;/strong&gt; pode ser uma opção mais segura e controlada.&lt;/p&gt;




&lt;h2&gt;
  
  
  O que é AWS PrivateLink?
&lt;/h2&gt;

&lt;p&gt;O &lt;strong&gt;AWS PrivateLink&lt;/strong&gt; permite criar conectividade privada entre um consumidor e um serviço usando endpoints privados dentro da VPC.&lt;/p&gt;

&lt;p&gt;Na prática, ele permite que uma VPC acesse um serviço publicado em outra VPC sem precisar expor isso publicamente.&lt;/p&gt;

&lt;p&gt;Um ponto importante é que o PrivateLink não conecta duas redes inteiras. Ele conecta um consumidor a um serviço específico.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;PrivateLink é ideal quando você quer compartilhar um serviço, não uma rede inteira.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Quando usar PrivateLink?
&lt;/h2&gt;

&lt;p&gt;Você pode considerar o uso de PrivateLink quando precisar:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;expor uma API interna para outra VPC;&lt;/li&gt;
&lt;li&gt;consumir um serviço privado de outra conta AWS;&lt;/li&gt;
&lt;li&gt;evitar exposição pública via internet;&lt;/li&gt;
&lt;li&gt;evitar VPC Peering apenas para acessar um serviço;&lt;/li&gt;
&lt;li&gt;não compartilhar rotas entre redes;&lt;/li&gt;
&lt;li&gt;criar um modelo provider/consumer entre times, contas ou ambientes.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Arquitetura do lab
&lt;/h2&gt;

&lt;p&gt;Neste lab, teremos duas VPCs:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;VPC Provider&lt;/strong&gt;: onde a aplicação privada estará rodando;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;VPC Consumer&lt;/strong&gt;: de onde vamos consumir a aplicação privada.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A arquitetura será a seguinte:&lt;/p&gt;

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

&lt;p&gt;Fluxo da comunicação:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
EC2 Consumer -&amp;gt; Interface Endpoint -&amp;gt; AWS PrivateLink -&amp;gt; NLB interno -&amp;gt; EC2 Provider com Nginx
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;O objetivo é provar que a EC2 da VPC Consumer consegue acessar uma aplicação privada na VPC Provider sem internet pública e sem peering entre as VPCs.&lt;/p&gt;




&lt;h2&gt;
  
  
  Componentes do lab
&lt;/h2&gt;

&lt;p&gt;Vamos criar os seguintes recursos:&lt;/p&gt;

&lt;h3&gt;
  
  
  VPC Provider
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;VPC &lt;code&gt;10.10.0.0/16&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Subnet privada &lt;code&gt;10.10.1.0/24&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;EC2 com Nginx&lt;/li&gt;
&lt;li&gt;Network Load Balancer interno&lt;/li&gt;
&lt;li&gt;Endpoint Service&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  VPC Consumer
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;VPC &lt;code&gt;10.20.0.0/16&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Subnet privada &lt;code&gt;10.20.1.0/24&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;EC2 cliente para teste&lt;/li&gt;
&lt;li&gt;Interface Endpoint&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Passo 1: Criar a VPC Provider
&lt;/h2&gt;

&lt;p&gt;Crie uma VPC para o lado provider, por exemplo:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;VPC Provider: 10.10.0.0/16
Subnet privada: 10.10.1.0/24
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Essa será a VPC onde a aplicação privada estará rodando.&lt;/p&gt;




&lt;h2&gt;
  
  
  Passo 2: Criar uma EC2 com Nginx
&lt;/h2&gt;

&lt;p&gt;Na VPC Provider, crie uma EC2 Linux e instale o Nginx.&lt;/p&gt;

&lt;p&gt;Depois que a instância subir, valide localmente se o Nginx está funcionando.&lt;/p&gt;

&lt;p&gt;Exemplo:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl http://localhost
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Resultado esperado:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Hello from Provider VPC via PrivateLink
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



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




&lt;h2&gt;
  
  
  Passo 3: Criar o Security Group da EC2 Provider
&lt;/h2&gt;

&lt;p&gt;A EC2 Provider precisa permitir tráfego HTTP na porta 80.&lt;/p&gt;

&lt;p&gt;Para um lab simples, você pode liberar a porta 80 a partir do CIDR da VPC Provider ou do Security Group/NLB usado no teste.&lt;/p&gt;

&lt;p&gt;Exemplo:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Inbound:
TCP 80 vindo da VPC Provider ou do tráfego encaminhado pelo NLB
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Em ambientes reais, evite liberações amplas e restrinja a origem sempre que possível.&lt;/p&gt;




&lt;h2&gt;
  
  
  Passo 4: Criar um Network Load Balancer interno
&lt;/h2&gt;

&lt;p&gt;Agora crie um &lt;strong&gt;Network Load Balancer interno&lt;/strong&gt; na VPC Provider.&lt;/p&gt;

&lt;p&gt;Configuração sugerida:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Scheme: internal
Listener: TCP 80
Target Group: instance ou IP
Porta do Target: 80
Health Check: TCP ou HTTP na porta 80

Security Group do NLB Provider

Inbound:
TCP 80
Source: CIDR da VPC Consumer
Exemplo: 10.20.0.0/16
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Adicione a EC2 Provider como target do Target Group.&lt;/p&gt;

&lt;p&gt;Depois, valide se o target ficou como &lt;code&gt;healthy&lt;/code&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  Passo 5: Criar o Endpoint Service
&lt;/h2&gt;

&lt;p&gt;Com o NLB interno criado, agora podemos criar o &lt;strong&gt;Endpoint Service&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;O Endpoint Service é o serviço que será publicado para ser consumido via PrivateLink.&lt;/p&gt;

&lt;p&gt;Configuração:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Load balancer type: Network
Load balancer: NLB interno criado anteriormente
Acceptance required: enabled
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Para fins de lab, é interessante deixar &lt;code&gt;Acceptance required&lt;/code&gt; habilitado para visualizar o fluxo de aprovação da conexão.&lt;/p&gt;

&lt;p&gt;Após criar o Endpoint Service, copie o nome do serviço. Ele será usado na VPC Consumer para criar o Interface Endpoint.&lt;/p&gt;

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




&lt;h2&gt;
  
  
  Passo 6: Criar a VPC Consumer
&lt;/h2&gt;

&lt;p&gt;Agora crie uma segunda VPC, que será o lado consumidor.&lt;/p&gt;

&lt;p&gt;Exemplo:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;VPC Consumer: 10.20.0.0/16
Subnet privada: 10.20.1.0/24
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Nessa VPC, crie uma EC2 cliente para realizar os testes de conectividade. &lt;/p&gt;

&lt;p&gt;IP da EC2: 10.20.1.55&lt;/p&gt;




&lt;h2&gt;
  
  
  Passo 7: Criar o Security Group do Interface Endpoint
&lt;/h2&gt;

&lt;p&gt;O Interface Endpoint terá uma ENI dentro da VPC Consumer.&lt;/p&gt;

&lt;p&gt;Crie um Security Group permitindo tráfego HTTP vindo da EC2 Consumer.&lt;/p&gt;

&lt;p&gt;Exemplo:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Inbound:
TCP 80 vindo do Security Group da EC2 Consumer
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Esse Security Group será associado ao Interface Endpoint.&lt;/p&gt;




&lt;h2&gt;
  
  
  Passo 8: Criar o Interface Endpoint
&lt;/h2&gt;

&lt;p&gt;Na VPC Consumer, crie um &lt;strong&gt;Interface Endpoint&lt;/strong&gt; apontando para o &lt;em&gt;Service Name&lt;/em&gt; do Endpoint Service criado na VPC Provider.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Ex: com.amazonaws.vpce.us-west-2.vpce-svc-0bcea6xxxxxxx
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Configuração:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Service category: Other endpoint services
Service name: nome do Endpoint Service da VPC Provider
VPC: VPC Consumer
Subnet: subnet da VPC Consumer
Security Group: SG criado para o Interface Endpoint
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



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

&lt;p&gt;Após criar o endpoint, se o Endpoint Service estiver com aprovação manual habilitada, será necessário aprovar a solicitação no lado Provider.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;VPC -&amp;gt; Endpoint Services -&amp;gt; Selecione o seu Endpoint Service -&amp;gt; Endpoint connections -&amp;gt; selecione a conexão pendente -&amp;gt; Actions -&amp;gt; Accept endpoint connection request
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Passo 9: Aprovar a conexão no Endpoint Service
&lt;/h2&gt;

&lt;p&gt;Volte para o Endpoint Service na VPC Provider e aprove a solicitação de conexão criada pela VPC Consumer.&lt;/p&gt;

&lt;p&gt;Depois da aprovação, aguarde até o Interface Endpoint ficar disponível.&lt;/p&gt;

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




&lt;h2&gt;
  
  
  Passo 10: Testar o acesso
&lt;/h2&gt;

&lt;p&gt;Na EC2 Consumer, execute o curl usando o DNS do Interface Endpoint:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl http://&amp;lt;dns-do-interface-endpoint&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Resultado esperado:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Hello from Provider VPC via PrivateLink
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Se essa mensagem aparecer, significa que a aplicação na VPC Provider foi acessada com sucesso a partir da VPC Consumer usando AWS PrivateLink.&lt;/p&gt;

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




&lt;h2&gt;
  
  
  O ponto mais importante do lab
&lt;/h2&gt;

&lt;p&gt;O mais interessante desse lab é que a VPC Consumer não precisa ter rota para o CIDR da VPC Provider.&lt;/p&gt;

&lt;p&gt;Ou seja, a VPC Consumer não precisa conhecer a rede &lt;code&gt;10.10.0.0/16&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Da mesma forma, a VPC Provider não precisa ter rota para o CIDR da VPC Consumer.&lt;/p&gt;

&lt;p&gt;Isso é diferente de soluções como VPC Peering ou Transit Gateway, onde existe roteamento entre redes.&lt;/p&gt;

&lt;p&gt;Com PrivateLink, o consumidor acessa uma ENI local dentro da própria VPC. A AWS encaminha esse tráfego internamente até o serviço publicado atrás do NLB.&lt;/p&gt;

&lt;p&gt;Por isso, o PrivateLink é uma ótima solução quando queremos expor apenas um serviço privado, sem conectar redes inteiras.&lt;/p&gt;




&lt;h2&gt;
  
  
  PrivateLink vs VPC Peering vs Transit Gateway
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Serviço&lt;/th&gt;
&lt;th&gt;Melhor uso&lt;/th&gt;
&lt;th&gt;Escopo&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;VPC Peering&lt;/td&gt;
&lt;td&gt;Conectar duas VPCs diretamente&lt;/td&gt;
&lt;td&gt;Rede com rede&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Transit Gateway&lt;/td&gt;
&lt;td&gt;Centralizar conectividade entre várias VPCs, VPNs e Direct Connect&lt;/td&gt;
&lt;td&gt;Hub de redes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;PrivateLink&lt;/td&gt;
&lt;td&gt;Expor ou consumir um serviço privado&lt;/td&gt;
&lt;td&gt;Serviço específico&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Resumo prático:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;VPC Peering conecta VPCs.
Transit Gateway conecta várias redes.
PrivateLink conecta consumidores a serviços privados.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Boas práticas
&lt;/h2&gt;

&lt;p&gt;Alguns pontos importantes para ambientes reais:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;use Security Groups restritivos;&lt;/li&gt;
&lt;li&gt;evite expor serviços desnecessários;&lt;/li&gt;
&lt;li&gt;monitore conexões e métricas do NLB;&lt;/li&gt;
&lt;li&gt;avalie o uso entre contas AWS para separar provider e consumer;&lt;/li&gt;
&lt;li&gt;documente quem consome o serviço publicado;&lt;/li&gt;
&lt;li&gt;use DNS privado quando quiser simplificar o acesso ao serviço;&lt;/li&gt;
&lt;li&gt;valide custos de Interface Endpoints e tráfego processado.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Conclusão
&lt;/h2&gt;

&lt;p&gt;O AWS PrivateLink é uma solução muito útil quando precisamos expor uma aplicação privada para outra VPC, outra conta ou outro time sem abrir o serviço para a internet e sem criar conectividade ampla entre redes.&lt;/p&gt;

&lt;p&gt;Neste lab, vimos como criar uma arquitetura simples com:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;uma VPC Provider;&lt;/li&gt;
&lt;li&gt;uma aplicação Nginx privada;&lt;/li&gt;
&lt;li&gt;um Network Load Balancer interno;&lt;/li&gt;
&lt;li&gt;um Endpoint Service;&lt;/li&gt;
&lt;li&gt;uma VPC Consumer;&lt;/li&gt;
&lt;li&gt;um Interface Endpoint.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;O principal aprendizado é que o PrivateLink não conecta redes inteiras. Ele conecta consumidores a um serviço específico.&lt;/p&gt;

&lt;p&gt;Essa diferença é essencial para desenhar arquiteturas mais seguras, controladas e escaláveis na AWS.&lt;/p&gt;

&lt;h2&gt;
  
  
  Referências
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://docs.aws.amazon.com/pt_br/vpc/latest/privatelink/what-is-privatelink.html" rel="noopener noreferrer"&gt;https://docs.aws.amazon.com/pt_br/vpc/latest/privatelink/what-is-privatelink.html&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.aws.amazon.com/vpc/latest/userguide/endpoint-services-overview.html" rel="noopener noreferrer"&gt;https://docs.aws.amazon.com/vpc/latest/userguide/endpoint-services-overview.html&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://medium.com/@bhrth.dsra1/aws-securely-share-app-to-clients-with-privatelink-via-endpoint-service-6215d9965c03" rel="noopener noreferrer"&gt;https://medium.com/@bhrth.dsra1/aws-securely-share-app-to-clients-with-privatelink-via-endpoint-service-6215d9965c03&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>networking</category>
      <category>aws</category>
      <category>privatelink</category>
      <category>cloud</category>
    </item>
  </channel>
</rss>
