Serviços da AWS: Melhores Práticas e Lições Aprendidas

Serviços da AWS: Melhores Práticas e Lições Aprendidas

Visão considerando as melhores práticas e lições aprendidas de utilização de vários serviços da AWS nos últimos anos, como VPC, EC2, Route 53, CloudFront, S3, CloudWatch, CloudFormation, IAM, Account & Billing, entre outros, além de abordar casos e experiências sobre DevOps na AWS.

45a791315d248529d0657efceeaea294?s=128

Alexandre Malucelli

August 15, 2017
Tweet

Transcript

  1. Serviços da AWS: 
 Melhores Práticas e Lições Aprendidas Alexandre

    Guimarães Malucelli Site Reliability Engineering
  2. www.fluig.com

  3. Agenda • Compute: VPC, EC2, ASG, ELB • Networking &

    Content Delivery: Route 53, CloudFront • Storage & Database: S3, RDS • Management Tools: CloudWatch, CloudFormation • Security & Identity: IAM, Account & Billing • Messaging: SES • General: Operations, Application Development
  4. Amazon VPC

  5. Virtual Private Cloud (VPC) ‣ Evite utilizar a default VPC

    da região escolhida; ‣ Adote um CIDR que seja escalável; ‣ Crie padrões de nomenclatura;
  6. Virtual Private Cloud (VPC) vpc-us-east-1-fluig1 vpc-sa-east-1-fluig2 vpc-eu-west-1-fluig3 componente região ambiente

  7. Virtual Private Cloud (VPC) subnet-us-east-1a-pv-fluig2-elb1 subnet-us-east-1b-pv-fluig2-elb2 subnet-us-east-1a-pb-fluig1-elb1 subnet-us-east-1b-pb-fluig1-elb2 subnet-us-east-1c-pb-fluig1-elb3 componente

    região ambiente tipo da rede finalidade
  8. Virtual Private Cloud (VPC) acl-us-east-1-pb-fluig1-elb acl-us-east-1-pv-fluig1-app acl-us-east-1-pb-fluig1-nat componente região ambiente

    tipo da rede finalidade
  9. Virtual Private Cloud (VPC) subnet-us-east-1a-pb-fluig1-app1 subnet-us-east-1a-pb-fluig1-app2 subnet-us-east-1b-pb-fluig1-app1 subnet-us-east-1c-pb-fluig1-app1 acl-us-east-1-pb-fluig1-app

  10. Virtual Private Cloud (VPC) ‣ Padronize a numeração das regras

    de Network ACL; Rule # Type Protocol Port Range Source Allow / Deny 100 200 210 900 * All Trafic HTTP (80) HTTPS (443) Custom TCP Rule All Trafic ALL TCP (6) TCP (6) TCP (6) ALL ALL ALL 80 443 1024-65535 10.0.10.0/24 ALL 0.0.0.0/0 0.0.0.0/0 0.0.0.0/0 ALLOW DENY ALLOW ALLOW ALLOW
  11. Virtual Private Cloud (VPC) ‣ Segmente suas subnets em privadas

    e públicas; ‣ Utilize NAT Gateway para saídas de rede privadas; ‣ Libere apenas o necessário a internet (0.0.0.0/0); ‣ Para acesso externo, utilize bastion host e/ou VPN;
  12. Amazon EC2

  13. Elastic Compute Cloud (EC2) ‣ Habilite o Termination Protection; ‣

    Prefira instâncias reservadas à on-demand ($); ‣ Crie uma estratégia de gerenciamento de key pairs; ‣ Categorize por tags: Application, Role, Environment;
  14. Amazon Auto Scaling

  15. Auto Scaling ‣ Múltiplos ASG com estratégias por métricas, agendamento

    e tamanho único; ‣ Integre com o health check do ELB (replacement); ‣ Crie padrões de nomenclatura;
  16. Auto Scaling asg-us-east-1-pv-fluig1-app1 asg-us-east-1-pv-fluig1-web1 asg-us-east-1-pv-fluig1-api1 componente região ambiente tipo da

    rede finalidade
  17. Auto Scaling lc-us-east-1-pv-fluig1-app1 lc-us-east-1-pv-fluig1-web1 lc-us-east-1-pv-fluig1-api1 componente região ambiente tipo da

    rede finalidade
  18. Amazon ELB

  19. Elastic Load Balancer (ELB) ‣ Termine o SSL no Elastic

    Load Balancer (ALB, CLB); ‣ Configure o timeout de acordo com sua aplicação; ‣ Listener HTTP para conexões HTTP (X-Forwarded);
  20. Elastic Load Balancer (ELB) ‣ ALB e CLB não tem

    IPs fixos; ‣ Desabilite o cache de DNS em proxies (ex. nginx); ‣ Crie padrões de nomenclatura;
  21. Elastic Load Balancer (ELB) elb-us-east-1-pb-fluig1-app1 elb-sa-east-1-pb-fluig1-web1 elb-sa-east-1-pv-fluig1-api1 componente região ambiente

    tipo da rede finalidade
  22. Amazon Route 53

  23. Route 53 ‣ Recursos da AWS configurados como ALIAS record;

    ‣ Conta separada para registro de domínios; ‣ Roteamento com múltiplas regras (failover, peso, latência, geolocation);
  24. Route 53 endp-app.example.com app.example.com e1x04amp1l3e9c.cloudfront.net elb-us-east-1-pb-exp1-app1... failover secondary
 (no evaluate)

    failover primary
 (evaluate) elb-us-east-1-pb-exp1-app2… weighted
 (90, evaluate) ALIAS ALIAS weighted
 (10, evaluate)
  25. Amazon CloudFront

  26. CloudFront ‣ Origem S3 (block storage) é diferente de S3

    Website Endpoint (HTTP Custom Origin); ‣ Cuidado com CNAMEs configurados para wildcard subdomains (*.example.com);
  27. CloudFront ‣ Cache com query strings (?color=green&lang=en); ‣ ?color=green&lang=en <>

    ?lang=en&color=green; ‣ ?Color=Green&Lang=En <> ?color=green&lang=en;
  28. Amazon S3

  29. Simple Storage Service (S3) ‣ Nome de bucket compartilha presença

    global; ‣ Distribua com segurança (Signed URL no CF, IAM, IP Address); ‣ Versione e expire os objetos; ‣ Utilize VPC Endpoint para altos volumes de dados;
  30. Amazon Relational Database Service

  31. Relational Database Service (RDS) ‣ Sempre crie um parameter e

    option group customizado; ‣ Conheça seus limites e funcionalidades disponíveis;
  32. Amazon CloudWatch

  33. CloudWatch ‣ Use métricas customizadas para políticas de scaling; ‣

    Logs: Configure uma expiração para logs groups ($); ‣ Logs: Diretivas de logs válidas e individuais (etc/config);
  34. Amazon CloudFormation

  35. CloudFormation ‣ Não atualize componentes manualmente; ‣ Utilize os helper

    scripts em EC2 para controle da stack; ‣ Quebre e segmente seus templates;
  36. Amazon IAM

  37. Identity and Access Management (IAM) ‣ Crie credenciais para todos

    e habilite o MFA; ‣ Não compartilhe credenciais entre serviços e ambientes; ‣ Prefira roles em EC2 do que credenciais hard-coded;
  38. Account & Billing

  39. Account & Billing ‣ Não gerencie sua conta com a

    credencial root; ‣ Configure alertas que reflitam seu orçamento; ‣ Conta individual para centralizar o billing (master account); ‣ Contas individuáis para cada ambiente;
  40. Amazon Simple Email Service

  41. Simple Email Service ‣ Gerencie retornos de bounces e complains;

    ‣ Autenticação SMTP não aceita credenciais AWS, é preciso converter (HMAC-SHA256 algorithm);
  42. Operations

  43. Operations ‣ Automação é o estado da arte; ‣ Servidores

    são efêmeros (descarte e recrie); ‣ Escolha a melhor região para seu negócio: custo, serviços disponíveis, regulamentações, latência;
  44. Operations ‣ Versione sua infraestrutura (Infrastructure as Code); ‣ Repositório

    de artefatos próprio (evite serviços externos); ‣ Utilize múltiplas zonas de disponibilidade (AZs); ‣ Conheça os limites de cada serviço da AWS;
  45. Operations ‣ Centralize seus logs (application, servers); ‣ Escale horizontalmente

    (se a arquitetura suportar); ‣ Segmente seus recursos nas camadas: visível, volátil e persistente;
  46. Application Development

  47. Application Development ‣ Persista em object storage e não block

    storage; ‣ Gerencie o cache dos objetos corretamente (HTTP); ‣ Respeite o TTL dos registros de DNS (não faça cache);
  48. Application Development ‣ Não guarde estado das sessões (stateless); ‣

    Logs com informações úteis (region, az, instance-id);
  49. Obrigado!
 Alexandre Guimarães Malucelli alexandre@malucelli.net