Pular para o conteúdo principal
Ludmila Silva
Cloud & DevOps Engineer
Ver todos os autores

Como criar uma conta gratuita na AWS

· 3 min para ler
Ludmila Silva
Cloud & DevOps Engineer

Dizem que toda a jornada começa com o primeiro passo. Então, para iniciar uma jornada de estudos de Computação em Nuvem utilizando a AWS como provedor principal, vamos dar o nosso primeiro passo: criar uma conta para utilizar os serviços free tier.

O que você vai precisar para criar a sua conta:

  • Um e-mail válido;
  • Um cartão de crédito (sim, esse é um requisito - mas não se preocupe, vamos criar alertas para não termos surpresinhas desagradáveis).

É importante ressaltar que a AWS possui três tipos de ofertas no nível gratuito: os testes gratuitos, 12 meses gratuitos e ofertas para sempre gratuitas. É importante prestar bastante atenção nesse detalhe na hora de provisionar os seus recursos.

Passo a Passo

  1. Acesse o site da AWS e clique em Criar uma conta da AWS

  1. Na página seguinte, preencha as informações necessárias:
  • Um e-mail válido
  • E um nome para a sua conta da AWS

Será enviado um código de verificação para o seu e-mail, a fim de confirmar o processo de cadastro:

  1. Após a confirmação, você deverá informar:
  • Uma senha para a sua conta;
  • Dados de contato, como nome, endereço e telefone;
  • Concordar com os termos de uso.
  1. O passo seguinte é fornecer os dados do seu cartão de crédito

Para confirmar a validade do cartão, a AWS fará uma cobrança de até $1 (dólar) na sua conta, mas esse valor logo será estornado. Em seguida, você vai confirmar o seu número de telefone.

  1. Por fim, você deve escolher um plano de suporte para a sua conta. Como nosso objetivo é somente para fins estudos, basta escolher o "Suporte Basic - Gratuito"

Clique em Concluir cadastro, e pronto! Sua conta está criada e você vai receber um e-mail quando o processo for concluído.

Assim que for confirmado, você poderá fazer o login na console AWS com o seu usuário (e-mail) e senha.

Ah! Lembrando que esse usuário é o seu usuário root, ou seja, o usuário principal da conta AWS. Esse usuário tem total acesso a todos os recursos, produtos e faturamento da conta AWS.

No mais, bons estudos!

Documentação

Criando uma VPC na AWS

· 10 min para ler
Ludmila Silva
Cloud & DevOps Engineer

Um dos grandes benefícios da nuvem é criar e gerenciar com poucos cliques (ou poucos comand0s) diversos recursos que no ambiente on premises levariam um bom tempo para serem provisionados. Isso inclui os serviços de redes, no qual recebem o nome de Amazon VPC - Virtual Private Cloud - na AWS.

A Amazon VPC possibilita criar e administrar uma rede privada na AWS. Funcionando de modo semelhante a uma infraestrutura de rede convencional, porém com as vantagens de escalabilidade oferecidas pela nuvem. Com isso, temos o controle sobre diversas configurações do ambiente de rede, incluindo definição de intervalo de IPs, grupos de segurança, sub-redes, gateways e outras configurações.

Nesse tutorial, vamos aprender a como criar uma VPC com uma arquitetura básica, entendendo o papel de cada componente da rede.

Exemplo de uma arquitetura de VPC

Portanto, vamos criar uma VPC com:

  • 2 sub-redes (uma pública e uma privada)
  • Internet Gateway
  • Tabelas de roteamento (route tables)
  • Security Groups
  • Network ACL
  • E testar as conexões com 2 instâncias

#1 Criando a VPC

Para criar a VPC, basta acessar a sua conta no console da AWS e buscar por VPC no menu de pesquisa, conforme imagem:

Em seguida, no painel da VPC, você vai clicar em "Criar VPC"

Vamos criar uma VPC com as seguintes configurações:

  • Recursos a serem criados: selecionar "Somente VPC"
  • Tag de nome: main-vpc
  • Bloco CIDR Ipv4:  selecionar "Entrada manual de IPv4"
  • CIDR IPv4: 10.0.0.0/16

Por fim, clique em "Criar VPC".

Pronto! Nossa VPC está criada.

Um ponto interessante é que ao criar a VPC, automaticamente são criados uma Tabela de rotas, um Security Group e uma Network ACL. Nós iremos configurar esses serviços logo adiante. Mas primeiro, precisamos criar as sub-redes pública e privada.

#2 Criando as sub-redes

As sub-redes ou subnets são como um "pedaço" de uma rede, no qual podemos organizar e separar por grupos ou funções. Por exemplo, no ambiente on premises é comum termos a sub-rede do RH, do Financeiro, do Comercial etc.

Quando falamos em nuvem, é nas sub-redes que os recursos, tais como uma instância EC2 ou um banco de dados RDS serão alocados. Cada sub-rede recebe um range de IP derivado da VPC.

Para criar as sub-redes na AWS, vamos seguir o caminho no painel da VPC em: VPC -> Sub-redes -> e clicar em "Criar sub-rede".

Em VPC ID, vamos selecionar a VPC criada anteriormente (no meu caso, é a main-vpc).

Vamos inserir as seguintes configurações:

  • Nome: public-subnet
  • Zona de disponibilidade:
  • Bloco CIDR IPv4 da VPC: selecione o "10.0.0.0/16"
  • Bloco CIDR IPv4 da sub-rede: 10.0.1.0/24
  • Tags: public-subnet

Pronto! Já temos a nossa sub-rede pública criada. Agora, vamos fazer o mesmo processo para a sub-rede privada. Essas são as configurações:

  • Nome: private-subnet
  • Zona de disponibilidade:
  • Bloco CIDR IPv4 da VPC: selecione o "10.0.0.0/16"
  • Bloco CIDR IPv4 da sub-rede: 10.0.2.0/24
  • Bloco CIDR da VPC IPv6: selecione o bloco de IPv6 que aparecer
  • Tags: private-subnet

No menu das Sub-redes, é possível ver as duas sub-redes que criamos:

#2.1 Criar um internet gateway

Apesar de termos criado as nossas sub-redes, os recursos que forem provisionados nelas não terão acesso à internet. Isso quer dizer que caso você precise atualizar os pacotes de uma instância Linux, por exemplo, você não vai conseguir.

Na AWS, o componente que vai permitir o acesso externo é o Internet Gateway. Para criar, você vai seguir o caminho: VPC -> Gateways da Internet -> Criar gateway da Internet

Como tag de nome, optei por usar "public-internet-gateway". Você só precisa nomear o seu gateway e clicar em "Criar".

Agora, vamos associar o gateway com a nossa VPC. Para isso, selecione gateway -> clique em Ações -> clique em Associar a VPC -> e selecione a nossa VPC criada no primeiro passo.

#3 Criando as tabelas de rotas

A tabela de rotas (route table) possui um conjunto de regras que direcionam o tráfego de uma sub-rede ou gateway. Dentro da tabela de rotas, há um conjunto de regras chamado rotas, que vai determinar esse tráfego em termos de IP de destino.

Para criar a nossa tabela de rotas, vá em VPC -> Tabela de rotas -> Criar tabela de rotas. Vamos criar uma tabela de rotas para a sub-rede pública e outra para a privada.

Os nomes das tabelas criadas foram: public-route-table e private-route-table.

#3.1. Criar as rotas

Mesmo criando as tabelas, ainda não temos nenhuma rota efetivamente criada. É através da tabela de rotas que a sub-rede pode ter acesso externo à internet por meio do Internet Gateway, então é isso que vamos fazer agora.

Selecione a tabela de rotas pública, clique no botão "Ações" e em "Editar rotas".

