Flashcards
7 - Serverless Overviews
Flashcards do conjunto (25)
- 1O que é Serverless?Definição: Modelos em que os desenvolvedores não gerenciam a infraestrutura subjacente.
Características:
Sem necessidade de provisionamento de servidores.
Paga-se pelo uso (sob demanda).
Dimensionamento automático.
Exemplos na AWS:
Função como Serviço (FaaS): AWS Lambda.
Armazenamento e Bancos de Dados: DynamoDB, Aurora Serverless.
Mensagens e Filas: SNS, SQS.
Streaming de Dados: Kinesis Firehose.
Microsserviços e Contêineres: ECS Fargate. - 2AWS LambdaO que é?
Serviço para execução de código sob demanda.
Suporte a várias linguagens: Node.js, Python, Java, .NET, Ruby, entre outras.
Ideal para execuções curtas (até 15 minutos).
Benefícios:
Custos: Baseado no número de solicitações e duração das execuções.
Escalabilidade: Totalmente automatizada.
Integrações: Compatível com serviços como API Gateway, S3, DynamoDB, EventBridge, CloudWatch, etc. - 3Casos de Uso do LambdaCriação de Miniaturas:
Eventos no S3 acionam uma função Lambda.
Lambda processa a imagem e gera uma miniatura.
Metadados podem ser armazenados no DynamoDB.
CRON Serverless:
Regras no CloudWatch ou EventBridge acionam funções Lambda em intervalos programados.
Transformações em Tempo Real:
Integrado ao Kinesis para processar e transformar fluxos de dados. - 4Arquitetura Serverless com AWSExemplo: Aplicativo Web.
Frontend: S3 + CloudFront para conteúdo estático.
Autenticação: Cognito.
Backend: API Gateway + Lambda.
Banco de Dados: DynamoDB.
Outros Serviços Relacionados:
SNS e SQS: Comunicação assíncrona.
Aurora Serverless: Banco de dados escalável sob demanda.
ECS Fargate: Execução de contêineres sem necessidade de provisionar servidores. - 5Limites do AWS LambdaMemória: Entre 128 MB e 10 GB, incrementos de 64 MB.
Tempo máximo de execução: 900 segundos (15 minutos).
Espaço temporário (/tmp): Até 10 GB.
Variáveis de ambiente: Máximo de 4 KB.
Execuções simultâneas por região: 1.000 por padrão (pode ser aumentado com solicitação). - 6Lambda SnapStartLambda escritas em Java 11 ou superior.
Como Funciona?
Com SnapStart Desativado:
O ciclo de vida da função inclui fases de inicialização, invocação e desligamento.
A inicialização em Java pode ser lenta devido ao carregamento da JVM.
Com SnapStart Ativado:
Após a publicação de uma nova versão da função:
A função é inicializada antecipadamente.
Um snapshot (estado inicial) da memória e do disco é criado.
Esse snapshot é armazenado para acesso rápido e usado em execuções futuras.
Resultado: Redução significativa no tempo de inicialização. - 7O que é Customization at the Edge?Definição: Personalização de aplicativos e lógica na borda da rede para minimizar a latência.
- 8Tipos de Funções no CloudFrontCloudFront Functions:
Linguagem: Apenas JavaScript.
Desempenho: Inferior a 1 ms (altíssima escala e velocidade).
Escala: Milhões de requisições por segundo.
Onde atua: Solicitação e resposta do visualizador.
Casos de uso:
Normalização de chaves de cache.
Manipulação de cabeçalhos HTTP.
Redirecionamentos e reescritas de URL.
Validação de tokens JWT para autorização. - 9Lambda@Edge:Linguagem: Node.js e Python.
Desempenho: Até 10 segundos de execução.
Escala: Milhares de requisições por segundo.
Onde atua: Solicitação/resposta do visualizador e origem. - 10Casos de uso:Integrações complexas com SDKs da AWS.
Acesso à rede e ao sistema de arquivos.
Personalizações detalhadas com bibliotecas de terceiros.
Processamento do corpo da solicitação HTTP. - 11Quando Usar Cada Um?CloudFront Functions: Quando há necessidade de alta escala, baixa latência, e lógica simples (ex.: manipulação de cabeçalhos, redirecionamentos).
Lambda@Edge: Para tarefas mais complexas que exigem tempo de execução maior, integração com outros serviços AWS ou acesso à rede. - 12Conectividade do Lambda com a VPCPor padrão:
Funções Lambda são executadas fora de sua VPC, em uma VPC gerenciada pela AWS.
Sem acesso direto a recursos privados na sua VPC (ex.: RDS, ElastiCache, balanceadores internos). - 13Para acessar recursos privados:Inicie o Lambda na sua VPC.
Especifique:
ID da VPC.
Sub-redes.
Grupo de segurança.
Lambda cria interfaces de rede elásticas (ENIs) para conectar-se aos recursos da VPC. - 14Proxy RDS para LambdaProblema: Muitas conexões abertas ao RDS sob alta carga causam problemas de desempenho.
Solução: Use o Proxy RDS para gerenciar conexões.
Vantagens:
Escalabilidade: Gerenciamento eficiente de conexões.
Alta disponibilidade: Reduz o tempo de failover em 66%.
Autenticação IAM: Gerencie credenciais de banco de dados com o Secrets Manager. - 15Integração Lambda com RDS/AuroraInvocação de Lambda a partir do RDS/Aurora:
Como funciona:
Função Lambda pode ser invocada diretamente por instâncias do RDS para eventos internos (suportado em Aurora MySQL e RDS PostgreSQL).
Exemplo: Após uma inserção na tabela, o Lambda é invocado para enviar um e-mail. - 16Configuração:Configurada diretamente no banco de dados (não no console AWS).
Permissões adequadas de IAM para a instância do banco de dados invocar o Lambda.
Configuração de conectividade de rede (NAT Gateway, endpoints VPC, etc.). - 17Notificações de Eventos do RDSO que são:
Alertas sobre eventos relacionados à infraestrutura do RDS.
Ex.: Criação de instâncias, snapshots, alterações em grupos de parâmetros, etc.
Como configurar:
Use o SNS ou EventBridge para processar notificações.
Integre com filas SQS ou funções Lambda para automatizar respostas.
Importante:
Não fornece detalhes sobre eventos de dados (ex.: alterações em tabelas).
Para eventos relacionados a dados, use integração direta Lambda-RDS. - 18Notificações de Eventos do RDSO que são:
Alertas sobre eventos relacionados à infraestrutura do RDS.
Ex.: Criação de instâncias, snapshots, alterações em grupos de parâmetros, etc.
Como configurar:
Use o SNS ou EventBridge para processar notificações.
Integre com filas SQS ou funções Lambda para automatizar respostas.
Importante:
Não fornece detalhes sobre eventos de dados (ex.: alterações em tabelas).
Para eventos relacionados a dados, use integração direta Lambda-RDS - 19Casos de Uso e Benefícios Casos de Uso:Processamento de eventos internos do banco de dados.
Gerenciamento eficiente de conexões ao banco de dados.
Automação de tarefas administrativas com notificações de eventos. - 20Fundamentos da ArquiteturaA criação de arquiteturas na AWS envolve a combinação de serviços para atender a requisitos de escalabilidade, alta disponibilidade, custo e segurança. Este aprendizado é essencial para:
Preparação para o exame AWS Certified Solutions Architect – Associate.
Entendimento da progressão natural de um sistema pequeno para um robusto. - 212. Estudo de Caso 1: Aplicativo "WhatIsTheTime.com"Fornecer a hora sem estado e escalar conforme a demanda.
Fase 1: Instância única EC2
Configuração: T2 Micro com Elastic IP.
Limitação: Tempo de inatividade para redimensionamento e escalabilidade limitada.
Fase 2: Escalabilidade Vertical
Ação: Substituir T2 Micro por uma instância M5 Large.
Limitação: Tempo de inatividade e incapacidade de lidar com picos dinâmicos.
Fase 3: Escalabilidade Horizontal
Ação: Adicionar várias instâncias EC2 com Elastic IPs.
Problema: Gerenciamento manual de IPs e inconsistência no acesso.
Fase 4: Route 53 com Balanceador de Carga (ELB)
Configuração: ELB com instâncias privadas e Route 53 configurado com registro de alias.
Benefícios: Escalabilidade, balanceamento de carga e uso de verificações de saúde.
Fase 5: Autoscaling e Multi-AZ
Ação: Introduzir grupos de escalonamento automático em múltiplas zonas de disponibilidade.
Benefício: Alta disponibilidade e escalabilidade sob demanda.
Otimização de Custos: Uso de instâncias reservadas para cargas mínimas e instâncias spot para cargas temporárias. - 223. Estudo de Caso 2: Aplicativo "Michaels.com"Objetivo: Loja virtual com estado (carrinho de compras) e alta escalabilidade.
Problema Inicial: Carrinhos de compras perdidos ao alternar entre instâncias EC2.
Solução 1: Afinidade de Sessão (Sticky Sessions)
Cada cliente é roteado para a mesma instância EC2.
Limitação: Falha na instância pode levar à perda de dados.
Solução 2: Cookies no Cliente
Dados armazenados em cookies no navegador.
Limitação: Tamanho limitado a 4KB, risco de manipulação maliciosa.
Solução 3: ID de Sessão com Elasticache
Configuração: ID de sessão armazenado em cookies, com dados no Elasticache (Redis/Memcached).
Benefício: Submilissegundo de latência, mais seguro e escalável.
Armazenamento de Dados do Usuário:
RDS (Multi-AZ)
Armazenamento de longo prazo para dados críticos.
Replicas de Leitura e Lazy Loading
Reduz carga no RDS principal, melhora desempenho. - 234. Estratégias de Alta Disponibilidade e ResiliênciaMulti-AZ:
Usado para ELB, Auto Scaling Groups, Elasticache e RDS.
Garante continuidade em caso de falha de uma zona de disponibilidade.
Grupos de Segurança:
Tráfego HTTP/HTTPS permitido apenas para ELB.
Tráfego entre ELB e instâncias controlado por grupos de segurança específicos. - 245. Pontos-Chave e Boas PráticasRoteamento DNS:
Use Route 53 com registros de alias para balanceadores de carga.
Evite TTLs altos em ambientes dinâmicos.
Balanceamento de Carga:
Use ELB para balanceamento entre instâncias em múltiplas zonas.
Habilite verificações de saúde para evitar tráfego para instâncias com falhas.
Escalabilidade:
Vertical: Simples, mas com limitação de tempo de inatividade.
Horizontal: Melhor para cargas dinâmicas com grupos de escalonamento automático.
Armazenamento de Sessão:
Evite estados nas instâncias EC2 para melhorar escalabilidade e tolerância a falhas.
Use Elasticache ou DynamoDB para sessões sem estado.
Segurança e Custos:
Utilize instâncias reservadas para cargas mínimas e instâncias spot para cargas temporárias.
Implemente rigorosas regras de grupos de segurança. - 25Aplicação no Exame AWSCenários de Arquitetura:
Identificar quando usar Elasticache, RDS, Multi-AZ ou grupos de escalonamento automático.
Decisões Baseadas em Requisitos:
Alta disponibilidade, escalabilidade, otimização de custos e segurança.
Diferenciação de Serviços:
Quando usar RDS vs DynamoDB, Elasticache vs RDS, e Route 53 vs DNS de terceiros.
Informações
- Descrição
- FlashCards sobre 7 - Serverless Overviews, criado por Ivan Carlos em 09-12-2024.
- Criado por
- Ivan Carlos
- Visualizações
- 0
- Avaliação