- Início
- Criar instância Linux
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
- Na página de Virtual Machines, clique em "Criar instância".
- 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.
- Escolha uma imagem, um Sistema Operacional, e a versão da imagem que deseja.
- 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.
- 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.
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.
- Insira uma chave SSH ou selecione uma chave já utilizada anteriormente.
Acesse o documento para saber mais sobre e como Inserir uma Chave SSH.
- 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 disponibilidadeimage.id(string): ID da imagem ou ID do snapshotimage.name(string): Nome da imagemlabels(array(string)): Etiquetasmachine-type.id(string): ID do tipo de instânciamachine-type.name(string): Nome do tipo de instâncianetwork(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): Interfacenetwork.interface.id(string): ID da interfacenetwork.interface.security-groups(array(object)): Grupos de segurançanetwork.vpc(object): Nome ou ID da VPCnetwork.vpc.id(string): ID da VPCnetwork.vpc.name(string): Nome da VPCssh-key-name(string): Defina a chave SSH que deseja utilizar para acessar a Instância. Para saber mais, acesse: Como inserir uma Chave SSHuser-data(string): Utilizado para realizar tarefas de configuração automatizadas.volumes(array(object)): Volumes
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:
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 listpara 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.