aws101
  • Introdução
  • Criar uma conta na AWS
  • Configurar AWS CLI
  • Instalar jq - JSON processor
  • Criar key-pair no EC2
  • Criar regra de firewall no EC2
  • Criar instância virtual no EC2
Powered by GitBook
On this page

Criar instância virtual no EC2

PreviousCriar regra de firewall no EC2

Last updated 3 years ago

Uma vez que temos o key-pair e security group definidos, podemos criar nossa instância virtual:

aws --profile personal ec2 \
    run-instances \
    --image-id ami-0c4f7023847b90238 \
    --instance-type t2.micro \
    --key-name aws-ec2-key \
    --security-group-ids <sg-group-id> \
    --associate-public-ip-address \
    --tag-specifications "ResourceType=instance,Tags=[{Key=Name,Value=myapp}]" \
    --count 1

Explicação do comando a seguir:

run-instances

A ação se chama run-instances, que cria uma ou mais instâncias virtuais a partir de uma imagem de sistema operacional pré-definida no AWS.

image-id

Identificador da imagem (AMI) na AWS. Exemplo da lista de AMI's quando se cria instância pela interface web:

No nosso caso, utilizamos a AMI ami-0c4f7023847b90238 que é referente ao Ubuntu Server 20.04 LTS.

instance-type

Tipo da instância, neste caso sendo t2.micro que tem 1GB de memória e faz parte do período free tier.

key-name

Nome da chave key-pair criada previamente, que se chama aws-ec2-key. A AWS vai atribuir a chave pública do par nesta instância, assim poderemos posteriormente fazer SSH com a parte privada que já guardamos nos steps anteriores.

security-group-ids

Lista de ID's de security groups. Neste exemplo usamos aquele criado previamente, que por regra abre somente a porta 22 (SSH).

outras opções

  • --associate-public-ip-address: associa um IP público à instância. Sem esta opção, a instância não irá ter IP público, apenas privado dentro da mesma rede interna da conta (VPC).

  • --count: número de instâncias a serem criadas com estas especificações, no nosso caso apenas 1.

  • --tag-specifications: dar uma tag "Name" à instância, para melhor visualização na interface web.

Verificando que a instância foi criada

Nossa instância foi criada. Para verificar que foi criada, bem como sabe qual o IP público pra acesso SSH:

aws --profile personal ec2 \
    describe-instances \
    --filters "Name=tag:Name,Values=myapp" | \
    jq -r '.Reservations[0].Instances[0].PublicIpAddress'

Testando acesso SSH à instância virtual

Sabendo o IP público, que dá pra extrair tanto pelo CLI como vimos no último passo como também através da interface web, podemos fazer o SSH utilizando a chave privada.

Mas antes, vamos marcar a chave como sendo apenas de leitura:

# definindo apenas permissão de leitura à chave, pois por segurança,
# o server rejeita uma chave pública que tenha permissões de escritas,
# evitando assim ataques de key-pair que possam forjar uma chave igual

chmod 400 ~/.ssh/aws-ssh-key.pem

Agora podemos, seguramente, fazer nosso primeiro acesso SSH ao server:

ssh ubuntu@<public-ip> -i ~/.ssh/aws-ssh-key.pem
um print pra ser lembrado