<?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: Bianca Szimanski</title>
    <description>The latest articles on DEV Community by Bianca Szimanski (@biancaszimanski).</description>
    <link>https://dev.to/biancaszimanski</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%2F3926125%2Fcedd29d0-e676-4657-9885-7d78b45e07e8.png</url>
      <title>DEV Community: Bianca Szimanski</title>
      <link>https://dev.to/biancaszimanski</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/biancaszimanski"/>
    <language>en</language>
    <item>
      <title>FinOps na AWS: guia para controlar custos em cloud</title>
      <dc:creator>Bianca Szimanski</dc:creator>
      <pubDate>Wed, 30 Sep 2026 16:37:37 +0000</pubDate>
      <link>https://dev.to/biancaszimanski/finops-na-aws-guia-para-controlar-custos-em-cloud-4hb1</link>
      <guid>https://dev.to/biancaszimanski/finops-na-aws-guia-para-controlar-custos-em-cloud-4hb1</guid>
      <description>&lt;h1&gt;
  
  
  1. Introdução
&lt;/h1&gt;

&lt;p&gt;FinOps é uma prática que ajuda as empresas a entender, controlar e otimizar seus custos em tecnologia. Para isso, aproxima os times de tecnologia, finanças e negócio, tornando mais fácil tomar decisões sobre custos e uso dos recursos. Este artigo é voltado para a aplicação do FinOps em ambientes de infraestrutura em cloud, com foco no controle e na otimização de custos.&lt;/p&gt;

&lt;p&gt;Uma estratégia madura precisa responder perguntas como:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;O que está gerando o custo?&lt;/li&gt;
&lt;li&gt;Qual aplicação ou projeto está consumindo?&lt;/li&gt;
&lt;li&gt;Esse consumo está entregando valor para o negócio?&lt;/li&gt;
&lt;li&gt;O recurso está dimensionado corretamente?&lt;/li&gt;
&lt;li&gt;Existe capacidade ociosa?&lt;/li&gt;
&lt;li&gt;O modelo de contratação é adequado?&lt;/li&gt;
&lt;li&gt;O custo está crescendo mais rápido que o negócio?&lt;/li&gt;
&lt;li&gt;Quanto da economia identificada realmente foi capturada?&lt;/li&gt;
&lt;/ul&gt;



&lt;p&gt;Por isso, FinOps deve ser tratado como um processo contínuo. O ciclo é dividido em 3 fases:&lt;/p&gt;



&lt;p&gt;&lt;strong&gt;Informar&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;É a fase de entender e criar visibilidade sobre os custos, o uso e a eficiência da tecnologia. O objetivo é transformar os dados em informações que apoiem decisões de negócio.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Coletar e organizar dados de custos e utilização&lt;/li&gt;
&lt;li&gt;Definir critérios de alocação de custos&lt;/li&gt;
&lt;li&gt;Definir padrões de tags ou outros mecanismos de identificação&lt;/li&gt;
&lt;li&gt;Criar relatórios e dashboards&lt;/li&gt;
&lt;li&gt;Acompanhar orçamento e previsões&lt;/li&gt;
&lt;li&gt;Definir e acompanhar KPIs&lt;/li&gt;
&lt;li&gt;Criar métricas de custo unitário&lt;/li&gt;
&lt;li&gt;Comparar custos e desempenho entre equipes ou ambientes&lt;/li&gt;
&lt;li&gt;Analisar variações de custos e utilização&lt;/li&gt;
&lt;/ul&gt;



&lt;p&gt;&lt;strong&gt;Otimizar&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;É a fase de identificação de oportunidades para melhorar a relação entre custo, desempenho e valor.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Avaliar rightsizing&lt;/li&gt;
&lt;li&gt;Identificar recursos ociosos ou subutilizados&lt;/li&gt;
&lt;li&gt;Automatizar a eliminação de desperdícios&lt;/li&gt;
&lt;li&gt;Otimizar armazenamento&lt;/li&gt;
&lt;li&gt;Avaliar transferência de dados&lt;/li&gt;
&lt;li&gt;Modernizar arquiteturas quando fizer sentido&lt;/li&gt;
&lt;li&gt;Avaliar modelos de preços, descontos e compromissos de consumo&lt;/li&gt;
&lt;li&gt;Considerar alternativas tecnológicas mais eficientes&lt;/li&gt;
&lt;li&gt;Documentar e priorizar oportunidades de otimização&lt;/li&gt;
&lt;/ul&gt;



&lt;p&gt;&lt;strong&gt;Operar&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;É a fase de colocar em prática as oportunidades identificadas e promover melhorias contínuas no uso da tecnologia. Envolve transformar as decisões de FinOps em ações e acompanhar seus resultados.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Implementar as oportunidades de otimização&lt;/li&gt;
&lt;li&gt;Acompanhar os resultados das ações&lt;/li&gt;
&lt;li&gt;Estabelecer responsáveis&lt;/li&gt;
&lt;li&gt;Acompanhar indicadores de custo, uso e eficiência&lt;/li&gt;
&lt;li&gt;Investigar anomalias&lt;/li&gt;
&lt;li&gt;Agir sobre desvios de orçamento e previsão&lt;/li&gt;
&lt;li&gt;Medir savings realizados e custo evitado&lt;/li&gt;
&lt;li&gt;Acompanhar recomendações e compromissos&lt;/li&gt;
&lt;li&gt;Melhorar processos e amadurecer a prática de FinOps na organização&lt;/li&gt;
&lt;li&gt;Promover colaboração entre tecnologia, finanças e negócio&lt;/li&gt;
&lt;li&gt;Revisar continuamente as estratégias de otimização&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Documentação&lt;/strong&gt;: &lt;a href="https://www.finops.org/framework/phases/" rel="noopener noreferrer"&gt;https://www.finops.org/framework/phases/&lt;/a&gt;&lt;/p&gt;




&lt;h1&gt;
  
  
  2. Modelos de preço do Amazon EC2
&lt;/h1&gt;

&lt;p&gt;O Amazon EC2 possui diferentes modelos de aquisição. A escolha deve considerar estabilidade da carga, previsibilidade, flexibilidade necessária e tolerância a interrupções.&lt;/p&gt;

&lt;p&gt;Os principais modelos são:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;On-demand&lt;/li&gt;
&lt;li&gt;Savings plans&lt;/li&gt;
&lt;li&gt;Reserved instances (RIs)&lt;/li&gt;
&lt;li&gt;Spot instances&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Além dos modelos de preço, a AWS oferece mecanismos específicos para capacidade e isolamento físico, como:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;On-demand capacity reservations&lt;/strong&gt;: reservam capacidade de EC2 em uma zona de disponibilidade específica. Não oferecem desconto por si só, mas podem ser combinadas com savings plans ou RIs regionais para obter desconto.&lt;/li&gt;
&lt;/ul&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Dedicated hosts&lt;/strong&gt;: disponibilizam um servidor físico dedicado ao cliente, sendo relevante para determinados requisitos de licenciamento e compliance.&lt;/li&gt;
&lt;/ul&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Dedicated instances&lt;/strong&gt;: executam instâncias em hardware fisicamente isolado de outras contas AWS, sem visibilidade ou controle sobre o servidor físico.&lt;/li&gt;
&lt;/ul&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Capacity blocks for ML&lt;/strong&gt;: permitem reservar instâncias de computação acelerada para uma data futura, por um período definido, para workloads de machine learning.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  2.1 On-demand
&lt;/h3&gt;

&lt;p&gt;No modelo on-demand não existe compromisso de longo prazo. Paga-se por segundo apenas enquanto a instância está em execução, com mínimo de 60 segundos.&lt;/p&gt;

&lt;p&gt;É indicado principalmente para workloads de curto prazo, irregulares e que não podem ser interrompidas, como:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Workloads novas&lt;/li&gt;
&lt;li&gt;Ambientes ainda imprevisíveis&lt;/li&gt;
&lt;li&gt;Projetos temporários&lt;/li&gt;
&lt;li&gt;Picos de demanda&lt;/li&gt;
&lt;li&gt;Cargas que ainda precisam ser avaliadas antes de um compromisso&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A principal vantagem é a flexibilidade. Para cargas estáveis e contínuas, ou tolerantes a interrupções, savings plans, RIs e spot podem oferecer um custo menor.&lt;/p&gt;

&lt;p&gt;--&lt;/p&gt;

&lt;h3&gt;
  
  
  2.2 Savings plans
&lt;/h3&gt;

&lt;p&gt;Os savings plans oferecem preços reduzidos em troca de um compromisso de utilização consistente, medido em US$/hora, por um período de 1 ou 3 anos. Os percentuais máximos de economia dependem do tipo de plano e do serviço.&lt;/p&gt;

&lt;p&gt;Atualmente existem 4 tipos:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Compute savings plans&lt;/strong&gt;: são os savings plans mais flexíveis para computação. Podem oferecer até 66% de economia sobre on-demand, dependendo da configuração. Eles podem ser aplicados a EC2, AWS Fargate e AWS Lambda. A principal vantagem é a flexibilidade, por exemplo, uma organização pode alterar família de instância, tamanho, região ou até migrar uma carga de EC2 para Fargate e continuar utilizando o benefício, desde que o uso seja elegível. É interessante considerar o uso quando existe uma base de computação relativamente previsível, mas a arquitetura ainda pode mudar.&lt;/li&gt;
&lt;/ul&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;EC2 instance savings plans&lt;/strong&gt;: os EC2 instance savings plans podem oferecer até 72% de economia sobre on-demand. Em troca de uma economia potencialmente maior, existe um compromisso mais específico, que é a família de instância e região. Dentro dessa família e região, existe flexibilidade de tamanho, sistema operacional e tenancy. Por exemplo, uma empresa possui utilização constante da família M em uma determinada região, então se existe alta confiança de que essa base continuará nessa família e região, um EC2 instance savings plans pode ser considerado. Por outro lado, se existe possibilidade de migração de arquitetura ou região, o compute savings plans pode oferecer maior flexibilidade.&lt;/li&gt;
&lt;/ul&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Database savings plans&lt;/strong&gt;: podem oferecer até 35% de economia sobre on-demand, dependendo do serviço e da configuração. Ao contrário dos outros tipos, possuem prazo de 1 ano e são oferecidos na modalidade “no upfront”. Cobrem serviços como Aurora, RDS, DynamoDB, ElastiCache, DocumentDB, Neptune, Keyspaces, Timestream, DMS e OpenSearch Service. O compromisso é medido em US$/hora e se aplica de forma flexível ao uso elegível, permitindo mudanças entre serviços suportados, engines, famílias e tamanhos de instância, tipo de implantação (provisionado ou serverless) e regiões AWS. No uso provisionado, o plano se aplica às gerações mais recentes de instâncias.&lt;/li&gt;
&lt;/ul&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;SageMaker AI savings plans&lt;/strong&gt;: podem oferecer até 64% de economia sobre on-demand e são aplicados ao uso de instâncias de ML no Amazon SageMaker AI, com prazo de 1 ou 3 anos. Eles cobrem diversos componentes da plataforma, como notebooks do SageMaker Studio, jobs de treinamento, processamento, Data Wrangler e inferência em tempo real e em lote. A principal vantagem é a flexibilidade, pois o desconto se aplica independentemente da família de instância, tamanho, região ou componente do SageMaker utilizado. Por exemplo, uma organização pode mover um endpoint de inferência para outra família de instância ou para outra região e continuar se beneficiando do plano.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;--&lt;/p&gt;

&lt;h3&gt;
  
  
  2.3 Reserved instances
&lt;/h3&gt;

&lt;p&gt;São compromissos de 1 ou 3 anos em que a empresa paga menos do que no on-demand. Apesar do nome, as RIs não são máquinas reservadas. Elas funcionam como um desconto na fatura, aplicado automaticamente sempre que o uso bate com a configuração contratada, sendo o tipo de instância, região, tenancy e sistema operacional. Nas RIs, o desconto fica preso a essa configuração. Se a empresa compra RIs de m5.xlarge Linux em us-east-1, só esse uso recebe o desconto. No compute savings plans, o compromisso é um valor em US$/hora, e o desconto continua valendo, até esse valor, mesmo que a carga mude de família, de região ou vá para o Fargate. Na prática, a escolha depende de quão estável é o ambiente e de quanta flexibilidade a arquitetura ainda precisa.&lt;/p&gt;

&lt;p&gt;--&lt;/p&gt;

&lt;h3&gt;
  
  
  2.4 Spot instances
&lt;/h3&gt;

&lt;p&gt;São instâncias que usam a capacidade ociosa do EC2, com preço abaixo do on-demand. O preço spot é definido pela AWS e varia aos poucos, conforme a oferta e a demanda de longo prazo. Quando a AWS precisa dessa capacidade de volta, a instância pode ser interrompida com um aviso de 2 minutos, por isso o spot faz sentido para cargas que toleram interrupções e têm flexibilidade de horário, como:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Análise de dados&lt;/li&gt;
&lt;li&gt;Processamento em lote&lt;/li&gt;
&lt;li&gt;Tarefas opcionais ou não críticas&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;--&lt;/p&gt;

&lt;h3&gt;
  
  
  2.5 Savings plans x Spot x On-demand
&lt;/h3&gt;

&lt;p&gt;A escolha deve considerar custo, flexibilidade, risco e arquitetura, e não apenas o maior percentual de desconto. Uma forma prática de analisar:&lt;br&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%2Fwr6zfducjwi5giqssrta.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%2Fwr6zfducjwi5giqssrta.png" alt=" " width="787" height="468"&gt;&lt;/a&gt;&lt;/p&gt;


&lt;h1&gt;
  
  
  3. FinOps para bancos de dados
&lt;/h1&gt;

&lt;p&gt;Os bancos de dados exigem uma análise diferente de uma simples instância EC2.&lt;/p&gt;

&lt;p&gt;Dependendo do serviço e da configuração, o custo pode envolver:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Computação&lt;/li&gt;
&lt;li&gt;Armazenamento&lt;/li&gt;
&lt;li&gt;I/O&lt;/li&gt;
&lt;li&gt;Requisições&lt;/li&gt;
&lt;li&gt;Backup e snapshots&lt;/li&gt;
&lt;li&gt;Transferência de dados&lt;/li&gt;
&lt;li&gt;Licenciamento&lt;/li&gt;
&lt;li&gt;Capacidade provisionada (leitura/escrita ou IOPS)&lt;/li&gt;
&lt;li&gt;Capacidade serverless&lt;/li&gt;
&lt;li&gt;Réplicas e alta disponibilidade (Multi-AZ)&lt;/li&gt;
&lt;li&gt;Suporte estendido para versões antigas de engine&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Por isso, reduzir o tamanho da instância não necessariamente representa a maior oportunidade.&lt;/p&gt;
&lt;h3&gt;
  
  
  3.1 Amazon RDS
&lt;/h3&gt;

&lt;p&gt;O Amazon RDS possui diferentes mecanismos e modelos de contratação. Dependendo da configuração, os custos podem envolver:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Instância&lt;/li&gt;
&lt;li&gt;Armazenamento&lt;/li&gt;
&lt;li&gt;I/O&lt;/li&gt;
&lt;li&gt;Backup&lt;/li&gt;
&lt;li&gt;Transferência de dados&lt;/li&gt;
&lt;li&gt;Multi-AZ&lt;/li&gt;
&lt;li&gt;Licenciamento&lt;/li&gt;
&lt;li&gt;RDS Extended Support para versões que ultrapassaram o período de suporte padrão&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Para otimização de custos de longo prazo em workloads estáveis, a análise deve priorizar database savings plans ou RIs, avaliando a estabilidade da carga e a compatibilidade de gerações de instâncias antes de assumir o compromisso financeiro. Os dois modelos não podem ser combinados na mesma carga, então a escolha deve ser feita por workload.&lt;/p&gt;

&lt;p&gt;--&lt;/p&gt;
&lt;h3&gt;
  
  
  3.2 Amazon Aurora