Em seguida, clique em: Adicionar rota -> selecione o Destino como: 0.0.0.0./0 -> e em "Alvo", escolha "Gateway da internet" e selecione o gateway criado anteriormente.

Feito isso, basta salvar as alterações.

Por fim, precisamos associar a tabela de rotas com a sub-rede pública. Selecione a tabela pública -> Editar associações de sub-rede

Escolha a sub-rede pública e clique em "Salvar associações".

Faça o mesmo para a tabela privada, associando-a com a sub-rede privada.

#4 Criando os grupos de segurança

Na AWS, os Grupos de Segurança (Security Groups, ou SGs) atuam como um firewall em nível de instâncias, controlando o tráfego de entrada e saída de uma EC2, por exemplo.

Para criar os Grupos de segurança, vá em VPC -> Segurança -> Grupos de segurança -> Criar grupo de segurança

Na imagem abaixo, estamos criando o SG para os recursos da sub-rede pública:

#4.1 Regras de entrada

Ainda na criação do Grupo de segurança, na mesma página, precisamos inserir as regras de entrada. Ou seja, as portas que iremos utilizar para a comunicação com a instância EC2.

No grupo público, vamos abrir as portas 22,80,443 (SSH, HTTP e HTTPS), conforme imagem:

Salve as configurações. Em seguida, crie o Grupo de segurança para o privado, abrindo somente as portas 22 e 3306 (SSH e MySQL).

#5 Criando as NACLs

Enquanto os Grupos de segurança atuam como firewall para instâncias, as Network Access Control Lists (NACLs) controlam o tráfego de entrada e saída de uma sub-rede. Ou seja, atuam como um firewall a nível de sub-rede, permitindo ou negando acesso à determinados recursos naquela sub-rede.

Para criar a NACL, vá em VPC -> Segurança -> ACLs da rede -> Criar Network ACL. Crie a NACL escolhendo um nome, selecionando a VPC e criando uma tag.

Depois de criar a NACL, precisamos configurar as regras de entrada e saída. Isto porque por padrão, quando criamos uma NACL, o tráfego de entrada e saída está bloqueado (deny).

Então, selecione a NACL pública -> clique em Ações -> Editar regras de entrada

Uma boa prática é numerar as regras, seguindo uma ordem de menor para maior e deixado "espaços" entre estas regras. Ou seja, é preferencial numerá-las como 100, 200, 300 do que 101, 102, 103. Isso torna mais fácil adicionar uma nova regra quando for necessário e sem precisar renumerar tudo.

Vamos criar as seguintes regras:

  • Regra 100 - porta 80 - Origem 0.0.0.0/0 - Permitir
  • Regra 200 - porta 443 -  Origem 0.0.0.0/0 - Permitir
  • Regra 300 - porta 22 - Origem 0.0.0.0/0 - Permitir

E salve as alterações.

Para o tráfego de saída:

  • Regra 100 - porta 80 - Origem 0.0.0.0/0 - Permitir
  • Regra 200 - porta 443 -  Origem 0.0.0.0/0 - Permitir
  • Regra 300 - porta 22 - Origem 0.0.0.0/0 - Permitir

Por fim, associe a NACL com a sub-rede pública.

Associar com as sub-redes

#6 Provisionando as instâncias

A fim de simular um ambiente real, vamos criar 2 instâncias. Uma será provisionada dentro da sub-rede pública e a outra na privada. Esse tipo de configuração é comum em arquiteturas onde temos um webserver "aberto" externamente e um banco de dados na rede privada, o qual somente tem acesso pela aplicação.

#6.1 Criando as instâncias

Vá em Ec2 -> Instâncias -> Executar instâncias

Coloque as seguintes configurações para a nossa primeira instância:

  • Nome: webserver
  • AMI: Ubuntu Server 22.04 LTS
  • Tipo de Instância: t2.micro
  • Par de chaves: Criar novo par de chaves - baixe e salve o par de chaves
  • Configurações de rede - clicar em "Editar"
  • VPC: main-vpc
  • Sub-rede: public-subnet
  • Atribuir IP público automaticamente: Desabilitar
  • Atribuir IP IPv6 automaticamente: Habilitar
  • Grupo de segurança: PublicSecGroup
  • Rolar até o fim da página e clicar em "Executar instância"

Crie a segunda instância:

  • Nome: database
  • AMI: Ubuntu Server 22.04 LTS
  • Tipo de Instância: t2.micro
  • Par de chaves: prosseguir sem par de chaves
  • Configurações de rede - clicar em "Editar"
  • VPC: main-vpc
  • Sub-rede: private-subnet
  • Grupo de segurança: PrivateSecGroup
  • Rolar até o fim da página e clicar em "Executar instância"

#6.2 Conectando na instância pública

No resumo da instância webserver, clique em "Conectar".

Selecione a aba "Conexão de instância do EC2" -> "Conectar-se usando o endpoint do EC2 Instance Connect" -> "Criar endpoint"

Nas configurações, insira um nome e escolha a opção para criar um "Endpoint do EC2 Instance Connect"

Além disso, na mesma página você deve selecionar a VPC criada, o grupo de segurança público e a sub-rede pública. Clique em "Criar endpoint".

Retorne para a instância e clique em "Conectar" -> "Conexão de instância do EC2" -> "Conectar-se usando o endpoint do EC2 Instance Connect" -> e selecione o endpoint criado. Por fim, clique no botão conectar.

Se tudo der certo, uma nova aba será aberta no seu navegador e você vai receber essa mensagem aqui:

Dentro da instância pública podemos testar a conexão com a instância privada (o database). Pegue o IP privado da segunda instância e use o comando telnet para verificar a conexão na porta 22 da instância pública para a privada, conforme imagem:

💡

OBS: Nesse tutorial, optou-se por não criar o NAT Gateway, que é um componente que permite acesso externo a uma instância que está dentro de uma sub-rede privada. Dessa forma, a instância conseguem se conectar à serviços externos para atualizar pacotes, por exemplo, mas os serviços externos não conseguem iniciar uma conexão com a instância.

⚠️

OBS²: Originalmente, este tutorial foi pensado e escrito usando o IPv4 público com acesso via SSH. No entanto, com as novas políticas de cobrança da AWS, optou-se por usar o EC2 Instance Connect ao invés do SSH padrão.

[ATUALIZAÇÃO] Maaaaas... Até o momento foi liberado o uso de IPs públicos para a EC2 dentro do Free Tier, durante 12 meses.

Ufa! Agora sim terminamos. Espero que esse tutorial possa te ajudar nos seus estudos. Ah, e não se esqueça de limpar o seu ambiente.

5 comandos básicos úteis para troubleshooting de redes

· 8 min para ler
Ludmila Silva
Cloud & DevOps Engineer

Na rotina profissional das diversas funções de T.I. que estão relacionadas diretamente ou não à infraestrutura, lidamos com uma série de problemas relacionados as redes. Seja desde um site ou aplicação fora do ar até a falta de comunicação entre dispositivos, esses "pequenos" inconvenientes podem se tornar uma dor de cabeça caso não sejam contornados e solucionados (principalmente se você lida com usuários).

Por isso, é sempre bom ter algumas cartas na manga para detectar, isolar e resolver problemas de maneira mais efetiva. A ideia aqui não é que você seja um analista de redes, mas que possa usar ferramentas simples para ajudar na solução ou para que você possa solucionar o problema. Muitas vezes o "feijão com arroz" nos salva bastante.

Para ajudar, reuni aqui alguns comandos básicos que são extremamente úteis no dia-a-dia:

1. Ping

O reizinho dos comandos, o ping permite testar a conectividade de rede entre dispositivos. Ele utiliza uma e_cho r_eques_t_ do protocolo ICMP, inserida em um datagrama IP, para testar essa conectividade.

