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

Distribuição de conteúdo com o Amazon CloudFront

· 4 min para ler
Ludmila Silva
Cloud & DevOps Engineer

As Redes de Distribuição de Conteúdo (Content delivery network - CDN) são compostas por servidores espalhados geograficamente que geralmente armazenam conteúdo da web em cache e distribuem esse conteúdo para os usuários. As CDNs permitem que o usuário acesse o conteúdo a partir do servidor mais próximo a ele, tornando a experiência mais aprazível, por assim dizer - já que haverá baixa latência e maior velocidade de carregamento dos dados.

A AWS também possui um serviço de CDN, chamado de Amazon CloudFront, utilizado inclusive pela Netflix. Esse serviço permite distribuir conteúdos estáticos e dinâmicos na web (websites, imagens, vídeos, dados, entre outros). Para isso, o CloudFront faz uso das Edge Locations (Pontos de Presença), que atuam como servidores de cache espalhados pelo mundo, acelerando a entrega dos conteúdos e melhorando a experiência dos usuários.

No CloudFront, a entrega do conteúdo se baseia na localização geográfica do usuário, na origem da página e também na localização do servidor de entrega do conteúdo.

Além disso, o CloudFront:

  • Trabalha em conjunto com outros serviços - S3, WAF, Shield, Route 53 e Certificate Manager;
  • Emite um certificado SSL/TLS público;
  • Mantém o acesso seguro e criptografado;
  • Redireciona o tráfego HTTP para HTTPS;
  • Pode restringir o acesso do conteúdo por meio de vários recursos;
  • Entre outras funções.

Sem mais delongas, vamos para o hands-on! Ah, esse tutorial é uma continuação do post "Subindo um website estático no Amazon S3" - caso você não tenha um bucket S3 configurado para servir um site estático, dá uma olhadinha no post.

Passo a Passo

1) Criando a distribuição do CloudFront

  • Acesse a console AWS e busque pelo CloudFront. Clique em Criar distribuição (Create distribution)

  • Em Origin domain, você vai escolher o Bucket S3 em que os arquivos do Website - o CloudFront vai sugerir que você indique o endpoint do website, mas para este tutorial queremos que somente o CloudFront tenha acesso ao bucket (e, por consequência, iremos alterar a política de acesso do S3).
  • Em Origin acess, marque a opção Origin access control settings, e depois clique no botão Criar nova OAC

  • Um pop-up vai abrir para configurarmos esse controle de acesso, apenas clique em Criar (create)

Inclusive, vai aparecer um aviso dizendo que temos que atualizar a políca do Bucket... O que faremos depois.

  • Agora, desça a página até a opção Web Application Firewall (WAF). Deixe o WAF desabilitado.

  • Mais abaixo, em Configurações (Settings), especifique a página index.html como objeto raiz para que o CloudFront saiba qual objeto do S3 ele deve responder

  • Desça até ao final da página e clique em Criar distribuição

2) Modificando a política do bucket S3

Após criar a distribuição, uma mensagem irá aparecer na tela, indicando que você deve copiar e alterar a política (policy) do Bucket. Copie a política:

Acesse o bucket do seu site, vá em Permissões -> Política do Bucket -> e clique em Editar

Remova a política que estava anteriormente - na qual configuramos no tutorial de Website estático no S3 - e cole a nova política de acesso. Clique em Salvar alterações

Volte lá no CloudFront, clique na distribuição e copie o nome de domínio (domain name). Cole no navegador e dê enter:

Agora, o site está acessível pelo domínio do CloudFront. Se você tentar acessá-lo com a URL gerada pelo S3, não vai conseguir:

  1. Limpando o ambiente

Para limpar o seu ambiente, você precisa:

  • Desabilitar a Distribuição no CloudFront - desabilite e aguarde alguns minutos. Somente depois que a opção Deletar estará disponível para ele ser excluído

  • Você também pode excluir os arquivos e o bucket S3, caso queira. Mas é opcional.

Bons estudos!

Documentação

Subindo um website estático no Amazon S3

· 2 min para ler
Ludmila Silva
Cloud & DevOps Engineer

Você sabia que é possível hospedar um site estático gratuitamente na AWS - pelo menos por um ano, que é o tempo do free tier? Ah, agora chamei sua atenção!

Se você ainda não conhece o Amazon S3, recomendo primeiro ler o artigo sobre o serviço.

Os arquivos utilizados neste laboratório podem ser baixados abaixo:

Arquivo index.html

Arquivo main.css

Clique em Carregar para confirmar o envio dos arquivos.

3) Configurar o bucket para hospedagem de sites

Dentro do bucket, clique na aba Propriedades

Vá até ao final da página. Clique em Editar na aba Em Hospedagem de site estático_

Selecione a opção _Ativar e defina a página index.html como _Documento de índice

Clique em Salvar alterações e anote o endpoint de site de bucket (que será a URL do seu site).

4) Configurando as permissões

Ainda dentro do Bucket, clique na aba "Permissões".

Vá até a opção Bloquear acesso público_**** e clique em Editar.

Desmarque a opção Bloquear todo o acesso público e salve as alterações

Ainda em Permissões, desça até Política do bucket e clique em Editar