&lt;/h3&gt;

&lt;p&gt;No Aurora, é importante analisar não apenas a capacidade computacional, mas também o padrão de I/O. O serviço oferece duas configurações de armazenamento:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Aurora Standard&lt;/strong&gt;: além do uso das instâncias e do armazenamento, cobra por milhão de requisições de I/O. É a melhor escolha quando o gasto com I/O fica abaixo de 25% do gasto total com Aurora.&lt;/li&gt;
&lt;/ul&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Aurora I/O-Optimized&lt;/strong&gt;: não cobra pelas operações de leitura e escrita, e o custo fica concentrado no uso das instâncias e no armazenamento. É a melhor escolha quando o gasto com I/O chega a 25% ou mais do gasto total com Aurora.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A mudança de Standard para I/O-Optimized pode ser feita uma vez a cada 30 dias, e o caminho inverso pode ser feito a qualquer momento. Por isso, a decisão deve ser baseada no comportamento real da workload e revisada periodicamente.&lt;/p&gt;

&lt;p&gt;--&lt;/p&gt;
&lt;h3&gt;
  
  
  3.3 Database savings plans
&lt;/h3&gt;

&lt;p&gt;Os database savings plans ampliam as possibilidades de otimização para workloads de banco de dados. Atualmente, eles podem oferecer até 35% de economia e possuem cobertura para diversos serviços, incluindo:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Amazon RDS&lt;/li&gt;
&lt;li&gt;Amazon Aurora&lt;/li&gt;
&lt;li&gt;Amazon DynamoDB&lt;/li&gt;
&lt;li&gt;Amazon ElastiCache&lt;/li&gt;
&lt;li&gt;Amazon DocumentDB&lt;/li&gt;
&lt;li&gt;Amazon Neptune&lt;/li&gt;
&lt;li&gt;Amazon Keyspaces&lt;/li&gt;
&lt;li&gt;Amazon Timestream&lt;/li&gt;
&lt;li&gt;AWS DMS&lt;/li&gt;
&lt;li&gt;Amazon OpenSearch Service&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Eles também podem se aplicar a determinados usos provisionados e serverless elegíveis. Uma característica importante é a flexibilidade entre determinados serviços, regiões, famílias e gerações elegíveis.&lt;/p&gt;

&lt;p&gt;--&lt;/p&gt;
&lt;h3&gt;
  
  
  3.4 Database savings plans x Reserved instances
&lt;/h3&gt;

&lt;p&gt;A escolha deve considerar a estabilidade e a estratégia tecnológica.&lt;/p&gt;

&lt;p&gt;As RIs podem fazer sentido quando:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A carga é estável&lt;/li&gt;
&lt;li&gt;A arquitetura é previsível&lt;/li&gt;
&lt;li&gt;A organização conhece bem o padrão de utilização&lt;/li&gt;
&lt;li&gt;Existe pouca expectativa de mudança&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Os database savings plans podem fazer sentido quando&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Existe necessidade de maior flexibilidade&lt;/li&gt;
&lt;li&gt;Existe possibilidade de modernização&lt;/li&gt;
&lt;li&gt;Diferentes serviços de banco podem ser utilizados&lt;/li&gt;
&lt;li&gt;Existe possibilidade de mudança de família ou região&lt;/li&gt;
&lt;li&gt;Existe utilização elegível consistente&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Antes de adquirir qualquer compromisso, o histórico de utilização deve ser analisado. Como os dois modelos não podem ser combinados na mesma carga, a decisão deve ser feita por workload.&lt;/p&gt;


&lt;h1&gt;
  
  
  4. Sistemas operacionais e o impacto em FinOps
&lt;/h1&gt;

&lt;p&gt;O sistema operacional pode alterar bastante o custo de uma workload. Os sistemas Linux, Windows e macOS possuem características diferentes de licenciamento, cobrança e disponibilidade.&lt;/p&gt;
&lt;h3&gt;
  
  
  4.1 Linux
&lt;/h3&gt;

&lt;p&gt;Distribuições sem licença comercial adicional podem evitar custos de licença associados ao sistema operacional. Também existe a possibilidade de utilizar arquiteturas ARM, como AWS Graviton, quando a aplicação for compatível. Porém, não é correto afirmar que o Graviton será automaticamente mais barato para qualquer workload. Embora instâncias baseadas em Graviton ofereçam nativamente um custo por hora cerca de 20% menor e prometam até 40% mais eficiência em preço/desempenho frente às opções x86 equivalentes, o ganho real varia.&lt;/p&gt;

&lt;p&gt;É necessário avaliar:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Compatibilidade (arquitetura ARM x x86)&lt;/li&gt;
&lt;li&gt;Desempenho (ganho real de throughput ou latência)&lt;/li&gt;
&lt;li&gt;Custo (comparativo de precificação direta das famílias)&lt;/li&gt;
&lt;li&gt;Dependências (bibliotecas compiladas e pacotes do ecossistema)&lt;/li&gt;
&lt;li&gt;Esforço de migração (homologação, pipeline de CI/CD e suporte a multi-arch)&lt;/li&gt;
&lt;li&gt;Comportamento da aplicação (perfil de uso de memória, CPU, etc)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;--&lt;/p&gt;
&lt;h3&gt;
  
  
  4.2 Windows
&lt;/h3&gt;

&lt;p&gt;O Windows possui custos relacionados ao licenciamento. Em ambientes Windows, FinOps deve considerar não apenas o tamanho da instância, mas também:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Licença Windows Server / SQL Server&lt;/li&gt;
&lt;li&gt;Modelo de licenciamento&lt;/li&gt;
&lt;li&gt;Quantidade de CPUs&lt;/li&gt;
&lt;li&gt;Possibilidade de BYOL&lt;/li&gt;
&lt;li&gt;Requisitos de hardware&lt;/li&gt;
&lt;li&gt;Arquitetura da aplicação&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Em workloads com licenciamento por núcleo, reduzir a quantidade de CPUs pode também reduzir o custo de licenciamento. Por isso, no Windows, o rightsizing pode gerar economia tanto na infraestrutura quanto nas licenças. A redução, porém, deve ser feita somente quando o desempenho da aplicação continuar adequado e o modelo de licenciamento permitir.&lt;/p&gt;

&lt;p&gt;--&lt;/p&gt;
&lt;h3&gt;
  
  
  4.3 macOS
&lt;/h3&gt;

&lt;p&gt;O Amazon EC2 permite executar macOS em hosts físicos dedicados Apple, principalmente para desenvolvimento, testes e builds de aplicações para o ecossistema Apple. Há características específicas, então os pontos abaixo devem ser considerados:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Utilização de dedicated hosts&lt;/li&gt;
&lt;li&gt;Cobrança mínima de 24 horas para o host&lt;/li&gt;
&lt;li&gt;Disponibilidade regional&lt;/li&gt;
&lt;li&gt;Capacidade limitada&lt;/li&gt;
&lt;li&gt;Ausência de spot&lt;/li&gt;
&lt;li&gt;Possibilidade de utilizar savings plans&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Por isso, uma estratégia FinOps para macOS deve considerar a utilização real dos hosts e o perfil diário de builds. É necessário prestar atenção, pois um host subutilizado pode gerar custos desnecessários.&lt;/p&gt;


&lt;h1&gt;
  
  
  5. AWS Pricing Calculator
&lt;/h1&gt;

&lt;p&gt;A AWS pricing calculator é uma ferramenta importante para estimar custos antes da implementação de uma arquitetura.&lt;/p&gt;

&lt;p&gt;Ela pode ser utilizada para simular:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;EC2&lt;/li&gt;
&lt;li&gt;RDS&lt;/li&gt;
&lt;li&gt;Lambda&lt;/li&gt;
&lt;li&gt;S3&lt;/li&gt;
&lt;li&gt;Transferência de dados&lt;/li&gt;
&lt;li&gt;Entre outros serviços da AWS&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Um processo simples:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Definir a região&lt;/strong&gt;: os preços podem variar bastante entre regiões.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Escolher os serviços&lt;/strong&gt;: adicionar os componentes necessários para representar a arquitetura.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Definir a capacidade&lt;/strong&gt;: para isso, podemos considerar quantidade, tipo de instância, memória, CPU, armazenamento, horas de utilização, requisições e tráfego.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Comparar modelos de contratação&lt;/strong&gt;: on-demand, savings plans, reserved instances e spot.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Considerar custos indiretos&lt;/strong&gt;: EBS, snapshots, transferência de dados, NAT gateway, load balancers, IP público, logs e backups.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Uma estimativa de EC2 isolada não representa o custo total da arquitetura.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Link&lt;/strong&gt;: &lt;a href="https://calculator.aws/#/" rel="noopener noreferrer"&gt;https://calculator.aws/#/&lt;/a&gt;&lt;/p&gt;


&lt;h1&gt;
  
  
  6. Ferramentas de FinOps na AWS
&lt;/h1&gt;

&lt;p&gt;A AWS oferece diversas ferramentas que podem ser utilizadas em conjunto. O Cost Optimization Hub consolida recomendações como rightsizing, recursos ociosos, savings plans, reserved instances e também apresenta estimativas de economia.&lt;br&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%2F0mq43ldpugrqh5aczzn5.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%2F0mq43ldpugrqh5aczzn5.png" alt=" " width="754" height="460"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  6.1 Cost Explorer
&lt;/h3&gt;

&lt;p&gt;O AWS Cost Explorer ajuda a responder:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Quanto gastamos?&lt;/li&gt;
&lt;li&gt;Onde gastamos?&lt;/li&gt;
&lt;li&gt;Qual serviço cresceu?&lt;/li&gt;
&lt;li&gt;Qual conta está consumindo?&lt;/li&gt;
&lt;li&gt;Qual região aumentou?&lt;/li&gt;
&lt;li&gt;Como o custo evoluiu?&lt;/li&gt;
&lt;li&gt;Qual tendência podemos observar?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;É possível analisar os gastos por diferentes dimensões e períodos.&lt;br&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%2F4t0c3nawfja5du7r1r3v.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%2F4t0c3nawfja5du7r1r3v.png" alt=" " width="800" height="392"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Documentação&lt;/strong&gt;: &lt;a href="https://docs.aws.amazon.com/cost-management/latest/userguide/ce-what-is.html" rel="noopener noreferrer"&gt;https://docs.aws.amazon.com/cost-management/latest/userguide/ce-what-is.html&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;--&lt;/p&gt;
&lt;h3&gt;
  
  
  6.2 AWS Budgets
&lt;/h3&gt;

&lt;p&gt;O AWS Budgets permite definir orçamentos e acompanhar o consumo em relação a eles, enviando alertas quando os valores reais ou previstos ultrapassam os limites definidos.&lt;/p&gt;

&lt;p&gt;Uma empresa pode criar budgets utilizando filtros como:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Conta&lt;/li&gt;
&lt;li&gt;Serviço&lt;/li&gt;
&lt;li&gt;Região&lt;/li&gt;
&lt;li&gt;Tag&lt;/li&gt;
&lt;li&gt;Cost category&lt;/li&gt;
&lt;li&gt;Tipo de uso&lt;/li&gt;
&lt;li&gt;Outros filtros disponíveis conforme o tipo de budget&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;O ideal é criar uma cadeia de controle: budget, alerta, investigação, ação e acompanhamento.&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%2Ft84xtjd4wbn43r7kgye4.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%2Ft84xtjd4wbn43r7kgye4.png" alt=" " width="800" height="413"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Documentação&lt;/strong&gt;: &lt;a href="https://docs.aws.amazon.com/cost-management/latest/userguide/budgets-managing-costs.html" rel="noopener noreferrer"&gt;https://docs.aws.amazon.com/cost-management/latest/userguide/budgets-managing-costs.html&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;--&lt;/p&gt;
&lt;h3&gt;
  
  
  6.3 Cost Anomaly Detection
&lt;/h3&gt;

&lt;p&gt;O Cost Anomaly Detection utiliza machine learning para identificar padrões de custo que podem indicar comportamento fora do esperado.&lt;/p&gt;

&lt;p&gt;Pode ser utilizado para detectar situações como:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Aumento repentino de consumo&lt;/li&gt;
&lt;li&gt;Criação inesperada de recursos&lt;/li&gt;
&lt;li&gt;Crescimento anormal de um serviço&lt;/li&gt;
&lt;li&gt;Alterações de utilização&lt;/li&gt;
&lt;/ul&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%2F7zgzw082dlkqnvf361cb.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%2F7zgzw082dlkqnvf361cb.png" alt=" " width="799" height="299"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Documentação&lt;/strong&gt;: &lt;a href="https://docs.aws.amazon.com/cost-management/latest/userguide/getting-started-ad.html" rel="noopener noreferrer"&gt;https://docs.aws.amazon.com/cost-management/latest/userguide/getting-started-ad.html&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;--&lt;/p&gt;
&lt;h3&gt;
  
  
  6.4 Cost Optimization Hub
&lt;/h3&gt;

&lt;p&gt;O Cost Optimization Hub consolida recomendações de otimização em um único ambiente.&lt;/p&gt;

&lt;p&gt;Entre as recomendações estão:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Rightsizing&lt;/li&gt;
&lt;li&gt;Recursos ociosos&lt;/li&gt;
&lt;li&gt;Savings plans&lt;/li&gt;
&lt;li&gt;Reserved instances&lt;/li&gt;
&lt;li&gt;Determinadas oportunidades de otimização de recursos&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A ferramenta também considera informações comerciais específicas da conta ao estimar economias.&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%2Fema6y8wu43vrgvr2dxtb.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%2Fema6y8wu43vrgvr2dxtb.png" alt=" " width="800" height="412"&gt;&lt;/a&gt;&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%2Fzs0scdjg7foei7f9vd95.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%2Fzs0scdjg7foei7f9vd95.png" alt=" " width="800" height="181"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Documentação&lt;/strong&gt;: &lt;a href="https://docs.aws.amazon.com/cost-management/latest/userguide/coh-getting-started.html" rel="noopener noreferrer"&gt;https://docs.aws.amazon.com/cost-management/latest/userguide/coh-getting-started.html&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;--&lt;/p&gt;
&lt;h3&gt;
  
  
  6.5 Compute Optimizer
&lt;/h3&gt;

&lt;p&gt;O Compute Optimizer analisa o histórico de utilização dos recursos, recomenda ajustes de tamanho (rightsizing) e aponta recursos ociosos. As recomendações também aparecem no Cost Optimization Hub, onde podem ser priorizadas junto com as demais oportunidades de economia.&lt;/p&gt;

&lt;p&gt;Pode fornecer recomendações relacionadas a recursos como:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Instâncias EC2 e Auto Scaling groups&lt;/li&gt;
&lt;li&gt;Volumes EBS&lt;/li&gt;
&lt;li&gt;Funções Lambda&lt;/li&gt;
&lt;li&gt;Instâncias RDS&lt;/li&gt;
&lt;li&gt;Entre outros serviços da AWS&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Antes de aplicar alguma recomendação, é necessário avaliar:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;CPU&lt;/li&gt;
&lt;li&gt;Memória&lt;/li&gt;
&lt;li&gt;Throughput&lt;/li&gt;
&lt;li&gt;I/O&lt;/li&gt;
&lt;li&gt;Latência&lt;/li&gt;
&lt;li&gt;Picos de uso&lt;/li&gt;
&lt;li&gt;Criticidade da aplicação&lt;/li&gt;
&lt;li&gt;Comportamento da aplicação&lt;/li&gt;
&lt;/ul&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%2Fbnimkzp5amc9m6emreq5.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%2Fbnimkzp5amc9m6emreq5.png" alt=" " width="799" height="424"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Documentação&lt;/strong&gt;: &lt;a href="https://docs.aws.amazon.com/compute-optimizer/latest/ug/supported-resources.html" rel="noopener noreferrer"&gt;https://docs.aws.amazon.com/compute-optimizer/latest/ug/supported-resources.html&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;--&lt;/p&gt;
&lt;h3&gt;
  
  
  6.6 AWS Organizations
