Skip to main content

Criar instância Linux

Objetivo

Este guia demonstra como criar uma instância Linux na Magalu Cloud (MGC) utilizando o console, linha de comando (CLI) ou o Terraform Provider. Ao final, você terá uma instância em execução, pronta para hospedar suas aplicações.

Pré-requisitos

  • Você deve ter uma conta ativa na Magalu Cloud.
  • Você deve ter as permissões necessárias para criar instâncias.
  • Você deve ter uma chave SSH configurada para acesso à instância.
  • Você deve conhecer o tipo de instância, a imagem e a rede que deseja utilizar.

Como fazer

  1. Na página de Virtual Machines, clique em "Criar instância".
  2. Escolha a região em que deseja criar sua instância. Recomendamos escolher a região mais próxima aos destinatários da sua aplicação.
  3. Escolha uma imagem, um Sistema Operacional, e a versão da imagem que deseja.
  4. Escolha um tipo de instância. Defina a quantidade de vCPUs, de memória RAM em GB e de disco local em GB mais adequada para a aplicação que deseja.
  5. Opcionalmente, escolha se deseja atribuir um IPv4 público para essa instância. Por padrão, o IPv6 público é gerado automaticamente após a criação da instância.
info

Associar um IPv4 Público à instância serve para exposição de serviços na Internet conforme estiver configurado no Security Group relacionado a ela.

  1. Insira uma chave SSH ou selecione uma chave já utilizada anteriormente.
info

Acesse o documento para saber mais sobre e como Inserir uma Chave SSH.

  1. Por fim, defina o nome da sua instância. Para o nome da instância são permitidas apenas letras minúsculas, hífen, underline e números.

Para criar sua Instância execute o comando abaixo de acordo com suas definições de inputs.

mgc virtual-machine instances create [flags]

Flags

Obrigatórios

  • image (object): Defina a imagem. Saiba mais sobre as imagens disponíveis aqui.
  • machine-type (object): Defina o tipo de instância. Veja aqui como listar as opções via CLI. Para entender as diferenças entre os tipos de instâncias (como BV e DP), consulte o documento: Tipos de instâncias disponíveis.
  • name (string): Defina o nome da instância (entre 1 a 255 caracteres)

Opcionais

  • availability-zone (string): Zona de disponibilidade
  • image.id (string): ID da imagem ou ID do snapshot
  • image.name (string): Nome da imagem
  • labels (array(string)): Etiquetas
  • machine-type.id (string): ID do tipo de instância
  • machine-type.name (string): Nome do tipo de instância
  • network (object): Propriedades de associação de IP público e/ou VPC (Para mais detalhes acessar documentação de Network)
  • network.associate-public-ip (boolean): Associação de IP público (Default é "true")
  • network.interface (object): Interface
  • network.interface.id (string): ID da interface
  • network.interface.security-groups (array(object)): Grupos de segurança
  • network.vpc (object): Nome ou ID da VPC
  • network.vpc.id (string): ID da VPC
  • network.vpc.name (string): Nome da VPC
  • ssh-key-name (string): Defina a chave SSH que deseja utilizar para acessar a Instância. Para saber mais, acesse: Como inserir uma Chave SSH
  • user-data (string): Utilizado para realizar tarefas de configuração automatizadas.
  • volumes (array(object)): Volumes
info

Para definir as configurações avançadas de redes acesse Como configurar VPC.

Exemplo de retorno

Após executar o comando, você receberá uma resposta semelhante a esta:

┌──────────────────────────────────────┐
│ ID │
├──────────────────────────────────────┤
│ a22b308f-e3fe-4239-af67-902cc0745775 │
└──────────────────────────────────────┘

Esta resposta indica que a instância foi criada com sucesso e fornece o ID da instância gerada.

Para criar sua Instância, declare o recurso abaixo no seu arquivo .tf.

resource "mgc_virtual_machine_instances" "basic_instance" {
name = "basic-instance-name"
machine_type = "BV1-1-40"
image = "cloud-ubuntu-24.04 LTS"
ssh_key_name = "your-ssh-key-name"
}

resource "mgc_virtual_machine_instances" "instance_with_az" {
name = "instance-with-az"
availability_zone = "br-ne1-a"
machine_type = "BV4-8-100"
image = "cloud-ubuntu-24.04 LTS"
ssh_key_name = "your-ssh-key-name"
}

resource "mgc_virtual_machine_instances" "instance_with_usardata" {
name = "instance-with-userdata"
machine_type = "BV4-8-100"
image = "cloud-ubuntu-24.04 LTS"
ssh_key_name = "your-ssh-key-name"
user_data = base64encode("#!/bin/bash\necho 'Hello, World!'")
}

resource "mgc_virtual_machine_instances" "instance_with_windows" {
name = "instance-with-windows"
machine_type = "BV4-8-100"
image = "windows-server-2022"
}

resource "mgc_virtual_machine_instances" "instance_with_public_ipv4" {
name = "instance-with-public-ipv4"
machine_type = "BV2-4-10"
image = "cloud-ubuntu-24.04 LTS"
ssh_key_name = "your-ssh-key-name"
allocate_public_ipv4 = true
}