No editor de política, copie e cole a política abaixo*:

{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "PublicReadGetObject",
"Effect": "Allow",
"Principal": "*",
"Action": [
"s3:GetObject"
],
"Resource": [
"arn:aws:s3:::Nome-do-Bucket/*"
]
}
]
}
  • Lembre-se de mudar Nome-do-Bucket para o nome do seu bucket S3. Clique em Salvar alterações

5) Acessando o site

Lembra que copiamos o endpoint do site? Se você não lembra onde está, vá no Bucket -> Propriedades -> desça até o fim da página e copie o endpoit

Abra uma janela no seu navegador, cole o endpoint, dê enter e veja a mágica acontecer:

É isso! Temos nosso website hospedado na AWS - e totalmente free!

Bons estudos!

Documentação

Balanceamento de carga com o Elastic Load Balancing

· 4 min para ler
Ludmila Silva
Cloud & DevOps Engineer

Nós já sabemos como criar instâncias no Amazon EC2 e como configurar o Auto Scaling Group para termos escalabilidade em uma aplicação. Agora, é hora de aprofundarmos um pouco mais do recurso de balanceamento de carga da AWS: o Elastic Load Balancing (ELB).

Um balanceador de carga é uma ferramenta muito importante quando necessitamos de distribuir o tráfego de entrada de uma aplicação. Imagine que você está rodando 3 web servers com a mesma aplicação. No entanto, somente um deles está recebendo o tráfego dos seus clientes e, como resultado, o servidor está sobrecarregado. Uma das formas de contornar isso é utilizando um balanceador de carga, que vai distribuir o tráfego da sua aplicação para os web servers.

Além disso, o AWS Elastic Load Balancing monitora a integridade dos destinos e roteia o tráfego apenas para os destinos íntegros, ou seja, se uma instância EC2 está inoperante ou "caiu", ele vai rotear o tráfego para instâncias "saudáveis". Você pode distribuir o tráfego entre diferentes Zonas de Disponibilidade, por exemplo, contribuindo para a alta disponibilidade e tolerância a falhas da sua aplicação.

Para esse tutorial, precisamos ter o Auto Scaling Group (ASG) já criado. Então, se você ainda não criou o seu, volta lá no tutorial do ASG.

Passo a passo

Criando um Target Group

  1. Acesse a console AWS, vá em EC2 -> Balanceamento de carga -> Grupos de destino -> e clique em Criar grupo de destino

A configuração básica do Target group terá as seguintes opções:

  • Tipo de destino: instâncias
  • Nome do grupo: o nome que você preferir
  • Protocolo: HTTP
  • Porta: 80
  • Tipo de endereço: IPv4
  • Versão do protocolo: HTTP 1

Vá até o final da página e clique em Próximo. Em Registrar destinos, selecione as instâncias disponíveis (criadas pelo Auto Scaling)

E clique em Incluir como pendente abaixo:

Em seguida, clique em Criar grupo de destino.

2) Criando o Load Balancer

Agora acesse a opção de Load balancers e clique em Criar load balancer_

Em Tipos de load balancer, vamos selecionar o Application Load Balancer (ALB)

Na Configuração básica do ALB, defina um nome para o load balancer e mantenha as configurações já existentes.

Na opção, Mapeamento de rede, marque todas as Zonas de Disponibilidade:

Em Grupos de segurança, selecione o mesmo grupo criado para o modelo de execução (template) no tutorial do Auto Scaling:

Mais abaixo, em Listeners e roteamento, selecione o Target group criado anteriormente:

Desça até ao final da página e clique em Criar load balancer. Pronto!

Você verá uma página informando que o ABL foi criado com sucesso. Nessa página, copie o DNS.

Aguarde alguns minutos até que o status do Loab Balancer esteja como... Então, cole o DNS em uma aba do seu navegador:

Se você for atualizando a página, vai perceber que o IP do servidor altera. Ou seja, que o tráfego está sendo balanceado entre as instâncias disponíveis. Legal, não é?

(Lembram do script que usamos lá no tutorial de Auto Scaling? Nos serviu para visualizar esse balanceamento).

Ah, não se esqueça de limpar seu ambiente: excluir o ALB, remover o Target Group, e excluir o Auto Scaling Group.

Bons estudos!

Documentação

Escalabilidade na AWS com o Amazon EC2 Auto Scaling

· 6 min para ler
Ludmila Silva
Cloud & DevOps Engineer

Um dos grandes benefícios da Computação em Nuvem reside na Escalabilidade, que é a capacidade de ajustar seus recursos conforme a demanda, garantindo que você tenha recursos disponíveis para atender às suas necessidades.

Em geral, a escalabilidade pode ser dividida em:

  • Vertical: se refere a expansão dos recursos computacionais (adicionar CPU, RAM, etc), ou seja, aumentar o "tamanho" de uma instância;
  • Horizontal: aumentar o número de instâncias baseada na demanda, ou seja, envolve a adição de mais nodes (mais máquinas).

Podemos pensar em uma aplicação que está rodando em um web server utilizando uma EC2. Em dado momento, as necessidades do negócio e a alta demanda fazem com que somente uma instância não seja mais suficiente devido ao alto número de acessos. Nesse cenário, a escalabilidade cai como uma luva.

