GoConqr hat ein neues Design! Sag uns, wie es dir gefällt.

Karteikarten

7 - Serverless Overviews

Ivan Carlos Portugiesisch 25 Karten

Karten in diesem Stapel (25)

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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).
  6. 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.
  7. 7O que é Customization at the Edge?Definição: Personalização de aplicativos e lógica na borda da rede para minimizar a latência.
  8. 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.
  9. 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.
  10. 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.
  11. 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.
  12. 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).
  13. 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.
  14. 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.
  15. 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.
  16. 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.).
  17. 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.
  18. 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
  19. 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.
  20. 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.
  21. 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.
  22. 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.
  23. 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.
  24. 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.
  25. 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.

Informationen

Beschreibung
Karteikarten am 7 - Serverless Overviews, erstellt von Ivan Carlos am 09/12/2024.
Erstellt von
Ivan Carlos
Aufrufe
0
Bewertung

Feedback

Worum geht es?

Wie gefällt dir das neue Design?

Dein Eindruck