Seja com um nome de domínio ou um endereço IP, o comando envia pacotes ICMP para o endereço IP do destino. Se o destino estiver acessível, serão mostradas respostas com os bytes, tempo de resposta e a medição do TTL (o tempo de vida do pacote dentro da rede). Além disso, ele informa os pacotes enviados, recebidos e perdidos.

Ping no Windows

Se o destino não estiver acessível, será mostrada na tela a mensagem "Host de destino inacessível."

Aqui estão alguns exemplos de uso do ping:

## Consulta básica do ping - com domínio de um site
ping google.com

## Consulta com IP (exemplo com DNS do Google)
ping 8.8.8.8

## No Windows: quantidade de pacotes enviados (no caso, para 6)
ping -n 6 google.com

## No Windows: tempo de espera da resposta (timeout)
ping -w 10 google.com

## Pings contínuos - sem interrupção
ping -t google.com

Para interromper o processo do ping, você deve usar o comando Ctrl+C.

Ping no Linux

Caso de uso:

  • Você pode usar o ping para identificar se uma máquina ou dispositivo na rede local, como uma impressora ou notebook, por exemplo, está conectada e respondendo. Se "pingou", isso já oferece um bom ponto de partida.

2. Traceroute

Outro comando simples e bastante útil é o traceroute no Linux, ou tracert no Windows. Ele permite validar os "saltos" (hops) até o destino - ou seja, por cada roteador que o pacote passa para chegar ao seu destino.

Exemplos do comando:

### Traceroute
traceroute google.com

### Esconder os nomes de dispositivos na tela
traceroute -n google.com

### Especificar o número de saltos
traceroute -m 10 google.com

Em alguns casos, você pode não obter a resposta mesmo sabendo que o dispostivo final está ativo. Isso pode ocorrer por causa de regras de firewall ou outros bloqueios dos equipamentos que estão no caminho.

Casos de uso:

  • Quando pessoas alegam lentidão ao acessar determinado site ou servidor, seja interno ou externo. Você pode usar o traceroute para identificar em qual trecho está ocorrendo uma alta latência ou perda de pacotes;
  • Com os resultados, você pode demonstrar que os problemas de conexão não são sua culpa ou da empresa - principalmente se o serviço acessado está fora da rede interna. É o famoso "não foi possível resolver seu problema, mas podemos fazer com que ele não seja nosso problema" =)

3. MTR

O My Traceroute, ou MTR, é um comando que funciona como uma combinação do ping e do traceroute. Ele apresenta os saltos até o destino e outras informações como latência e perda de pacotes. Isso permite ter uma ideia do que ocorre em tempo real.

Com isso, o MTR possibilita identificar conexões ruins ou a perda de pacotes com mais clareza. No Linux, ele é executado via terminal. No Windows, usa-se uma aplicação chamada WinMTR, que pode ser baixada aqui.

Sintaxe do mtr no Linux:

## Uso padrão
mtr google.com

## Limitar para endereços IPv4
mtr -4 google.com

## Usar em modo relatório
mtr -r google.com

Pode acontecer de não obter a resposta pelo fato de existir algum firewall ou regra de segurança que não permite esse acesso. Isso pode aparecer como uma omissão no tempo de resposta também.

Casos de uso:

  • Se você estiver experimentando latência ou desconexões ao jogar online ou usar um serviço na internet, pode usar o mtr para verificar a qualidade da conexão com o servidor do jogo ou serviço.
  • Em situações que poderia usar o ping e o traceroute junto, com objetivo de ter análises com mais detalhes de latência e perda de pacotes até chegar ao destino.

4. Nslookup

O nslookup permite consultas para servidores DNS. Com ele, é possível consultar qual IP responde por um domínio. Além disso, ele possibilita consultar um registro DNS (tipo A, MX, txt, entre outros) do domínio em questão.

## Consultar o IP de um domínio
nslookup google.com

## Consultar um registro DNS específico
nslookup -q=MX google.com

nslookup -q=A google.com

nslookup -q=ns google.com

nslookup -q=txt google.com

nslookup -type=mx google.com

## Pesquisa reversa
nslookup `<IP_do_servidor>`

## Consultar todos os registros
nslookup -type=any google.com

## Modo interativo - abre um prompt
nslookup

> google.com
> exit

5. Dig

Já o dig faz praticamente as mesmas funções do nslookup, mas fornece um relatório com mais detalhes.

## Retornar o registro A (IP)
dig google.com

## Retornar os registros MX, txt, e outros
dig google.com MX

dig google.com txt

dig google.com cname

dig google.com NS

dig google.com A

## Obter o máximo de informações
dig google.com any

## Respostas curtas
dig google.com +short

## Respostas detalhadas
dig google.com +noall +answer

## Pesquisa reversa
dig `<IP_do_servidor>`

Para utilizar o dig no Windows, é necessário instalar o BIND, o qual você pode encontrar aqui.

Caso de uso:

  • Quando quiser saber 0 nome de domínio associado a um endereço IP, você pode usar a pesquisa reversa (resolução de DNS reverso);
  • Em alguns casos, pode ocorrer de um site ser acessado pelo IP do servidor, mas não estar acessível pelo nome de domínio. Uma das possibilidades é que haja um problema com a resolução de nomes de domínio. Por isso, o nslookup e o dig podem ser usados para identificar quais servidores DNS respondem por determinado domínio e auxiliar na resolução do problema;
  • Uma empresa migrou seus e-mails para um serviço de hospedagem diferente do qual utilizavam. No entanto, os emails não estavam funcionando após a alteração dos registros DNS e propagação dos mesmos. Com o nslookup e o dig você pode verificar se o usuário  manteve os registros DNS de email (MX) do provedor antigo e inseriu os novos, resultando em um conflito, por exemplo (e acredite, isso é bem comum).

Menção honrosa: ipconfig

Ficou na dúvida sobre qual endereço IP está atribuído a sua máquina? Então, use o ipconfig (Windows) ou ifconfig (Linux e MacOS)! Esse comando exibe as configurações de rede

No Windows:

## Apresentar as informações de rede
ipconfig

## Apresentar mais detalhes das configurações de rede
ipconfig /all

## Limpar o cache de resolução DNS
ipconfig /flushdns

No Linux:

## Apresentar as informações de rede
ifconfig

## Apresentar todas as informações
ifconfig -a

No Linux, o ifconfig também permite configurar, ativar ou desativar as interfaces de rede, por exemplo. No final do texto, há um link com a documentação do comando para que você possa explorar mais.

Caso de uso:

  • Para saber o IP da sua máquina, basta um ipconfig ou ifconfig
  • Caso necessite saber o endereço MAC de um pc, o ipconfig /all fornecerá as informações necessárias.
  • Você está acessando um site e recebe uma página de erro como retorno. Pelo 4G, o site abre normalmente. Você já limpou o cache do navegador, mas o problema persiste. O que fazer? Bem, rodar o ipconfig /flushdns pode ser uma mão na roda.

Dicas para troubleshooting

Para finalizar, nada melhor que algumas dicas rápidas para organizar o pensamento na hora da resolução de problemas (sejam de rede ou quaisquer outros):

  1. Defina qual é o problema real - geralmente, quando um usuário ou nós mesmos relatamos o problema, na verdade está falando dos sintomas causados pelo problema real;
  2. Junte todas as informações relevantes: relatos, testes, prints. Aqui, por exemplo, cabe saber os IPs envolvidos, URLs e outras informações iniciais. O ping e o tracert podem ser muito importantes nesse momento;
  3. Analise cuidadosamente as informações runidas, de forma a eliminar opções que não se adequam ao problema, e proponha hipóteses sobre a causa e formas de solução. As hipóteses seriam os caminhos que você vai percorrer para a solução do problema;
  4. Teste a(s) hipótese(s) formuladas sobre o problema, ou seja, coloque suas ideias a prova;
  5. Se testou e resolveu, ótimo! Se não resolveu, volte a análise das informações reunidas;
  6. Por fim, documente o processo de solução - isso facilita a resolução quando o mesmo problema ocorrer novamente.

