Guia completo dos serviços mais populares da AWS
Tags: aws, devops, amazon
Published: 2023-10-25 00:43:28

A AWS é uma plataforma de serviços de computação em nuvem criada pela Amazon e largamente utilizada pelas empresas mundo afora. Ela disponibiliza para seus usuários dezenas de serviços, para os mais variados usos, com a intenção de atender empresas de pequeno, médio e grande porte. Durante meus estudos teóricos sobre essa plataforma, resolvi compartilhar o resumo de alguns dos principais serviços ofertados por ela.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/66j6rf5yoxgwe60kwq88.png)

Identity and Access Management (IAM) — é quem nos ajuda a controlar, com segurança, o acesso aos recursos da AWS. Com ele, nós precisamos saber quem vai acessar, o que ele pode fazer e como vai fazer. Os componentes presentes no IAM são:

- Users (usuários);
- Groups (grupos de acesso);
- Roles (que são utilizados para liberar acesso a um recurso);
- Policy (acesso que deve ser dado a um user ou roles).

O role-based access control é o modelo de autorização utilizada pela AWS, e que permite liberar o acesso do usuário, levando em conta o seu papel (desenvolvedor, gerente, administrador, entre outros). E, por fim, o attribute-based access control (ABAC) é uma estratégia de autenticação baseada em atributos, que são chamados de tags.

Elastic Compute Cloud (EC2) — este serviço nos fornece um servidor (através de uma máquina virtual), seguro e confiável, dentro do Data Center da AWS. Os tipos de configurações possíveis deste servidor são:

- Uso geral;
- Otimização para computação (ideal para aplicações que necessitam de muito processamento de dados);
- Otimizado para memória;
- Otimizado para armazenamento;
- Computação acelerada (utilizada, por exemplo, para aplicações de inteligência artificial, computação quântica, entre outros).
- Com relação aos custos, a AWS oferece diversos tipos de precificação:

Sob demanda (de acordo com o uso);

- Spot (utiliza uma máquina que está ociosa, tendo um menor custo comparado com a sob demanda. Porém, se o proprietário daquela máquina solicitar seu funcionamento, você será desligado daquela máquina. Por conta disso, é recomendado utilizar apenas em ambiente de desenvolvimento ou teste);
- Reservado (ocorre quando se reserva uma máquina por um determinado período de tempo, como por exemplo, um ano. Assim, a AWS oferece um desconto maior, com base no tempo reservado);
- Compute saving plan (é similar ao reservado, mas nesse caso é possível escolher e trocar diferentes atributos e configurações da máquina reservado, ao longo do período reservado. Como, por exemplo, aumentar a memória ou o processamento, dentro de um range pré-estabelecido);
- Instância dedicada (utilizada quando a empresa quer que uma instância da AWS seja utilizada apenas por ela. Como exemplo de utilização, algumas empresas precisam garantir essa exclusividade, para ficarem aderentes as leis de proteções de dados de alguns países);
- Host dedicado (similar ao anterior, mas é quando a empresa quer reservar uma máquina física dentro dos servidores da AWS, e é onde a empresa colocará suas instâncias dedicadas);

Lightsail — é um serviço que fornece uma instância de servidor privado virtual (VPS), que é fácil de se utilizar e possui um preço mais econômico, se comparado com o EC2. Como ele é um ambiente mais simplificado e econômico que o EC2, é indicado para pequenas aplicações, que não necessitam de configurações avançadas ou mais robustez.

Simple Storage Service (S3) — é um serviço de armazenamento de objetos, oferecem escalabilidade, disponibilidade, segurança e performance. Nele, podemos inserir arquivos de vídeos, imagens, texto, entre outros tipos. O S3 é dividido em algumas classes:

- Standard (é a classe padrão. Quando colocamos um objeto nela, este objeto fica disponível em três zonas de disponibilidade, garantindo um sistema de backup eficaz. Por conta disso, essa é a opção mais segura e mais cara de todas);
- Standard-IA (IA se refere a Acesso Frequente, ou seja, é utilizada para inserirmos objetos que não são consultados constantemente, por conta disso, ele possui um pequeno delay para recuperação desses objetos, se comparado com o Standard, mas ele também possui três cópias do arquivo para backup, em cada uma das zonas de disponibilidade);
- One Zone-IA (é similar ao anterior, mas nele o objeto ficará disponível em apenas uma zona de disponibilidade, ou seja, não possui backup. Por conta disso, é bem mais barato se comparado com as classes anteriores);
- Intelligent Tiering (essa classe escolhe a melhor opção, de forma automática, conforme a disponibilidade e tipos de arquivos armazenados, sendo bastante utilizado para backups);
- Glacier (é um local para armazenamento de longa duração, sendo a opção mais barata dentre as disponíveis. Porém, possui um sistema de lenta recuperação dos objetos, podendo levar até 12 horas para recuperá-lo);
- Glacier Depth Archive (similar ao anterior, mas nele os objetos podem levar até 48 horas para serem recuperados. Por conta disso, essa é a opção mais barata dentre as disponíveis. É indicado para objetos que são acessados raramente, como uma ou duas vezes ao ano).