Na AWS, existe um serviço voltado para garantir que se tenha o número correto de EC2 instâncias da Amazon disponíveis para lidar com a carga de uma aplicação: é o Amazon EC2 Auto Scaling, ou simplesmente Auto Scaling.

Com o Auto Scaling podemos criar coleções de EC2 instâncias, chamadas de grupos de Auto Scaling (Auto Scaling Groups ou ASG).

Também podemos:

  • especificar o número mínimo de instâncias em cada grupo de Auto Scaling, garantindo que seu grupo nunca fique abaixo desse tamanho;
  • especificar o número máximo de instâncias em cada grupo de Auto Scaling, garantindo que seu grupo nunca ultrapasse esse tamanho;
  • especificar a capacidade desejada, ao criar o grupo ou a qualquer momento posterior, garantindo que seu grupo tenha esse número de instâncias;
  • por fim, especificar políticas de escalabilidade, para que o Amazon EC2 Auto Scaling inicie ou encerre instâncias à medida que a demanda da sua aplicação aumentar ou diminuir - ou seja, pode fazer o scale out (adicionar instâncias) e scale in (remover instâncias ociosas).

Sem mais delongas, vamos para o nosso tutorial!

Passo a passo

  1. Acesse a console da AWS e pesquise por Auto Scaling Groups

  1. Clique no botão Criar grupo do Auto Scaling

  1. Escolha um nome para o grupo e escolha um modelo de execução

Na página seguinte, será necessário escolher um nome para o Grupo de Auto Scaling. Coloquei como Grupo-teste

Além disso, é necessário criar um modelo de execução (launch template). Para isso, basta clicar na opção Criar um modelo de execução._

  1. Configurar o modelo de execução

Será aberta uma nova janela, onde iremos criar um template. Vamos definir as seguintes configurações do template:

  • Nome: coloquei como TemplateTeste

  • Imagem de aplicação de sistema operacional: selecione a Ubuntu Server 24.04 LTS

  • Tipo de instância: t2.micro

  • Par de chaves: caso você tenha feito o tutorial de como criar uma EC2 (e ainda tiver o arquivo .pem gerado), você pode selecionar a mesma chave criada. Se não tiver, crie uma nova.

  • Configurações de rede: marque "Criar grupo de segurança" e inclua as regras de segurança para abrir as portas para SSH, HTTP e HTTPS

  • Armazenamento: não altere nada

Mais abaixo, clique em "Detalhes avançados". Em Dados do usuário insira o seguinte script:

#!/bin/bash
sudo apt update -y
sudo apt install -y apache2
sudo systemctl start apache2
sudo systemctl enable apache2
echo "`<h1>` Ola mundo! Este e o servidor: $(hostname -f)`</h1>`" | sudo tee /var/www/html/index.html > /dev/null

P.S.: Em outros tutoriais, esse script nos será útil.

E clique em Criar modelo de execução.

  1. Criando o grupo de Auto Scaling

Retorne a página do Auto Scaling e selecione o template criado. Clique em  Próximo_****

Em Rede, vamos marcar todas as Zonas de Disponibilidade (AZs). Como eu estou utilizando a região de Ohio (us-east-2), selecionei as três AZs referentes a essa região.

Depois, clique em  Próximo_.

Como não vamos definir nenhum balanceador de carga, clique novamente em  Próximo_****

  1. Defina as configurações de escalabilidade

Esse passo aqui é muito importante, pois vamos definir qual é a quantidade mínima de instâncias necessárias para a nossa aplicação rodar.

  • Capacidade desejada: 3
  • Capacidade mínima desejada: 2
  • Capacidade máxima desejada: 4

Para este tutorial, não vamos definir nenhuma política de manutenção de instâncias. Portanto, desça até ao final da página.

  1. Rever e criar grupo

Em seguida, clique em Pular para a revisão e depois clique em Criar grupo do Auto Scaling

Se deu tudo certo, o grupo foi criado, conforme imagem:

  1. Verificar as instâncias

Ao criar o grupo, automaticamente as instâncias são criadas. Você pode ir até ao painel da EC2 e ver que temos três instâncias em execução (cada uma em uma AZ diferente).

Agora, vamos deletar duas instâncias para ver o que acontece - lembre-se de confirmar a exclusão.

Em seguida, clique no ícone de loading para atualizar a página. Agora temos somente uma instância rodando...

Como nossa capacidade mínima foi definida para duas instâncias, observe que ao deletarmos duas do nosso grupo, imediatamente outra instância já é iniciada. E em poucos minutos ela já está em execução:

Essa é a mágica do Auto Scaling.

  1. Limpando o ambiente

Agora que já vimos como o Auto Scaling funciona, vamos limpar o ambiente. Se você tentar excluir as instâncias diretamente pelo painel do EC2, elas irão retornar tal qual um morto-vivo em um filme de terror...

Por isso, antes de excluir a instância, precisamos deletar o Grupo de Auto Scaling:

Confirme a exclusão do grupo:

Por padrão, todas as instâncias do grupo também serão deletadas. Você também pode apagar o modelo de execução (template) criado.