&lt;/h3&gt;

&lt;p&gt;Em ambientes maiores, centralizar tudo em uma única conta pode dificultar a governança e a alocação de custos. O AWS Organizations permite estruturar múltiplas contas.&lt;/p&gt;

&lt;p&gt;Uma organização pode, por exemplo, separar:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Produção&lt;/li&gt;
&lt;li&gt;Desenvolvimento&lt;/li&gt;
&lt;li&gt;Homologação&lt;/li&gt;
&lt;li&gt;Segurança&lt;/li&gt;
&lt;li&gt;Dados&lt;/li&gt;
&lt;li&gt;Workloads específicas&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A estrutura correta depende do modelo operacional da empresa. O objetivo não é criar várias contas, mas criar uma estrutura que facilite:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Governança&lt;/li&gt;
&lt;li&gt;Segurança&lt;/li&gt;
&lt;li&gt;Responsabilidade financeira&lt;/li&gt;
&lt;li&gt;Isolamento&lt;/li&gt;
&lt;li&gt;Auditoria&lt;/li&gt;
&lt;li&gt;Controle de custos&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;O AWS Organizations também oferece faturamento consolidado, que centraliza a cobrança de todas as contas-membro em uma única fatura, permitindo combinar o uso entre as contas e compartilhar os benefícios de descontos por volume, reserved instances e savings plans dentro da organização.&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%2F4be2zf0drsbx1vyhezmu.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%2F4be2zf0drsbx1vyhezmu.png" alt=" " width="800" height="338"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Documentação&lt;/strong&gt;: &lt;a href="https://docs.aws.amazon.com/organizations/latest/userguide/orgs_introduction.html" rel="noopener noreferrer"&gt;https://docs.aws.amazon.com/organizations/latest/userguide/orgs_introduction.html&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;--&lt;/p&gt;
&lt;h3&gt;
  
  
  6.7 CUR e Data Exports
&lt;/h3&gt;

&lt;p&gt;Quando a empresa precisa de mais detalhe do que o Cost Explorer oferece, os dados de billing podem ser exportados para o S3 e analisados depois.&lt;/p&gt;

&lt;p&gt;Um fluxo comum é:&lt;/p&gt;

&lt;p&gt;Billing - Data Exports - S3 - Athena - Dashboard (por exemplo, Amazon Quick Sight).&lt;/p&gt;

&lt;p&gt;Com essa estrutura, é possível montar análises personalizadas, como:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Custo por serviço&lt;/li&gt;
&lt;li&gt;Custo por região&lt;/li&gt;
&lt;li&gt;Custo por conta&lt;/li&gt;
&lt;li&gt;Custo por ambiente&lt;/li&gt;
&lt;li&gt;Custo por aplicação&lt;/li&gt;
&lt;li&gt;Custo por cliente&lt;/li&gt;
&lt;li&gt;Custo por centro de custo&lt;/li&gt;
&lt;/ul&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%2Flpjazyz8lxejzn8m967p.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%2Flpjazyz8lxejzn8m967p.png" alt=" " width="800" height="285"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Documentação&lt;/strong&gt;: &lt;a href="https://docs.aws.amazon.com/cur/latest/userguide/what-is-data-exports.html" rel="noopener noreferrer"&gt;https://docs.aws.amazon.com/cur/latest/userguide/what-is-data-exports.html&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;--&lt;/p&gt;
&lt;h3&gt;
  
  
  6.8 Tags e alocação de custos
&lt;/h3&gt;

&lt;p&gt;Um dos pilares de FinOps é responder “Quem é responsável por este custo?” Para isso, uma organização pode utilizar tags como:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight conf"&gt;&lt;code&gt;&lt;span class="n"&gt;Environment&lt;/span&gt;    = &lt;span class="n"&gt;prod&lt;/span&gt;
&lt;span class="n"&gt;Project&lt;/span&gt;        = &lt;span class="n"&gt;ecommerce&lt;/span&gt;-&lt;span class="n"&gt;platform&lt;/span&gt;
&lt;span class="n"&gt;Application&lt;/span&gt;    = &lt;span class="n"&gt;checkout&lt;/span&gt;-&lt;span class="n"&gt;api&lt;/span&gt;
&lt;span class="n"&gt;Department&lt;/span&gt;     = &lt;span class="n"&gt;it&lt;/span&gt;
&lt;span class="n"&gt;BusinessUnit&lt;/span&gt;   = &lt;span class="n"&gt;ecommerce&lt;/span&gt;
&lt;span class="n"&gt;CostCenter&lt;/span&gt;     = &lt;span class="n"&gt;it&lt;/span&gt;-&lt;span class="m"&gt;042&lt;/span&gt;
&lt;span class="n"&gt;TechnicalOwner&lt;/span&gt; = &lt;span class="n"&gt;cloud&lt;/span&gt;-&lt;span class="n"&gt;team&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Para manter uma política de tags, é necessário:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Definir um padrão de nomes e valores&lt;/li&gt;
&lt;li&gt;Aplicar as tags&lt;/li&gt;
&lt;li&gt;Ativar as tags relevantes como cost allocation tags no console de Billing&lt;/li&gt;
&lt;li&gt;Monitorar a conformidade, por exemplo com tag policies do AWS Organizations&lt;/li&gt;
&lt;li&gt;Tratar os recursos sem identificação&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Tags bem estruturadas permitem análises mais precisas e facilitam o processo de showback e chargeback.&lt;/p&gt;




&lt;h1&gt;
  
  
  7. O que otimizar primeiro?
&lt;/h1&gt;

&lt;p&gt;Não existe uma ordem universal para todas as empresas, mas uma análise prática pode começar pelos pontos de menor risco e retorno mais rápido.&lt;/p&gt;

&lt;h3&gt;
  
  
  7.1 Recursos claramente ociosos
&lt;/h3&gt;

&lt;p&gt;É o ponto de partida mais simples, pois são recursos que geram custo sem entregar valor e a remoção deles raramente afeta o ambiente. Por exemplo:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Instâncias EC2 sem utilização&lt;/li&gt;
&lt;li&gt;Volumes EBS não associados a nenhuma instância&lt;/li&gt;
&lt;li&gt;Elastic IPs não associados&lt;/li&gt;
&lt;li&gt;Snapshots antigos ou desnecessários&lt;/li&gt;
&lt;li&gt;Load balancers sem destinos ativos&lt;/li&gt;
&lt;li&gt;NAT gateways sem tráfego&lt;/li&gt;
&lt;li&gt;Recursos criados para testes e esquecidos&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;--&lt;/p&gt;

&lt;h3&gt;
  
  
  7.2 Recursos superdimensionados
&lt;/h3&gt;

&lt;p&gt;Depois de eliminar o que está ocioso, o próximo passo é o rightsizing, que consiste em ajustar o tamanho dos recursos que estão em uso, mas com mais capacidade do que precisam. Para isso, podem ser analisados:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;CPU&lt;/li&gt;
&lt;li&gt;Memória&lt;/li&gt;
&lt;li&gt;I/O&lt;/li&gt;
&lt;li&gt;Rede&lt;/li&gt;
&lt;li&gt;Utilização histórica, incluindo picos e sazonalidade&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Olhar só a média não é o correto, pois uma instância com uso médio baixo pode ter picos que justificam o tamanho atual. Por isso, vale analisar um período representativo, no mínimo os últimos 30 dias e o ideal, 3 meses, incluindo fechamento de mês ou datas sazonais. Também é importante testar a mudança antes de aplicá-la em produção.&lt;/p&gt;

&lt;p&gt;--&lt;/p&gt;

&lt;h3&gt;
  
  
  7.3 Ambientes que podem ser desligados
&lt;/h3&gt;

&lt;p&gt;Nem todo ambiente precisa ficar ligado 24 horas por dia. Os principais candidatos são:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Desenvolvimento&lt;/li&gt;
&lt;li&gt;Homologação&lt;/li&gt;
&lt;li&gt;Laboratórios&lt;/li&gt;
&lt;li&gt;POCs&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;--&lt;/p&gt;

&lt;h3&gt;
  
  
  7.4 Armazenamento
&lt;/h3&gt;

&lt;p&gt;O custo de armazenamento costuma crescer aos poucos, então vale revisar:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Classe&lt;/strong&gt;: dados pouco acessados podem ir para classes mais baratas do S3.&lt;/li&gt;
&lt;/ul&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Retenção e lifecycle&lt;/strong&gt;: regras de lifecycle movem ou apagam dados antigos automaticamente.&lt;/li&gt;
&lt;/ul&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Snapshots&lt;/strong&gt;: é comum acumular snapshots antigos que ninguém usa mais.&lt;/li&gt;
&lt;/ul&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Volumes&lt;/strong&gt;: os volumes EBS gp2 podem em muitos casos, ser migrados para gp3, que costuma sair mais barato.&lt;/li&gt;
&lt;/ul&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Dados sem acesso&lt;/strong&gt;: o S3 Storage Lens ajuda a identificar buckets e padrões de armazenamento pouco acessados ou inativos, permitindo encontrar oportunidades de otimização e aplicação de políticas de ciclo de vida.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Documentação&lt;/strong&gt;: &lt;a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage_lens.html" rel="noopener noreferrer"&gt;https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage_lens.html&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;-- &lt;/p&gt;

&lt;h3&gt;
  
  
  7.5 Rede
&lt;/h3&gt;

&lt;p&gt;Custos de rede podem passar despercebidos. Vale revisar:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;NAT Gateway&lt;/strong&gt;: cobra por hora e pelo volume de dados processados.&lt;/li&gt;
&lt;/ul&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Endpoints&lt;/strong&gt;: Gateway VPC Endpoints para S3 e DynamoDB permitem evitar o tráfego pelo NAT gateway e não possuem cobrança adicional.&lt;/li&gt;
&lt;/ul&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Transferência entre zonas de disponibilidade&lt;/strong&gt;: tráfego entre AZs pode gerar cobranças de transferência de dados.&lt;/li&gt;
&lt;/ul&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Transferência para a internet&lt;/strong&gt;: o tráfego de saída pode gerar cobranças e crescer rapidamente em workloads com grande volume de dados.&lt;/li&gt;
&lt;/ul&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Arquitetura de VPC&lt;/strong&gt;: o desenho da rede influencia o caminho do tráfego e pode impactar os custos de NAT, endpoints e transferência de dados.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;--&lt;/p&gt;

&lt;h3&gt;
  
  
  7.6 Arquitetura
&lt;/h3&gt;

&lt;p&gt;Algumas mudanças de arquitetura reduzem custo de forma mais duradoura. Vale avaliar:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Graviton&lt;/strong&gt;: instâncias com processadores da AWS, que costumam ter melhor custo-benefício.&lt;/li&gt;
&lt;/ul&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Serverless&lt;/strong&gt;: paga-se pelo uso real, sem manter servidores ligados o tempo todo.&lt;/li&gt;
&lt;/ul&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Auto Scaling&lt;/strong&gt;: a capacidade acompanha a demanda, em vez de ficar dimensionada pelo pico.&lt;/li&gt;
&lt;/ul&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Serviços gerenciados&lt;/strong&gt;: reduzem o esforço de operação e manutenção.&lt;/li&gt;
&lt;/ul&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Modernização&lt;/strong&gt;: revisar aplicações antigas pode abrir espaço para as opções acima.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;--&lt;/p&gt;

&lt;h3&gt;
  
  
  7.7 Compromissos
&lt;/h3&gt;

&lt;p&gt;Compromissos devem vir por último, depois de eliminar desperdícios e ajustar os recursos. Assim, o compromisso é feito sobre uma base estável e já otimizada, e não sobre um consumo que ainda vai diminuir.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Savings plans&lt;/li&gt;
&lt;li&gt;Reserved instances&lt;/li&gt;
&lt;li&gt;Outros modelos de compromisso&lt;/li&gt;
&lt;/ul&gt;




&lt;h1&gt;
  
  
  8. Ambiente de desenvolvimento e homologação
&lt;/h1&gt;

&lt;p&gt;Ambientes não produtivos normalmente apresentam oportunidades de otimização. Uma estratégia simples pode ser ligar, utilizar e depois desligar. Por exemplo, um ambiente utilizado somente durante o horário comercial pode não precisar permanecer ativo 24 horas por dia.&lt;/p&gt;

&lt;p&gt;O desligamento pode ser automatizado de diferentes formas, conforme a arquitetura. As mais comuns são:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Resource Scheduler (Systems Manager Quick Setup)&lt;/strong&gt;: liga e desliga instâncias EC2 em horários definidos, a partir de uma tag, inclusive em várias contas e regiões. O Quick Setup em si não tem custo.&lt;/li&gt;
&lt;/ul&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;EventBridge Scheduler&lt;/strong&gt;: agenda ações em horários definidos e pode chamar diretamente APIs da AWS, como as de parar e iniciar instâncias, sem precisar de uma função Lambda.&lt;/li&gt;
&lt;/ul&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;AWS Step Functions&lt;/strong&gt;: indicado quando o desligamento envolve várias etapas ou dependências, como parar a aplicação antes do banco.&lt;/li&gt;
&lt;/ul&gt;



&lt;ul&gt;
&lt;li&gt;Entre outros métodos.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Antes de automatizar, avalie:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Banco de dados&lt;/strong&gt;: no RDS, uma instância pode ficar parada por no máximo 7 dias seguidos. Depois disso, ela é religada automaticamente. Enquanto está parada, continuam sendo cobrados o armazenamento, os backups e o IP público, se houver. Instâncias que possuem uma réplica de leitura ou que são réplicas de leitura não podem ser paradas.&lt;/li&gt;
&lt;/ul&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Aplicações&lt;/strong&gt;: verificar se dependem do banco durante o período de parada.&lt;/li&gt;
&lt;/ul&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Integrações&lt;/strong&gt;: verificar integrações que possam tentar acessar o banco.&lt;/li&gt;
&lt;/ul&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Jobs&lt;/strong&gt;: validar jobs, ETLs, scripts e processos agendados.&lt;/li&gt;
&lt;/ul&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Backups&lt;/strong&gt;: verificar políticas de backup e retenção.&lt;/li&gt;
&lt;/ul&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Dependências externas&lt;/strong&gt;: identificar sistemas externos que dependam da disponibilidade do banco.&lt;/li&gt;
&lt;/ul&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Requisitos de disponibilidade&lt;/strong&gt;: confirmar se o ambiente permite indisponibilidade temporária.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Documentação&lt;/strong&gt;: &lt;a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_StopInstance.html" rel="noopener noreferrer"&gt;https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_StopInstance.html&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Documentação&lt;/strong&gt;: &lt;a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/quick-setup-scheduler.html" rel="noopener noreferrer"&gt;https://docs.aws.amazon.com/systems-manager/latest/userguide/quick-setup-scheduler.html&lt;/a&gt;&lt;/p&gt;




&lt;h1&gt;
  
  
  9. Amazon S3
&lt;/h1&gt;

&lt;p&gt;No S3, FinOps pode atuar em:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Classe de armazenamento&lt;/li&gt;
&lt;li&gt;Lifecycle policies&lt;/li&gt;
&lt;li&gt;Dados sem acesso&lt;/li&gt;
&lt;li&gt;Versões antigas de objetos, em buckets com versionamento&lt;/li&gt;
&lt;li&gt;Uploads multipart incompletos&lt;/li&gt;
&lt;li&gt;Retenção&lt;/li&gt;
&lt;li&gt;Requisições&lt;/li&gt;
&lt;li&gt;Transferência&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;O S3 Intelligent-Tiering é uma boa opção quando o padrão de acesso aos dados é desconhecido ou muda com o tempo. Ele move os objetos automaticamente entre as camadas de acesso conforme o uso. Não há cobrança pela recuperação dos dados, mas existe uma pequena taxa de monitoramento por objeto. Objetos menores que 128 KB não são monitorados e permanecem na camada de acesso frequente.&lt;/p&gt;

