pj

Guia CLF Computação

Índice

O Amazon EC2 é um serviço da web que permite executar “instâncias” virtuais de servidor na nuvem.

 

As instâncias do Amazon EC2 podem executar os sistemas operacionais Windows, Linux ou MacOS.

 

A interface simples de serviço da web do EC2 permite que você obtenha e configure capacidade com o mínimo de atrito.

 

O EC2 é projetado para tornar a computação em nuvem em escala web mais fácil para os desenvolvedores.

 

O Amazon EC2 altera a economia da computação, permitindo que você pague apenas pela capacidade que usa.

 

O Amazon EC2 fornece aos desenvolvedores as ferramentas para criar aplicativos resilientes a falhas e isolá-los de cenários comuns de falhas.

Arquitetura Básica Amazon EC2
Exemplo de arquitetura básica do Amazon EC2

Benefícios do EC2

Características Descrição
Computação elástica em escala Permite aumentar ou reduzir a capacidade computacional e provisionar desde uma única instância até grandes quantidades de instâncias conforme a demanda.
Controle sobre as instâncias Oferece acesso administrativo ao sistema operacional e controle sobre configurações, redes e armazenamento. Instâncias baseadas em Amazon EBS podem ser interrompidas e iniciadas novamente, mas os dados armazenados em volumes do EC2 Instance Store são apagados durante a interrupção.
Configurações flexíveis Permite escolher entre diferentes famílias e tipos de instância, sistemas operacionais, processadores e combinações de memória, computação, armazenamento e capacidade de rede.
Integração com serviços AWS Pode ser integrado a serviços como Amazon S3, Amazon RDS, Amazon VPC, Elastic Load Balancing, Amazon CloudWatch e Amazon EC2 Auto Scaling para a construção de diferentes arquiteturas.
Disponibilidade e confiabilidade Pode utilizar o Amazon EC2 Auto Scaling para substituir instâncias que não estejam íntegras. O SLA regional de 99,99% aplica-se quando as instâncias estão implantadas simultaneamente em duas ou mais Zonas de Disponibilidade. Para uma única instância, o SLA é de 99,5%.
Segurança e redes Trabalha com a Amazon VPC para executar instâncias em redes com intervalos de endereços IP definidos. Grupos de segurança controlam o tráfego dos recursos associados, enquanto ACLs de rede controlam o tráfego no nível das sub-redes. Conexões do AWS Site-to-Site VPN utilizam túneis IPsec.
Opções flexíveis de preço Oferece opções como Instâncias Sob Demanda, Savings Plans, Instâncias Reservadas e Instâncias Spot, permitindo escolher o modelo mais adequado ao padrão de uso da carga de trabalho.

Amazon Machine Image (AMI)

Uma AMI é um tipo especial de aparelho virtual usado para criar uma máquina virtual dentro do Amazon Elastic Compute Cloud (“EC2”).

 

Uma AMI inclui o seguinte:

  • Uma ou mais snapshots EBS, ou, para AMIs baseadas em instância de armazenamento, um modelo para o volume raiz da instância (por exemplo, um sistema operacional, um servidor de aplicativos e aplicativos).
  • Permissões de lançamento que controlam quais contas da AWS podem usar a AMI para iniciar instâncias.
  • Mapeamento de dispositivos de bloco que especifica os volumes a serem anexados à instância quando ela for iniciada.

Categorias de AMIs

  1. AMIs da Comunidade – grátis para uso, geralmente você apenas seleciona o sistema operacional desejado.
  2. AMIs do AWS Marketplace – pagas, geralmente incluem software adicional licenciado.
  3. Minhas AMIs – AMIs que você cria.

Dados do Usuário e Metadados da Instância

  • Dados do usuário são dados fornecidos pelo usuário no lançamento da instância na forma de um script.
  • Metadados da instância são dados sobre sua instância que você pode usar para configurar ou gerenciar a instância em execução.
  • Os dados do usuário estão limitados a 16 KB.
  • Os dados do usuário e os metadados não são criptografados.
  • Os metadados da instância estão disponíveis em http://169.254.169.254/latest/meta-data.
  • A ferramenta de consulta de metadados da instância permite que você consulte os metadados da instância sem precisar digitar o URI completo ou os nomes de categoria.