Bons estudos!

Documentação

Criando uma instância EC2 na AWS

· 5 min para ler
Ludmila Silva
Cloud & DevOps Engineer

Um dos serviços mais famosos da AWS é o Amazon Elastic Compute Cloud, popularmente conhecido como EC2. Ele disponibiliza uma capacidade computacional escalável sob demanda, reduzindo os cursos de hardware e permitindo implantar e testar soluções em poucos cliques.

Mais do que um simples servidor, o EC2 permite:

  • Criar instâncias
  • Armazenar dados em volumes virtuais (EBS - Elastic Block Store)
  • Distribuir carga de trabalho (ELB - Elastic Load Balance)
  • Escalar o serviço de acordo com a demanda (ASG - Auto scaling group)

Passo a passo

  1. Acesse a console da AWS e pesquise por EC2

  1. Clique no botão "Executar instância"

  1. Escolha um nome para a sua instância

Não tem muito segredo. No exemplo, escolhi o nome genérico de "instancia-teste".

  1. Escolha dentre as Imagens de aplicação e sistema operacional (AMI)

Para o nosso tutorial, vamos escolher o Sistema Ubuntu Server 24.04 LTS. Mas você pode escolher outro sistema operacional que preferir.

Note, no entanto, que a imagem selecionada deve ser qualificada para o nível gratuito da AWS - afinal, não queremos cobranças, certo?

  1. Em Tipo de instância, selecione a t2.micro

  1. Logo abaixo, em Par de Chaves, clique em Criar novo par de chaves

Será aberta uma janela pop-up para que você defina as configurações da chave SSH:

  • Um nome para o par de chaves
  • Tipo: RSA
  • Formato: .pem

Por fim, clique no botão Criar par de chaves. Será feito um download automático do arquivo no formato .pem. Guarde bem esse arquivo.

  1. Em seguida, em Configurações de Rede, clique em "Editar"

Certifique-se de que a opção Criar grupo de segurança esteja marcada.

Criando Grupos de Segurança

Os grupos de segurança (Security groups) atuam como uma espécie de Firewall, controlando o tráfego de entrada e saída de uma instância do Amazon EC2.

Por padrão, um grupo de segurança nega todo o tráfego de entrada e permite todo o tráfego de saída.

Para o nosso laboratório, vamos permitir os seguintes acessos:

  • SSH, pela porta 22
  • HTTP, pela porta 80
  • HTTPS, pela porta 443

Para isso, logo abaixo da opção "Criar grupo de segurança", altere o Nome do grupo de segurança para um nome de sua preferência (eu coloquei Sg-teste mesmo).

Como a regra para o protocolo SSH já aparece, você manter exatamente do jeito que está e clicar no botão Adicionar regra de grupo de segurança:

Em seguida, selecione:

  • Tipo: HTTP
  • Tipo de origem: Qualquer lugar

E depois clique novamente em Adicionar regra de grupo de segurança.

Selecione o tipo HTTPS e a origem qualquer lugar. E pronto, seu Grupo de segurança está criado.

  1. Na mesma página, mais abaixo em "Configurar armazenamento", mantenha o padrão de 1 volume com 8 GiB.

  1. Execute a instância

No seu lado direito, há um resumo das configurações da instância. Verifique se está tudo certo e clique em Executar instância

Voilá, instância criada com sucesso! Você pode ver informações da instância no painel do EC2.

Para validar, vamos fazer um acesso a essa instância e brincar um pouquinho.

Acessando a instância

Nesse momento, podemos usar duas formas para acessar a instância:

  • Pela console, via Instance connect;
  • Ou pelo terminal, usando a chave SSH criada.
  1. Para acessar via Instance connect, clique no botão "Conectar" do lado direito do painel da instância.

Há um aviso dizendo que a porta SSH está aberta, mas ignore (vamos tratar dessas questões de segurança em outros tutoriais).

Desça na página e clique no botão Conectar:

Será aberta uma nova janela no navegador, conforme imagem:

Para testar, digite o comando pwd. Você pode também usar os comandos:

### Atualizar os pacotes
sudo apt update

## Listar o conteúdo do diretório com detalhes
ls -lha

## Instalar o Apache
sudo apt install apache2 -y
  1. Outra forma de acessarmos é pelo terminal, usando a chave SSH criada anteriormente (aquela mesmo que você fez o download)

Primeiro, vamos precisar do IP público da instância. Você irá encontrar o IP no painel da instância, tal qual como no exemplo:

Copie o IP da sua instância.

Em seguida, vá até o local em que sua chave foi baixada no seu computador, abra um terminal e execute o comando:

ssh -i nome_da_chave.pem ubuntu@ip_publico_da_instancia

Vai ficar assim, como na imagem:

Se a mensagem acima apareceu para você, então conseguiu se conectar com sucesso a sua instância EC2. Você pode testar comandos, instalar pacotes e brincar um pouco.

Ao final, lembre-se de limpar o seu ambiente - isso é, excluir sua instância. No painel EC2 na AWS, clique em Estado da instância:

Depois, clique em Encerrar (excluir) instância"._ Uma janela de confirmação será aberta, clique em "_Encerrar (excluir).