&lt;p&gt;Para dados armazenados por mais tempo e acessados com pouca frequência, classes como Standard-IA e Glacier podem reduzir o custo de armazenamento. Porém, elas possuem cobrança pela recuperação dos dados e períodos mínimos de armazenamento, sendo 30 dias na Standard-IA, 90 dias no Glacier Instant Retrieval e Glacier Flexible Retrieval e 180 dias no Glacier Deep Archive. Se o objeto for excluído ou movido antes desse período, pode haver cobrança pelo tempo restante.&lt;/p&gt;

&lt;p&gt;A escolha deve considerar o custo, a frequência de acesso e o tempo necessário para recuperar os dados.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Documentação&lt;/strong&gt;: &lt;a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage-class-intro.html" rel="noopener noreferrer"&gt;https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage-class-intro.html&lt;/a&gt;&lt;/p&gt;




&lt;h1&gt;
  
  
  10. Framework prático de FinOps para AWS
&lt;/h1&gt;

&lt;p&gt;Uma implementação inicial pode seguir 6 etapas. Elas seguem as fases do ciclo de FinOps, ou seja, as duas primeiras ficam em “&lt;strong&gt;Informar&lt;/strong&gt;”, as duas seguintes em “&lt;strong&gt;Otimizar&lt;/strong&gt;” e as duas últimas em “&lt;strong&gt;Operar&lt;/strong&gt;”.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Etapa 1: visibilidade&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Saber quanto se gasta e onde.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;AWS Organizations&lt;/li&gt;
&lt;li&gt;Cost Explorer&lt;/li&gt;
&lt;li&gt;Tags&lt;/li&gt;
&lt;li&gt;Data Exports&lt;/li&gt;
&lt;li&gt;Dashboards&lt;/li&gt;
&lt;/ul&gt;



&lt;p&gt;&lt;strong&gt;Etapa 2: alocação&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Saber quem é responsável por cada custo.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Contas&lt;/li&gt;
&lt;li&gt;Projetos&lt;/li&gt;
&lt;li&gt;Centros de custo&lt;/li&gt;
&lt;li&gt;Owners&lt;/li&gt;
&lt;li&gt;Ambientes&lt;/li&gt;
&lt;/ul&gt;



&lt;p&gt;&lt;strong&gt;Etapa 3: otimização&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Reduzir desperdício e ajustar o que está em uso.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Recursos ociosos&lt;/li&gt;
&lt;li&gt;Rightsizing&lt;/li&gt;
&lt;li&gt;Armazenamento&lt;/li&gt;
&lt;li&gt;Rede&lt;/li&gt;
&lt;li&gt;Arquitetura&lt;/li&gt;
&lt;/ul&gt;



&lt;p&gt;&lt;strong&gt;Etapa 4: compromissos&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Garantir desconto sobre a base que já foi otimizada.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Savings plans&lt;/li&gt;
&lt;li&gt;Reserved instances&lt;/li&gt;
&lt;li&gt;Outros modelos específicos&lt;/li&gt;
&lt;/ul&gt;



&lt;p&gt;&lt;strong&gt;Etapa 5: governança&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Evitar que o desperdício volte.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Budgets&lt;/li&gt;
&lt;li&gt;Cost Anomaly Detection&lt;/li&gt;
&lt;li&gt;Políticas&lt;/li&gt;
&lt;li&gt;Responsabilidades&lt;/li&gt;
&lt;li&gt;Processos&lt;/li&gt;
&lt;/ul&gt;



&lt;p&gt;&lt;strong&gt;Etapa 6: valor&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Mostrar o que o gasto em cloud entrega para o negócio.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Custo unitário&lt;/li&gt;
&lt;li&gt;Eficiência&lt;/li&gt;
&lt;li&gt;Produtividade&lt;/li&gt;
&lt;li&gt;Margem&lt;/li&gt;
&lt;li&gt;Relação entre gasto cloud e resultado do negócio&lt;/li&gt;
&lt;/ul&gt;




&lt;h1&gt;
  
  
  11. Conclusão
&lt;/h1&gt;

&lt;p&gt;FinOps não é apenas reduzir custos, é entender como os recursos estão sendo utilizados e escolher a melhor estratégia para cada recurso. Cada cenário exige um modelo de contratação diferente, seja buscando flexibilidade, descontos de longo prazo ou oportunidades pontuais, enquanto práticas de dimensionamento, automação e melhorias na arquitetura eliminam os desperdícios do dia a dia. O mais importante é acompanhar o custo, entender sua origem, identificar oportunidades e medir o resultado das otimizações. No fim das contas, a prática de FinOps transforma a gestão da cloud em uma estratégia guiada por dados reais, garantindo que cada centavo investido traga retorno para o negócio.&lt;/p&gt;

</description>
      <category>aws</category>
      <category>finops</category>
      <category>cloudcomputing</category>
    </item>
    <item>
      <title>FinOps na AWS: configurando o FinOps Agent e integrando com o Slack</title>
      <dc:creator>Bianca Szimanski</dc:creator>
      <pubDate>Thu, 17 Sep 2026 23:18:39 +0000</pubDate>
      <link>https://dev.to/biancaszimanski/finops-na-aws-configurando-o-finops-agent-e-integrando-com-o-slack-4ah9</link>
      <guid>https://dev.to/biancaszimanski/finops-na-aws-configurando-o-finops-agent-e-integrando-com-o-slack-4ah9</guid>
      <description>&lt;h1&gt;
  
  
  1. Introdução
&lt;/h1&gt;

&lt;p&gt;Este artigo tem como objetivo documentar a configuração do AWS FinOps Agent e sua integração com o Slack, desde a habilitação dos pré-requisitos até o recebimento das mensagens no canal. O FinOps Agent foi lançado em junho de 2026, com o objetivo de investigar os custos na conta da AWS, sendo possível integrá-lo às ferramentas de trabalho Slack e Jira.&lt;/p&gt;

&lt;p&gt;Em ambientes corporativos, os dados de custo da AWS normalmente são consultados nas ferramentas nativas Cost Explorer, Compute Optimizer e Cost Optimization Hub. Esses ferramentas normalmente são acessadas apenas pelo time de FinOps ou de infraestrutura, enquanto os times de desenvolvimento que provisionam os recursos raramente as consultam. Sem monitoramento ativo, o time pode demorar para identificar quando um custo sobe. A integração do FinOps Agent com o Slack ou Jira atende esse ponto, pois o agente consolida as análises das 3 ferramentas e publica o resultado no canal ou em um ticket, onde o time trabalha diariamente. Isso aproxima a informação de custo de quem provisiona os recursos e reduz a chance de uma anomalia passar despercebida.&lt;/p&gt;




&lt;h1&gt;
  
  
  2. O AWS FinOps Agent
&lt;/h1&gt;

&lt;p&gt;O agente é construído com base no Amazon Bedrock e oferece 4 recursos principais:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Consulta de custo em linguagem natural, utilizando os dados reais de custo e uso da conta.&lt;/li&gt;
&lt;li&gt;Investigação de anomalia disparada por evento. Quando o AWS Cost Anomaly Detection identifica um desvio, o agente investiga a causa raiz e pode publicar um relatório consolidado em um canal do Slack, ou criar um ticket no Jira com o resultado.&lt;/li&gt;
&lt;li&gt;Consolidação das recomendações do Cost Optimization Hub e do Compute Optimizer.&lt;/li&gt;
&lt;li&gt;Relatórios recorrentes agendados, em periodicidade diária, semanal ou mensal, nos formatos HTML, PDF ou PPT.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Para isso, o agente lê 5 serviços da conta:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;AWS Cost Explorer&lt;/strong&gt;: dados de custo e uso, previsão e análise de Savings Plans e Reserved Instances.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AWS Cost Anomaly Detection&lt;/strong&gt;: monitoramento e detecção de anomalias, que funciona como gatilho das investigações. Está disponível no console do Billing and Cost Management e depende do Cost Explorer habilitado. Em contas recentes, normalmente já existe um monitor padrão criado, mas vale conferir na aba "&lt;strong&gt;Cost monitors&lt;/strong&gt;".&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AWS Cost Optimization Hub&lt;/strong&gt;: recomendações de otimização e estimativas de economia.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AWS Compute Optimizer&lt;/strong&gt;: recomendações detalhadas de rightsizing por recurso.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AWS CloudTrail&lt;/strong&gt;: logs de atividade de API, utilizados para identificar as alterações de infraestrutura ocorridas durante uma anomalia. Neste caso, o CloudTrail permite correlacionar o aumento de custo com a ação que o originou, identificando qual usuário ou role executou a alteração e em que momento.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Documentação&lt;/strong&gt;: &lt;a href="https://docs.aws.amazon.com/finops-agent/latest/userguide/what-is.html" rel="noopener noreferrer"&gt;https://docs.aws.amazon.com/finops-agent/latest/userguide/what-is.html&lt;/a&gt;&lt;/p&gt;




&lt;h1&gt;
  
  
  3. Pré-requisitos
&lt;/h1&gt;

&lt;p&gt;Para a implementação, alguns recursos precisam estar configurados:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Conta da AWS com acesso administrativo, ou permissão para criação de IAM roles.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Console na região us-east-1, única região disponível durante a fase de public preview.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;AWS Cost Anomaly Detection disponível, que é o que dispara as investigações.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;AWS Cost Optimization Hub e AWS Compute Optimizer habilitados.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Workspace do Slack com permissão para autorizar aplicativos.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Conta com volume de custos suficiente para gerar recomendações.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;OBS&lt;/strong&gt;: o Cost Optimization Hub e o Compute Optimizer precisam ser habilitados antes da criação do agente. Caso contrário, o agente é criado e responde as consultas normalmente, mas as recomendações de otimização podem retornar vazias.&lt;/p&gt;




&lt;h1&gt;
  
  
  4. Passo a passo
&lt;/h1&gt;

&lt;h3&gt;
  
  
  4.1. Habilitando o Cost Optimization Hub e o Compute Optimizer
&lt;/h3&gt;

&lt;p&gt;Os dois serviços são gratuitos. Após a habilitação, a AWS pode levar algumas horas para gerar as recomendações, sendo assim, os dashboards podem aparecer vazios no primeiro acesso.&lt;/p&gt;

&lt;p&gt;1.Acessar o &lt;strong&gt;Billing and Cost Management&lt;/strong&gt; no console.&lt;/p&gt;

&lt;p&gt;2.Localizar o &lt;strong&gt;Cost Optimization Hub&lt;/strong&gt; e habilitar o serviço. No exemplo abaixo, o serviço já estava habilitado e apresentando as recomendações da conta:&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%2Fpi9cwb21a6vh3fbmxmp9.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%2Fpi9cwb21a6vh3fbmxmp9.png" alt=" " width="799" height="228"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;3.Acessar o &lt;strong&gt;Compute Optimizer&lt;/strong&gt; e habilitar o serviço. No exemplo abaixo, também já estava habilitado:&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%2Fiynvmjajf6are2e7feu9.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%2Fiynvmjajf6are2e7feu9.png" alt=" " width="800" height="399"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;--&lt;/p&gt;

&lt;h3&gt;
  
  
  4.2. Criação do agente
&lt;/h3&gt;

&lt;p&gt;1.Alterar a região do console para &lt;strong&gt;us-east-1&lt;/strong&gt;, pois o serviço não é listado em outras regiões durante a public preview.&lt;/p&gt;

&lt;p&gt;2.Em seguida, pesquisar o serviço &lt;strong&gt;AWS FinOps Agent&lt;/strong&gt;, acessar e clicar em “&lt;strong&gt;Get started&lt;/strong&gt;”:&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%2F3mg7v18kiof5cxaqgjmw.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%2F3mg7v18kiof5cxaqgjmw.png" alt=" " width="797" height="84"&gt;&lt;/a&gt;&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%2Fvz6ij8v2n8y31bce45dr.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%2Fvz6ij8v2n8y31bce45dr.png" alt=" " width="799" height="371"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;3.Definir o nome e descrição:&lt;br&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%2Fcyzfoj4syzt2u4lqhwl1.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%2Fcyzfoj4syzt2u4lqhwl1.png" alt=" " width="800" height="225"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;4.Na etapa seguinte, configurar as permissões. A opção recomendada, “&lt;strong&gt;Auto-create a new FinOps Agent role&lt;/strong&gt;”, cria automaticamente a role que o agente usa para ler os dados de custo da conta:&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%2Fvnc2lr3xpn60bnen2i7k.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%2Fvnc2lr3xpn60bnen2i7k.png" alt=" " width="799" height="199"&gt;&lt;/a&gt;&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%2Fzu822zb5o198wpoct90q.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%2Fzu822zb5o198wpoct90q.png" alt=" " width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;5.Em seguida, será necessário configurar a permissão de acesso da aplicação web ao agente. Trata-se de uma segunda permissão, diferente da anterior, que define o que a aplicação pode executar, como criar tarefas, visualizar o histórico de execução e gerenciar os arquivos de contexto. Neste caso, é possível selecionar a opção “&lt;strong&gt;Auto-create a new FinOps Operator role&lt;/strong&gt;” para criar a role automaticamente:&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%2F5yht0v1wzyymq77m4mim.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%2F5yht0v1wzyymq77m4mim.png" alt=" " width="799" height="226"&gt;&lt;/a&gt;&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%2Frmfhipx57t18a75wdtof.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%2Frmfhipx57t18a75wdtof.png" alt=" " width="800" height="389"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;--&lt;/p&gt;

&lt;h3&gt;
  
  
  4.3. Integração com o Slack
&lt;/h3&gt;

&lt;p&gt;1.Nesta etapa, será necessário selecionar a opção “&lt;strong&gt;Connect with Slack&lt;/strong&gt;” e clicar em “&lt;strong&gt;Add integration&lt;/strong&gt;” para abrir a tela de configuração da integração:&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%2Fvl07vp3omuaacg3s6qul.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%2Fvl07vp3omuaacg3s6qul.png" alt=" " width="800" height="361"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;2.Na próxima tela, clicar em “&lt;strong&gt;Next&lt;/strong&gt;”:&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%2F76i412chpnof0a8srahu.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%2F76i412chpnof0a8srahu.png" alt=" " width="799" height="248"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;3.Em seguida, será necessário permitir que o &lt;strong&gt;FinOps Agent&lt;/strong&gt; acesse o workspace do Slack, clicando em “&lt;strong&gt;Authorize with Slack&lt;/strong&gt;”:&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%2Feguuhus5tq0d9coi2f6w.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%2Feguuhus5tq0d9coi2f6w.png" alt=" " width="800" height="184"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;4.Em seguida, adicionar a URL do workspace e clicar em “&lt;strong&gt;Continue&lt;/strong&gt;” para efetuar o login:&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%2F9j4un1e7xsfwctadr9v4.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%2F9j4un1e7xsfwctadr9v4.png" alt=" " width="800" height="299"&gt;&lt;/a&gt;&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%2Fx92gonnpctixx4vffeb3.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%2Fx92gonnpctixx4vffeb3.png" alt=" " width="800" height="367"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;5.Após efetuar o login na conta do Slack, clicar em “&lt;strong&gt;Allow&lt;/strong&gt;” para permitir o acesso:&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%2Ff3rhluan1l34ewddw65m.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%2Ff3rhluan1l34ewddw65m.png" alt=" " width="800" height="334"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;6.O Slack foi conectado com sucesso. Em seguida, clicar em “&lt;strong&gt;Close&lt;/strong&gt;” para fechar a aba e retornar à tela de início da integração:&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%2F8tsit4y8qxyzdlgiyujp.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%2F8tsit4y8qxyzdlgiyujp.png" alt=" " width="800" height="271"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;7.Em seguida, criar um canal no Slack (por exemplo, “&lt;strong&gt;aws-finops&lt;/strong&gt;”), abri-lo, clicar na aba Agents &amp;amp; apps e selecionar “&lt;strong&gt;Add Agent or App&lt;/strong&gt;” para adicionar o &lt;strong&gt;AWS FinOps Agent&lt;/strong&gt;.&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%2Fgdw04lblre34j6fruazk.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%2Fgdw04lblre34j6fruazk.png" alt=" " width="800" height="526"&gt;&lt;/a&gt;&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%2Fh1lh7yd1mscwu5uxsmse.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%2Fh1lh7yd1mscwu5uxsmse.png" alt=" " width="799" height="305"&gt;&lt;/a&gt;&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%2Fu50q4j0gc20922nnw74r.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%2Fu50q4j0gc20922nnw74r.png" alt=" " width="799" height="553"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;OBS&lt;/strong&gt;: o agente só publica em canais dos quais o app é membro. Se o app não for adicionado ao canal, a entrega falha.&lt;/p&gt;

