Skip to content

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

  1. Faça login no Console AWS com sua conta do AWS.
  2. 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

  1. 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 (ou t3.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.

    1. No campo "Par de chaves", clique no menu suspenso e selecione "Criar novo par de chaves" .
    2. Dê a ele um nome, como "Minha-Chave-EC2".
    3. 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).
    4. Clique em "Criar par de chaves" .
    5. 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.

    1. Clique em "Editar" .
    2. Firewall (grupos de segurança): Certifique-se de que a opção "Criar grupo de segurança" esteja selecionada.
    3. 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

  1. Revise todas as configurações no resumo à direita. Certifique-se de que o tipo de instância é t2.micro.
  2. Clique no botão "Executar instância" .

Passo 5: Visualize a Instância

  1. Você verá uma mensagem de sucesso. Clique no botão "Visualizar todas as instâncias" para voltar à lista de instâncias.
  2. 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 para running.
  3. 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

  1. Abra o programa PuTTYgen (procure por ele no menu Iniciar).
  2. No canto inferior direito, clique no botão "Load" .
  3. Altere o filtro de arquivos para mostrar "All Files (.)" .
  4. Navegue até a pasta onde você salvou o arquivo .pem baixado da AWS, selecione-o e clique em "Abrir" .
  5. O PuTTYgen mostrará uma mensagem informando que a chave foi importada com sucesso. Clique em "OK" .
  6. Agora, clique no botão "Save private key" .
  7. Uma mensagem de aviso perguntará se você quer salvar a chave sem uma senha. Clique em "Sim" .
  8. Salve o arquivo com um nome (ex: Minha-Chave-EC2.ppk) na mesma pasta segura.

Passo 2: Conectar usando PuTTY

  1. Abra o PuTTY.
  2. No painel esquerdo (Category), vá em Connection > SSH > Auth (ou Auth > Credentials em versões mais novas).
  3. Em "Private key file for authentication", clique em "Browse" e selecione o arquivo .ppk que você acabou de criar.
  4. Volte ao painel "Session" (no topo da árvore à esquerda).
  5. 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.
  6. Certifique-se de que a "Port" é 22 e o "Connection type" é SSH.
  7. Clique em "Open" .
  8. 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 .
  9. 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

  1. Abra o Terminal.
  2. Navegue até a pasta onde você salvou o arquivo .pem usando o comando cd. Por exemplo: cd ~/Documentos/aws-keys/
  3. As chaves SSH precisam ter permissões restritas para serem aceitas. Execute o seguinte comando para garantir isso:

    chmod 400 Minha-Chave-EC2.pem
(Substitua Minha-Chave-EC2.pem pelo nome do seu arquivo) .

Passo 2: Conectar via SSH

  1. No mesmo terminal, execute o comando de conexão SSH:
    ssh -i "Minha-Chave-EC2.pem" ec2-user@<Endereço-IPv4-Público>
    
    (Substitua o nome do arquivo e o IP pelos seus)
  2. Na primeira conexão, você verá uma mensagem perguntando se deseja continuar conectando, pois a autenticidade do host não pode ser estabelecida. Digite yes e pressione Enter .
  3. 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

  1. Abra VS Code.
  2. Pressione Ctrl+Shift+P (ou Cmd+Shift+P no macOS) para abrir a Paleta de Comandos.
  3. Digite "Remote-SSH: Open Configuration File" e selecione a opção.
  4. Escolha ou crie o arquivo de configuração SSH (geralmente em ~/.ssh/config).
  5. 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`.
  1. Salve o arquivo.

Passo 2: Conectar à Instância

  1. Na Paleta de Comandos, digite "Remote-SSH: Connect to Host" e selecione.
  2. Escolha meu-ec2 da lista.
  3. Uma nova janela do VS Code será aberta conectada ao servidor remoto.
  4. Na primeira conexão, aceite a chave do host quando solicitado.
  5. 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 .

  1. No Console AWS, vá para a lista de instâncias EC2.
  2. Selecione sua instância.
  3. Clique no menu "Estado da instância" e escolha "Parar instância" .
  4. Confirme. A instância será desligada e você não será cobrado enquanto ela estiver parada.
  5. 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 400 no 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.