Pronto! Sua instância será encerrada.

Bons estudos!

Documentação

5 boas práticas de segurança no IAM

· 5 min para ler
Ludmila Silva
Cloud & DevOps Engineer

A segurança dos dados (e recursos) é uma preocupação crucial tanto a nível individual quanto para empresas, especialmente no ambiente em nuvem. E não seria exagero dizer que uma das áreas mais críticas em relação a proteção é o gerenciamento de acessos e identidades - no caso da AWS, feito pelo IAM - pois é por ele que podemos controlar quem ou que tem acesso aos recursos.

Como é melhor prevenir do que remediar, reuni aqui 5 recomendações de boas práticas de segurança para o AWS IAM:

1) Jamais compartilhe o usuário raiz

Nem com a sua conta pessoal, muito menos na empresa em que você estiver trabalhando: nunca, JAMAIS compartilhe a conta raiz (root account)!

Imagine o estrago que alguém mal intencionado pode fazer com acesso a todos os recursos da AWS? Ou ao seu cartão de crédito? Agora imagine o mesmo cenário ocorrendo para uma empresa... É verdadeiramente assustador.

Por isso, é ideal que qualquer outra ação que não necessite de privilégios do usuário raiz - e posso dizer que isso vai ocorrer em raras ocasiões - seja executada por outros usuários do IAM. Em outras palavras, crie um usuário do IAM com as permissões de acesso necessárias a ele.

Por exemplo, as políticas de acesso mais indicadas para associar ao usuário que você vai criar são a AdministratorAccess e PowerUserAccess. É claro que existem outras políticas e você mesmo pode criar as suas, mas já é um bom começo. Com isso, você não vai precisar usar a conta raiz para seus estudos ou seu trabalho.

Dessa forma, você estará seguindo o Princípio do menor privilégio (least privilege principle), que se trata de conceder ao usuário somente aquilo que é necessário para ele executar suas tarefas.

2) Habilite o MFA na sua conta

A autenticação multifator (MFA) é um recurso que solicita ao usuário seguir algumas etapas de autenticação que vão além do simples colocar o usuário e senha e logar.

Para tal, um dispositivo externo gera uma "senha" para liberar esse acesso - pode ser por SMS, e-mail, ou um app de autenticação. Isso adiciona uma camada de segurança extra, mitigando o acesso não autorizado a uma conta.

Na AWS, é muito importante que a sua conta raiz e as outras contas de usuário tenham o MFA habilitado. Você pode usar um virtual MFA device (um app como o Microsoft Authenticator, por exemplo) ou por um U2F (security key externa).

No IAM, há a opção de habilitar o MFA, no painel do usuário:

3) Crie grupos

Uma prática muito recomendada é criar grupos no IAM de acordo com as necessidades específicas de cada função ou departamento de uma empresa, atribuindo a eles as permissões por meio de políticas anexadas.

Por exemplo, você pode criar os grupos de Desenvolvedores, Suporte, DevOps, etc. Com isso, os usuários inseridos nesses grupos herdam as permissões de acesso do grupo. Ou seja, se o usuário é um desenvolvedor, ele deverá ser adicionado ao grupo Desenvolvedores e terá todas as permissões e restrições do grupo.

Além de ser uma boa prática de segurança, essa medida simplifica o gerenciamento de usuários e acessos, e garante também o princípio do menor privilégio.

4) Padronize e mude as senhas periodicamente

Nada de senhas fáceis, eternas e que nunca mudam! Por serem a primeira linha de defesa contra acessos não autorizados, nada melhor do que usar uma senha forte e robusta para assegurar esse nível inicial de segurança.

É interessante que você estabeleça uma política de senhas para os usuários do IAM, tais como:

  • Tamanho mínimo das senhas
  • Uso de letras maiúsculas, minúsculas e números
  • Uso de caracteres especiais

Além disso, você pode implementar a expiração periódica das senhas, permitindo que haja uma rotação das mesmas. No IAM, você pode especificar um período dentre 1 a 1.095 dias para que as senhas de usuário do IAM permaneçam válidas após serem definidas.

5) Monitore as atividades do IAM

Em determinadas ocasiões pode ser interessante rastrear ou identificar alguma atividade do IAM - quem nunca deletou um banco de dados sem querer, não é mesmo? Rsrs...

Na AWS, há um serviço de governança que possibilita realizar a auditoria das chamadas de API, o CloudTrail. Em poucas palavras, ele atua como um "fofoqueiro" que registra e mostra todas as atividades - ou seja, você pode saber quem deletou um Bucket S3, por exemplo.

Com ele, você pode registrar ações dos usuários do IAM. Por padrão, ele captura os eventos de gerenciamento sem custos, armazenando-os por até 90 dias para consultas rápidas.

Uma forma de fazer esse registro é criar uma trilha para capturar Eventos de gerenciamento e armazena-los em um Bucket S3. [Logo colocarei um passo a passo aqui no blog].

Depois de criar a trilha, você pode revisar regularmente os logs no CloudTrail ou ativar o Amazon CloudWatch para definir alarmes baseados em eventos críticos, de modo a garantir que qualquer comportamento suspeito seja imediatamente identificado.