&lt;p&gt;8.Clicar no nome do canal com o botão esquerdo, acessar a aba &lt;strong&gt;About&lt;/strong&gt; e copiar o “&lt;strong&gt;Channel ID&lt;/strong&gt;” exibido ao final:&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%2F33wtcahpvpo97vk6tge4.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%2F33wtcahpvpo97vk6tge4.png" alt=" " width="799" height="293"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;OBS&lt;/strong&gt;: o &lt;strong&gt;Channel ID&lt;/strong&gt; começa com a letra &lt;strong&gt;C&lt;/strong&gt;. IDs iniciados com &lt;strong&gt;D&lt;/strong&gt; pertencem a conversas diretas e não funcionam na integração&lt;/p&gt;

&lt;p&gt;9.Voltar à tela de integração, colar o &lt;strong&gt;Channel ID&lt;/strong&gt;, selecionar a integração “&lt;strong&gt;BS&lt;/strong&gt;” na etapa &lt;strong&gt;Third-party integrations&lt;/strong&gt; e clicar em “&lt;strong&gt;Next&lt;/strong&gt;” para continuar:&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%2Fvs9guh15togc5hrmywgw.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%2Fvs9guh15togc5hrmywgw.png" alt=" " width="800" height="352"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;10.Por fim, revisar e clicar em “&lt;strong&gt;Create agent&lt;/strong&gt;”:&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%2Fl8mby0nil6v000h279zy.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%2Fl8mby0nil6v000h279zy.png" alt=" " width="800" height="357"&gt;&lt;/a&gt;&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%2F4ppeoltiyag2s3h5su44.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%2F4ppeoltiyag2s3h5su44.png" alt=" " width="799" height="336"&gt;&lt;/a&gt;&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%2F3pnpwo9rkni5lp5bll6i.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%2F3pnpwo9rkni5lp5bll6i.png" alt=" " width="799" height="330"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;--&lt;/p&gt;

&lt;h3&gt;
  
  
  4.4. Testando o agente e a integração com o Slack
&lt;/h3&gt;

&lt;p&gt;Nesta etapa será realizado o teste de funcionamento do agente e a validação da entrega das mensagens no canal do Slack.&lt;/p&gt;

&lt;p&gt;1.Após configurar o canal do Slack, acessar o serviço &lt;strong&gt;AWS FinOps Agent&lt;/strong&gt; e selecionar a aba “&lt;strong&gt;Agents&lt;/strong&gt;” para abrir a interface e realizar as consultas:&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%2F8cpznigb41wpha2323z8.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%2F8cpznigb41wpha2323z8.png" alt=" " width="799" height="294"&gt;&lt;/a&gt;&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%2F6xwp76u5dhjqiqogw6od.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%2F6xwp76u5dhjqiqogw6od.png" alt=" " width="800" height="321"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;-&lt;/p&gt;

&lt;h4&gt;
  
  
  Primeira consulta:
&lt;/h4&gt;

&lt;p&gt;Os testes foram realizados em uma conta com baixo volume de custo, o que limita o alcance das recomendações.&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%2F5sz68k9tpr3coyyh9tqj.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%2F5sz68k9tpr3coyyh9tqj.png" alt=" " width="800" height="424"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;O arquivo HTML foi gerado, conforme a solicitação:&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%2Fgvu169412e1jvnlgdowu.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%2Fgvu169412e1jvnlgdowu.png" alt=" " width="800" height="416"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;-&lt;/p&gt;

&lt;h4&gt;
  
  
  Segunda consulta:
&lt;/h4&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%2Fknjtpytv4etyf9fjgbnp.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%2Fknjtpytv4etyf9fjgbnp.png" alt=" " width="800" height="277"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;O arquivo HTML foi gerado, conforme a solicitação:&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%2Fjabhqvd40nk5zg2ix996.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%2Fjabhqvd40nk5zg2ix996.png" alt=" " width="800" height="414"&gt;&lt;/a&gt;&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%2Fd0c7kh1n16qni2zlcvfx.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%2Fd0c7kh1n16qni2zlcvfx.png" alt=" " width="799" height="355"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;-&lt;/p&gt;

&lt;h4&gt;
  
  
  Terceira consulta:
&lt;/h4&gt;

