AWS oferece uma série de recursos relacionados ao processamento de tarefas. Em geral, estes recursos oferecem CPU e RAM para a execução de tarefas na nuvem. Embora EC2 seja um dos recursos mais conhecidos desta classe de serviços da Amazon AWS, existem muitos outros serviços de processamento em nuvem os quais iremos descrever neste artigo.

Os serviços que vamos explorar neste artigo são:

  • EC2 – Elastic Compute Cloud
  • ECS – Elastic Container Service
  • ECR – Elastic Container Registry
  • EKS – Elastic Container Service for Kubernetes
  • AWS Beanstalk
  • AWS Lamba
  • AWS Batch-CF
  • Amazon Lightsail

Todos estes serviços estão relacionados à classe de compute services da Amazon AWS.

Elastic Compute Cloud (EC2)

EC2 é um dos principais serviços da classe “compute” da Amazon AWS. EC2 permite que você crie servidores virtuais (EC2 instances) no seu ambiente de computação em nuvem AWS. Ao criar uma EC2 instance temos os seguintes componentes:

Amazon Machine Images (AMI)
São imagens (templates) de instâncias EC2 (pode incluir sistema operacional, aplicações e configurações específicas). É possível criar uma nova instância EC2 a partir de uma AMI. Existem diferentes tipos de AMIs:

  • Quick Start: São imagens disponibilizadas pela AWS com configurações mais usadas
  • AMIs do usuário: Você pode criar uma AMI com suas próprias configurações
  • AWS Marketplace: Imagens de fornecedores específicos (Barracuda, Citrix, etc)
    Community AMIs: Imagens criadas por outras contas AWS

Instance Types
Define informações como: vCPUs, processador, memória, storage, velocidade de rede, etc. AWS classifica as várias opções de instâncias em diferentes family types (general purpose, GPU instance, memory optimizes, etc)

Instance Purchasing Options
Existem diferentes formas de contratar uma instância EC2.

  • On demand instances
    Ideal para serviços sob demanda e, por suposto, possui o custo mais alto.
  • Reserved instances
    Permite que você contrate uma instância EC2 por tempo determinado. Existem três opções nessa categoria:

    • All Upfront (pagamento para usar a instância por 1 A 3 anos por um custo reduzido)
    • Partial Upfront (paga-se por menos tempo e, consequentemente, consegue-se menos desconto)
    • No upfront (menor desconto das três opções)
  • Scheduled instances
    Neste modelo as instâncias são criadas de acordo com um agendamento recorrente previamente definido. Por exemplo, todo dia das 10h às 13h.
  • Spot instances
    Este tipo de instância se aproveita de recursos não utilizados (em hold) pela AWS para reduzir custo. No entanto, se a demanda da AWS subir e for necessário utilizar os recursos alocados para uma Spot instance, então esta instância será interrompida sem aviso prévio.
  • On-demand capacity reservations
    Permite que você faça reserva de uma determinada quantidade de recursos, garantindo que você sempre terá estes recursos disponíveis quando precisar utilizá-los. Você pode combinar este tipo de instância com as reserved instances.

Tenancy
Refere-se ao local em que sua instância será alocada.

  • Shared tenancy
    Uma instância EC2 pode ser alocada em qualquer host AWS, mesmo que este host já tenha alocado outras instâncias EC2 de outras contas AWS.
  • Dedicated tenancy
    Podem ser de dois tipos:

    • Dedicated instances
      Este tipo de instância é alocada de um host que nenhuma outra conta AWS tem acesso. No entanto, o hardware pode ser usado por outros recursos contratados na sua conta AWS
    • Dedicated hosts
      O host é dedicado à sua conta AWS e você pode alocar várias instâncias EC2 na mesma máquina.

User Data
Permite que você especifique comandos que serão executados no momento em que a instância é alocada. Por exemplo, você instalar softwares adicionais assim que a instância for iniciada.

Storage Options
Você pode configurar uma instância EC2 com as seguintes opções de storage:

  • Persistence storage
    Você pode criar volumes EBS para este propósito
  • Sphemeral storage (temporário)
    Criados pela própria instância e conhecidos como local storage

Mais informações sobre storage podem ser encontradas neste post: https://hackinganalytics.com/2020/01/21/aws-storage-e-data-services/

Security
Nesta etapa será solicitado que você configure o Security Group associado à instância.
Mais informações sobre SG podem ser encontradas neste post: https://hackinganalytics.com/2020/01/27/aws-vpc-virtual-private-cloud/

No fim do processo de criação de uma instância EC2, você deve criar uma key pair (public + private key) para que seja possível acessar a instância posteriormente (caso já tenha uma key pair, é possível reutilizá-la).

ECS – Elastic Container Service

Este serviço permite a execução de docker containers em um cluster formado por instâncias EC2. Um docker container possui tudo que uma determinada aplicação precisa para ser executada, Um container se difere se uma virtual machine pelo fato de não possuir um sistema operacional.