Preços

  1. Sob-demanda:
    • Bom para usuários que desejam o baixo custo e a flexibilidade do EC2 sem nenhum pagamento antecipado ou compromisso de longo prazo.
    • Aplicações com cargas de trabalho de curto prazo, irregulares ou imprevisíveis que não podem ser interrompidas.
    • Aplicações sendo desenvolvidas ou testadas no EC2 pela primeira vez.
  2. Reservados:
    • Aplicações com uso estável ou previsível.
    • Aplicações que exigem capacidade reservada.
    • Usuários podem fazer pagamentos antecipados para reduzir ainda mais os custos totais de computação.
    • Instâncias Reservadas Padrão (RIs) oferecem até 75% de desconto no preço sob demanda.
    • RIs Convertíveis oferecem até 54% de desconto no preço sob demanda – fornece a capacidade de alterar os atributos da RI se a troca resultar na criação de RIs de valor igual ou maior.
    • RIs Agendadas estão disponíveis para lançamento dentro da janela de tempo que você reserva. Essa opção permite que você ajuste sua reserva de capacidade para um cronograma recorrente previsível que requer apenas uma fração de um dia, uma semana ou um mês.
  3. Spot:
    • Aplicações que têm horários de início e término flexíveis.
    • Aplicações que são viáveis apenas a preços muito baixos de computação.
    • Se a Amazon encerrar suas instâncias, você não paga; se você encerrar, paga pela hora.
  4. Hospedagem Dedicada:
    • Servidores físicos dedicados apenas para seu uso.
    • Você tem controle sobre quais instâncias são implantadas nesse host.
    • Disponível como Sob Demanda ou com Reserva de Host Dedicado.
    • Útil se você tiver licenças de software vinculadas ao servidor que usam métricas como por núcleo, por soquete ou por VM.
    • Cada host dedicado pode executar apenas um tamanho e tipo de instância EC2.
    • Bom para conformidade regulatória ou requisitos de licenciamento.
    • Desempenho previsível.
    • Isolamento completo.
    • Opção mais cara.
    • A cobrança é por host.
  5. Instâncias Dedicadas:
    • Instâncias virtualizadas em hardware apenas para você.
    • Também usa servidores EC2 fisicamente dedicados.
    • Não fornece a visibilidade e os controles adicionais dos hosts dedicados (por exemplo, como as instâncias são colocadas em um servidor).
    • A cobrança é por instância.
    • Pode compartilhar hardware com outras instâncias não dedicadas na mesma conta.
    • Disponível como On-Demand, Instâncias Reservadas e Instâncias Spot.
    • Custo adicional de $2 por hora por região.
  6. Planos de Economia (Savings Plans):
    • Os Savings Plans são um modelo de preços flexível que oferece economias de até 72% no uso de computação da AWS.
    • Este modelo de preços oferece preços mais baixos nas instâncias Amazon EC2, independentemente da família da instância, tamanho, sistema operacional, tenência ou região da AWS.
    • Também se aplica ao uso do AWS Fargate e AWS Lambda.

Tipos de Instância

O Amazon EC2 oferece uma ampla seleção de tipos de instância otimizados para se adequar a diferentes casos de uso.

 

Os tipos de instância compreendem diversas combinações de CPU, memória, armazenamento e capacidade de rede e oferecem a flexibilidade de escolher a mistura apropriada de recursos para suas aplicações.

 

Cada tipo de instância inclui um ou mais tamanhos de instância, permitindo dimensionar seus recursos conforme os requisitos de sua carga de trabalho-alvo.

Tabela de Tipos de Instância

