Executando verificação de segurança...
20

Usando Oracle Cloud para criar um ambiente de desenvolvimento (gratís)

Contexto

Um amigo desenvolvedor iniciante que usa o smartphone para aprender programação, me perguntou se é possível criar um “ambiente de desenvolvimento online” usando os recursos gratís do OCI (Oracle Cloud Infrastructure)

Um comentário rápido e fora do assunto: é muito comum aqui no Brasil jovens que desejam aprender sobre desenvolvimento e programação e não têm acesso a um computador. Eu sei, isso é triste, mas é a verdade.

A ideia por trás do artigo é criar um tutorial passo a passo para criar uma máquina virtual, instalar uma interface de desktop, instalar o docker e algumas ferramentas utilitárias.

Vamos começar.

Hands-On

Acesse o site do Oracle Cloud (https://www.oracle.com/cloud/free/) e cadastre-se para obter uma conta gratuita.

Criando a instância da máquina virtual

Após fazer login em sua conta, vá ao menu Instância e clique no botão Criar Instância:

criar instancia

Forneça um nome para suas máquinas (por exemplo dev-machine01)

nome instancia

Vamos configurar a imagem da VM para usar o Ubuntu 20.04:

config instancia

Configure o formato da VM para ser: Ampere (processadores ARM) usando 4 VCPU e 24 gigabytes de RAM. (Sim, teremos uma boa máquina)

config instancia

Em Rede, selecione a rede pública padrão e opte por atribuir um endereço IP público:

config instancia

Na seção Adicionar chaves SSH, recomendo que você crie sua própria chave personalizada e cole a chave pública aqui.

Dica: Como criar uma chave privada e pública para SSH (https://docs.oracle.com/cd/E19683-01/806-4078/6jd6cjru7/index.html)

config instancia

Em seguida, clique no botão Criar. Agora espere alguns minutos e suas máquinas virtuais estarão instaladas e funcionando.

Configurando a máquina virtual

Aguarde a VM concluir o provisionamento e a inicialização e, em seguida, encontre o IP público no menu Instância:

config instancia

Conecte-se à VM usando o comando ssh:

ssh -i <caminho para sua chave privada> ubuntu@<seu endereço IP público>

Agora vamos instalar um Desktop Manager, execute os seguintes comandos:

sudo apt update
sudo apt install -y tasksel
sudo apt install -y xubuntu-desktop

Se algum menu solicitar uma opção, use a opção padrão.

Este processo levará alguns minutos.

Para acessar remotamente o Ambiente Desktop, devemos instalar o servidor xrdp na máquina, para instalar execute este comando:

sudo apt install -y xrdp
sudo systemctl enable --now xrdp
sudo su
iptables -F
iptables-save > /etc/iptables/rules.v4

Esses comandos instalarão o xrdp e abrirão todas as portas para conexões remotas.

Agora vamos editar o Xrdp para começar a usar o Xfce:

sudo service xrdp stop
sudo vi /etc/xrdp/startwm.sh

Edite o arquivo, adicionando um comentário(#) nas duas últimas linhas, e adicionando uma nova linha com o seguinte conteúdo “startxfce4", seu arquivo deverá ficar como abaixo:

#test -x /etc/X11/Xsession && exec /etc/X11/Xsession
#exec /bin/sh /etc/X11/Xsession
startxfce4

Salve o arquivo e reinicie o serviço xrdp:

sudo service xrdp start

Para finalizar a configuração é necessário definir uma senha para o usuário ubuntu (esta senha será usada para fazer login na VM via Remote Desktop):

sudo passwd ubuntu

Configuração da lista de segurança

Na página Rede, acesse a sub-rede pública e adicione a seguinte regra de entrada:

config instancia

Esta regra permitirá a comunicação da Internet para a porta 3389 (Área de Trabalho Remota) da VM.

#Conectando-se à VM usando a Área de Trabalho Remota

Usando o IP público, você pode se conectar à VM:

config instancia

PS.: Você pode utilizar o seu cliente (Android, etc) desejado.

Use o ubuntu para “Username” e clique em conectar.

Instalando utilitários

Instalar terminador

Terminator é um emulador de terminal de código aberto programado em Java. Está disponível em Microsoft Windows, macOS, Linux e outros sistemas Unix que usam o X Window System. O Terminator será executado em qualquer sistema POSIX moderno executando Java 6 ou posterior. O Terminator é licenciado sob a licença GPL-2.0 ou posterior.

Para instalar o terminador, basta executar o seguinte comando:

sudo apt install -y terminator

Instalar docker

Para instalar o docker recomendo que você siga este tutorial https://docs.docker.com/engine/install/ubuntu/.

Preste atenção apenas a esta etapa:

Lembre-se de selecionar arm64.

E então siga este tutorial https://docs.docker.com/engine/install/linux-postinstall/

Instalar ASDF

asdf é uma ferramenta CLI que pode gerenciar versões de tempo de execução de vários idiomas por projeto. É como gvm, nvm, rbenv e pyenv (e mais), tudo em um.

Para instalar o ASDF recomendo que você siga este tutorial https://asdf-vm.com/#/core-manage-asdf?id=asdf

Usando ASDF você pode instalar e gerenciar múltiplas versões da mesma linguagem, por exemplo, Java, Python, Nodejs, Ruby, etc.

Instale o VSCode

Para instalar o VSCode recomendo que você acesse o site https://code.visualstudio.com/docs/?dv=linuxarm64 e baixe o pacote.

2

Tentei criar conforme o tutorial porém eu obtive esse erro:

Out of capacity for shape VM.Standard.A1.Flex in availability domain AD-1. Create the instance in a different availability domain or try again later. If you specified a fault domain, try creating the instance without specifying a fault domain. If that doesn’t work, please try again later. Learn more about host capacity.

Saberia me ajudar?

1

Eu criei uma para teste de algumas coisas, principalmente aprender linux pelo terminal. Mas infelizmente cometi um erro e desejava "formatar" a instacia, sem ter que deletar e criar outra. Saberia me dizer como? Pelo terminal se possivel. Tipo, para deixar ao padrão de como uma instacia recém instalada.

1
1

Eu sempre instalo Docker no ambiente de desenvolvimento, rodar qualquer serviço que você precisa ser ter que instalar pacote na máquina é muito bom, se não estiver mais usando o serviço é só remover o container e tudo fica zero bala, sem contar da segurança extra que você ganha por estar utilizando containers(isolamento).

1

Você teria por acaso um arquivo terraform ou ansible que faz esta configuração? Estou tentando automatizar a configuração de uma máquina para rodar, via docker, em projeto Django com PostgreSQL nginx e FastAPI.

1

Mano, que daora!


Configure o formato da VM para ser: Ampere (processadores ARM) usando 4 VCPU e 24 gigabytes de RAM. (Sim, teremos uma boa máquina)

Qual é a pegadinha para a gente ter uma VM tão boa assim de graça?

Eu queria migrar meu site da AWS para a Oracle, mas tenho medo que logo essa máquina de graça deles seja removida, será que isso pode acontecer?


Uma coisa que eu fiquei na dúvida, essa máquina tem 4 VCPU e 24 GB de RAM, mas quanto de armazenamento tem essa máquina?


Muito obrigado pela publicação é mais um incentivo para eu migrar logo kkkk

3

Opa! Tudo bem?

Eu queria migrar meu site da AWS para a Oracle, mas tenho medo que logo essa máquina de graça deles seja removida, será que isso pode acontecer?

Segundo o site da Oracle:

As instâncias de computação Always Free inativas podem ser recuperadas pela Oracle. Serão consideradas inativas pela Oracle as instâncias de computação de máquina virtual e bare metal se, durante um período de 7 dias, as seguintes afirmações forem verdadeiras:

A utilização de CPU para o percentil 95 é inferior a 20%
A utilização da rede é inferior a 20%
A utilização de memória é inferior a 20% (só se aplica a formas A1)

Essas são as informações. Segue fonte: https://docs.oracle.com/pt-br/iaas/Content/FreeTier/freetier_topic-Always_Free_Resources.htm

Uma coisa que eu fiquei na dúvida, essa máquina tem 4 VCPU e 24 GB de RAM, mas quanto de armazenamento tem essa máquina?

Possui 200GB gratuitos do block storage

1
  • A utilização de CPU para o percentil 95 é inferior a 20%
  • A utilização da rede é inferior a 20%
  • A utilização de memória é inferior a 20% (só se aplica a formas A1)

Eu gostaria de algumas estratégias de evitar que a máquina 4 VCPU e 24 GB de RAM seja removida, na verdade queria mais para testes mesmos com LLM. Alguma ideia do que posso fazer para manter a instância "em uso" ,mesmo de fato não estando?

Outra pergunta: precisa de numerod e cartão de crédito para a free tier?

1

Eu não lembro se precisa do cartão na hora do cadastro, mas se precisa é só colocar e depois remover, dica cria um virtual e depois exclui.

Sobre os pontos e remoção, eu tenho uma máquina rodando lá a dois anos e até tinha esquecido dela e ela não foi removida. Acho que isso é mais uma proteção extra que eles criaram.

E vamos falar a verdade é grátis não espere perfeição.

PS.: Um detalhe extra é um 4 VCPU(ARM) para LLM não espere altas performances...

1

Eu tenho uma maquina lá fazem uns dois anos, primeiro com AMD (2x vms de 1gb) e agora possuo apenas ARM com 24GB.

É excelente, minha maquina esta subutilizada, tenho uns serviços em docker (grafana, zabbix, omada, unifi, nginx e alguns outros que não lembro), fico com uns 20GB livre direto.

Nunca fui cobrado.

Sobre o armazenamento ACHO que é 50gb.

1