resource "mgc_virtual_machine_instances" "instance_with_security_groups" {
name = "instance-with-security-groups"
machine_type = "BV2-4-10"
image = "cloud-ubuntu-24.04 LTS"
ssh_key_name = "your-ssh-key-name"
creation_security_groups = [mgc_network_security_groups.security_group.id]
}

resource "mgc_virtual_machine_instances" "instance_with_security_groups_and_public_ipv4" {
name = "instance_with_security_groups_and_public_ipv4"
machine_type = "BV2-4-10"
image = "cloud-ubuntu-24.04 LTS"
ssh_key_name = "your-ssh-key-name"
allocate_public_ipv4 = true
creation_security_groups = [mgc_network_security_groups.security_group.id]
}

Atributos

Obrigatórios

  • machine_type (string): O nome do modelo da máquina da instância da máquina virtual.
  • name (string): O nome da instância da máquina virtual.

Opcionais

  • allocate_public_ipv4 (bool): Se for verdadeiro, a interface de rede principal será criada com um endereço IPv4 público. Um recurso de endereço IPv4 público será criado e associado ao seu locatário; ao excluir a instância, o endereço IPv4 público não será excluído e poderão ser cobradas taxas. Se for falso, a interface de rede primária será criada sem um endereço IPv4 público. O padrão é falso. Este atributo só pode ser usado quando "network_interface_id" não estiver definido.
  • availability_zone (string): A zona de disponibilidade da instância da máquina virtual.
  • creation_security_groups (array(string)): Lista de IDs de grupos de segurança a serem associados à interface de rede principal no momento da criação. Se não for especificado, será utilizado o grupo de segurança padrão da VPC. Para gerenciar grupos de segurança após a criação da instância, utilize os recursos de rede. Saiba mais nos guias da documentação. Este atributo só pode ser usado quando "network_interface_id" não estiver definido.
  • image (string): O nome da imagem utilizada para a instância da máquina virtual. Este atributo é obrigatório quando a instância não é criada a partir de um snapshot (ou seja, quando "snapshot_id" não está definido). Se "snapshot_id" for fornecido, o snapshot será utilizado em vez de uma imagem.
  • network_interface_id (string): A ID da interface de rede principal é a interface principal utilizada para o tráfego de rede que será associado à instância. Se não for especificada, uma nova interface de rede será criada na VPC indicada ou na VPC padrão, caso nenhuma VPC tenha sido especificada. Consulte os guias da documentação para obter mais detalhes.
  • snapshot_id (string): O ID do snapshot usado para criar a instância da máquina virtual. Se definido, o snapshot será usado em vez de uma imagem.
  • ssh_key_name (string): O nome da chave SSH associada à instância da máquina virtual. Não é necessário para instâncias do Windows.
  • user_data (string): Dados do usuário para a inicialização da instância (codificados em base64).
  • vpc_id (string): O ID do VPC onde a interface de rede principal será criada.

Read-Only

  • created_at (string): A data e hora em que a instância da máquina virtual foi criada.
  • id (string): O identificador único da instância da máquina virtual.
  • ipv4 (string): O endereço IPv4 público da interface de rede principal da instância da máquina virtual.
  • ipv6 (string): O endereço IPv6 da interface de rede principal da instância da máquina virtual.
  • local_ipv4 (string): O endereço IPv4 da interface de rede principal da instância da máquina virtual.
  • network_interfaces (array(object)): As interfaces de rede associadas à instância da máquina virtual.
    • id (string): O ID da interface de rede.
    • ipv4 (string): O endereço IPv4 da interface de rede.
    • ipv6 (string): O endereço IPv6 da interface de rede.
    • local_ipv4 (string): O endereço IPv4 local da interface de rede.
    • name (string): O nome da interface de rede.
    • primary (bool): Se a interface de rede é a primária.

Importação

Comando para importar o recurso:

terraform import mgc_virtual_machine_instances.basic_instance 123

Para facilitar a criação do comando CLI, utilize o gerador abaixo:


info

O gerador de comando permite criar facilmente o comando CLI necessário para criar uma instância. Basta selecionar a imagem, o tipo de máquina, e inserir o nome da VM e da chave SSH.

Perguntas frequentes

  • Posso criar uma instância sem um IP público? Sim, você pode criar uma instância sem um IP público. No entanto, você precisará de um meio alternativo para acessá-la, como uma rede privada virtual (VPN).
  • Como posso listar os tipos de instância disponíveis? Utilize o comando mgc virtual-machines machine-types list para listar os tipos de instância disponíveis via CLI.
  • Onde posso encontrar mais informações sobre as imagens disponíveis? Consulte a documentação da Magalu Cloud em Listar Imagens.

Próximos passos

  • Acesse sua instância via SSH.
  • Configure o firewall da instância.
  • Instale as aplicações desejadas na instância.
  • Monitore o desempenho da instância.