Bom pessoal, vamos lá, agora a gente vai entrar um pouquinho em alguns detalhes do VPC para a gente ter ideia de quais são as funcionalidades que a gente tem mais avançadas para ele. Então uma delas é o VPC Peering. O VPC Peering vai ser uma estratégia de conexão direta entre duas virtuais Private Clouds. Então você vai pegar dois VPCs e fazer uma conexão direta entre esses dois, fazendo com que o tráfego de rede entre eles aconteça usando IPs privados. Ou seja, você não está saindo para a internet pública, você não está abrindo a sua casa para os demais e com isso você está trafegando só dentro de casa mantendo a sua comunicação segura sem ir para a internet pública, beleza? Essa é a ideia do VPC peering aqui tá um desenho tá inicial Então imagina que você tem aqui a sua conta e você tem um VPC um e com isso você tá querendo fazer um peering com VPC 3 que é de uma terceira parte que é outra conta né nem a sua conta são duas contas diferentes e você quer que por um acaso, por algum motivo, uma fale com a outra. A gente pode depois aprofundar em alguns exemplos, mas a ideia é que uma fale com a outra. Nesse sentido, você pode ter então o seu VPC1 fazendo um peering aqui com o VPC3. E poxa, você quer ter o seu VPC3 falando com o VPC2? Você pode também, você vai fazer um peering com o VPC2 e assim por diante. Com isso, eles conseguem trafegar a informação de um para o outro sem acessar a internet pública, beleza? Tá bom. Aqui, a primeira coisa que a gente tem que saber é sobre o isolamento disso. Quanto isolado está esse serviço entre essas VPCs? A primeira coisa que você tem que ter na sua cabeça é que as VPCs não se veem. Então, para que isso aconteça, tem que ter um sua cabeça é que as VPCs não se veem. Então, para que isso aconteça, tem que ter um pedido da VPC3 para a VPC1 e um aceite para que essas coisas aconteçam. É igual um pareamento de celulares. Pensa assim, eu quero parear o celular A com o celular B, eu tenho que solicitar, aceitar e daí sim ele tem uma conexão. Aqui é algo parecido. Lógico que muito mais seguro do que isso mas aqui é algo parecido, onde você tem que fazer uma solicitação, outro lado tem que aceitar a solicitação, tem que ter as configurações para depois que isso aconteça, então essa é a ideia do VPC peering, beleza? eles são isolados uma outra coisa que a gente tem que saber é a transitividade, vamos lá então no nosso exemplo aqui, eu tenho o VPC1 falando com o VPC3 e o VPC2 falando com o VPC3 via peering. Ok. O VPC2 enxerga o VPC1? Não, né? Porque eles não têm uma conexão direta. O VPC2 não fez um pedido de peering para 2 e o 1 não fez pedido para 1 e assim por diante. O 2 não fez para 1 e o 1 não fez para 2. Beleza? Então, eles fez para dois. Beleza? Então eles não tem uma conexão de VPC peering, ok? Pô, mas eu tenho aqui uma conexão com o 3, eu não consigo pelo VPC 1 acessar o VPC 3, já que o VPC 3 tem com a 2, eu acesso o VPC 2? Não, você não consegue. Esse é o padrão aqui de transitividade que as VPCs garantem. Então se você tiver uma conexão da 1 com a 3 e da 3 com a 2, significa que a 1 não vê a 2, a 1 vê a 3, a 3 vê a 1 e assim por diante. Elas não vão ter uma configuração onde a informação da 2 apareça para 1. Fechou? Como é que funciona a configuração? Como eu falei para vocês, você primeiro faz um pedido de peering, então você vai criar o pedido lá na sua VPC e ela vai iniciar essa conexão, especificando qual o VPC destino e qual é o EID da conta AWS se for diferente. O que significa? Vamos lá, no nosso caso aqui a gente colocou duas contas, então tenho que fazer o pedido falando que é do VPC1 para o VPC3 e qual é a conta com qual eu quero me conectar, pra gente poder saber assim quais são as partes que vão. Pô, eu tô dentro da mesma conta, aí você precisa só falar qual vai ser a vpc com a qual você quer conectar outra coisa que você tem que fazer depois disso é a aceitação do peering então a sua vpc destino vai precisar aceitar esse peering para que a conexão seja estabelecida então não adianta só pedir o outro lado tem que aceitar e depois você tem que atualizar suas host tables lá que a gente falou no começo onde você vai colocar quais são as configurações de peering em ambas as partes do VPC para elas estarem atualizadas e com as rotas direcionando o tráfego de uma para a outra. Então você vai ter que fazer isso pós você fazer o pedido e o aceite do peering, beleza? Bom, aqui a gente tem então um exemplo, como a gente estava falando até agora, disso. E quando é que a gente usa isso? Vou dar um exemplo aqui entre contas. Imagina que você tem aqui, por exemplo, você é uma empresa de venda. Eu gosto de usar empresa de venda online porque eu acho que é mais fácil na cabeça de todo mundo. Então eu criei aqui uma empresa de venda de roupa online. Eu mesmo criei em casa, uma empresa pequena. Empresa de venda online, subir minha VPC dentro da minha conta e assim por diante. E eu quero vender itens que são de algum outro lugar aqui perto de casa, então o estoque está em outro lugar e eu preciso ter acesso a esse estoque. E daí, por um acaso, eu não vou replicar a tabela desse estoque, eu quero ter um acesso direto e eu não quero fazer por API. Sei lá por qual motivo, eu quero acessar direto a instância do cara lá. O que eu vou fazer? Eu vou fazer um pedido de VPC Peering e eu vou ter acesso direto à instância dele. É o meu melhor exemplo? Não, não é um bom exemplo. Falando em arquitetura de solução, aqui eu quebrei uma porrada de regras, não façam isso, por favor. Mas é uma ideia de como você poderia usar isso. No seu dia a dia você tem que ver o que cabe mais para você. Eu vou te dar um outro exemplo aqui dentro da mesma conta. Imagina que você está com seu ambiente de homologação e ambiente de produção. Você pode fazer um VPC peering para você conseguir subir as suas aplicações para lá, para o ambiente de produção, por exemplo. Você ter essa comunicação entre as suas VPCs dentro da mesma conta. É uma outra estratégia, beleza? Vamos entre as suas VPCs dentro da mesma conta. É uma outra estratégia, beleza? Vamos falar agora de um outro carinha chamado VPC Endpoint. O VPC Endpoint vai ser ali uma conexão virtual que vai permitir que você se conecte na AWS dentro da sua VPC sem usar um gateway para a internet. Ou seja, você vai conseguir consumir as coisas da AWS sem estar exposto à internet. Você vai usar direto um VPC endpoint aqui, tá? Aqui está uma ideia de desenho de VPC endpoint, onde você tem o seu consumer, tá? O seu VPC consumer, onde você tem as suas aplicações, consumindo um VPC endpoint e indo lá no provider e consumindo as aplicações do outro lado, sem acesso direto à rede, você está dentro da mesma region e assim por diante. Você vai embora aqui com uma conexão direta. Tá bom? Então, tá bom. O VPC endpoint aqui, ele tem um private link, tá? No fim do dia. Que é uma interface de rede elástica ali com IPs privados que você vai ter de entrada e tráfego destinado para um serviço da AWS ou para algum serviço que suporte esse Private Link, também pode acontecer. Você tem também o Gateway Endpoint que aqui ele vai ser disponível para você usar por exemplo o Amazon S3, o DynamoDB ou algum endpoint de Gateway que vai ser direcionado através ali da sua tabela de roteamento e assim por diante. Agora vamos falar aqui do VPC NAT, ele tem dois jeitos de ser utilizado. O primeiro deles é o Gateway NAT e o segundo é o Instance NAT. Basicamente o que a gente está fazendo aqui é basicamente você ter a sua VPC acessando alguma outra internet, ou seja, saindo para fora da sua subrede e o que está fora não tem acesso à sua subnet aqui, beleza? Então, com isso, você consegue fazer com que tenha tráfego de ida, ou seja, você consegue ir buscar informação fora, mas você não tem ninguém vindo buscar nada dentro da sua subrede, ou seja, você mantém ela fechada para toda a internet, deixando isso um pouco mais controlado e um acesso mais seguro, tá bom? Mas a gente vai aprofundar nisso e como é que funciona, vamos lá. Primeira coisa, ele é um serviço totalmente gerenciado ali pela AWS, assim como a gente falou com serviços servers ali, o VPC NAT é uma ideia parecida, o que ele vai fazer é o seguinte, se você tiver que fazer o gerenciamento de infraestrutura dele, você não precisa se preocupar, quem vai fazer isso é a própria AWS, deixando você se preocupar com o que você precisa ali da sua aplicação. Tá bom? Ele vai fazer o que eu acabei de comentar com vocês, a sua subrede privada, ela vai poder enviar as solicitações para a internet, enquanto ela impede que a internet se conecte com as suas instâncias dentro da sua subrede. Beleza? Quando a gente está falando então do VPC NAT do Gateway, então esse aqui é um desenho do Gateway, do VPC NAT Gateway. A gente tem aqui então, por exemplo, uma representatividade dele dentro de uma subnet pública. Então dentro da sua zona, da sua AZB, você tem aqui uma public subnet. Está vendo que os seus componentes estão em uma private subnet? Dentro da private subnet, ninguém vai acessar. E aqui ele está tendo um caminho de saída via esse gateway NAT. E esse gateway, ele está indo acessar a internet. Beleza? E a internet consegue voltar? Não. Enquanto que aqui olha se você olhar do outro lado você tem uma public subnet direto com a sua as suas api ou os seus componentes expostos à internet então você vê que são dois caminhos muito diferentes por aqui você vai ter internet acessando a sua acessando a sua subnet por aqui também você não vai ter a marquinha em camadas de controle assim por diante vai vai fazerando a sua subnet por aqui também você não vai ter ah, mas aqui tem camadas de controle e assim por diante, você vai fazer toda a sua configuração de segurança e etc, e não vai deixar óbvio, que a internet não vai estar acessando qualquer coisa aqui dentro, mas nesse caso não vai acessar de jeito nenhum, porque você já deixou o gateway aqui pra ela não conseguir bater na sua private subnet, ou seja você escondeu do mundo a sua parte aqui, com isso você vai acabar ficando um pouco mais seguro, beleza? Esse é o Gateway NAT, que ele pode ser bem utilizado, eu acho bem interessante para o dia a dia, para deixar as camadas mais seguras, tá bom? Ele é automatizado e escalável, então como eu falei, ele vai ser escalado pela própria AWS, sem precisar da sua gestão ali em cima, Ele é um serviço totalmente gerenciado. Então, ele vai escalar conforme for necessário, largura de banda e assim por diante. E eles são altamente disponíveis. Então, você sabe que não vai acontecer nada, que ele vai estar lá disponível para quando você precisar. Então, o que vai fazer a gestão desse cara é a própria, o próprio provedor cloud, no nosso caso aqui a AWS que a gente está falando. Ele também tem redundância, ou seja, você não precisa fazer intervenção manual. Se ele por um acaso cair, se der um problema, crachar lá, eles vão ser substituídos automaticamente pela própria provedor cloud, sem você ter que se preocupar com isso também. Então aqui você tem mais essa facilidade para você focar no código e não ter que ficar focando nesse tipo de gestão, tá bom? Bom, você pode usar instância também, o NAT Instance. Então, é um outro cara que vai fazer alguma coisa parecida com isso, tá bom? Ele vai ter um desempenho, uma função parecida, mas ele não é igual. Porque nesse cenário, você não tem a gestão da AWS. Você tem que fazer a gestão da sua instância porque ele não é um serverless. você tem que fazer a gestão da sua instância, porque ele não é um serverless. Nesse caso, é você fazendo a gestão, mas, em compensação, você vai ter mais flexibilidade e, possivelmente, o custo menor quando você for fazer isso em menor escala. Então, com isso, você consegue ter mais flexibilidade, mas tem mais trabalho também. Aqui, eu fiz um desenho, trouxe um desenho, na verdade, da AWS, onde a gente mostra a utilização do NAT Instance via internet gateway, batendo no NAT Instance e ele indo no EC2. Então aqui você está fazendo uma estratégia de NAT Instance usando o EC2 por trás. Precisa ser EC2? Não, você pode usar outro componente também da AWS, mas nesse caso você colocou ele na sua private subnet enquanto você tem aqui um outro EC2 na sua public subnet. Aqui direto a internet consegue ter acesso ao EC2, aqui não consegue porque você está fazendo isso via NAT instance para tirar esse tipo de coisa. E com isso você consegue configurar melhor o que você quer para esse tipo de estratégia. Agora vamos falar rapidamente sobre um carinha interessante e que a gente pode ter alguns cenários específicos para a utilização dele, mas eu não vou aprofundar muito porque ele não é muito utilizado, então eu acho que é só para vocês terem conhecimento, tá bom? É o Elastic IP, ele vai deixar um endereço aqui, é o EIP, tá? Ele vai deixar um endereço IPv4 estático e público destinado para o que você precisar ali. O que significa? Então você vai ter um endereço estático para qualquer instância ali que você tiver o recurso de rede na mesma região da AWS. Você vai ter um endereço fixo ali para você poder usar. Ele garante que o endereço vai estar sempre disponível e que ele vai estar preparado para a sua aplicação, mesmo que a sua instância original falhar. Então imagina que você subiu uma instância, ela falhou, na hora que ela subir de novo ela não vai buscar um outro IP. Ela vai usar esse IP que você já deixou destinado pra ela, deixando sempre um endereço apontado fixo pra quando você precisar disso, tá bom? Você pode adquirir ele e colocar ele na sua conta WS e ele vai permanecer com você até você liberar. Quando você não liberar esse cara, ele vai estar ali com você. Você vai associar ele a uma instância EC2, por exemplo, ou a um dispositivo de rede, ou um NetGate, e assim por diante. Você vai fazer a associação de o que esse IP vai buscar depois. E você pode reassociar. Puts, por algum motivo eu não quero mais ele associado a essa instância, eu quero mudar a instância, eu posso desassoci