Upgrade to Pro — share decks privately, control downloads, hide ads and more …

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

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.

Alexandre Malucelli

August 15, 2017
Tweet

Other Decks in Technology

Transcript

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

    Guimarães Malucelli Site Reliability Engineering
  2. 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
  3. 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;
  4. 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
  5. 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;
  6. 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;
  7. 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;
  8. 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);
  9. 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;
  10. 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);
  11. 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)
  12. CloudFront ‣ Origem S3 (block storage) é diferente de S3

    Website Endpoint (HTTP Custom Origin); ‣ Cuidado com CNAMEs configurados para wildcard subdomains (*.example.com);
  13. 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;
  14. 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;
  15. Relational Database Service (RDS) ‣ Sempre crie um parameter e

    option group customizado; ‣ Conheça seus limites e funcionalidades disponíveis;
  16. 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);
  17. CloudFormation ‣ Não atualize componentes manualmente; ‣ Utilize os helper

    scripts em EC2 para controle da stack; ‣ Quebre e segmente seus templates;
  18. 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;
  19. 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;
  20. Simple Email Service ‣ Gerencie retornos de bounces e complains;

    ‣ Autenticação SMTP não aceita credenciais AWS, é preciso converter (HMAC-SHA256 algorithm);
  21. 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;
  22. 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;
  23. Operations ‣ Centralize seus logs (application, servers); ‣ Escale horizontalmente

    (se a arquitetura suportar); ‣ Segmente seus recursos nas camadas: visível, volátil e persistente;
  24. 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);
  25. Application Development ‣ Não guarde estado das sessões (stateless); ‣

    Logs com informações úteis (region, az, instance-id);