Então, para que a gente consiga acessar a nossa máquina virtual, nós precisamos em primeiro lugar definir uma rota apontando para o Internet Gateway e associar essa rota a nossa subnet. Para isso, o primeiro recurso que nós precisamos criar é este recurso aqui, a WSRouteTable. Primeiro nós especificamos a VPC ID a qual essa tabela estará associada, no nosso caso a WSVPCExample VPC, que foi o identificador deste recurso que nós definimos aqui no arquivo de configuração, e colocamos aqui .id. Então, nós já definimos a nossa rota, tá? Nós colocamos aqui o nosso bloco CIDR, e nós dizemos que todo o tráfego, ele deve ser direcionado para o Internet Gateway, tá? Nós estamos referenciando aqui o nosso Internet Gateway. Be o Internet Gateway, nós estamos referenciando aqui o nosso Internet Gateway beleza, já temos aqui uma tabela com uma rota específica mas agora nós precisamos informar a nossa subnet que ele deve utilizar essa tabela de rotas, nós faremos isso aqui da seguinte forma utilizando esse recurso AWS Route Table Association então temos aqui AWS Route Table Association, estamos dando um nome aqui qualquer, e nós estamos referenciando a nossa subnet e referenciando a nossa Route Table, fazendo então essa associação. Dessa forma nós já garantimos que há essa comunicação, que é possível fazer essa comunicação da nossa subnet através da internet, utilizando o nosso Internet Gateway. Perfeito? Primeiro passo, então, concluído. Agora nós precisamos de criar um security group que permita o acesso utilizando a porta 22. Nós temos essa associação, mas atualmente o nosso security group que está associado à nossa instância não deixa que essa comunicação aconteça. A nossa subnet novamente tem acesso à internet porém há uma barreira ali para a nossa instância que não permite a comunicação para a nossa VM especificamente nós faremos isso então a permitiremos agora o acesso criando um security group vamos lá teremos esse recurso aqui a WS Security Club que nós estamos chamando de example SG aqui nós temos a nossa VPC ID sendo referenciada novamente veremos esse recurso aqui, AWS Security Group que nós estamos chamando de ExampleSG e aqui nós temos a nossa VPC ID sendo referenciada novamente estamos dando o nome aqui de allow SSH e também especificando uma tag name com o mesmo nome allow SSH, beleza? Security Group criado, agora nós precisamos criar as regras a primeira regra será a regra ingress a regra de comunicação vindo de fora para acesso a VM e nós temos aqui primeiro a referência ao security group que nós acabamos de criar, estamos especificando quais são os IPs para qual essa regra vai ser aplicada, aqui são para todos os IPs, nós poderíamos liberar simplesmente acesso SSH da nossa máquina, utilizando o nosso IP, mas para esse caso aqui eu estou liberando acesso geral. Novamente, isso aqui não é uma abordagem recomendada, claro que nós estamos seguindo aqui os padrões de segurança, mas é só para nós termos um exemplo. A porta que nós estamos aqui liberando acesso é a porta 22, utilizando o protocolo de rede TCP. liberando o acesso, é a porta 22 utilizando o protocolo de rede TCP. Perfeito? Temos aqui então a nossa primeira regra e nós precisamos também de uma regra de egress, que é a comunicação da máquina virtual para fora. Então nós teremos aqui agora essa nova regra, que é uma regra mais simples, novamente associando aqui o nosso security group, liberando todo o tráfego e o nosso IP protocol, que é o menos um que seriam todos os protocolos. Beleza, já temos a nossa Security Group, já temos as nossas regras, mas agora nós precisamos informar a nossa instância que ela precisa utilizar a Security Group. Então nós vamos aqui navegar até a nossa instância, vamos acessar aqui example instances e nós temos aqui dentro o nosso VPC Security Group IDs, que é uma lista, e agora sim nós podemos referenciar a AWS, Security Group, example SD, e passamos aqui o ID do nosso Security Group. Deixa eu só formatar o arquivo, beleza, e eu acho que é isso, eu acho que agora nós já estamos prontos para acessar a nossa VM como você pode ver eu não entrei em detalhes de cada um desses recursos porque isso daqui é algo adicional é só para permitir que a gente consiga acessar a nossa VM vamos lá, vamos agora executar aqui os nossos comandos terraform, primeiro dando um terraform plane para ver se nós não temos aqui configurado nada errado, beleza, até agora tudo ok, atualizando aqui o estado, e perfeito, temos aqui todos os nossos recursos que precisam ser adicionados, tá, beleza, um para ser adicionado e um para ser alterado, porque eu não destruí a infraestrutura na aula anterior. Então, vamos dar aqui um perform apply. Beleza? Teremos aqui o nosso apply. Vamos esperar que ele dê um refresh state novamente. E nós vamos logo em seguida confirmar o nosso apply. Vamos dar um yes e novamente, sabemos que demora um pouquinho, vou pausar a aula e daqui a pouco nós voltamos para verificar se tudo funcionou. E aqui está, deploy concluído e agora nós vamos navegar até o nosso console. Então deixa eu acessar o console aqui, eu acho que eu fechei, não, não fechei temos aqui já o acesso ao nosso console deixa eu voltar aqui no serviço EC2, beleza temos aqui uma instância rodando, vamos verificar aqui se nós temos agora alguma mudança aqui na aba security e agora sim, nós temos o nosso security group associado, o security group nós temos o nome de allow SSH, com essa regra, onde nós permitimos aqui qualquer source, então comunicação ouvida de qualquer lugar, acessando essa instância através da porta 22. Beleza? Temos aqui também Outbound Rules permitindo acesso para qualquer destination, para qualquer destino, para qualquer target em qualquer porta. Era isso mesmo que nós queríamos, agora vamos acessar Connect. E aqui, o único warning que nós temos agora é que a porta 22 está aberta para todos os endereços IP, que é algo intencional, nós colocamos intencional, mas é claro que em produção, ou aí na sua empresa, você não vai permitir esse acesso para todas as portas. Vamos agora dar um connect, beleza, vamos esperar aqui que a conexão seja estabelecida, nós poderíamos, claro, baixar aqui um SSH client na nossa máquina, fazer esse acesso utilizando também uma SSH key, uma key para nós acessarmos aqui da nossa máquina, mas nós temos esse acesso também via browser, que é muito mais simples. E agora nós faremos o seguinte, nós vamos navegar até a nossa pasta raiz e aqui dentro vamos dar um ls e agora nós podemos ver aqui que existe um arquivo teste.txt. Vamos dar uma olhada em qual que é o conteúdo do arquivo teste.txt e nós não temos aqui, porque eu coloquei com x, claro. Deixa eu remover aqui, corrigir. E beleza, temos aqui teste.txt com server igual a localhost e db igual a db exatamente conforme nós criamos o nosso segredo, tá? E dessa forma, nós concluímos a criação dos nossos recursos. Como vocês puderam observar, simplesmente para nós habilitarmos a comunicação da nossa máquina virtual, nós já tivemos que criar vários recursos, mas você pode ver também que é muito simples. Imagina se nós tivéssemos que ter feito isso tudo manualmente aqui no nosso console, verificamos que tudo funcionou, tudo está ok, e aí para nós economizarmos, nós vamos derrubar todos os nossos recursos, excluir todos os nossos recursos da nossa instância, e aí quando nós quisermos de novo subir essa infraestrutura, nós teremos que lembrar todos os passos e criar tudo isso manualmente. Pensa, primeiro que provavelmente nós esqueceremos de alguns detalhes, nós faremos algumas coisas erradas e o resultado talvez não seria o mesmo tá é muito mais simples nós temos isso através de código e agora basta nós excluímos todos esses recursos para isso agora para nós nós fizemos vamos dar aqui um terraform destrói e depois quando nós quisermos de novo testar o quando nós precisarmos subir a nossa aplicação, nós já temos aqui tudo documentado e podemos subir a nossa infraestrutura a qualquer momento. Beleza? Espero que você tenha gostado e nós nos vemos na nossa próxima aula.