Essas foram algumas dicas básicas de segurança para o AWS IAM.

Bons estudos!

Documentação

Usando o AWS Pricing Calculator

· 2 min para ler
Ludmila Silva
Cloud & DevOps Engineer

Um dos passos mais importantes durante a adoção da Computação em Nuvem é fazer uma estimativa dos custos. Isso se faz muito útil principalmente quando se trata de projetos de migração de serviços no modelo on premises para a nuvem.

Para realizar esse análise, a AWS fornece o AWS Princing Calculator, que é uma ferramenta que permite estimar os custos da utilização dos serviços da AWS. Isso ajuda a entender e planejar os custos antes de implementar uma solução em nuvem.

O Pricing Calculator permite:

  • Criar estimativas personalizadas
  • Planejar orçamentos e projetos
  • Comprar opções de configuração
  • Salvar e compartilhar as estimativas criadas

Para exemplificar, vamos criar uma estimativa dos seguintes serviços:

  • Duas instâncias EC2 t3.medium com 2 vCPU, 4 GiB de RAM
  • Outras carcterísticas: instâncias compartilhadas, para uso constante

Passo a passo

  1. Acesse o link: https://calculator.aws/ e clique em "Criar estimativa"

  1. Em "Adicionar serviço", escolha por Região, no Leste dos EUA (Norte da Virgínia) e pesquise por EC2

  1. Na pagina seguinte, forneça as especificações da EC2:
  • Locação: instâncias compartilhadas
  • Sistema operacional: Linux
  • Cargas de trabalho: uso constante
  • Número de instâncias: 2

Em instâncias do EC2, procure por t3.medium:

  1. Mais abaixo, em opções de pagamento, selecione:
  • Sob demanda
  • Uso: 100
  • Tipo de uso: horas /mês
  1. Ainda na mesma página, abra a aba "Amazon Elastic Block Store (EBS) - opcional"
  • Selecione o SSD de uso geral (gp3), com quantidade de armazenamento de 100 GB
  1. Por fim, clique em "Salvar e compartilhar resumo".

Sua estimativa foi criada com sucesso! Você ainda pode exportar em formato csv, pdf ou Json.

Documentação

O que é FinOps e por que é importante conhecer?

· 6 min para ler
Ludmila Silva
Cloud & DevOps Engineer

Ah, a maravilha da Computação em Nuvem! Certamente, você já deve ter ouvido - e muito! - sobre os diversos benefícios de usar os recursos e serviços que a nuvem oferece, tais como:

  • Provisionar ambientes e recursos com poucos cliques;
  • Escalabilidade e elasticidade;
  • Redução aparente de custos;
  • Segurança;
  • Entre outros.

No entanto, o outro lado dessa moeda é que muitas organizações possuem recursos em nuvem não utilizados ou pouco otimizados que podem gerar surpresas desnecessárias na fatura ao final do mês. Aí, o que era um sonho se torna um terrível pesadelo e o descontrole orçamentário passa a ser quase uma regra.

O fato é que a nuvem trouxe um modelo diferente de alocação de recursos e organização de despesas, trazendo desafios para a gestão financeira tradicional. Além disso, o ambiente em nuvem está em constante transformações. Então, para lidar com os desafios financeiros e transformar processos é que surge o FinOps.

O que é FinOps?

"FinOps é uma prática cultural e estrutura operacional que busca maximizar o valor comercial da nuvem, permitindo a tomada de decisões baseadas em dados e criando responsabilidade através da colaboração entre as equipes envolvidas" - adaptado de FinOps Foundation

Podemos dizer que FinOps é essencialmente uma prática cultural de gerenciamento financeiro na nuvem. Mais do que o simples controle financeiro dos gastos de T.I., o FinOps envolve a responsabilidade financeira e permite que as equipes de engenharia, finanças e negócios se comprometam a trabalhar em conjunto.

Um ponto importante aqui é que sem a colaboração contínua entre os departamentos envolvidos, o FinOps não acontece - ou melhor, não é possível maximizar o desempenho, a utilização e obter os tão sonhados benefícios da nuvem.

É a partir dessa colaboração que é possível garantir que os recursos em nuvem sejam alocados de maneira eficiente, com uma melhor visibilidade dos custos, previsão orçamentária e possibilitando impulsionar a inovação e crescimento da organização e do negócio.

Ciclo de vida

O FinOps funciona de forma iterativa através de um ciclo de vida composto de três etapas. Esse ciclo tem como objetivos desenvolver estratégias contínuas e refinar os fluxos de trabalho. Além disso,  medindo os resultados obtidos e fazendo melhorias ao longo do processo e, por consequência, ir amadurecendo ao percorrer essas fases.

FinOps Lifecycle - Fonte: FinOps Foundation

