Pular para o conteúdo principal

21 publicações com a etiqueta "AWS"

Ver todas as etiquetas

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

Ler artigo

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

Ler artigo

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

Ler artigo

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

Ler artigo

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

Ler artigo

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

Ler artigo

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

Ler artigo

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

Ler artigo

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

Ler artigo

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.

Ler artigo