Família Mnemotécnica Propósito Exemplo de uso
D Data Armazenamento local com alta capacidade e alto throughput sequencial. Sistemas de arquivos distribuídos, big data e data warehouses.
R RAM Instâncias otimizadas para memória. Bancos de dados em memória, análises em tempo real e caches distribuídos.
M Main Uso geral, com equilíbrio entre computação, memória e rede. Servidores de aplicações, microsserviços, servidores web e bancos de dados médios.
C Compute Instâncias otimizadas para computação. Processamento em lote, transcodificação de mídia e servidores de jogos.
G Graphics Computação acelerada por GPU para aplicações gráficas. Renderização, estações de trabalho virtuais, streaming de jogos e inferência de aprendizado de máquina.
I IOPS Armazenamento local NVMe com grande quantidade de operações de entrada e saída. Bancos de dados NoSQL, bancos de dados transacionais e mecanismos de pesquisa.
F FPGA Aceleração de hardware personalizável com FPGAs. Pesquisa genômica, análises financeiras, processamento de vídeo e análise de big data.
T Burstable Uso geral com nível básico de CPU e capacidade de utilizar créditos para aumentar temporariamente o processamento. Servidores web, ambientes de desenvolvimento, pequenos bancos de dados e aplicações com picos ocasionais.
P GPU Computação acelerada por GPU para cargas de trabalho intensivas. Treinamento e inferência de inteligência artificial e computação de alto desempenho.
X Extreme RAM Instâncias otimizadas para cargas de trabalho com grande consumo de memória. SAP HANA, bancos de dados em memória e processamento de grandes conjuntos de dados.
U High Memory Instâncias com quantidades muito elevadas de memória, disponíveis em configurações virtualizadas e bare metal. Grandes bancos de dados em memória, especialmente implantações do SAP HANA.
Z High Frequency Alta frequência de processamento, grande capacidade de memória e armazenamento local NVMe. Automação de projetos eletrônicos e bancos de dados relacionais com alto custo de licenciamento por núcleo.
H High Disk Throughput Armazenamento local baseado em HDD com alta capacidade e alto throughput de disco. Sistemas de arquivos distribuídos, Apache Kafka e cargas de processamento de big data.

Amazon Elastic Container Service (ECS)

O Amazon Elastic Container Service (ECS) é outro produto na categoria AWS Compute. Ele fornece um serviço de gerenciamento de contêiner altamente escalável e de alto desempenho que suporta contêineres Docker e permite executar facilmente aplicativos em um cluster gerenciado de instâncias Amazon EC2.

 

O Amazon ECS elimina a necessidade de instalar, operar e dimensionar sua própria infraestrutura de gerenciamento de cluster.

 

Usando chamadas de API, você pode iniciar e interromper aplicativos habilitados para contêineres, consultar o estado completo dos clusters e acessar muitos recursos familiares, como grupos de segurança, balanceamento de carga elástico, volumes EBS e funções IAM.

 

O Amazon ECS pode ser usado para agendar a colocação de contêineres em clusters com base nas necessidades de recursos e nos requisitos de disponibilidade.

 

Um tipo de lançamento do Amazon ECS determina o tipo de infraestrutura em que suas tarefas e serviços são hospedados.

Existem dois tipos de lançamento, e a tabela abaixo descreve algumas das diferenças entre os dois tipos de lançamento:

Amazon ECS com Amazon EC2 Amazon ECS com AWS Fargate
Você seleciona os tipos de instância e fornece a capacidade do cluster por meio de instâncias EC2. Você define a quantidade de CPU e memória da tarefa, e o AWS Fargate provisiona automaticamente a capacidade computacional necessária.
Você é responsável pelo sistema operacional, aplicação de patches, Amazon Machine Images, agente do Amazon ECS e manutenção das instâncias. A AWS gerencia e mantém a infraestrutura subjacente, incluindo atualizações da plataforma. Você continua responsável pelas imagens dos contêineres, definições das tarefas, permissões e configuração da aplicação.
Você precisa dimensionar e otimizar a capacidade do cluster. Capacity Providers e o Amazon ECS Cluster Auto Scaling podem automatizar o aumento e a redução das instâncias. Você não precisa escolher tipos de servidor, dimensionar clusters de máquinas virtuais ou otimizar o agrupamento das tarefas nas instâncias.
Oferece maior controle sobre tipos de instância, sistema operacional, armazenamento, processadores, aceleradores e configurações da infraestrutura. Oferece menos controle sobre a infraestrutura subjacente, e alguns parâmetros disponíveis para tarefas executadas no Amazon EC2 não são compatíveis com o AWS Fargate.