Sendo assim, o ciclo de vida FinOps é composto pelas seguintes fases:

  • Informar: nesta fase, as ações envolvem a coletar, monitorar e entender a situação atual em relação aos recursos utilizados e onde eles estão alocados na nuvem. O essencial nessa fase é ter uma visão realista gastos, utilizando dashboards, relatórios e ferramentas de análise para obter um entendimento claro e transparente dos custos.
  • Otimizar: após ter mais clareza sobre o que e onde está sendo gasto, surgem oportunidades para otimizar o ambiente em nuvem. Algumas ações incluem o redimensionamento ou desativação de recursos que desnecessários, por exemplo. Também é importante considerar os descontos de compromisso e modelos de precificação que os provedores oferecem. A ideia aqui é "fazer mais com menos", garantindo que os recursos sejam usados de maneira inteligente e eficiente para maximizar o retorno do investimento.
  • Operar: nesta fase, o objetivo é garantir a implementação das mudanças, ou seja, com um forte foco em governança. As equipes buscam manter a eficiência e monitorar constantemente os gastos, ajustando as práticas conforme necessário. Há um fluxo contínuo de melhorias e adaptações que buscam suportar as necessidades de negócios em constante mudança.

Modelo de Maturidade

Podemos dizer que o FinOps se aperfeiçoa com a prática, sendo uma abordagem iterativa. Assim, temos um modelo de maturidade que permite às organizações começarem em pequenos passos e crescerem em escala. Esse modelo é dividido em três estágios:

  • Rastejar (Crawl): se refere ao início da adoção das práticas de FinOps. Nesse estágio, é muito comum que as empresas tenham pouca ou quase nenhuma visibilidade dos seus custos em nuvem, e raramente utilizam ferramentas e processos para monitorar os gastos. Dessa forma, o foco nessa etapa está aprender a gerenciar seus custos, definindo métricas básicas e estabelecendo uma base sólida.
  • Andar (Walk): nesse estágio, já há uma compreensão mais clara dos custos em nuvem. É o momento de começar a implementar processos mais estruturados para gerenciar os gastos. As equipes envolvidas começam a colaborar de forma mais ativa, utilizando ferramentas automatizadas de monitoramento e relatórios para otimizar os recursos.
  • Correr (Run): nesse estágio, as práticas de FinOps estão totalmente integradas à cultura da empresa. As equipes trabalham de forma ágil e colaborativa, utilizando dados em tempo real para tomar decisões assertivas. Ademais, a organização consegue maximizar o valor de seus investimentos e adaptar-se rapidamente às mudanças no mercado.

A importância do FinOps

Agora que tivemos uma visão geral sobre FinOps, podemos entender por que é importante. Conhecer sobre FinOps é essencial para qualquer organização que utiliza serviços em nuvem, pois oferece uma abordagem estruturada para gerenciar e otimizar os gastos.

Além de proporcionar uma visão detalhada dos custos, o FinOps promove a colaboração eficiente entre as equipes envolvidas, garantindo que os recursos em nuvem sejam alocados de forma estratégica e econômica.

Com a crescente complexidade e escala das operações em nuvem, o conhecimento de FinOps permite que as empresas mantenham o controle financeiro, evitando desperdícios e maximizando o retorno sobre os investimentos.

Em um cenário onde a agilidade e a inovação são extremamente fundamentais, entender e implementar práticas de FinOps permite às organizações equilibrar seus custos e performance, apoiaando decisões informadas e suportando um crescimento sustentável e bem administrador.

Como aprender mais

Evitando surpresas desagradáveis na sua conta com o AWS Budgets

· 3 min para ler
Ludmila Silva
Cloud & DevOps Engineer

Uma das maiores preocupações quando estamos estudando com a AWS são as possíveis cobranças que podem ocorrer na conta, especialmente porque os valores cobrados são em dólar.💸

Por isso, para evitar essas surpresas desagradáveis, podemos fazer uso de um serviço essencial da AWS: o AWS Budgets.

O AWS Budgets permite definir orçamentos específicos para rastrear os custos e o uso dos seus serviços na AWS. Ele é ideal para orçar os custos ANTES deles serem incorridos.

Com o Budgets , podemos criar ações personalizadas para evitar gastos excessivos. Além disso, podemos configurar alertas por email ou SMS quando o custo real ou previsto ultrapassar o limite do orçamento estabelecido.

Agora que sabemos o que o Budgets, é hora de colocar a mão na massa. Bora lá?

Passo a Passo

  1. Acessar a console AWS e pesquisar por Budgets

Vai aparecer a seção de Gerenciamento de cobrança e custos (Billing and cost management), mas é preferível ir direto em Budgets, como na imagem:

  1. No painel do Budgets, clique no botão Criar orçamento

Na página seguinte, em Escolher tipo de orçamento, existem as seguintes opções de configuração (na imagem):

Então, vamos preencher nosso orçamento com as seguintes informações:

  • Configuração do orçamento: Usar um modelo (simplificado)
  • Modelos: Orçamento de custo mensal
  • Nome do orçamento: aqui você pode escolher o nome que preferir - eu coloque no exemplo "Meu orçamento"
  • Insira o valor orçado: 1
  • Destinatários de e-mail: digite o e-mail que você quer receber seus alertas

Note que nas opções acima nós definimos um modelo de orçamento, que se baseia em um custo mensal e tem o valor limite de $ 1 (um dólar). Nesse orçamento, todos os produtos da AWS estão no escopo.