Criando um Bucket S3 na AWS

· 7 min para ler
Ludmila Silva
Cloud & DevOps Engineer

O que é o Amazon S3?

O Amazon Simple Storage Service, conhecido popularmente como "Amazon S3", é um serviço de armazenamento de objetos (ou blobs) da AWS que atua com alta disponibilidade, escalabilidade e baixa latência - segundo a AWS, o S3 possui 99,9999999% de resiliência de dados!

Mas o que seriam esses "objetos"? Os objetos no Amazon S3 podem ser diversos tipos de arquivos: imagens, pdfs, vídeos, áudios, entre outros. Ele também possibilita hospedar um website estático.

No AWS S3, os objetos são armazenados em buckets ("baldes"), que funcionam como se fossem containers. Dentro de um bucket S3, cada objeto é identificado por uma chave e ID de versão.

Portanto, o S3 pode ser usado para uma diversidade de fins: backup e restauração, arquivamento, data lakes, sites, e-commerces, e por aí vai.

No S3, você também pode escolher a região a fim de otimizar a latência, economizar ou por questões de conformidade.

Ideia do tutorial

Este tutorial tem o intuito de apresentar o S3 e desenvolver algumas habilidades básicas em relação ao seu uso, com os seguintes objetivos:

  • Criar um Bucket S3 e se familiarizar com a interface do serviço de armazenamento de objetos;
  • Subir o conteúdo (upload) e administrar o acesso através de policies.

Passo a Passo

Criando o Bucket S3

  1. Você deve acessar a console AWS e fazer o login - caso não tenha uma conta, é o momento de criar uma e fazer uso dos serviços free tier.

  2. Após logar na console, pesquise pelo "S3" na barra de pesquisa:

  1. Clique em S3 e em seguida, clique em "Criar bucket":

  1. Agora é o momento de configurar os dados do Bucket S3, então siga os seguintes passos:

Configuração geral

  • Nome

 -  Aqui você deve escolher um nome único e global, ou seja, não pode existir na AWS um Bucket com o mesmo nome que o seu. Com 3 a 63 caracteres, podendo ter letras minúsculas, números, ponto (.) e hífen (-).

  • Região da AWS: eu escolhi "Leste dos EUA (Norte da Virgínia) us-east-1"

Propriedade de objeto

  • ACLs desabilitadas (recomendado)

Configurações de bloqueio do acesso público deste bucket

  • Manter a caixa selecionada "Bloquear todo o acesso público"

Versionamento de bucket

  • Manter em "Desativar"

Criptografia padrão

  • Criptografia do lado do servidor com chaves gerenciadas do Amazon S3 (SSE-S3)

Chave do bucket

  • "Ativar"

Em Configurações Avançadas, não é necessário configurarmos nada no momento. Então, somente desça até a parte inferior da página e clique em "Criar bucket". E pronto! Seu Bucket S3 está criado.

Fazendo o upload de objetos no Bucket

  1. Com o bucket criado, clique nele para acessá-lo. Em seguida, clique em "Carregar" para enviar uma imagem simples (pode ser qualquer imagem que você tiver disponível):

  1. Clique em "Adicionar arquivos" e selecione a imagem desejada. E em seguida clique em "Carregar".

Se tudo estiver ocorrido bem, você vai receber uma mensagem de upload bem-sucedido, conforme imagem:

Se o upload deu certo, então clique em "Fechar".

Acessando a imagem

  1. Agora, selecione a imagem e clique em "Abrir":

A imagem vai carregar no seu navegador (a minha foi essa aqui):

Tudo certo, não? Então, vamos para mais um teste.

Acessar com a URL de objeto

  1. Selecione novamente a imagem e clique no botão "copiar url". Em seguida, abra uma nova aba no seu navegador e cole a URL

E..... Voilá! Não conseguimos acessar a imagem dessa vez. Nossa permissão foi negada:

Isso ocorre pois há um impedimento aqui: por questões de segurança padrão, não podemos acessar o arquivo sem estarmos logados na conta da AWS. Caso fosse um arquivo que por algum motivo necessitasse de acesso externo público, é necessário então liberar esse acesso.

Habilitar o acesso público para a imagem

  1. O primeiro passo para liberarmos o acesso público da nossa imagem é ir em "Permissões" no Bucket:

  1. Em Bloquear acesso público, clique em "Editar":

  1.  E desmarque a caixa "Bloquear todo o acesso público" e depois clique em "Salvar alterações":

A AWS vai pedir para confirmar essa modificação - já que por não ser uma boa prática de segurança, não é recomendável liberar o acesso público para o seu Bucket. Mas estamos fazendo isso apenas para fins didáticos:

Ótimo! Agora você vai conseguir acessar a imagem pela URL, certo? Não. Ainda não. Falta um passo: criar uma política que permita o acesso.

Criar política de acesso

  1. Ainda na aba "Permissões", desça até a opção "Editar política de bucket" e clique em "Editar":

  1. Primeiro, copie a ARN do bucket (que é o identificador único do recurso). Em seguida, clique no botão "Gerenciador de políticas":

  1. Se o seu navegador te direcionou para uma página estranha com a logo da AWS, não se assuste! Trata-se do AWS Policy Generator, um gerador de políticas que permite que criar as nossas políticas de acesso aos recursos provisionados na AWS.

Então, vamos lá:

  • Em Step 1, selecione a opção "S3 Bucket Policy"