O Registro de Contêiner Elástico (ECR) é um serviço gerenciado da AWS Docker Registry para armazenar, gerenciar e implantar imagens Docker.

 

Não há custo adicional para o Amazon ECS. Você paga pelos recursos da AWS (por exemplo, instâncias EC2 ou volumes EBS) que cria para armazenar e executar sua aplicação.

 

O Amazon ECR é integrado ao Amazon EC2 Container Service (ECS).

 

Com o Amazon ECR, não há taxas antecipadas ou compromissos. Você paga apenas pela quantidade de dados armazenados em seus repositórios e pela transferência de dados para a Internet.

Amazon Elastic Container Service for Kubernetes (EKS)

O Amazon Elastic Container Service for Kubernetes (Amazon EKS) é um serviço gerenciado de Kubernetes que facilita a execução do Kubernetes na AWS sem a necessidade de instalar, operar e manter seu próprio plano de controle do Kubernetes.

O EKS gerencia automaticamente a disponibilidade e a escalabilidade dos nós do plano de controle do Kubernetes, responsáveis por iniciar e interromper contêineres, agendar contêineres em máquinas virtuais, armazenar dados do cluster e outras tarefas.

O EKS detecta e substitui automaticamente nós do plano de controle que estão com problemas para cada cluster.

 

Dica: Se apareceu a palavra-chave Kubernetes no enunciado, procure por EKS nas alternativas.

AWS Lambda

O AWS Lambda é uma tecnologia de computação sem servidor que permite executar código sem provisionar ou gerenciar servidores.

Ele executa código apenas quando necessário e dimensiona automaticamente.

Você paga apenas pelo tempo de computação que consome (não paga nada quando seu código não está em execução).

diagrama aws lambda
Lambda é um serviço de computação sob demanda que executa código personalizado em resposta a eventos

Benefícios do AWS Lambda

  • Sem servidores para gerenciar.
  • Escala contínua.
  • Faturamento por milissegundos.
  • Integra-se com quase todos os outros serviços da AWS.

Principais casos de uso para o AWS Lambda

  • Processamento de dados.
  • Processamento de arquivos em tempo real.
  • Processamento de fluxos em tempo real.
  • Construção de back-ends sem servidor para solicitações web, móveis, IoT e API de terceiros.

Amazon LightSail

O Amazon LightSail é ideal para usuários que não têm uma experiência técnica profunda na AWS, pois torna muito fácil provisionar serviços de computação.

 

Ele fornece aos desenvolvedores capacidade e recursos de computação, armazenamento e rede para implantar e gerenciar sites, aplicativos da web e bancos de dados na nuvem.

 

Inclui tudo o que você precisa para lançar seu projeto rapidamente: uma máquina virtual, armazenamento baseado em SSD, transferência de dados, gerenciamento de DNS e um IP estático.

 

Fornece servidores virtuais pré-configurados (instâncias) que incluem tudo o que é necessário para implantar um aplicativo ou criar um banco de dados. A infraestrutura subjacente e o sistema operacional são gerenciados pelo Amazon LightSail.

amazon lightsail
Interface simples do Amazon LightSail

O Amazon LightSail é melhor adequado para projetos que exigem algumas dezenas de instâncias ou menos e fornece uma interface de gerenciamento simples. É bom para blogs, sites, aplicativos da web, comércio eletrônico, entre outros.

 

Além disso, o Amazon LightSail pode implantar balanceadores de carga e anexar armazenamento em bloco. Ele oferece uma API pública e é limitado a 20 instâncias do Amazon LightSail, 5 IPs estáticos, 3 zonas DNS, 20 TB de armazenamento em bloco, 40 bancos de dados e 5 balanceadores de carga por conta, além de até 20 certificados por ano civil.

 