&lt;p&gt;O VPC aparece com $3.58 em uma mensagem e $2.58 em outra. O primeiro valor é gasto realizado nos últimos 30 dias, de 8 de agosto a 6 de setembro. O segundo é a previsão para setembro fechado. Antes de comparar valores entre consultas, é necessário verificar o período e se o dado é realizado ou previsto.&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%2F00wr7pafj6uff31024p6.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%2F00wr7pafj6uff31024p6.png" alt=" " width="800" height="391"&gt;&lt;/a&gt;&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%2Fx1b7doazspmvz11f4ryr.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%2Fx1b7doazspmvz11f4ryr.png" alt=" " width="800" height="343"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;O valor atual de $0.63 retornado pelo agente para o custo de VPC em setembro, foi validado no &lt;strong&gt;Cost Explorer&lt;/strong&gt;:&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%2Fk2l7ll83pl5hj15c318l.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%2Fk2l7ll83pl5hj15c318l.png" alt=" " width="800" height="326"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h1&gt;
  
  
  5. Lições aprendidas
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;O &lt;strong&gt;Cost Optimization Hub&lt;/strong&gt; e o &lt;strong&gt;Compute Optimizer&lt;/strong&gt; devem ser habilitados antes da criação do agente. Sem isso, as recomendações retornam vazias, mesmo que o agente esteja configurado corretamente.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;A configuração envolve duas permissões diferentes, sendo a IAM role utilizada pelo agente para leitura dos dados da conta e a permissão de acesso da aplicação web ao agente.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;O &lt;strong&gt;CloudTrail&lt;/strong&gt; é o componente que permite a correlação entre variação de custo e alteração de infraestrutura, identificando o usuário ou role responsável.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;A integração com o Slack ou Jira é o que viabiliza o uso pelo time de engenharia.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;As respostas devem ser validadas no &lt;strong&gt;Cost Explorer&lt;/strong&gt; durante as primeiras semanas de uso, para verificar se o agente está retornando os dados corretos.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;O arquivo de contexto é opcional no fluxo, mas determina a qualidade prática das respostas, por incorporar informações que não estão disponíveis nas APIs de custo. (&lt;a href="https://docs.aws.amazon.com/finops-agent/latest/userguide/getting-started.html" rel="noopener noreferrer"&gt;https://docs.aws.amazon.com/finops-agent/latest/userguide/getting-started.html&lt;/a&gt;).&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;h1&gt;
  
  
  6. Conclusão
&lt;/h1&gt;

&lt;p&gt;Neste artigo foi possível validar a configuração do AWS FinOps Agent e sua integração com o Slack. O processo não exigiu provisionamento de infraestrutura adicional. O agente ainda está em public preview, com restrição de região, resposta em inglês e resultado que depende de conferência na conta. Por esses motivos, ainda não é indicado como fonte oficial de dados para basear o fechamento de custo, pois se trata de uma ferramenta recente que está passando por uma fase de testes.&lt;/p&gt;

</description>
      <category>aws</category>
      <category>finops</category>
      <category>cloudcomputing</category>
      <category>ai</category>
    </item>
    <item>
      <title>VPC Peering: conectando redes privadas entre contas e regiões na AWS</title>
      <dc:creator>Bianca Szimanski</dc:creator>
      <pubDate>Sun, 13 Sep 2026 02:44:25 +0000</pubDate>
      <link>https://dev.to/biancaszimanski/vpc-peering-conectando-redes-privadas-entre-contas-e-regioes-na-aws-2gei</link>
      <guid>https://dev.to/biancaszimanski/vpc-peering-conectando-redes-privadas-entre-contas-e-regioes-na-aws-2gei</guid>
      <description>&lt;h1&gt;
  
  
  1. Cenário de negócio
&lt;/h1&gt;

&lt;p&gt;Neste projeto, será implementado um VPC peering entre duas VPCs que estão em contas e regiões distintas, sendo uma conta de infraestrutura e outra de segurança. Em ambientes corporativos, é comum que empresas adotem uma estratégia multi-account para isolar recursos e dividir responsabilidades por área. Por exemplo, o gerenciamento de DNS via Route 53, processos de backup e pipelines de CI/CD, podem ser centralizados na conta de infraestrutura, enquanto a conta de segurança pode ser utilizada para centralizar scanners de vulnerabilidade, soluções de VPN, SIEM e outros serviços voltados à proteção e auditoria do ambiente.&lt;/p&gt;

&lt;p&gt;Quando um recurso hospedado na VPC de infraestrutura precisa se comunicar com os serviços da VPC de segurança, é necessário estabelecer uma integração de rede privada entre as contas. Para esse tipo de comunicação direta, o VPC peering é uma solução adequada em ambientes menores ou de arquitetura simples. Em empresas de maior porte ou com requisitos de escalabilidade, o Transit Gateway atende melhor.&lt;/p&gt;




&lt;h1&gt;
  
  
  2. Arquitetura do ambiente
&lt;/h1&gt;

&lt;p&gt;Foram criadas duas contas, sendo a BS-Infra responsável pela infraestrutura, onde estão hospedados, por exemplo, um servidor de aplicação e um banco de dados em subnets privadas, além de um servidor de testes em subnet pública. Já a conta BS-Security possui uma subnet pública, também utilizada por um servidor de testes e duas subnets privadas, sendo uma destinada ao servidor de VPN e outra voltada à servidores que hospedam ferramentas de segurança, como Wazuh e Vault, por exemplo. Em ambas as contas, o servidor de testes foi provisionado apenas para validar a conectividade do VPC peering.&lt;/p&gt;

&lt;p&gt;Os workloads das duas contas estão distribuídos em 3 zonas de disponibilidade, em duas regiões diferentes. Em cenários reais, o ideal é distribuir os workloads estrategicamente entre diferentes AZs para garantir alta disponibilidade. Já a escolha por múltiplas regiões, normalmente é pensada em disaster recovery, custo, latência ou normas de compliance que não permitem que determinados dados sejam hospedados fora do país de origem.&lt;/p&gt;

&lt;p&gt;As subnets privadas possuem tabelas de rotas configuradas para direcionar o tráfego de saída para um NAT gateway, permitindo o acesso à internet (por exemplo, para atualização de pacotes e instalação de dependências) sem expor diretamente os recursos internos. O NAT gateway, por padrão, é provisionado em uma subnet pública, mesmo que o roteamento seja originado das subnets privadas, pois é necessário realizar a tradução de endereços de origem (SNAT), substituindo os IPs privados das instâncias por um endereço IP público associado ao NAT gateway. Já a subnet pública é associada a uma tabela de rotas que possui um caminho para um internet gateway anexado à VPC, permitindo o tráfego bidirecional, ou seja, a comunicação de entrada e saída com a internet. Em situações reais, jamais se deve colocar um banco de dados ou servidor de aplicação em subnets públicas, por questões de segurança.&lt;/p&gt;

&lt;p&gt;Será realizado um peering entre as duas VPCs, com o objetivo de estabelecer uma comunicação privada e direta entre elas, sem que o tráfego precise passar pela internet pública.&lt;/p&gt;

&lt;p&gt;O ambiente também conta com o VPC Flow Logs, que realiza a captura do tráfego das VPCs (como IPs de origem/destino, portas e protocolo, e se o tráfego foi aceito ou rejeitado). Esses logs serão centralizados no CloudWatch, facilitando análise e troubleshooting de conectividade. Vale mencionar que, em cenários corporativos com alto volume de tráfego, outra alternativa comum é enviar os flow logs diretamente para um bucket S3 e utilizar o Amazon Athena para realizar consultas SQL sob demanda.&lt;/p&gt;

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




&lt;h1&gt;
  
  
  3. Elementos Chave
&lt;/h1&gt;

&lt;p&gt;Esta seção descreve os principais componentes utilizados na implementação. Cada um deles tem um papel específico para garantir que a comunicação entre as VPCs funcione corretamente.&lt;/p&gt;

&lt;h3&gt;
  
  
  3.1. VPC Peering
&lt;/h3&gt;

&lt;p&gt;Estabelece uma comunicação privada e direta entre duas VPCs, podendo ser na mesma conta, entre contas diferentes ou até entre regiões diferentes. O tráfego entre as VPCs não passa pela internet pública, ele é roteado diretamente pela infraestrutura da AWS, o que garante menor latência e maior segurança. Para funcionar, além de criar a conexão de peering, é necessário configurar as tabelas de rotas de ambas as VPCs e ajustar os security groups para permitir o tráfego entre os CIDRs envolvidos. Vale destacar que o VPC peering não é transitivo, ou seja, se a VPC A tem peering com a VPC B, e a VPC B tem peering com a VPC C, a VPC A não consegue se comunicar com a VPC C automaticamente. Cada conexão precisa ser estabelecida de forma independente. Trata-se de uma conexão ponto a ponto.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Documentação&lt;/strong&gt;: &lt;a href="https://docs.aws.amazon.com/vpc/latest/peering/what-is-vpc-peering.html" rel="noopener noreferrer"&gt;https://docs.aws.amazon.com/vpc/latest/peering/what-is-vpc-peering.html&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  3.2. NAT Gateway (NGW)
&lt;/h3&gt;

&lt;p&gt;Permite que recursos (neste caso, as duas instâncias) em subnets privadas enviem tráfego para a internet, sem que a internet estabeleça conexões diretas com esses recursos. Isso é possível graças ao processo de SNAT (Source Network Address Translation), que substitui o IP privado da origem pelo IP público do NAT gateway antes de encaminhar o pacote para a internet. Quando a resposta retorna, o NAT gateway realiza o processo inverso, entregando o tráfego ao recurso correto dentro da subnet privada. Por esse motivo, o NAT gateway deve ser provisionado em uma subnet pública, pois é necessário ter um IP público para executar essa tradução.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Documentação&lt;/strong&gt;: &lt;a href="https://docs.aws.amazon.com/vpc/latest/userguide/nat-gateway-scenarios.html" rel="noopener noreferrer"&gt;https://docs.aws.amazon.com/vpc/latest/userguide/nat-gateway-scenarios.html&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  3.3. Internet Gateway (IGW)
&lt;/h3&gt;

&lt;p&gt;Permite o tráfego bidirecional entre recursos em subnets públicas e a internet. Para isso, o recurso precisa de um IP público associado e uma rota configurada apontando para o internet gateway. Diferentemente do NAT gateway, a comunicação por meio do internet gateway ocorre nos dois sentidos, então, a instância pode iniciar conexões com a internet, e a internet também pode iniciar conexões com a instância. Na prática, um bom exemplo é um servidor web em subnet pública, onde ele recebe requisições HTTPS de usuários na internet e responde a elas (pode ser um site institucional, um portal acessível externamente ou uma API consumida por um aplicativo, por exemplo). Outro exemplo comum é um bastion host, que pode ficar em uma subnet pública para permitir que administradores acessem os recursos internos, seja via SSH (em ambientes Linux) ou RDP (em ambientes Windows), funcionando como um ponto de entrada controlado.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Documentação&lt;/strong&gt;: &lt;a href="https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Internet_Gateway.html" rel="noopener noreferrer"&gt;https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Internet_Gateway.html&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  3.4. Route Tables
&lt;/h3&gt;

&lt;p&gt;As tabelas de rotas definem como o tráfego de rede é roteado dentro da VPC, direcionando os pacotes para destinos como NAT gateway, internet gateway, conexões de VPC peering, entre outros.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Documentação&lt;/strong&gt;: &lt;a href="https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Route_Tables.html" rel="noopener noreferrer"&gt;https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Route_Tables.html&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  3.5. Security Groups
&lt;/h3&gt;

&lt;p&gt;Atuam como um firewall a nível de instância, controlando o tráfego de entrada e saída. Por exemplo, para acesso via SSH, é necessário permitir a porta 22 no security group e restringir o IP de origem. No entanto, em ambientes mais seguros, é comum utilizar bastion host ou acesso via AWS SSM, eliminando a necessidade de exposição dessa porta. Um ponto importante é que os security groups são stateful, ou seja, ao permitir o tráfego de entrada em uma porta, a resposta desse tráfego é automaticamente permitida na saída, sem precisar criar uma regra explícita para isso, diferente das NACLs (Network Access Control List), que atuam a nível de subnet e são stateless, exigindo regras explícitas para entrada e saída. Em ambientes corporativos, o ideal é utilizar os dois em conjunto, para garantir uma melhor proteção dos recursos.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Documentação SG&lt;/strong&gt;: &lt;a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-security-groups.html" rel="noopener noreferrer"&gt;https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-security-groups.html&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Documentação NACL&lt;/strong&gt;: &lt;a href="https://docs.aws.amazon.com/vpc/latest/userguide/vpc-network-acls.html" rel="noopener noreferrer"&gt;https://docs.aws.amazon.com/vpc/latest/userguide/vpc-network-acls.html&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  3.6. VPC Flow Logs
&lt;/h3&gt;

&lt;p&gt;Permite capturar informações sobre o tráfego de IP de entrada e saída das interfaces de rede da VPC. Os dados coletados incluem IPs de origem e destino, portas, protocolo e se o tráfego foi aceito ou rejeitado, o que o torna uma ferramenta muito útil para troubleshooting de conectividade (por exemplo, como identificar problemas de comunicação entre duas instâncias, detectar tráfego de rede suspeito, etc). Os logs podem ser publicados no CloudWatch Logs, S3 ou Data Firehose, dependendo da necessidade da empresa e do volume de dados.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Documentação&lt;/strong&gt;: &lt;a href="https://docs.aws.amazon.com/vpc/latest/userguide/flow-logs.html" rel="noopener noreferrer"&gt;https://docs.aws.amazon.com/vpc/latest/userguide/flow-logs.html&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;




&lt;h1&gt;
  
  
  4. Implementação
&lt;/h1&gt;

&lt;p&gt;Durante a implementação, os seguintes recursos serão configurados:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Contas AWS&lt;/strong&gt;: duas contas ativas (BS-Infra e BS-Security), com permissão para criar os recursos.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;VPCs&lt;/strong&gt;: será criada uma em cada conta, com blocos CIDR privados que não se sobrepõem e seguem as diretrizes da RFC 1918. As subnets públicas e privadas foram criadas dentro do intervalo de endereçamento de cada VPC e associadas às suas respectivas tabelas de rotas.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;NAT Gateway&lt;/strong&gt; e &lt;strong&gt;Internet Gateway&lt;/strong&gt;: serão configurados e associados às subnets corretas.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Security Groups&lt;/strong&gt;: serão configurados para permitir apenas o tráfego entre as VPCs envolvidas no peering.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;VPC Flow Logs&lt;/strong&gt;: serão configurados em ambas as VPCs, com os logs publicados no CloudWatch.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Instâncias EC2&lt;/strong&gt;: será criada uma em cada conta para realizar um teste (srv-infra-test e srv-sec-test).&lt;/li&gt;
&lt;/ul&gt;




&lt;h1&gt;
  
  
  5. Passo a passo
&lt;/h1&gt;

&lt;h3&gt;
  
  
  5.1. Criação das VPCs, subnets e tabelas de rotas
&lt;/h3&gt;

&lt;p&gt;Nesta etapa, serão criadas as VPCs em cada conta, seguidas de duas subnets privadas e uma pública, distribuídas entre diferentes zonas de disponibilidade.&lt;br&gt;
&lt;strong&gt;Conta&lt;/strong&gt;: BS-Infra | &lt;strong&gt;Região&lt;/strong&gt;: us-east-1 | &lt;strong&gt;VPC&lt;/strong&gt;: VPC-BS-INFRA&lt;/p&gt;

&lt;p&gt;1.Acessar o serviço de VPC e clicar em “&lt;strong&gt;Create VPC&lt;/strong&gt;”:&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%2Fzt0skyout8dzcz3yg7o6.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%2Fzt0skyout8dzcz3yg7o6.png" alt=" " width="800" height="78"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A opção “&lt;strong&gt;VPC only&lt;/strong&gt;” foi selecionada, permitindo que as subnets e demais recursos sejam configurados manualmente posteriormente. No campo “&lt;strong&gt;IPv4 CIDR&lt;/strong&gt;”, será utilizado o bloco 172.31.0.0/16, que está contido dentro da faixa privada 172.16.0.0/12 definida pela RFC 1918. Essa norma estabelece 3 blocos de endereços IP reservados para redes privadas, sendo 10.0.0.0/8, 172.16.0.0/12 e 192.168.0.0/16.&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%2F08ntg0rswoyawxjax5ot.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%2F08ntg0rswoyawxjax5ot.png" alt=" " width="800" height="477"&gt;&lt;/a&gt;&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%2Fx27q8c7ms73du7npnub7.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%2Fx27q8c7ms73du7npnub7.png" alt=" " width="800" height="252"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A VPC foi criada com sucesso:&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%2Ftp58etz8wusddefs9fpa.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%2Ftp58etz8wusddefs9fpa.png" alt=" " width="800" height="287"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;OBS&lt;/strong&gt;: Quando há mais de uma VPC na conta, é possível filtrar a que está sendo utilizada no momento, para facilitar a visualização e organização:&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%2Fel02ncxqahocfsc1ow70.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%2Fel02ncxqahocfsc1ow70.png" alt=" " width="800" height="261"&gt;&lt;/a&gt;&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%2Ft0xolk0e67trwly3uypl.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%2Ft0xolk0e67trwly3uypl.png" alt=" " width="799" height="205"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;2.Agora, será necessário criar as 3 subnets da &lt;strong&gt;VPC-BS-INFRA&lt;/strong&gt;, conforme o diagrama:&lt;/p&gt;

&lt;p&gt;Subnet &lt;strong&gt;INFRA-PRIVATE-APP&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Selecionar a aba “&lt;strong&gt;Subnets&lt;/strong&gt;” e clicar em “&lt;strong&gt;Create subnet&lt;/strong&gt;”:&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%2Fo3geu09htldwxmkcsu7q.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%2Fo3geu09htldwxmkcsu7q.png" alt=" " width="800" height="151"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Em seguida, selecionar a &lt;strong&gt;VPC-BS-INFRA&lt;/strong&gt;, definir o nome da subnet, IP e zona de disponibilidade.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;OBS&lt;/strong&gt;: no momento de definir o bloco CIDR da subnet, deve-se prestar atenção para que o bloco CIDR da subnet esteja contido dentro do bloco CIDR da VPC, pois a subnet é uma subdivisão da rede principal. Neste caso, vamos trabalhar com a máscara /16 para a rede, o que nos dá 65.536 endereços IP disponíveis, e /24 para as subnets, cada uma com 256 endereços, garantindo que cada subnet caiba perfeitamente dentro da VPC:&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%2F2lia814pcvli4wokgecq.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%2F2lia814pcvli4wokgecq.png" alt=" " width="800" height="445"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;OBS&lt;/strong&gt;: caso não seja necessário definir uma zona de disponibilidade, é possível selecionar a opção “&lt;strong&gt;No preference&lt;/strong&gt;”. Neste caso específico, vamos trabalhar com a AZ A (us-east-1a), na subnet 1.&lt;br&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%2F6mpzw6yjcmujjg7wznrq.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%2F6mpzw6yjcmujjg7wznrq.png" alt=" " width="799" height="65"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Já que serão criadas 3 subnets na mesma VPC, podemos criar as outras duas clicando em “&lt;strong&gt;Add new subnet&lt;/strong&gt;” e por fim, “&lt;strong&gt;Create subnet&lt;/strong&gt;” para concluir:&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%2Fffokctj1wyevoctqfj5z.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%2Fffokctj1wyevoctqfj5z.png" alt=" " width="800" height="282"&gt;&lt;/a&gt;&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%2Fu43cea8bge7x2vuo13ox.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%2Fu43cea8bge7x2vuo13ox.png" alt=" " width="799" height="273"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;As 3 subnets foram criadas com sucesso:&lt;br&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%2Fherdqk8x0udai6riqtt6.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%2Fherdqk8x0udai6riqtt6.png" alt=" " width="800" height="127"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;OBS&lt;/strong&gt;: a tabela abaixo explica o que significa cada coluna da aba “&lt;strong&gt;Subnets&lt;/strong&gt;”:&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%2Fnzrz784pbbyellf1xtm4.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%2Fnzrz784pbbyellf1xtm4.png" alt=" " width="612" height="965"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;3.Agora, será necessário criar as tabelas de rotas da &lt;strong&gt;VPC-BS-INFRA&lt;/strong&gt;, para definir o roteamento das subnets privadas e da pública.&lt;/p&gt;

&lt;p&gt;Ao criar uma VPC, a AWS provisiona automaticamente uma tabela de rotas principal, contendo uma única rota local (neste caso,a nossa VPC 172.31.0.0/16), que permite a comunicação interna entre todas as subnets da VPC. Subnets sem associação explícita herdam essa tabela por padrão:&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%2F774h0eady24mlxafgpg4.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%2F774h0eady24mlxafgpg4.png" alt=" " width="800" height="295"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Podemos renomeá-la como &lt;strong&gt;RTB-BS-INFRA-PRIVATE&lt;/strong&gt; e torná-la a tabela de rotas para as duas subnets privadas:&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%2Forfderqndqsb3mgup2jr.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%2Forfderqndqsb3mgup2jr.png" alt=" " width="800" height="90"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Para editar, basta clicar em “&lt;strong&gt;Edit subnet associations&lt;/strong&gt;”, na aba “&lt;strong&gt;Subnet associations&lt;/strong&gt;” e selecionar as subnets privadas:&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%2F02pkjw4szajvv4yyh3on.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%2F02pkjw4szajvv4yyh3on.png" alt=" " width="799" height="351"&gt;&lt;/a&gt;&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%2Ft41h2agqldh1b4bimcmb.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%2Ft41h2agqldh1b4bimcmb.png" alt=" " width="800" height="241"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;No final, as subnets ficarão associadas dessa forma:&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%2F0caxz2ksf55zg3qpg29v.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%2F0caxz2ksf55zg3qpg29v.png" alt=" " width="799" height="217"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Agora, será necessário clicar em “&lt;strong&gt;Create route table&lt;/strong&gt;” para criar a tabela de rotas para a subnet pública:&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%2F4u90c50614ekdv40l6tf.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%2F4u90c50614ekdv40l6tf.png" alt=" " width="800" height="134"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;OBS&lt;/strong&gt;: o ideal, por boas práticas de arquitetura na AWS, é que sejam criadas route tables separadas para subnets públicas e privadas, mantendo cada camada com apenas as rotas necessárias para sua função.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Subnets públicas&lt;/strong&gt;: route table com rota 0.0.0.0/0 apontando para um internet gateway.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Subnets privadas&lt;/strong&gt;: route table com rota 0.0.0.0/0 apontando para um NAT gateway (ou sem rota de saída, se não precisar sair para a internet).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Por que separar?&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Controle granular de tráfego por camada (aplicação, banco de dados, ferramentas, etc).&lt;/li&gt;
&lt;li&gt;Subnets privadas não ficam expostas diretamente à internet.&lt;/li&gt;
&lt;li&gt;Facilita aplicar regras diferentes por ambiente ou serviço.&lt;/li&gt;
&lt;li&gt;Segurança por princípio do menor privilégio.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Após clicar em “&lt;strong&gt;Create route table&lt;/strong&gt;”, será necessário inserir um nome (neste caso, será &lt;strong&gt;RTB-BS-INFRA-PUBLIC&lt;/strong&gt; para a subnet pública) e selecionar a VPC:&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%2Fzrw50f7mab3fuo6s5ppd.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%2Fzrw50f7mab3fuo6s5ppd.png" alt=" " width="800" height="256"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Para editar, basta clicar em “&lt;strong&gt;Edit subnet associations&lt;/strong&gt;”, na aba “&lt;strong&gt;Subnet associations&lt;/strong&gt;” e selecionar a subnet pública:&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%2Ft7bjqq8h3f893vcaof9x.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%2Ft7bjqq8h3f893vcaof9x.png" alt=" " width="799" height="299"&gt;&lt;/a&gt;&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%2F6rs6d3cfag34f8c83rye.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%2F6rs6d3cfag34f8c83rye.png" alt=" " width="800" height="220"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Ficará dessa forma:&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%2F092zcj52kvumuwo4iwv1.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%2F092zcj52kvumuwo4iwv1.png" alt=" " width="800" height="213"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Ao finalizar, teremos duas tabelas de rotas:&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%2F223pjw73erikhfmlpqiz.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%2F223pjw73erikhfmlpqiz.png" alt=" " width="800" height="175"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;No entanto, ainda não existe conectividade de rede para nenhuma das subnets. Por isso, agora será necessário configurar o internet gateway para a subnet pública e o NAT gateway para as subnets privadas.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;OBS&lt;/strong&gt;: lembrando que o uso do NAT gateway não é obrigatório. Ele só é necessário quando os recursos em subnets privadas precisam sair para a internet de forma segura (por exemplo, para atualizar pacotes de software ou instalar dependências). No geral, o que torna uma subnet privada é simplesmente não possuir uma rota para o internet gateway na tabela de rotas. Isso por si só já a define como privada.&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%2Fblihey47mqdicuocbs0k.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%2Fblihey47mqdicuocbs0k.png" alt=" " width="800" height="363"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Em seguida, será necessário criar um internet gateway. Para isso, será necessário acessar a aba “&lt;strong&gt;Internet gateway&lt;/strong&gt;” e clicar em “&lt;strong&gt;Create internet gateway&lt;/strong&gt;”:&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%2Fhnwzm02u00jpueumzrkm.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%2Fhnwzm02u00jpueumzrkm.png" alt=" " width="800" height="153"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Definir o nome, neste caso, será &lt;strong&gt;IGW-BS-INFRA-PUBLIC&lt;/strong&gt;:&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%2Fppkr7vljm89nkqawi2qj.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%2Fppkr7vljm89nkqawi2qj.png" alt=" " width="799" height="274"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Após a criação do IGW, será necessário vinculá-lo à &lt;strong&gt;VPC-BS-INFRA&lt;/strong&gt;, clicando em “&lt;strong&gt;Actions&lt;/strong&gt;” e “&lt;strong&gt;Attach to VPC&lt;/strong&gt;”:&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%2F35wayrajkoygdvx8otly.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%2F35wayrajkoygdvx8otly.png" alt=" " width="800" height="158"&gt;&lt;/a&gt;&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%2Ffdqk0m8mui5q8swycnz2.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%2Ffdqk0m8mui5q8swycnz2.png" alt=" " width="800" height="179"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Em seguida, podemos voltar na aba “&lt;strong&gt;Route tables&lt;/strong&gt;” e apontar a rota da subnet pública para o IGW que foi criado, clicando em “&lt;strong&gt;Routes&lt;/strong&gt;” e “&lt;strong&gt;Edit routes&lt;/strong&gt;”:&lt;br&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%2Fwy3r443s3scnw3u17imk.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%2Fwy3r443s3scnw3u17imk.png" alt=" " width="800" height="249"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Devemos definir o destino 0.0.0.0/0, selecionar a opção “&lt;strong&gt;Internet Gateway&lt;/strong&gt;” e escolher o IGW que foi criado anteriormente:&lt;br&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%2Flbayszx111opdjwhhrqd.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%2Flbayszx111opdjwhhrqd.png" alt=" " width="798" height="191"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Por fim, a tabela de rotas ficará com duas rotas configuradas, sendo uma rota local para comunicação interna da VPC (172.31.0.0/16) e uma rota padrão apontando para o internet gateway, permitindo tráfego de entrada e saída com a internet (0.0.0.0/0):&lt;br&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%2Fhpw3fa1pf5793evrgy9b.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%2Fhpw3fa1pf5793evrgy9b.png" alt=" " width="799" height="276"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Em seguida, podemos criar o NAT gateway, vinculá-lo à &lt;strong&gt;VPC-BS-INFRA&lt;/strong&gt; e prosseguir com a configuração na tabela de rotas da mesma forma.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;OBS&lt;/strong&gt;: o NAT gateway necessita estar em uma subnet pública e com um Elastic IP alocado para funcionar corretamente. Ao selecionar a opção “&lt;strong&gt;Allocate Elastic IP&lt;/strong&gt;”, é criada uma interface de rede com dois IPs: um público, utilizado para realizar o SNAT e se comunicar com a internet, e um privado, utilizado para a comunicação interna dentro da VPC.&lt;/p&gt;

&lt;p&gt;Sendo assim, podemos criar o NAT gateway. Para isso, será necessário acessar a aba “&lt;strong&gt;NAT gateways&lt;/strong&gt;” e clicar em “&lt;strong&gt;Create NAT gateway&lt;/strong&gt;”:&lt;br&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%2F7om1ny95sptqr61a6xwu.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%2F7om1ny95sptqr61a6xwu.png" alt=" " width="800" height="251"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Abaixo, alguns detalhes importantes na página de criação do NGW:&lt;br&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%2Fo7xju2i89yq4e1ojc07r.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%2Fo7xju2i89yq4e1ojc07r.png" alt=" " width="800" height="219"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Availability mode&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Zonal&lt;/strong&gt;: o NAT gateway fica em uma única AZ. Se essa AZ cair, as subnets privadas daquela AZ perdem saída para internet. É mais barato.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Regional&lt;/strong&gt;: o NAT gateway é distribuído entre AZs automaticamente, com alta disponibilidade. É mais caro.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Na prática, muitas empresas ainda usam o modo zonal e criam um NAT gateway por AZ (um em cada AZ onde há subnet privada), associando cada subnet privada ao NAT da sua própria AZ. Isso evita o tráfego cross-AZ (que tem custo) e mantém resiliência sem depender do modo regional.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Zonal ou regional em cenários corporativos?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;O padrão corporativo geralmente é zonal com um NAT gateway por AZ. O modo regional é um recurso novo e tem custo mais alto. A abordagem consolidada do mercado é:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;1 NAT gateway na subnet pública da AZ-a sendo usado pelas subnets privadas da AZ-a.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;1 NAT gateway na subnet pública da AZ-b sendo usado pelas subnets privadas da AZ-b.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Connectivity type:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Público&lt;/strong&gt;: permite que instâncias privadas acessem a internet. Requer Elastic IP. É o caso mais comum.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Privado&lt;/strong&gt;: usado para rotear tráfego entre VPCs ou on-premises via VPN/Direct Connect, sem sair para internet.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Devemos deixar “&lt;strong&gt;público&lt;/strong&gt;” se o objetivo é dar saída à internet para as subnets privadas. Devemos selecionar a subnet pública e clicar em “&lt;strong&gt;Allocate Elastic IP&lt;/strong&gt;”:&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%2Fuggsve3zrfavywowzr9t.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%2Fuggsve3zrfavywowzr9t.png" alt=" " width="799" height="220"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Após criar o NAT gateway, é possível observar que uma ENI (Elastic Network Interface) foi criada automaticamente, ela possui um IP privado (172.31.3.123) para receber o tráfego dos recursos das subnets privadas, e um Elastic IP público (100.50.71.167) para se comunicar com a internet, realizando o SNAT, que substitui o IP privado de origem pelo IP público, mantendo os recursos privados invisíveis para a internet:&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%2F9pke97qju1stl3uz4r3b.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%2F9pke97qju1stl3uz4r3b.png" alt=" " width="800" height="274"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;O IP elástico que foi alocado na criação do NGW, está localizado no serviço de EC2, na aba “&lt;strong&gt;Elastic IPs&lt;/strong&gt;”.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;OBS&lt;/strong&gt;: um Elastic IP sem associação à algum recurso, gera custo (em dólar) na AWS. O custo atual é de $0,005 por hora por IP público não associado (ou associado a uma instância parada). Isso dá aproximadamente $3,60/mês por IP ocioso. Quando alocamos um Elastic IP sem usá-lo, está reservando um endereço do pool da AWS que poderia ser usado por outro cliente. A cobrança serve como incentivo para que os usuários não acumulem e liberem IPs ociosos, evitando desperdício desse recurso, uma vez que os endereços IPv4 públicos são recursos limitados.&lt;br&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%2Fmx4lv27018lidupm0ik1.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%2Fmx4lv27018lidupm0ik1.png" alt=" " width="800" height="229"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Para evitar custos, o ideal é liberar os Elastic IPs que não estiverem em uso. Neste caso, o EIP será utilizado para o NAT, mas em outro cenário de teste, após realizá-lo, será importante liberar o IP, clicando em “&lt;strong&gt;Release Elastic IP addresses&lt;/strong&gt;”:&lt;br&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%2F27g1wvkeq2rsgg7bovyx.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%2F27g1wvkeq2rsgg7bovyx.png" alt=" " width="798" height="167"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Como boa prática para manter a organização dos recursos, podemos renomeá-lo com o nome do NGW, para facilitar as auditorias futuras:&lt;br&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%2F88f0ksdaih8xa46eaue6.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%2F88f0ksdaih8xa46eaue6.png" alt=" " width="800" height="98"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Em seguida, podemos voltar na aba “&lt;strong&gt;Route tables&lt;/strong&gt;” e configurar a tabela de rotas da subnet privada, apontando o destino 0.0.0.0/0 para o NAT gateway recém-criado, permitindo que os recursos privados acessem a internet através dele:&lt;br&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%2Flmpj7ckoy1difkrrwbuj.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%2Flmpj7ckoy1difkrrwbuj.png" alt=" " width="799" height="242"&gt;&lt;/a&gt;&lt;br&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%2Fec1ehtrd4i9ft9y6o544.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%2Fec1ehtrd4i9ft9y6o544.png" alt=" " width="800" height="314"&gt;&lt;/a&gt;&lt;br&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%2F4wlm2zs4hzfk6v7xmr62.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%2F4wlm2zs4hzfk6v7xmr62.png" alt=" " width="797" height="148"&gt;&lt;/a&gt;&lt;br&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%2F7lw1tf6h1s3wiyjatq5r.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%2F7lw1tf6h1s3wiyjatq5r.png" alt=" " width="800" height="217"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Por fim, as subnets privadas deverão ser associadas dessa forma:&lt;br&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%2Fuzbl4jp0ulzcxttglali.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%2Fuzbl4jp0ulzcxttglali.png" alt=" " width="798" height="214"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;E o “&lt;strong&gt;Resource map&lt;/strong&gt;” da VPC ficará assim:&lt;br&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%2F07dhqdxyv4zvd2q0d7he.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%2F07dhqdxyv4zvd2q0d7he.png" alt=" " width="800" height="345"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Agora, podemos criar a VPC na conta &lt;strong&gt;BS-Security&lt;/strong&gt; e prosseguir da mesma forma, criando as subnets, tabela de rotas, Internet e NAT gateway:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Conta&lt;/strong&gt;: BS-Security | &lt;strong&gt;Região&lt;/strong&gt;: sa-east-1 | &lt;strong&gt;VPC&lt;/strong&gt;: VPC-BS-SECURITY&lt;/p&gt;

&lt;p&gt;1.Criação da VPC:&lt;br&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%2Ff0onvksdcmxrz89pnxew.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%2Ff0onvksdcmxrz89pnxew.png" alt=" " width="800" height="132"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A VPC foi criada com sucesso:&lt;br&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%2Fo2xravj3oprghxaql42n.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%2Fo2xravj3oprghxaql42n.png" alt=" " width="799" height="371"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;2.Agora, será necessário criar as 3 subnets da &lt;strong&gt;VPC-BS-SECURITY&lt;/strong&gt;, conforme o diagrama:&lt;br&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%2Fxsjpzqyssaqpq23kbtgk.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%2Fxsjpzqyssaqpq23kbtgk.png" alt=" " width="800" height="169"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;3.Após a criação das subnets, será necessário criar o Internet e o NAT gateway:&lt;br&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%2Fmd9r7j5437bt3p66aynn.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%2Fmd9r7j5437bt3p66aynn.png" alt=" " width="800" height="244"&gt;&lt;/a&gt;&lt;br&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%2F49je883xhai1i5sypx60.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%2F49je883xhai1i5sypx60.png" alt=" " width="800" height="298"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;4.Em seguida, será necessário criar e configurar as tabelas de rotas:&lt;br&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%2Fwdfiv34hvnxzjj9pkj0y.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%2Fwdfiv34hvnxzjj9pkj0y.png" alt=" " width="797" height="151"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Tabela &lt;strong&gt;RTB-BS-SEC-PRIVATE&lt;/strong&gt;:&lt;br&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%2Foai2rclbcgttknsx164x.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%2Foai2rclbcgttknsx164x.png" alt=" " width="800" height="276"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Tabela &lt;strong&gt;RTB-BS-SEC-PUBLIC&lt;/strong&gt;:&lt;br&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%2Fmn3r0hjf9dtn5mt1rgys.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%2Fmn3r0hjf9dtn5mt1rgys.png" alt=" " width="800" height="261"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;--&lt;/p&gt;
&lt;h3&gt;
  
  
  5.2.Configuração do peering entre as VPCs
&lt;/h3&gt;

&lt;p&gt;Após a criação das VPCs e subnets nas contas &lt;strong&gt;BS-Infra&lt;/strong&gt; e &lt;strong&gt;BS-Security&lt;/strong&gt;, o próximo passo será criar o peering entre as duas contas.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Conta&lt;/strong&gt;: BS-Infra | &lt;strong&gt;Região&lt;/strong&gt;: us-east-1 | &lt;strong&gt;Peering connection&lt;/strong&gt;: VPC-BS-INFRA&lt;/p&gt;

&lt;p&gt;1.Acessar o serviço de VPC, aba “&lt;strong&gt;Peering connections&lt;/strong&gt;” e criar:&lt;br&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%2Fgmc4jnf8c56p25nstx7s.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%2Fgmc4jnf8c56p25nstx7s.png" alt=" " width="800" height="255"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Será necessário definir um nome, por padrão, iremos adotar o prefixo “&lt;strong&gt;PCX&lt;/strong&gt;”, que é uma convenção comum para peering connection, adotada pela própria AWS para nomenclaturas. Neste caso, será criada uma conexão do requester &lt;strong&gt;VPC-BS-INFRA&lt;/strong&gt; para o accepter &lt;strong&gt;VPC-BS-SECURITY&lt;/strong&gt;:&lt;br&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%2F1axd4kqu3el7g0aqebds.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%2F1axd4kqu3el7g0aqebds.png" alt=" " width="800" height="382"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Alguns detalhes:&lt;br&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%2Fgwzxnkww1aet6sjz1bdr.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%2Fgwzxnkww1aet6sjz1bdr.png" alt=" " width="800" height="676"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A requisição de conexão foi enviada:&lt;br&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%2Fqbq7qjctn6ewvkkg62o2.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%2Fqbq7qjctn6ewvkkg62o2.png" alt=" " width="800" height="318"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Em seguida, será necessário acessar a conta &lt;strong&gt;BS-Security&lt;/strong&gt; e aceitar:&lt;br&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%2Fniuzr9605hrid54po3pc.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%2Fniuzr9605hrid54po3pc.png" alt=" " width="800" height="326"&gt;&lt;/a&gt;&lt;br&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%2Ff0nnqp3mlwqnhzcn2gq1.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%2Ff0nnqp3mlwqnhzcn2gq1.png" alt=" " width="800" height="293"&gt;&lt;/a&gt;&lt;br&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%2Fiqert43zylhnuqd944e6.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%2Fiqert43zylhnuqd944e6.png" alt=" " width="795" height="69"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Agora, será necessário configurar as rotas. Dependendo do caso de uso da empresa, podemos permitir a comunicação entre tabelas de rotas privadas, públicas ou ambas. Em cenários reais, o mais recomendado é conectar tabelas de rotas privadas entre si, mantendo os recursos sensíveis isolados da internet. Neste caso de teste, faremos com que a tabela pública da conta &lt;strong&gt;BS-Infra&lt;/strong&gt; tenha comunicação com a tabela da conta &lt;strong&gt;BS-Security&lt;/strong&gt;, e vice-versa. Em produção, é necessário analisar cada cenário para configurar o roteamento de acordo com os requisitos de conectividade e segurança.&lt;/p&gt;

&lt;p&gt;Em seguida, podemos ir na route table da conta &lt;strong&gt;BS-Security&lt;/strong&gt; e editar as duas tabelas:&lt;/p&gt;

&lt;p&gt;Tabela &lt;strong&gt;RTB-BS-SEC-PRIVATE&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Adicionar o IP de destino 172.31.0.0/16 da &lt;strong&gt;VPC-BS-INFRA&lt;/strong&gt; e selecionar o peering connection criado:&lt;br&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%2Fo8j5hrs7vfc5jrsshqb7.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%2Fo8j5hrs7vfc5jrsshqb7.png" alt=" " width="799" height="326"&gt;&lt;/a&gt;&lt;br&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%2Fl6chu0klggyjoetd5lpg.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%2Fl6chu0klggyjoetd5lpg.png" alt=" " width="800" height="223"&gt;&lt;/a&gt;&lt;br&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%2F1ihionrz3cskkd6zxird.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%2F1ihionrz3cskkd6zxird.png" alt=" " width="800" height="260"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Em seguida, podemos repetir o mesmo procedimento na route table pública:&lt;/p&gt;

&lt;p&gt;Tabela &lt;strong&gt;RTB-BS-SEC-PUBLIC&lt;/strong&gt;&lt;br&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%2F4aiaakbp8l94ayailfc7.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%2F4aiaakbp8l94ayailfc7.png" alt=" " width="800" height="253"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Agora será necessário fazer o mesmo procedimento nas route tables da conta BS-Infra, com o IP de destino 10.0.0.0/16, referente à &lt;strong&gt;VPC-BS-SECURITY&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Tabela &lt;strong&gt;RTB-BS-INFRA-PRIVATE&lt;/strong&gt;&lt;br&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%2F81hfv7lxly9nfdt6pl0t.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%2F81hfv7lxly9nfdt6pl0t.png" alt=" " width="800" height="230"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Tabela &lt;strong&gt;RTB-BS-INFRA-PUBLIC&lt;/strong&gt;&lt;br&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%2F54m3r4a7wg5aqqj7tfe5.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%2F54m3r4a7wg5aqqj7tfe5.png" alt=" " width="799" height="231"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Agora teremos duas route tables vinculadas neste peering connection:&lt;br&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%2F35rlwq1n5jqqwdkhuiz6.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%2F35rlwq1n5jqqwdkhuiz6.png" alt=" " width="800" height="253"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;--&lt;/p&gt;
&lt;h3&gt;
  
  
  5.3. Criação de instâncias EC2 para testar a conexão entre as redes
&lt;/h3&gt;

&lt;p&gt;Agora, será necessário criar duas instâncias, sendo uma em cada conta.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Conta&lt;/strong&gt;: BS-Infra&lt;/p&gt;

&lt;p&gt;1.Acessar o serviço EC2 e clicar em “&lt;strong&gt;Launch instance&lt;/strong&gt;”:&lt;br&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%2F7ite5gylcgnz9a7unxu6.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%2F7ite5gylcgnz9a7unxu6.png" alt=" " width="800" height="75"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;2.Definir as opções abaixo:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Nome da instância&lt;/strong&gt;: SRV-INFRA-TEST&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AMI&lt;/strong&gt;: neste caso, pode ser Amazon Linux 2023.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tipo de instância&lt;/strong&gt;: neste caso, pode ser t2.micro (é barata).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Key pair&lt;/strong&gt;: não será criado o par de chaves. Caso a instância fosse acessada via SSH, por exemplo, seria necessário criar o par, pois a chave pública ficaria dentro da instância e a privada seria baixada no formato &lt;strong&gt;.pem&lt;/strong&gt; ou &lt;strong&gt;.ppk&lt;/strong&gt; para acesso via SSH.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Rede&lt;/strong&gt;: VPC-BS-INFRA&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Subnet&lt;/strong&gt;: Pode ser a subnet pública para teste (INFRA-PUBLIC-SRV)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Auto-assign public IP&lt;/strong&gt;: deixar habilitado para ser atribuído um IP público para a instância.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Firewall&lt;/strong&gt; (&lt;strong&gt;Security Groups&lt;/strong&gt;): como o acesso à instância será via SSM, não será necessário configurar regras de entrada (como SSH, por exemplo). Dessa forma, o security group pode ser definido apenas com regras de saída.
&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%2Fb3bzmmw8o9j3bgdayxi2.png" alt=" " width="800" height="391"&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%2Fjvz7b94vaec374qq8kzn.png" alt=" " width="800" height="395"&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Para o teste, não será necessário alterar o tipo e tamanho do storage:&lt;br&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%2Fj26c6r9ok40xgujf1yzc.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%2Fj26c6r9ok40xgujf1yzc.png" alt=" " width="800" height="335"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Podemos clicar em “&lt;strong&gt;Advanced details&lt;/strong&gt;” para criar a IAM role que permitirá o acesso à incia via SSM. Para isso, será necessário anexar a política “&lt;strong&gt;AmazonSSMManagedInstanceCore&lt;/strong&gt;” à role, que fornece as permissões usadas pelo AWS Systems Manager para gerenciar a instância:&lt;br&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%2Fdw3vzddaw22ro5s0oro2.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%2Fdw3vzddaw22ro5s0oro2.png" alt=" " width="800" height="121"&gt;&lt;/a&gt;&lt;br&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%2Fq73xczr17oi99jrwxkja.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%2Fq73xczr17oi99jrwxkja.png" alt=" " width="800" height="390"&gt;&lt;/a&gt;&lt;br&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%2Fvapt9ewcv62yw3xeqr2m.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%2Fvapt9ewcv62yw3xeqr2m.png" alt=" " width="799" height="154"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Após isso, podemos clicar em “&lt;strong&gt;Launch instance&lt;/strong&gt;” para criar a instância:&lt;br&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%2Feqk3pmw4ta0tskmi78aw.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%2Feqk3pmw4ta0tskmi78aw.png" alt=" " width="798" height="124"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;No security group, para acesso via SSM, por padrão é liberada apenas a saída para a internet (outbound), pois o SSM agent é quem inicia a comunicação com os endpoints da AWS na porta 443. Nenhuma regra de entrada (inbound) é necessária, o que elimina a exposição de portas como SSH (22) ou RDP (3389).&lt;/p&gt;

&lt;p&gt;Neste caso, como será realizado um teste de ping, será necessário liberar tráfego ICMP no inbound do security group, restrito ao bloco de IP da &lt;strong&gt;VPC-BS-SECURITY&lt;/strong&gt; (10.0.0.0/16):&lt;br&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%2Fc9mynu6wlsfyoev5wbn5.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%2Fc9mynu6wlsfyoev5wbn5.png" alt=" " width="800" height="224"&gt;&lt;/a&gt;&lt;br&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%2Fyulfdpx6zl2pwxc7tzjo.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%2Fyulfdpx6zl2pwxc7tzjo.png" alt=" " width="798" height="163"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Em seguida, podemos repetir o mesmo processo na conta &lt;strong&gt;BS-Security&lt;/strong&gt;, para criar a instância:&lt;br&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%2Fe6wsoohvpnnjodoguicr.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%2Fe6wsoohvpnnjodoguicr.png" alt=" " width="800" height="273"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;E configurar o security group, liberando o ICMP no inbound, restrito ao bloco de IP da &lt;strong&gt;VPC-BS-INFRA&lt;/strong&gt; (172.31.0.0/16):&lt;br&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%2Fr5c79t4ytmhbvzi40ji3.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%2Fr5c79t4ytmhbvzi40ji3.png" alt=" " width="800" height="230"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;--&lt;/p&gt;
&lt;h3&gt;
  
  
  5.4. Acesso às instâncias e teste de conectividade
&lt;/h3&gt;

&lt;p&gt;Agora, vamos acessar as duas máquinas e testar um ping e telnet entre elas:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Instância&lt;/strong&gt;: SRV-INFRA-TEST&lt;br&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%2Fnrf60re2bkomu4u91gpf.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%2Fnrf60re2bkomu4u91gpf.png" alt=" " width="800" height="299"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Com o comando &lt;code&gt;ip a&lt;/code&gt;, é possível visualizar o IP privado dessa máquina:&lt;br&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%2Fdkj9ovtrhygm65n33wbe.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%2Fdkj9ovtrhygm65n33wbe.png" alt=" " width="799" height="218"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;E também, diretamente no console:&lt;br&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%2F77pp1tq4xqgo224ktd6i.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%2F77pp1tq4xqgo224ktd6i.png" alt=" " width="799" height="245"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Foi realizado um teste de conectividade via ping da instância &lt;strong&gt;SRV-INFRA-TEST&lt;/strong&gt; (172.31.3.215) para a &lt;strong&gt;SRV-SEC-TEST&lt;/strong&gt; (10.0.3.67).&lt;/p&gt;

&lt;p&gt;O retorno foi bem-sucedido, confirmando a comunicação entre as máquinas.&lt;br&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%2Fzqr3orw0b59e119tmdp3.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%2Fzqr3orw0b59e119tmdp3.png" alt=" " width="799" height="299"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Também é possível validar a conectividade TCP entre as instâncias utilizando o Telnet. Para isso, basta instalar a ferramenta nas duas máquinas e executar o teste informando o IP e a porta desejada.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;yum &lt;span class="nb"&gt;install &lt;/span&gt;telnet &lt;span class="nt"&gt;-y&lt;/span&gt;
&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%2Fo94xvkpyk3jfe744w7s4.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%2Fo94xvkpyk3jfe744w7s4.png" alt=" " width="799" height="254"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Para isso, será necessário acessar os security groups das duas instâncias e liberar, por exemplo, a porta 22 (SSH) nas regras de entrada, permitindo testar a conectividade.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;BS-Infra&lt;/strong&gt;:&lt;br&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%2Fuyd3qs77f2xjclluev1j.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%2Fuyd3qs77f2xjclluev1j.png" alt=" " width="799" height="254"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;BS-Security&lt;/strong&gt;:&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%2Fj09w47yndn9p1g1jj265.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%2Fj09w47yndn9p1g1jj265.png" alt=" " width="799" height="249"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Por fim, executar &lt;code&gt;telnet &amp;lt;IP&amp;gt; &amp;lt;porta&amp;gt;&lt;/code&gt; em ambas as máquinas. O teste confirmou que a conectividade TCP entre as instâncias funcionou corretamente na porta 22. O retorno “&lt;strong&gt;Connected to&lt;/strong&gt;” e a identificação do serviço OpenSSH demonstram que a comunicação entre as VPCs foi estabelecida com sucesso:&lt;br&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%2Fht6v085xqwoufcz0i494.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%2Fht6v085xqwoufcz0i494.png" alt=" " width="800" height="95"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;OBS&lt;/strong&gt;: foi utilizada a porta 22, pois as instâncias Linux utilizadas já possuíam o serviço SSH disponível por padrão, não sendo necessária a instalação de serviços adicionais para a realização dos testes básicos.&lt;/p&gt;

&lt;p&gt;--&lt;/p&gt;

&lt;h3&gt;
  
  
  5.5. Configuração do VPC Flow Logs
&lt;/h3&gt;

&lt;p&gt;Para configurar, será necessário selecionar a VPC, neste caso a &lt;strong&gt;VPC-BS-INFRA&lt;/strong&gt; e na aba de Flow Logs, clicar em “&lt;strong&gt;Create flow log&lt;/strong&gt;”:&lt;br&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%2F1euag3f1hbrtdd1i13yb.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%2F1euag3f1hbrtdd1i13yb.png" alt=" " width="800" height="272"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Podemos selecionar as opções “&lt;strong&gt;Accept&lt;/strong&gt;”, “&lt;strong&gt;Reject&lt;/strong&gt;” ou “&lt;strong&gt;All&lt;/strong&gt;”, que definem o tipo de tráfego que será capturado. Neste caso, vamos utilizar a opção “&lt;strong&gt;All&lt;/strong&gt;”, para registrar toda a comunicação, independentemente de o tráfego ter sido aceito ou rejeitado.&lt;/p&gt;

&lt;p&gt;Na opção de agregação, podemos manter 1 minuto, para que um novo arquivo de log seja gerado a cada minuto:&lt;br&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%2Fnjubunugeun3u2qboacd.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%2Fnjubunugeun3u2qboacd.png" alt=" " width="799" height="250"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Em seguida, podemos definir um destino para os logs. O S3 dificulta um pouco a leitura dos logs diretamente, então, caso optemos por armazená-los nele, podemos baixar os arquivos para análise local ou utilizar o Athena para filtrar e consultar os dados utilizando SQL. Já o CloudWatch Logs centraliza a visualização de logs, então, neste caso, vamos optar por ele. Para isso, será necessário criar um grupo de logs no CloudWatch.&lt;/p&gt;

&lt;p&gt;Será necessário acessar o CloudWatch, e na aba “&lt;strong&gt;Log Management&lt;/strong&gt;”, clicar em “&lt;strong&gt;Create log group&lt;/strong&gt;”:&lt;br&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%2Febn8ymcysyj0tl6xmjl2.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%2Febn8ymcysyj0tl6xmjl2.png" alt=" " width="800" height="265"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Podemos selecionar o tempo de retenção dos logs (neste exemplo, serão apenas 3 dias), também o log class (classes de armazenamento) e proteger os logs contra deleção acidental. Em cenários corporativos reais, o ideal seria também criptografar os logs, para manter a segurança em ambientes de produção.&lt;br&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%2F5oxr9rcxw9su25acdvyn.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%2F5oxr9rcxw9su25acdvyn.png" alt=" " width="800" height="381"&gt;&lt;/a&gt;&lt;br&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%2Faqxdfvfbusvptzxpc3n7.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%2Faqxdfvfbusvptzxpc3n7.png" alt=" " width="800" height="188"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Após criar o grupo de logs, podemos retornar à página de criação do Flow Logs e selecioná-lo para dar continuidade. Também podemos criar uma IAM role diretamente nesta tela, concedendo as permissões necessárias para que o Flow Logs possa enviar os registros ao CloudWatch Logs.&lt;/p&gt;

&lt;p&gt;Em seguida, podemos customizar os registros dos logs, clicando em “&lt;strong&gt;Custom format&lt;/strong&gt;” e selecionando as opções abaixo:&lt;br&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%2Fo82f3aa9n3ox65udcbn6.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%2Fo82f3aa9n3ox65udcbn6.png" alt=" " width="799" height="353"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A criação foi feita com sucesso:&lt;br&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%2Fsb0px77xdopjyfgjzyya.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%2Fsb0px77xdopjyfgjzyya.png" alt=" " width="800" height="269"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Em seguida, podemos repetir o mesmo procedimento com a &lt;strong&gt;VPC-BS-SECURITY&lt;/strong&gt;:&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%2Fw2d4vdrtl1n67ubo3gj4.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%2Fw2d4vdrtl1n67ubo3gj4.png" alt=" " width="799" height="220"&gt;&lt;/a&gt;&lt;br&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%2F5nkytyv3ks6v0jtuktvi.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%2F5nkytyv3ks6v0jtuktvi.png" alt=" " width="800" height="284"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;--&lt;/p&gt;

&lt;h3&gt;
  
  
  5.6. Análise de tráfego das VPCs com o Flow Logs
&lt;/h3&gt;

&lt;p&gt;Após criar os Flow Logs nas duas VPCs, podemos validar o monitoramento realizando, por exemplo, um telnet da &lt;strong&gt;VPC-BS-INFRA&lt;/strong&gt; para a &lt;strong&gt;VPC-BS-SECURITY&lt;/strong&gt; e, posteriormente, verificando no CloudWatch Logs se o tráfego foi registrado corretamente:&lt;br&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%2Fdj0035o0eqe31xzc2mui.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%2Fdj0035o0eqe31xzc2mui.png" alt=" " width="657" height="114"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;O log apresentou os IPs de origem e destino, a porta 22 e a ação “&lt;strong&gt;ACCEPT OK&lt;/strong&gt; ”, confirmando que a comunicação entre as VPCs ocorreu com sucesso e foi devidamente monitorada pelo Flow Logs:&lt;br&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%2F680wrtjw68nurugh130t.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%2F680wrtjw68nurugh130t.png" alt=" " width="799" height="146"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h1&gt;
  
  
  6.Conclusão
&lt;/h1&gt;

&lt;p&gt;O recurso de VPC peering funciona sobre o backbone da rede privada da AWS e o tráfego entre as VPCs é roteado internamente pela infraestrutura global, sem nunca passar pela internet pública. Em conexões entre regiões diferentes, o tráfego é criptografado antes de sair das instalações da AWS, permanecendo sempre na rede global privada, o que reduz riscos de exposição externa e ataques como DDoS.&lt;/p&gt;

&lt;p&gt;Foi possível validar na prática que o VPC peering funciona entre contas e regiões geográficas diferentes, conectando uma VPC em Norte da Virgínia (us-east-1) com uma VPC em São Paulo (sa-east-1). A conectividade foi comprovada através de testes com ping e telnet, onde a instância de origem conseguiu alcançar a instância de destino utilizando exclusivamente o IP privado, confirmando que o tráfego não passou pela internet pública.&lt;/p&gt;

&lt;p&gt;O monitoramento foi realizado através do VPC Flow Logs, configurado nas duas contas, que registrou de forma detalhada todo o tráfego gerado durante os testes, incluindo IPs de origem e destino, portas, protocolo, quantidade de pacotes, bytes transferidos e a ação tomada pelo security group. Esse recurso é muito útil para troubleshooting, pois pode ajudar a descobrir onde o pacote morreu. Neste caso, por exemplo:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Se a conta de infraestrutura mostrasse &lt;strong&gt;ACCEPT&lt;/strong&gt; no envio, mas a conta de segurança não registrasse nenhuma entrada correspondente, o problema poderia estar na configuração das tabelas de rotas ou no caminho até a VPC de destino.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Caso a conta de segurança registrasse o pacote chegando com o status &lt;strong&gt;REJECT&lt;/strong&gt;, isso indicaria que a conectividade do VPC peering estaria funcionando, mas o tráfego poderia estar sendo bloqueado pelo security group ou pela NACL da instância de destino.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>aws</category>
      <category>cloudcomputing</category>
      <category>networking</category>
    </item>
  </channel>
</rss>