Em Step 2, use as seguintes configurações:

  • Effect: marque "Allow"
  • Principal: coloque apenas o símbolo do asterisco "*" (sem aspas)
  • Actions: procure pela opção "GetObject" e selecione-a
  • Amazon Resource name (ARN): cole a ARN do bucket (se não lembra onde conseguir, volte no passo 14 deste tutorial) e no final da ARN acrescente /*

Clique em "Add Statement"

  1. No Step 3, clique em "Generate Policy" e copie o JSON criado. Cuidado para não copiar caracteres de espaço em branco sem querer.

  1. Volte na AWS, na aba "Política do bucket", e cole o JSON

  1. Role até abaixo e clique em "Salvar alterações"

Acessando a imagem pela URL

  1. Clique na aba "Objetos" e selecione a imagem. Em seguida, copie a URL

  1. Cole o link em uma nova aba no navegador e... Pronto! Se tudo deu certo, você e qualquer outra pessoa conseguem acessar a imagem. Que beleza!

Excluindo o Bucket

  1. Depois desse sucesso, é hora de limpar o ambiente. Então, selecione a sua imagem e clique no botão "Excluir". A console perguntará se você quer excluir permanentemente o objeto, por isso confirme a exclusão.

  2. Volte para a opção Buckets na console. Selecione o seu bucket e clique em "Excluir". Confirme a exclusão.

E pronto! Você acaba de criar, gerenciar e excluir o seu bucket S3. Além disso, você aprendeu como gerenciar o acesso ao bucket e aos objetos armazenados nele.

Documentação

Por se tratar de um tutorial introdutório, não entramos em assuntos como encriptação, versionamento, classes de armazenamento, ciclo de vida, entre outros.

Para ir se habituando e conhecendo mais sobre o Amazon S3, deixo alguns links de recomendação e documentação abaixo.

Bons estudos! 👋

Criando sua própria VPN gratuita na nuvem

· 9 min para ler
Ludmila Silva
Cloud & DevOps Engineer

Nos dias atuais temos uma preocupação (muito válida, por sinal) sobre a privacidade em relação ao tráfego na rede. Além das questões de privacidade e segurança, há também serviços e conteúdos que somente são disponibilizados em determinadas localizações ou redes.

Para contornar isso, geralmente recorremos à serviços de VPN, sejam eles pagos ou gratuitos. Mas mesmo assim, incorremos no risco de retenção de logs e dados, "espionagem", e por aí vai...

Imagem meramente educativa

Então, que tal criar sua prória VPN? Nesse artigo, vou apresentar um passo a passo para criar uma VPN na nuvem gratuitamente.

Vamos lá?

Passo a Passo

De início, precisamos criar um servidor - que será nosso VPN server. Existem inúmeras formas de criaá-lo: seja utilizando um Raspberry Pi, usando um servidor local, contratando uma VPS, etc.

Como não há o intuito de armazenar logs, então os serviços de computação em nuvem vão atender muito bem. Nesse caso, vamos criar uma conta gratuita na Oracle Cloud Infraestructure (OCI).

O legal da Oracle Cloud é que você pode criar até duas VMs (AMD com 1/8 OCPU e 1 GB de RAM) no nível gratuito para sempre (Always Free Services) - isso mesmo, 100% grátis! Como o projeto não vai precisar de configurações tão robustas, então é o suficiente para começarmos.

1) Crie sua conta na Oracle Cloud

Se você não tem uma conta na Oracle Cloud, é a hora de criar uma. Será necessário fornecer um cartão de crédito, mas não se preocupe, pois você não será cobrado.

Só se atente que nos primeiros 30 dias a Oracle fornece $ 300 em créditos para serem utilizados nos serviços. Caso você opte por serviços que não fazem parte do nível gratuito, fique de olho para que não ocorram cobranças indesejadas. Dê uma olhada nos serviços que fazem parte do Always Free para não ter nenhuma surpresa indesejada.

Enfim, para criar o seu cadastro, clique aqui. E em seguida clique em "Teste a OCI gratuitamente":

Ao criar a sua conta, você deverá escolher uma região onde seus serviços serão provisionados. Após escolher, você não pode alterar mais:

💡

Levando em consideração a criação de uma VPN, escolha a região que melhor lhe atenda.

Se tudo ocorrer bem, você vai receber um e-mail de confirmação. Basta efetuar o login.

2) Gere um par de chaves SSH

Antes de correr para o abraço na Oracle Cloud, vamos gerar uma chave SSH localmente. Portanto, abra o terminal caso use o Linux ou Mac, ou o cmd caso esteja no Windows. E digite o comando:

ssh-keygen

Deve aparecer a seguinte saída no terminal:

Generating public/private rsa key pair.
Enter file in which to save the key (/home/username/.ssh/id_rsa):

Nesse momento, você pode nomear a sua chave digitando um nome de sua preferência e depois clicando em enter. Caso você deixa em branco e pressione o enter, será gerada uma chave padrão (default). Fica à seu critério.

Em seguida, você será solicitado a digitar uma senha para a sua chave. Recomendo pular essa parte no momento, para evitar problemas de esquecimento rsrs... Então, apenas pressione o enter duas vezes.

Created directory '/home/username/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:

Após isso, sua chave será gerada e também será indicado o caminho dos arquivos id_rsa (chave privada) e id_rsa.pub (chave pública).

🚨

Em alguns casos, do OpenSSH não estar habilitado no Windows.

Caso o OpenSSH não esteja habilitado, pesquise por Configurações, selecione Aplicativos -> Aplicativos e Recursos -> Recursos Opcionais

Veja se o OpenSSH está habilitado.

Caso não esteja instalado, clique em "Adicionar um Recurso". Procure pelo Cliente do OpenSSH e clique em "Instalar":

Depois, proceda com a criação da sua chave SSH, conforme descrito anteriormente.

3) Crie uma nova instância

Agora que criou sua chave, faça login no Console da Oracle Cloud. Na página inicial, role para baixo até encontrar a aba "Iniciar Recursos" e clique em "Criar uma instância de VM".

Você será redirecionado para a página "Criar instância de computação", que apresenta o workflow de criação da instância. Esse workflow vai permitir fazer diversas coisas, como:

  • Criar e instalar a instância Ubuntu;
  • Criar uma VCN (virtual cloud network) com sub-rede, com os compenentes necessários para acessar a internet;
  • Criar ou colar um par de chaves ssh.

4) Nomeie a instância e escolha a imagem Ubuntu

Nas opções iniciais, insira um nome para a sua instância e escolha um compartimento onde ela será criada.

Em Posicionamento, mantenha a opção Always Free Elegível para o domínio de disponibilidade. E em Segurança, matenha o padrão.

Já na aba Imagem e Forma, clique em "Editar":

Clique em “Alterar Imagem” e selecione Ubuntu (eu escolhi a Canonical Ubuntu 22.04) e clique em "Selecionar imagem".

Após selecionar, a imagem e forma terão essas características:

Nas Configurações de Rede, faça as seguintes alterações:

  • Clique em "Editar".
  • Em Rede Principal, selecione "Criar nova rede virtual na nuvem".
  • Em Novo nome da rede virtual na nuvem, crie o nome da VCN.
  • Criar no compartimento: escolha o compartimento onde a VCN será criada.
  • Em Sub-rede, selecione "Criar nova sub-rede pública".
  • Em Novo nome de sub-rede, insira o nome da sub-rede.
  • Criar no compartimento: escolha o compartimento.
  • Bloco CIDR: Use o valor padrão (10.0.0.0/24).
  • Endereço IPv4 público, selecione "Designar um endereço IPv4 público".

Agora, é a hora de Adicionar as chaves SSH. Selecione a opção "Colar chaves públicas".

  • Lembra que criamos uma chave SSH no começo desse tutorial, certo? Você vai abrir o local do arquivo em que sua chave foi salva, e abrir o arquivo id_rsa.pub com um editor de texto ou o bloco de notas.
  • Você vai copiar a chave e colar no campo "Chaves SSH":

Por fim, na aba Volume de inicialização:

  • Desmarque a opção "Especificar um tamanho de volume de inicialização do cliente".
  • Marque a opção "Usar criptografia em trânsito".
  • Desmarque a opção "Criptografar este volume com uma chave gerenciada por você".

Clique em Criar. Em alguns minutos, sua instância Ubuntu estará provisionada com sucesso.

Nas informações da instância, você vai encontra o Endereço IP Público. Copie e salve esse endereço, vamos precisar dele para fazer o acesso a instância pelo SSH.

5) Ativar o acesso à internet - liberar a porta UDP 1194

Com o workflow do passo anterior, nós criamos uma VCN. Agora, é necessário adicionar uma regra para permitir a conexão com a porta 1194 (padrão da VPN).

Para isso, abra o menu e clique em "Rede" -> "Redes Virtuais na nuvem":

Selecione sua VNC → clique na sua Subnet → e em seguida clique na Lista de Segurança.

Clique no botão "Adicionar Lista de Segurança":

Agora, adicione as seguintes informações:

  • Sem monitoramento de estado: Marcado
  • Tipo de Origem: CIDR
  • CIDR de Origem: 0.0.0.0/0
  • Protocolo IP: UDP
  • Intervalo de portas de origem: deixe vazio
  • Intervalo de Portas de Destino: 1194
  • Descrição: OpenVPN

E clique em "Adicionar regras de entrada".

6) Conecte-se a VM via SSH

Agora, vamos nos conectar à nossa instância via SSH. Se tudo ocorreu certo com a sua chave, basta usar o comando:

ssh -i nome_da_chave ubuntu@ip_da_vm

## Exemplo
ssh -i oracle ubuntu@ip_da_vm

Em seguida, digite:

sudo su

apt-get update && upgrade -y

7) Instale o OpenVPN

Para facilitar o processo, vamos utilizar um script para instalar o OpenVPN

## Instalar o wget - caso não venha por padrão na máquina
apt install -y wget

## Instalar e configurar o OpenVPN

wget -O openvpn.sh https://get.vpnsetup.net/ovpn && bash openvpn.sh

Alguns pontos durante a instalação e configuração do OpenVPN:

  • Protocolo (protocol): Selecione UDP (1)
  • Porta do servidor (What port?): 1194
  • Servidor DNS (DNS server): Google Public DNS (2)
  • Nome do cliente (Enter a name for the first client): crie um nome
  • Digite "y"

Pronto! Ao finalizar a instalação do OpenVPN, será informado onde o arquivo client foi criado. Copie o caminho do arquivo, pois será necessário para baixá-lo.

8) Baixe o arquivo client

O próximo passo é baixar o arquivo client na sua máquina local. Existem várias formas de fazer isso, seja com FTP, SFTP, entre outros. Nesse caso, vamos usar o protocolo SCP.

A sintaxe do comando é:

scp [other options] [source username@IP]:/[directory and file name] [destination username@IP]:/[destination directory]

Abra um terminal e siga o exemplo (o caminho da pasta destino vai depender caso esteja usando o Windows ou Linux):

scp -i nome_da_chave ubuntu@ip_da_VM:/home/ubuntu/client.ovpn D:/Downloads

O arquivo .ovpn será copiado para a sua pasta de destino. No meu caso, ele ficou na pasta "Downloads" padrão do Windows.

9) Testando a conexão

Para testar, é necessário ter o OpenVPN client instalado no seu computador. Você pode baixá-lo por este link.

Após instalado, clique no arquivo .ovpn (caso esteja no Windows), ou importe esse arquivo caso esteja usando o Linux.

Considerações finais

Nesse tutorial, criamos de forma bem básica a nossa VPN gratuita. Não abordamos questões de segurança e proteção de porta, mas isso pode ficar para outros tutoriais.

💡

Ah, existe uma forma bem mais "simples" de criar sua VPN na Oracle - com poucos cliques. Mas nada melhor do que aprender primeiro e depois buscar formas mais práticas 😆... Fica para um outro artigo também.

Bons estudos!

Referências

Como configurar um blog Ghost em uma VM Ubuntu

· 12 min para ler
Ludmila Silva
Cloud & DevOps Engineer

O objetivo deste artigo é descrever um passo a passo de como criar uma máquina virtual (VM) Linux Ubuntu na Azure, através do Portal do Azure, e configurar o CMS Ghost para criar um blog pessoal. Inclusive, o Ghost é o CMS usado neste blog 😁

O intuito aqui apresentar algumas funções básicas de criação uma máquina virtual em um provedor de serviços de computação em Nuvem, realizar o acesso à VM pelo SSH, configuração do webserver Nginx e outras ferramentas, e a instalação e configuração do CMS Ghost.

Vamos lá?

O que é o Ghost?

O Ghost é um CMS - Content Management System (Sistema de Gerenciamento de Conteúdo) que fornece ferramentas para publicar conteúdo, compartilhar e fomentar o seu negócio através de websites. Trata-se de uma alternativa open source ao Wordpress, que é o CMS mais famoso e mais utilizado atualmente.

O Ghost possui uma interface intuitiva e fácil de usar, permitindo publicar um site em poucos cliques. Baseado em NodeJS, é rápido, seguro, SEO friendly, responsivo e permite diversas integrações com várias APIs.

Para quem busca desempenho, segurança e economia, o Ghost é uma excelente opção. Há a versão paga, onde você pode hospedá-lo em uma plataforma gerenciada pelo Ghost (assim como o Wordpress), ou auto-hospedar em um servidor próprio, como em um VPS, por exemplo.

Se você é outsider e gosta de usar ferramentas "diferentonas", o Ghost é uma boa ideia. 😅

Especificações do Ghost

De acordo com a documentação do Ghost, esses são os requisitos mínimos para a instalação do CMS:

  • Sistema operacional: Ubuntu 16.04, Ubuntu 18.04, Ubuntu 20.04 ou Ubuntu 22.04
  • Nginx (mínimo versão 1.9.5 para SSL)
  • Versão suportada do Node.js (a recomendada é a v16)
  • MySQL 8
  • Systemd
  • Um servidor com no mínimo 1GB de memória RAM
  • Um domínio registrado

Passo a passo

1) Criar uma conta no Portal Azure

Caso você já tenha uma conta criada no Azure, pule essa etapa. Caso você não tenha uma conta, será necessário criá-la no Portal do Azure.

No Azure, ao criar uma conta nova você vai receber um crédito de $200 para usar e testar os serviços por 30 dias. Além disso, após os 30 dias você pode utilizar serviços populares por 12 meses gratuitamente, tais como:

  • VMs Linux: 750 horas de máquinas virtuais com capacidade de intermitência B1s;
  • Banco de dados SQL: 250 GB de instância S0 com dez unidades de transação de banco de dados;
  • Armazenamento de Blobs do Azure;
  • Azure Functions: 1 milhão de solicitações;
  • Entre outros serviços.

Você pode conferir os serviços gratuitos clicando aqui.

No meu caso, eu já utilizo uma conta de estudante da Microsoft vinculada ao Azure, que disponibiliza $100 em créditos para uso.

2) Criar uma VM na Azure

Após ter criado a sua conta no Azure, você vai criar a máquina virtual (VM). No portal do Azure, clique em “Criar um recurso”, conforme imagem:

Há também a opção “Máquina virtual” que vai seguir o mesmo caminho.

3) Configurar a VM

Em seguida, vamos configurar a nossa máquina virtual para atender as especificações do Ghost.

Primeiramente: No Azure, nada se cria se você não tiver um grupo de recursos na sua assinatura. Dessa forma, caso você não tenha um Grupo de recursos, clique em “Criar novo” e forneça um nome para o seu grupo.

Na opção Detalhes da instância, são solicitados alguns dados de configuração da máquina virtual. Eu optei pelas seguintes configurações:

  • Nome da máquina virtual: vm-ghost (fique livre para escolher o nome da vm)
  • Região: (US) East US
  • Opções de disponibilidade: Zona 1
  • Tipo de Segurança: Padrão
  • Imagem: Ubuntu Server 20.04 LTS
  • Tamanho: Standard B1ms (1 vcpus, 2 GiB de memória)

🚨

Optei por uma instância com 2GiB de memória. Até poderia usar a padrão B1 com 1GiB, mas pode ocorrer um gargalo durante a instalação do Ghost, alegando falta de memória. Há como contornar isso, mas fica para outro post. 

Vamos seguir com o passo a passo:

Conta de administrador

Aqui vamos escolher gerar um par de chaves SSH para acessar a máquina virtual. As configurações foram:

  • Tipo de autenticação: Chave pública de SSH
  • Nome de usuário: azureuser (fique livre para escolher o nome)
  • Origem de chave SSH pública: Gerar um novo par de chaves
  • Nome do par de chaves: myKey (fique livre para escolher o nome das chaves)

Regras de portas de entrada

  • Portas de entrada públicas: Permitir portas selecionadas
  • Selecione as portas de entrada: SSH (22), HTTP (80) e HTTPS (443)

Na aba DISCOS, optei pelo Tipo de Disco de SO como SSD Standard com redundância local. A partir daí, você pode avançar com as opções até chegar em “Revisar + criar”.

4) Gere a chave privada

Após clicar em “criar” para criar a sua VM, será exibido na tela um aviso para gerar um par de chaves SSH. Clique em “Baixar chave privada e criar recurso”. Será baixado um arquivo em formato .pem.

E voilá! A VM foi criada!

Clique em “Ir para o recurso” para visualizar as informações da sua VM.

5) Conectar à VM

Depois de acessar as informações da VM, você vai copiar o endereço de IP público da máquina:

Caso você esteja no Linux ou MacOs, você deve alterar a permissão do arquivo de chave .pem para 400, com o comando:

## Alterar permissões da chave .pem
chmod 400 nome_da_chave.pem

Para se conectar à VM, use o comando:

ssh -i nome_da_chave.pem nome-do-usuário@ip-publico-da-VM

Caso esteja no Windows, abra um terminal - pode ser o CMD ou o PowerShell. Você vai usar o seguinte comando - lembrando de substituir o caminho para onde está localizada a sua chave .pem e o IP para o IP público da sua VM:

ssh -i ~/Downloads/myKey.pem azureuser@ip-publico-da-VM

Caso você tenha feito o acesso com sucesso, você receberá uma mensagem similar da imagem abaixo:

6) Crie um novo usuário

Após se conectar à VM, entre no usuário root e crie um novo usuário, que será nosso user padrão para configurar as intalações e gerenciar o Ghost:

## Acessar usuário root
sudo su

## Criar um novo usuário
adduser nome_do_usuário

Agora, dê privilégios de superuser para o novo usuário criado, e alterne seu acesso para o usuário:

## Privilégios de superuser
usermod -aG sudo nome_do_usuário

## Alternar para o user criado
su - nome_do_usuário

7) Instalar o Nginx

Agora, faça um update e um upgrade dos pacotes no Linux:

sudo apt-get update && sudo apt-get upgrade -y

Em seguida, instale o Nginx com os comandos:

sudo apt-get install nginx -y

## Opcional
sudo ufw allow 'Nginx Full'

Se tudo ocorreu bem com a instalação do Nginx, ao acessar o IP público da VM no seu navegador você vai ver a mensagem:

8) Instalar o MySQL

Agora, entre com o seguinte comando no terminal para instalar o MySQL:

sudo apt-get install mysql-server -y

9) Instalar o Node.Js

Em sequência, vamos instalar o Node.Js com os comandos:

# Fazer curl na versão recomendada do node
curl -sL https://deb.nodesource.com/setup_16.x | sudo -E bash

# Instalando o node
sudo apt-get install nodejs -y

10) Abrir as portas do webserver

O Iptables é um firewall importante no Linux e, muitas vezes, por definição o acesso à determinadas portas não é permitido. Portanto, use os comandos a seguir para abrir as portas 80 e 443, caso seja necessário:

sudo apt-get install iptables-persistent

# HTTP :80
sudo iptables -I INPUT -m state --state NEW -p tcp --dport 80 -j ACCEPT

# HTTPS : 443
sudo iptables -I INPUT -m state --state NEW -p tcp --dport 443 -j ACCEPT

# Salve as configurações
sudo netfilter-persistent save

11) Instalando o Ghost

Agora, vamos criar um usuário no MySQL para o Ghost.

# Inicializar o MySQL
sudo mysql

# Criar um DB user com senha
create user 'ghost'@'localhost' identified by 'Senha1234';

# Dar todos os privilégios para o usuário
grant all privileges on *.* to 'ghost'@'localhost';

# Criar uma DB para o Ghost
create database ghost;

# Atualizar as permissões
flush privileges;

# Sair do MySql
exit

Instale o Ghost-CLI

#Instalar CLI
sudo npm install ghost-cli@latest -g

Crie um novo diretório com o comando mkdir:

# Criar um diretorio para o ghost
sudo mkdir -p /var/www/ghost

# Setar o usuário dono do diretório
sudo chown nome_de_usuario:nome_de_usuario /var/www/ghost

# Alterar as permissões
sudo chmod 775 /var/www/ghost

# Navegar até o diretório criado
cd /var/www/ghost

# Iniciar a instalação do ghost
ghost install

Aguarde até que o Ghost termine de ser instalado.

12) Configurações da instalação

Após a instalação, o sistema vai pedir algumas configurações:

  • Blog URL: caso você possua um domínio registrado, pode inseri-lo nesse campo. Se não tiver, deixe o IP da sua máquina virtual mesmo. No meu caso, usei o endereço https://ludsilva.tech - sim, com https mesmo! Não precisa se preocupar com o certificado SSL, pois ele será configurado posteriormente.
  • MySQL hostname: hostname - por padrão, é o hostname
  • MySQL username / password: use o usuário e senha criados anteriormente para o MySQL
  • Ghost database name: ghost - use o nome do banco de dados criado no MySQL
  • Set up a ghost MySQL user? ghost - utilize o nome do user criado no MySQL
  • Set up NGINX? Selecione "Y"
  • Set up SSL? Selecione "Y"
  • Enter your email - forneça um e-mail para o certificado SSL
  • Set up systemd? - Selecione "Y"

Ao final do processo, se tudo ocorrer bem, você vai conseguir acessar o blog pelo pelo ip_da_vm/ghost

Se você utilizou um domínio já registrado, falta o último passo antes de acessar seu blog: configurar os apontamentos DNS.

13) Configurar o DNS (opcional)

Caso você possua um domínio registrado, é hora de configurar os apontamentos DNS para que quando você digite o endereço no navegador, você seja redirecionado para o seu blog Ghost.

💡

O domínio de testes que utilizei foi criado gratuitamente com o GitHub Student Developer Pack.

Para facilitar esse processo, vamos somente configurar o apontamento do tipo A, que vai utilizar o IP público da VM criada no Azure.

No meu caso, eu utilizo a Umbler como zona de DNS do meu domínio. Outra dica é deixar na CloudFlare. Por facilidade de uso, evito deixar no RegistroBr caso seja um domínio nacional (de extensão .br) ou em outros provedores. A interface da Umbler é bem amigável, e a da CloudFlare permite inserir apontamentos do tipo AAAA. Fica a sua critério escolher qual lhe atende melhor.

Como meu domínio já estava adicionado, só precisei logar no painel Umbler e clicar em "Domínio":

Em seguida, clicar em "Editor de DNS":

Depois, clicar no botão "+ Adicionar":

E criar um apontamento com os seguintes valores:

  • Tipo: A
  • Nome: deixar em branco ou colocar @
  • Dados: o IP da VM no Azure
  • TTL: 1 hora

Clique em "Salvar", e seu apontamento foi criado com sucesso.

Com o apontamento criado, é só esperar a propagação - que pode levar até 48 horas (é uma média, vai depender da extensão do seu domínio).

14) Acessando o site

Ao acessar o seu site (pelo domínio ou pelo IP), será apresentada essa página aqui:

15) Criando seu login

O próximo passo é criar o seu login. Por isso acesse seudominio.com/ghost ou ip_da_vm/ghost

No primeiro acesso, o sistema vai pedir para você criar um usuário e algums informações iniciais para o seu blog:

  • Site title: você vai escolher o título do seu site
  • Full name: o seu nome
  • Email address: o seu endereço de e-mail para realizar o login no Ghost
  • Password: a sua senha

16) Agora, é só aproveitar

Após o login, você será redirecionado para o Dashboard do Ghost. Fique à vontade para experimentar as funcionalidades e configurar o seu blog da forma que desejar.

Aproveite para explorar a documentação do Ghost (que está linkada no final deste post).

💡

Lembre-se que você está no período de testes do Azure (caso tenha criado uma nova conta). Então, não se esqueça de encerrar a sua instância para são ser cobrado!

Caso queira usar uma VM 100% gratuita, recomendo dar uma olhada no Free Tier da Oracle Cloud.

Extra: troubleshooting para alguns problemas comuns

Em alguns casos, na instalação do Ghost podem ocorrer alguns problemas. O primeiro deles é alegar "falta de memória" - principalmente se você estiver usando uma máquina virtual com 1GB de RAM.

Para contornar esse entrave, no momento de instalar o Ghost use o comando:

## Caso apresente erro de memória
ghost install --no-check-mem

É comum também ocorrer bugs durante a configuração do certificado SSL ou até mesmo problemas de causas desconhecidas. Para contornar, siga o passo a passo:

## Desinstale o Ghost
ghost uninstal

## Remova a pasta criada
sudo rm -R /ghost

E siga novamente os passos para criar uma nova pasta a partir do item 11 deste tutorial.

Por fim, bons estudos!


Referências

Como obter o GitHub Student Developer Pack

· 4 min para ler
Ludmila Silva
Cloud & DevOps Engineer

Você sabia que o GitHub oferece um pacote com mais de 30 ferramentas, recursos e serviços gratuitos para estudantes?

Se você é estudante vinculado a uma instituição de ensino e maior de 13 anos, você terá acesso a uma série de ferramentas para desenvolvimento de software de forma gratuita.

Requisitos

Os requisitos para obter o GitHub Student Developer Pack são:

  • Estar matriculado em um curso de estudos que forneça um grau ou diplomação - ou seja, é válido para o Ensino Fundamental, Ensino Médio, Ensino Técnico, Graduação, Pós-graduação, etc.
  • Ter um de e-mail institucional (ou seja, fornecido pela instituição de ensino) ou documentos que comprovem a matrícula - serve comprovante de matrícula ou carteirinha de estudante;
  • Ter uma conta de usuário no GitHub;
  • Ser maior de 13 anos.

Alguns dos benefícios

Ao obter o pacote, você terá o GitHub Pro gratuito enquanto for estudante. Além disso, há outros benecíficios como:

Serviços de Cloud

  • Microsoft Azure: Acesso gratuito a mais de 25 serviços de nuvem do Microsoft Azure mais US$ 100 em crédito do Azure. Para estudantes com mais de 18 anos;
  • Digital Ocean: 200 dólares em crédito para usar na plataforma por 01 ano;
  • New Relic: gratuito enquanto for estudante.

Domínios

  • Namecheap: 1 ano de registro de nome de domínio com extensão .me, e 1 ano de certificado SSL gratuito;
  • Tech Domains: um domínio .tech gratuito por 1 ano e 2 contas de e-mail gratuitas com 100 MB de armazenamento gratuito.

Ferramentas de desenvolvimento

  • Jetbrains: uma assinatura gratuita para estudantes, renovada anualmente;
  • Heroku: crédito de US$ 13 por mês durante 12 meses.

Infraestrutura e APIs

  • MongoDB: $ 50 em créditos do MongoDB Atlas, além de acesso ao MongoDB Compass e MongoDB University, incluindo certificação gratuita no valor de US$ 150.
  • Twilio:  $ 50 em créditos da API Twilio e itens exclusivos no jogo no TwilioQuest. O crédito só pode ser aplicado a novas contas Twilio.
  • Pageclip: Plano básico gratuito enquanto for estudante.

Você pode encontrar a lista completa de recursos e ferramentas oferecidos clicando aqui.

Como obter o GitHub Student Developer Pack

Para obter o pack, basta seguir o seguinte passo a passo:

  1. Acesse o site do GitHub Student Developer Pack e clique em "Sing up for Student Developer Pack":

2. Na página seguinte, clique em "Get student benefits"

3. Você será redirecionado para fazer login na sua conta do GitHub. Caso ainda não tenha uma conta, você poderá criar uma clicando em "Create account".

4. Depois de logar na sua conta, você vai preencher o cadastro e inserir o seu e-mail institucional, nome da instituição de ensino e como pretende utilizar o GitHub. Clique em "Submit information".

⚠️ Importante:**** para utilizar o seu o e-mail institucional, você deve inseri-lo na sua conta do GitHub indo em Settings -> Emails -> _Add email addres_s e fazer a confirmação pela mensagem enviada na caixa de entrada do e-mail. Após isso, atualize página do Student Developer Pack para que o e-mail apareça para ser adicionado.

E caso você não tenha um e-mail institucional, pode usar o e-mail principal da sua conta do GitHub, pois no próximo passo você deverá fornecer um documento que comprove sua condição de estudante.

5. Nesse momento, você será solicitado a enviar uma foto da sua carteira de estudante ou documento que comprove que a sua matrícula está ativa. Selecione o arquivo e clique em “Upload proof of your academic status”.

Após o envio, o GitHub vai analisar as informações fornecidas. Há um prazo de 5 dias para o retorno.

Caso a solicitação seja aprovada, é só aproveitar o pack! 😉

Contato

· Um minuto para ler
Ludmila Silva
Cloud & DevOps Engineer

Quer deixar uma sugestão? Tem alguma dúvida, ou só quer deixar um "alô" ou tomar um cafezin? Então, me envie uma mensagem pelo contato@lu.dev.br

Cursos Gratuitos em TI

· 7 min para ler
Ludmila Silva
Cloud & DevOps Engineer

Para quem está começando sua carreira na TI - seja como iniciante ou migrando de outra profissão - nem sempre é possível arcar com um curso ou formação na área. Em momentos em que a grana está curta ou que existem outras prioridades, alguns podem desistir de investir na carreira e continuar estudando.

Então, a fim de auxiliar nos estudos e na construção da sua carreira, listei alguns cursos, playlists, guias e ferramentas gratuitas disponíveis na internet. Os cursos estão separados por áreas de conhecimento ou tecnologias / ferramentas.

Sei que existem mais cursos gratuitos do que os links listados aqui, então fique livre para sugerir também 😀

Bons estudos!

Introdução à Programação

Git, Github e versionamento de código

Básico do Desenvolvimento Web

HTML e CSS

JavaScript

Testes e Refatoração

Banco de Dados

Princípios de Desenvolvimento

Front-End

SASS

Gulp

Frameworks / Libs

VUE JS

REACT JS

Back-End

Node.Js

TypeScript

FullStack

DevOps

Agile

Suporte Técnico

Customer Success

Bônus

Roadmaps

Os roadmaps são ferramentas úteis para quem quer seguir uma carreira específica - eles são mapas (sim, claro né Lud!) que fornecem uma rota ou guia para desenvolver as habilidades e conhecimentos necessários. Afinal de contas, nada melhor do que ter um guia ou uma bússola para orientar os estudos.

Cursos FIAP

O Centro Universitário FIAP, através da plataforma Eu Capacito, disponibiliza 20 cursos grátis on-line, que englobam conteúdos como: BlockChain, Cloud Computing, Design Thinking, DevOps, Linux, Liderança, entre outros.

DIO

A DIO oferece bootcamps, trilhas e cursos completamente gratuitos, oferecendo aos alunos a oportunidade de entrar no mercado de trabalho. Na DIO, você vai aprender as tecnologias emergentes, colocar a mão na massa e construir um portfólio.

Canal Prof. Gustavo Guanabara

É difícil encontrar alguém que não tenha dado os seus primeiros passos através dos cursos do professor Gustavo Guanabara. No seu canal do YouTube, há diversos cursos que vão desde Lógica de Programação até Segurança da Informação.

CS50

O CS50 é um famoso curso da Universidade de Harvard e já contou com a presença de Mark Zuckerberg (Meta) como convidado. É um curso introdutório de Ciências da Computação que oferece excelentes bases para quem está começando. O curso é gratuito, com 11 semanas entre aulas, desafios e projetos. É possível emitir o certificado gratuitamente também.

Gostou das dicas? Tem alguém que você conhece no qual essa lista ajudaria? Então, não deixe de compartilhar ;)

Sobre mim

· Um minuto para ler
Ludmila Silva
Cloud & DevOps Engineer

CloudOps Engineer com foco em DevOps, microsserviços e automação, atuando na construção e evolução de arquiteturas cloud escaláveis, resilientes e altamente disponíveis.

Sobre o blog

Acredito que crescemos mais rápida e consistentemente quando compartilhamos o conhecimento., Então, aqui você vai encontrar de tudo um pouco: desde conteúdos técnicos a opiniões. E, claro, uma pitada de desenvolvimento pessoal.