Elastic Block Store (EBS) — é um serviço de armazenamento em bloco, que é fácil de usar, escalável e de alta performance. Os seus tipos são:

- SSD (uso geral);
- SSD (IOPS provisionado, possui desempenho e custos maiores);
- HDD.

Esse tipo de serviço é cobrado pelo volume que foi provisionado, ou seja, se for criado um volume de 1 TB mas está sendo utilizado apenas 100 Mb, a cobrança será em cima do 1 TB.

Amazon Elastic File System (EFS) — é um serviço de armazenamento de arquivos sem servidor e totalmente elástico, que pode ser utilizado dentro do EC2, ECS, Lambda, entre outros. O EFS é muito robusto, possui um alto desempenho e permite uma alta escalabilidade.

Amazon FSx — possui o mesmo papel que o EFS, porém, é voltado para servidores Windows, que utilizam o protocolo SMP.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/yt1z2mlsjpzrnfkjfthg.png)

Virtual Private Cloud (VPC) — esse serviço permite definirmos uma rede e nela executar os recursos compartilhados da nossa empresa, através de uma rede privada. As subnets são divisões da rede definidas na VPC, onde indicamos em qual rede será executado os recursos computacionais. Como boa prática, a AWS recomenda que se tenha uma subnet privada (que não pode ser acessada diretamente via internet), onde pode ficar os bancos de dados; e uma subnet pública, que é quem se comunicará com a subnet privada e que pode ser acessada via API, por exemplo.

Security Group — é um firewall que controla o tráfego de entrada e saída de recursos (como por exemplo, o E2C, RDS, entre outros). Suas características são:

- Somente regras de liberação;
- Por padrão, o tráfego de saída liberado;
- são stateful (ou seja, quando liberamos o tráfego de entrada, o da saída será liberado junto. E vice-versa).

Network Acess Control List (Network ACL) — é um firewall que controla o tráfego de entrada e saída da subnet. Suas características são:

- Permite regras para liberar ou negar;
- Por padrão, o tráfego de entrada e saída são liberados;
- Não é stateful;
- Seguem uma sequência (o menor número será lido primeiro e, no momento que der match com o tráfego que está ocorrendo naquele momento, não vai ler as demais regras que estão na sequência).

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4yupq3okjegnon458gib.png)

Relational Database Service (RDS) — é um serviço de banco de dados relacionais gerenciado, que facilita a configuração, operação e escalabilidade. Existem duas formas de criarmos um banco relacional na AWS: utilizando o RDS ou criando uma instância EC2 (e dentro dela criar o banco de dados). A vantagem do EC2 é que com ele temos acesso a toda arquitetura de banco de dados que for criado, permitindo o acesso a configurações avançadas. Porém, a desvantagem do EC2 é que isso aumenta a complexidade de manter o banco de dados por nossa conta. A vantagem do RDS é que ele já vem completamente configurado e pronto para uso, além de ser compatível com o PostgreSQL, MariaDB, Oracle e Microsoft SQL Server.

Amazon DynamoDB — é um banco de dados de chave-valor NoSQL totalmente gerenciado, projetado para alta performance, em qualquer escala. Suas características são:

- Totalmente gerenciado;
- Baixa latência;
- Alta disponibilidade;
- Medido por unidade R/W (é uma medida de performance e a cobrança de uso é calculada por leitura e escrita).

Elastic Kubernets Service (EKS) — é um gerenciador de serviços do Kubernets que permite publicar, gerenciar e escalar aplicações de containers utilizando Kubernets, de forma rápida e fácil. É totalmente gerenciado, o que significa que não precisamos nos preocupar com gerenciamento e manutenção, por baixo da infraestrutura. Ele é projetado para alta disponibilidade e escalabilidade, além de suportar escalonamento automático, lançamento contínuo e self-healing (substitui automaticamente as instâncias que estão em falha).

Elastic Container Service (ECS) — é um serviço de gerenciamento e orquestração de containers que permite definir tarefas com containers Docker, criar instâncias de um cluster EC2, além de lançar e gerenciar tarefas com o cluster.

Lambda — é um serviço que permite a execução de códigos sem que seja preciso gerenciar ou provisionar servidores, tornando rápido e fácil a execução de programas. Nesse serviço, o usuário só paga pelo tempo de computação que foi utilizado.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zmax75h12lo47ve1qio9.png)

Simple Queue Service (SQS) — é um serviço que permite transmitir dados para outros serviços usando filas de mensagens (mensageria), com ele, podemos enviar, armazenar e receber mensagens entre componentes de programação, independente do volume, e sem perda de dados. Além disso, é possível configurar uma DQL (Dead-Queue Letter), que é uma outra fila onde as mensagens que falharam durante o processamento são enviadas e podendo criar re-tentativas automáticas ou fazer análises manuais para apurar as causas da falha.