O Amazon LightSail pode se conectar entre si e a outros recursos da AWS através da Internet pública e de rede privada (VPC peering). Os modelos de aplicativos incluem WordPress, WordPress Multisite, Drupal, Joomla!, Magento, Redmine, LAMP, Nginx (LEMP), MEAN, Node.js e muito mais.

 

Atualmente, o Amazon LightSail suporta 6 distribuições Linux ou semelhantes ao Unix: Amazon Linux, CentOS, Debian, FreeBSD, OpenSUSE e Ubuntu, bem como 2 versões do Windows Server: 2012 R2 e 2016.

Bancos de Dados do Amazon LightSail

Os bancos de dados do Amazon LightSail são instâncias dedicadas à execução de bancos de dados.

 

Um banco de dados do Amazon LightSail pode conter vários bancos de dados criados pelo usuário, e você pode acessá-lo usando as mesmas ferramentas e aplicativos que utiliza com um banco de dados independente.

 

Os bancos de dados gerenciados do Amazon LightSail oferecem uma maneira fácil e de baixa manutenção de armazenar seus dados na nuvem. O Amazon LightSail gerencia uma variedade de atividades de manutenção e segurança para o seu banco de dados e sua infraestrutura subjacente.

 

Possui backup automático do seu banco de dados e permite a restauração em qualquer ponto nos últimos 7 dias usando a ferramenta de restauração de banco de dados.

 

Os bancos de dados estão disponíveis em dois planos: Padrão e Alta Disponibilidade:

  • Os de Alta Disponibilidade adicionam redundância e durabilidade ao seu banco de dados, criando automaticamente um banco de dados de reserva em uma zona de disponibilidade separada.

Os planos do Amazon LightSail são cobrados com base em uma taxa horária sob demanda, então você paga apenas pelo que usa.

  • Para cada plano do Amazon LightSail que você utiliza, é cobrado um preço fixo por hora, até o custo máximo do plano mensal.

AWS Elastic Beanstalk

O AWS Elastic Beanstalk é a maneira mais rápida e simples de colocar aplicativos da web em funcionamento na AWS.

 

Os desenvolvedores simplesmente fazem o upload do código de sua aplicação, e o serviço lida automaticamente com todos os detalhes, como provisionamento de recursos, balanceamento de carga, dimensionamento automático e monitoramento.

aws elastic beanstalk - fluxo de trabalho
Fluxo de trabalho do Elastic Beanstalk

O Elastic Beanstalk é ideal se você tiver uma aplicação web em PHP, Java, Python, Ruby, Node.js, .NET, Go ou Docker.

 

O Elastic Beanstalk usa serviços principais da AWS, como Amazon EC2, Amazon Elastic Container Service (Amazon ECS), Auto Scaling e Elastic Load Balancing para oferecer suporte facilmente a aplicativos que precisam escalar para atender a milhões de usuários.

AWS Batch

O AWS Batch permite que desenvolvedores, cientistas e engenheiros executem facilmente centenas de milhares de trabalhos de computação em lote de maneira fácil e eficiente na AWS.

 

O AWS Batch provisiona dinamicamente a quantidade e o tipo ideais de recursos de computação (por exemplo, instâncias otimizadas para CPU ou memória) com base no volume e nos requisitos específicos de recursos dos trabalhos em lote enviados.

 

Com o AWS Batch, você simplesmente empacota o código para seus trabalhos em lote, especifica suas dependências e envia seu trabalho em lote usando o Console de Gerenciamento da AWS, CLIs ou SDKs.

 

O AWS Batch permite que você especifique parâmetros de execução e dependências de trabalhos e facilita a integração com uma ampla variedade de motores de fluxo de trabalho de computação em lote populares e linguagens (por exemplo, Pegasus WMS, Luigi e AWS Step Functions).

 

O AWS Batch provisiona e dimensiona de maneira eficiente e dinâmica instâncias Amazon EC2 e Spot Instances com base nos requisitos de seus trabalhos.

 

O AWS Batch fornece filas de trabalho padrão e definições de ambiente de computação que permitem que você comece rapidamente.