04 - EC2
Provisionando sua Primeira Instância EC2 e Conectando via SSH¶
Objetivo: Ao final deste roteiro, o aluno terá provisionado (criado) sua primeira máquina virtual na AWS (uma instância EC2), configurado as regras de firewall para permitir acesso, e se conectado a ela de forma segura utilizando SSH, tanto no Windows quanto no macOS/Linux.
Pré-requisitos:
- Conta no AWS ativa e aprovada.
- Navegador web para acessar o Console AWS.
- Para usuários Windows: software PuTTY instalado. (Recomendamos baixar o instalador completo em putty.org).
- Para usuários macOS/Linux: o terminal já possui cliente SSH nativo.
Parte 1: Conceitos Fundamentais (Entendendo o que vamos fazer)¶
Antes de colocar a mão no código, é crucial entender os componentes com os quais vamos interagir .
- EC2 (Elastic Compute Cloud): É o serviço da AWS que permite criar e executar servidores virtuais na nuvem, chamados de instâncias. Pense neles como computadores que você aluga e que ficam rodando nos data centers da Amazon.
- AMI (Amazon Machine Image): É um modelo pré-configurado para sua instância, contendo o sistema operacional e, muitas vezes, software pré-instalado. Escolher a AMI é como escolher o sistema operacional do seu computador (ex: Ubuntu, Amazon Linux, Windows Server).
- Par de Chaves (Key Pair): Em vez de usar senhas, o Linux na AWS usa um sistema de criptografia de chaves para acesso SSH. Você terá um arquivo de chave privada (com extensão
.pem) que deve ser guardado como um tesouro. A AWS guarda a chave pública. É a única maneira de acessar sua instância com segurança . - Security Group: É um firewall virtual para sua instância. Você define regras de entrada (inbound rules) para permitir tráfego em portas específicas, vindos de locais específicos (como seu IP). Por padrão, tudo é bloqueado. Para conectar via SSH, precisamos liberar a porta 22 .
- SSH (Secure Shell): É o protocolo usado para acessar de forma segura o terminal de um servidor remoto. Através dele, você executa comandos como se estivesse sentado na frente da máquina.
Parte 2: Mão na Massa - Provisionando a Instância EC2¶
Passo 1: Acesse o Console AWS e vá para o EC2
- Faça login no Console AWS com sua conta do AWS.
- Na barra de pesquisa no topo da página, digite "EC2" e clique no primeiro resultado para abrir o painel do serviço EC2.
Passo 2: Inicie o Assistente de Criação
- No painel do EC2, localize e clique no botão laranja "Executar instância" .
Passo 3: Configure a Instância (Passo a passo do assistente)
Siga estas configurações cuidadosamente:
-
Nome e tags: Dê um nome à sua instância, como
"Meu-Primeiro-Servidor". Isso é apenas uma etiqueta para facilitar a identificação. -
Escolha uma AMI (Imagem de máquina da Amazon): No campo "Imagens de máquina da Amazon (AMI)", selecione "Amazon Linux 2 AMI (HVM) - Kernel 5.10, SSD Volume Type" . Esta é uma ótima escolha para iniciantes, pois é leve, bem suportada e gratuita no Free Tier. Note que o nome de usuário padrão para esta AMI será
ec2-user. -
Tipo de instância: Em "Tipo de instância", certifique-se de que
t2.micro(out3.micro) esteja selecionado. Esta é a opção do Free Tier, ou seja, não custará nada (dentro dos limites de 750 horas/mês) . -
Par de chaves (login): Esta é a etapa mais importante para a segurança.
- No campo "Par de chaves", clique no menu suspenso e selecione "Criar novo par de chaves" .
- Dê a ele um nome, como
"Minha-Chave-EC2". - Mantenha o "Tipo de par de chaves" como RSA e o "Formato de arquivo de chave privada" como
.pem(para usuários de Mac/Linux) ou.ppk(se você for usar o PuTTY no Windows). - Clique em "Criar par de chaves" .
- IMPORTANTE: O arquivo da chave privada será baixado automaticamente para o seu computador. Guarde-o em uma pasta segura (ex: uma pasta chamada "aws-keys" dentro do seu diretório "Documentos") e não o perca. Esta é a única chance de baixar este arquivo .
-
Configurações de rede: Esta seção define o Security Group.
- Clique em "Editar" .
- Firewall (grupos de segurança): Certifique-se de que a opção "Criar grupo de segurança" esteja selecionada.
-
Regras de entrada (inbound rules): Vamos adicionar uma regra para permitir SSH.
- Clique em "Adicionar regra de segurança" .
- Tipo: Selecione SSH.
- Protocolo: Será automaticamente preenchido como TCP.
- Intervalo de portas: Será automaticamente preenchido como 22.
- Tipo de origem: Selecione "Meu IP" . Isso é uma boa prática de segurança. O console detectará automaticamente seu endereço IP público e só permitirá conexões dele. Se você estiver em casa ou na faculdade com IP variável, pode, para fins de teste, selecionar "Qualquer lugar (0.0.0.0/0)" , mas isso é menos seguro .
-
Configurar armazenamento: Mantenha a configuração padrão: um volume raiz de 20 GiB do tipo
gp2(SSD). Isso também é coberto pelo Free Tier .
Passo 4: Revise e Inicie
- Revise todas as configurações no resumo à direita. Certifique-se de que o tipo de instância é
t2.micro. - Clique no botão "Executar instância" .
Passo 5: Visualize a Instância
- Você verá uma mensagem de sucesso. Clique no botão "Visualizar todas as instâncias" para voltar à lista de instâncias.
- Sua nova instância aparecerá na lista. Inicialmente, o "Status da instância" será
pending. Aguarde um ou dois minutos até que o status mude pararunning. - Selecione a instância (clicando no checkbox). No painel inferior, você verá os detalhes. Procure o campo "Endereço IPv4 público" . Copie este endereço IP, pois você precisará dele para se conectar via SSH .
Parte 3: Conectando-se à Instância via SSH¶
Agora que a instância está rodando e temos o IP público, vamos nos conectar a ela usando a chave privada.
Cenário A: Conectando do Windows (usando PuTTY)¶
O PuTTY não entende nativamente o formato .pem. Precisamos converter a chave para o formato .ppk usando o PuTTYgen .
Passo 1: Converter a chave .pem para .ppk
- Abra o programa PuTTYgen (procure por ele no menu Iniciar).
- No canto inferior direito, clique no botão "Load" .
- Altere o filtro de arquivos para mostrar "All Files (.)" .
- Navegue até a pasta onde você salvou o arquivo
.pembaixado da AWS, selecione-o e clique em "Abrir" . - O PuTTYgen mostrará uma mensagem informando que a chave foi importada com sucesso. Clique em "OK" .
- Agora, clique no botão "Save private key" .
- Uma mensagem de aviso perguntará se você quer salvar a chave sem uma senha. Clique em "Sim" .
- Salve o arquivo com um nome (ex:
Minha-Chave-EC2.ppk) na mesma pasta segura.
Passo 2: Conectar usando PuTTY
- Abra o PuTTY.
- No painel esquerdo (Category), vá em Connection > SSH > Auth (ou Auth > Credentials em versões mais novas).
- Em "Private key file for authentication", clique em "Browse" e selecione o arquivo
.ppkque você acabou de criar. - Volte ao painel "Session" (no topo da árvore à esquerda).
- No campo "Host Name (or IP address)" , digite:
ec2-user@<Endereço-IPv4-Público>. Substitua<Endereço-IPv4-Público>pelo IP que você copiou do console. - Certifique-se de que a "Port" é 22 e o "Connection type" é SSH.
- Clique em "Open" .
- Na primeira vez que você se conectar a esta instância, uma alerta de segurança aparecerá sobre a chave do host não ser conhecida. Clique em "Accept" para continuar .
- Uma janela de terminal será aberta e você estará logado dentro da sua instância EC2!
Cenário B: Conectando do macOS ou Linux (usando Terminal)
Passo 1: Ajustar permissões da chave
Cenário B: Conectando do macOS ou Linux (usando Terminal)¶
Passo 1: Ajustar permissões da chave
- Abra o Terminal.
- Navegue até a pasta onde você salvou o arquivo
.pemusando o comandocd. Por exemplo:cd ~/Documentos/aws-keys/ - As chaves SSH precisam ter permissões restritas para serem aceitas. Execute o seguinte comando para garantir isso:
Minha-Chave-EC2.pem pelo nome do seu arquivo) .
Passo 2: Conectar via SSH
- No mesmo terminal, execute o comando de conexão SSH: (Substitua o nome do arquivo e o IP pelos seus)
- Na primeira conexão, você verá uma mensagem perguntando se deseja continuar conectando, pois a autenticidade do host não pode ser estabelecida. Digite
yese pressione Enter . - Pronto! Você estará conectado ao terminal da sua instância EC2.
Cenário C: Conectando do Windows, macOS ou Linux (usando VS Code)
VS Code oferece uma forma moderna e integrada de se conectar a servidores remotos via SSH, permitindo editar arquivos e executar comandos diretamente do editor.
Pré-requisitos:
- VS Code instalado em seu computador.
- Extensão "Remote - SSH" instalada (abra VS Code, vá em Extensions e procure por "Remote - SSH" da Microsoft).
Passo 1: Configurar a Conexão SSH no VS Code
- Abra VS Code.
- Pressione Ctrl+Shift+P (ou Cmd+Shift+P no macOS) para abrir a Paleta de Comandos.
- Digite "Remote-SSH: Open Configuration File" e selecione a opção.
- Escolha ou crie o arquivo de configuração SSH (geralmente em
~/.ssh/config). - Adicione as seguintes linhas ao arquivo:
Host meu-ec2
HostName <Endereço-IPv4-Público>
User ec2-user
IdentityFile <Caminho-para-sua-chave>.pem
Substitua `<Endereço-IPv4-Público>` pelo IP da sua instância e `<Caminho-para-sua-chave>` pelo caminho completo do arquivo `.pem`.
- Salve o arquivo.
Passo 2: Conectar à Instância
- Na Paleta de Comandos, digite "Remote-SSH: Connect to Host" e selecione.
- Escolha
meu-ec2da lista. - Uma nova janela do VS Code será aberta conectada ao servidor remoto.
- Na primeira conexão, aceite a chave do host quando solicitado.
- Agora você pode explorar os arquivos, editar código e executar comandos no terminal integrado do VS Code, tudo conectado à sua instância EC2!
Dica: Você pode abrir o terminal integrado (Ctrl+`) para executar comandos Linux diretamente na instância.
Parte 4: Explorando e Finalizando¶
O que fazer depois de conectar:
- Você está dentro do servidor! Experimente alguns comandos básicos para se familiarizar:
pwd(print working directory): Mostra em qual diretório você está.ls(list): Lista os arquivos da pasta atual.df -h(disk free): Mostra o espaço em disco.sudo yum update -y(atualiza o sistema - específico para Amazon Linux).
IMPORTANTE: Como parar a instância para não gastar créditos
Lembre-se: no AWS Educate, você tem créditos limitados. A instância t2.micro em execução consome esses créditos. Quando não estiver usando, é fundamental parar (stop) a instância .
- No Console AWS, vá para a lista de instâncias EC2.
- Selecione sua instância.
- Clique no menu "Estado da instância" e escolha "Parar instância" .
- Confirme. A instância será desligada e você não será cobrado enquanto ela estiver parada.
- Para usá-la novamente, basta selecioná-la e clicar em "Iniciar instância" (atenção: o IP público pode mudar ao reiniciar, a menos que você tenha um IP elástico).
Resumo e Checklist de Boas Práticas¶
- Sempre use um par de chaves:** Nunca habilite acesso por senha .
- Mantenha sua chave privada em local seguro e com permissões restritas** (
chmod 400no Mac/Linux) . - Configure o Security Group para permitir SSH apenas do seu IP** (origem
Meu IP), evitando acesso de qualquer lugar da internet . - PARE a instância** quando não estiver utilizando para otimizar seus créditos .
- Explore o terminal da sua instância** e familiarize-se com os comandos básicos do Linux.