Além disso, vamos receber notificações nos seguintes momentos: 1) se o gasto real atingir 85%, 2) se o gasto real atingir 100% e 3) ou se o gasto previsto atingir 100%.

  1. Clique em Criar orçamento e pronto! Seu orçamento foi criado.

Para título de curiosidade, deixo um exemplo dos detalhes que o Budgets apresenta de um orçamento (no meu caso, lá se foram uns centavinhos por causa do NAT Gateway 😐).

Bônus: Orçamento de gasto zero

Como nosso objetivo é não gastar nem um centavo (se possível), vamos criar também um orçamento de gasto zero.

Para isso, clique novamente no botão "Criar orçamento" no painel do Budgets:

E preencha as seguintes informações:

  • Configuração do orçamento: Usar um modelo (simplificado)
  • Modelos: Orçamento de gasto zero
  • Defina um nome para o seu orçamento
  • Destinatários de e-mail: digite o e-mail que você quer receber seus alertas
  1. Clique em Criar orçamento

Voilá! Agora temos 2 orçamentos criados no Budgets

O interessante é que você vá construindo seus orçamentos conforme a sua necessidade. No meu caso, eu tenho um orçamento dentro dos meus limites estabelecidos para uso na AWS - alguns laboratórios vez ou outra necessitam de serviços que são cobrados, então é bom ficar de olho nisso.

Bons estudos!

Documentação

Criar um usuário no AWS IAM

· 4 min para ler
Ludmila Silva
Cloud & DevOps Engineer

Um dos principais serviços da AWS, o IAM (Identity and Access Management) permite criar e gerenciar usuários e grupos, além de atribuir ou revogar permissões de acesso aos recursos.

Para entendermos melhor a importância do IAM e por que devemos criar um usuário, primeiro precisamos entender que quando criamos a nossa conta na AWS, essa conta é chamada de conta raiz (root account). Essa conta contém todos os nossos dados pessoais, dados de faturamento, cartão de crédito e acesso total ao console AWS - e, por conseguinte, a todos os recursos da conta.

Porém, no dia a dia, não é ideal que essa conta seja usada e nem compartilhada com outras pessoas. Até mesmo para os estudos e laboratórios é recomendável usar outra conta que não seja a conta raiz. Por isso, é essencial criar usuários e grupos de acordo com a necessidade, função e definir os níveis de acesso dos mesmos. Essa prática compõe o que chamamos de princípio do menor privilégio, ou seja, dar acesso somente ao que o usuário necessita usar.

Dito isto, vamos ao passo a passo de como criar um usuário no IAM. (Ah, e se você não tem uma conta na AWS, pode seguir este tutorial aqui para criar sua conta).

IAM → criar usuário → selecionar “Quero criar um usuário do IAM” → configurar as senhas → inserir em um grupo ou criar novo grupo com a política desejada

Passo a passo

  1. Faça login na console AWS e pesquise por IAM

Clique em "Usuários" - pode ser tanto na barra lateral esquerda ou no número de usuários que aparece em Recursos do IAM, conforme imagem:

  1. Clique no botão "Criar usuário"

  1. Na página seguinte, defina as credenciais
  • Especifique o nome do usuário
  • Marque a caixa: Fornecer acesso para os usuários ao Console
  • Selecione a opção: Quero criar um usuário do IAM

Em seguida, defina uma senha para a conta.

OBS: um ponto importante é deixar marcada a opção para o usuário criar uma nova senha no momento em que for fazer o primeiro login - o que é uma prática de segurança comum. Como estamos criando uma conta para uso próprio, a caixa "Os usuários devem criar uma nova senha" pode ser desmarcada.

Clique em "Próximo"

  1. Na página seguinte, você deverá fornecer as permissões da conta

Selecione a opção "Anexar políticas diretamente"

Na AWS, as permissões ou restrições de um usuário, grupo ou função do IAM são definidas por políticas (policies). Essas políticas se tratam de documentos escritos em formato JSON com o detalhamento dos recursos e das permissões e restrições, e que devem ser anexados a um usuário grupo ou função.

A AWS possui uma lista bem grande de políticas próprias, ou seja, que são gerenciadas pela AWS. Porém, você também pode criar as suas políticas também.

No nosso caso, vamos pesquisar pela política de PowerUserAccess e selecioná-la. Depois disso, clique em "Próximo".

OBS²: é comum que as pessoas usem a política de AdministratorsAccess para o usuário. A principal diferença entre ela e a PowerUser, é que o Administrator tem permissão para gerenciar usuários e grupos.

  1. Revisar e criar o usuário

Na página seguinte, teremos as informações gerais do usuário, com as políticas de persmissões anexadas a ele. Nesse momento, podemos também definir tags (etiquetas) para ajudar na identificação, organização e controle dos recursos na AWS - mas isso é opcional.

Se tudo estiver certinho, clique em "Criar usuário".

  1. Salvar as credenciais

Após criar o usuário, há uma tela com os detalhes de login (usuário e senha) e a URL de acesso a console. Você pode baixar esses dados em um arquivo formato .csv e clicar no botão "Retornar à lista de usuários".

Pronto, seu usuário foi criado com sucesso no IAM! Você pode testar abrir uma aba anônima no seu navegador e fazer login na console AWS.

Documentação