Existem duas opções para definir o tipo de cluster onde sua aplicação será executada:

  • Fargate Launch
    Apenas especifica parâmetros como CPU, memória, configurações de rede e imagens (IAM). Depois, basta fazer deploy de sua aplicação dentro de um container.
  • EC2 Launch
    Permite configurações mais detalhadas de cada instância.

O monitoramento do cluster pode ser feito por meio do Amazon CloudWatch.

Por fim, vale destacar que este serviço é restrito à região que você escolheu durante a configuração. Portanto, ele pode escalar em diferentes Availability Zones, desde que todas pertençam a mesma região.

ECR – Elastic Container Registry

Serviço para armazenar e gerenciar imagens docker. Possui os seguintes componentes:

  • Registry
  • Authorization Token
  • Repository
  • Repository Policies
  • Image

A sequência hierárquica destes componentes seria Registry => Repository => Image.

EKS – Elastic Container Service for Kubernetes

Serviço para deploy de aplicações em Kubernetes containers. Kubernetes possui dois componentes chaves: control plane (responsável por provisionar/gerenciar os containers que serão executados) e worker nodes (EC2 instances, que formam um cluster Kubernetes, onde os containers serão executados). EKS é um serviço que gerencia control plane e worker nodes para que você execute sua aplicação em Kubernetes containers.

Os seguintes passos precisam ser feitos para que você possa começar a trabalhar com EKS:

  • Criar uma EKS service role
  • Criar uma EKS Cluster VPC
  • Instalar o Kubectl (utilitário de comando de linha para Kubernetes) e o AWS-IAM-Authenticator (para autenticação no EKS cluster)
  • Criar um EKS cluster
  • Configurar o kubectl para EKS
  • Provisionar e configurar os worker nodes
  • Adicionar o worker node ao EKS Cluster

AWS Elastic Beanstalk Service

Serviço para fazer deploy de aplicações web. Este serviço pega o seu código de um repositório e provisiona todos os recursos necessários para colocar sua aplicação web no ar. Estes recursos podem ser EC2 instances, Auto Scaling, Elastic Load Balancing, etc.

Elastic Beanstalk é gratuito, porém os serviços que ele provisiona são cobrados de acordo com o esquema de precificação de cada um. Os principais componentes deste serviço são:

  • Application version
    Forma de empacotar a versão da aplicação que será implementada
  • Environment
    Resources para rodar a aplicação
  • Environment configurations
    Configuração de cada resource
  • Environment tier
    Ambiente onde a aplicação será executada (web server ou worker environment)
  • Configuration template
  • Template para criar uma nova Environment Configuration
  • Platform
    É o conjunto de tudo que é necessário para rodar a aplicação. Por exemplo, SO, resources, environment tier
  • Applications
    Coleção de elementos como environment, environment configurations e application version

AWS Lambda

Este é um serviço to tipo serverless. Serverless significa que você não precisa se preocupar com o provisionamento e gerenciamento de recursos para executar sua aplicação. Isso é feito pela AWS.

AWS lambda é um serviço que permite que você execute sua aplicação sem a necessidade de provisionar uma instância EC2. Basicamente, você precisa especificar qual código deve ser executado na ocorrência de um determinado evento (por exemplo, executar um código X quando um novo objeto for salvo em um bucket S3).

Podemos descrever os componentes do AWS Lambda da seguinte forma:

  • Lambda Function
    Uma versão compilado do código que você pretende executar
  • Event source
    Serviços AWS que podem ser usados para acionar Lambda Functions
  • Trigger
    Acionamento do evento. Por exemplo, S3 PUT request
  • Downstream resources
    Provisionamento dos recursos necessários para executar a Lambda Function
  • Log Streams
    Logs relacionados à Função Lambda

AWS Lambda foi configurado como um serviço stateless para que fosse possível carregar a quantidade necessária de cópias de uma determinada função, dada a sua demanda (assim é possível escalar os eventos que chamam este serviço).

AWS Batch

Serviço para execução de processos batch. Este serviço é composto pelos seguintes componentes:

  • Jobs
    Tarefa que deve ser executada
  • Job definitions
    Define como o job é executado e suas configurações (exemplo, memória, vCPUs, etc)
  • Job Queues
    Jobs são alocados em uma fila para execução. Estas filas podem ter diferentes prioridades e recursos associados. Você pode inclusive configurar o AWS Batch para usar Spot instances em algumas filas.
  • Job Scheduling
    Agendamento do job
  • Compute environments
    Ambiente de execução com os recursos necessários para rodar o job

Amazon Lightsail

Versão simplificada de instâncias AWS. Ideal para blogs e pequenas aplicações. Você pode escolher uma plano de pagamento mensal.

Fonte: Cloud Acedemy – AWS Compute Services

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google

Você está comentando utilizando sua conta Google. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s

%d blogueiros gostam disto: