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

Deploy de aplicações PHP utilizando AWS Fargate

Deploy de aplicações PHP utilizando AWS Fargate

Containers, escalabilidade e custos são assuntos que sempre surgem no momento da tomada de decisão no momento de entrega de um projeto.
Nesta talk uma introdução ao AWS Fargate abordando temas como: containers, configuração, deploy, custos e benefícios. Além de algumas dicas para produção e escalabilidade.

Avatar for Danilo Correa

Danilo Correa

August 29, 2019

Other Decks in Technology

Transcript

  1. - Tópicos • O que é o Amazon ECS. •

    O que é o AWS Fargate. • Como o Amazon ECS funciona. • Benefícios do AWS Fargate. • Serviços relacionados ao Amazon ECS. • Recursos do Amazon ECS. • Custos do AWS Fargate.
  2. - O que é o Amazon ECS ? É um

    serviço altamente escalável e de alta performance para a orquestração de contêineres que é compatível com contêineres o docker e permite executar e escalar facilmente aplicativos conteinerizados na AWS https://aws.amazon.com/pt/ecs/
  3. - O que é o AWS Fargate ? É um

    mecanismo de computação do amazon ECS que permite executar contêineres sem necessidade de gerenciar servidores ou clusters. Com o Fargate, você não precisa mais provisionar, configurar e escalar clusters de máquinas virtuais para executar contêineres https://aws.amazon.com/pt/fargate/
  4. - Benefícios do AWS Fargate • Não há clusters para

    serem gerenciados • Escalabilidade transparente • Integrado ao amazon ECS https://aws.amazon.com/pt/fargate/
  5. - Não há clusters para serem gerenciados O AWS Fargate

    elimina a necessidade de gerenciar um cluster de instâncias do EC2. Você não precisa mais escolher os tipos de instância, gerenciar agendamento de cluster, ou otimizar a utilização do cluster https://aws.amazon.com/pt/fargate/
  6. - Benefícios do AWS Fargate • Não há clusters para

    serem gerenciados • Escalabilidade transparente • Integrado ao amazon ECS https://aws.amazon.com/pt/fargate/
  7. - Escalabilidade transparente Você não precisa mais se preocupar com

    o provisionamento de recursos computacionais suficientes para seus aplicativos. Depois que você define os requisitos do aplicativo (CPU, Memória, etc.), o AWS Fargate gerencia toda a escalabilidade e infraestrutura necessárias para executar os contêineres de forma altamente disponível https://aws.amazon.com/pt/fargate/
  8. - Benefícios do AWS Fargate • Não há clusters para

    serem gerenciados • Escalabilidade transparente • Integrado ao amazon ECS https://aws.amazon.com/pt/fargate/
  9. O Fargate se integra de forma transparente ao ECS. Basta

    empacotar o aplicativo nas definições de tarefas, especificar CPU e MB, definir políticas de redes e IAM - Integrado ao amazon ECS https://aws.amazon.com/pt/fargate/
  10. • Amazon EC2 Auto Scaling • Amazon Elastic Container Registry

    • AWS CloudFormation • Elastic Load Balancing ◦ Application Load Balancer ◦ Network Load Balancer ◦ Classic Load Balancer - Serviços relacionados ao Amazon ECS https://docs.aws.amazon.com/pt_br/AmazonECS/lat est/developerguide/ecs_services.html
  11. É uma lista de parâmetros que você especifica para executar

    contêineres do Docker no Amazon ECS. Entre alguns dos parâmetros que você pode especificar em uma definição de tarefa estão: • Imagem Docker • CPU e memória • Tipo de inicialização (Fargate) • Modo de rede do Docker • O comando que container deve executar quando iniciado • Eventuais volumes de dados que devem ser usados • A função do IAM que suas tarefas devem usar - Definição de tarefas https://docs.aws.amazon.com/pt_br/Amaz onECS/latest/developerguide/ecs_service s.html
  12. É uma lista de parâmetros que você especifica para executar

    contêineres do Docker no Amazon ECS. Entre alguns dos parâmetros que você pode especificar em uma definição de tarefa estão: • Imagem Docker • CPU e memória • Tipo de inicialização (Fargate) • Modo de rede do Docker • O comando que container deve executar quando iniciado • Eventuais volumes de dados que devem ser usados • A função do IAM que suas tarefas devem usar - Definição de tarefas https://docs.aws.amazon.com/pt_br/Amaz onECS/latest/developerguide/ecs_service s.html
  13. É uma lista de parâmetros que você especifica para executar

    contêineres do Docker no Amazon ECS. Entre alguns dos parâmetros que você pode especificar em uma definição de tarefa estão: • Imagem Docker • CPU e memória • Tipo de inicialização (Fargate) • Modo de rede do Docker • O comando que container deve executar quando iniciado • Eventuais volumes de dados que devem ser usados • A função do IAM que suas tarefas devem usar - Definição de tarefas https://docs.aws.amazon.com/pt_br/Amaz onECS/latest/developerguide/ecs_service s.html
  14. É uma lista de parâmetros que você especifica para executar

    contêineres do Docker no Amazon ECS. Entre alguns dos parâmetros que você pode especificar em uma definição de tarefa estão: • Imagem Docker • CPU e memória • Tipo de inicialização (Fargate) • Modo de rede do Docker • O comando que container deve executar quando iniciado • Eventuais volumes de dados que devem ser usados • A função do IAM que suas tarefas devem usar - Definição de tarefas https://docs.aws.amazon.com/pt_br/Amaz onECS/latest/developerguide/ecs_service s.html
  15. É uma lista de parâmetros que você especifica para executar

    contêineres do Docker no Amazon ECS. Entre alguns dos parâmetros que você pode especificar em uma definição de tarefa estão: • Imagem Docker • CPU e memória • Tipo de inicialização (Fargate) • Modo de rede do Docker • O comando que container deve executar quando iniciado • Eventuais volumes de dados que devem ser usados • A função do IAM que suas tarefas devem usar - Definição de tarefas https://docs.aws.amazon.com/pt_br/Amaz onECS/latest/developerguide/ecs_service s.html
  16. É uma lista de parâmetros que você especifica para executar

    contêineres do Docker no Amazon ECS. Entre alguns dos parâmetros que você pode especificar em uma definição de tarefa estão: • Imagem Docker • CPU e memória • Tipo de inicialização (Fargate) • Modo de rede do Docker • O comando que container deve executar quando iniciado • Eventuais volumes de dados que devem ser usados • A função do IAM que suas tarefas devem usar - Definição de tarefas https://docs.aws.amazon.com/pt_br/Amaz onECS/latest/developerguide/ecs_service s.html
  17. É uma lista de parâmetros que você especifica para executar

    contêineres do Docker no Amazon ECS. Entre alguns dos parâmetros que você pode especificar em uma definição de tarefa estão: • Imagem Docker • CPU e memória • Tipo de inicialização (Fargate) • Modo de rede do Docker • O comando que container deve executar quando iniciado • Eventuais volumes de dados que devem ser usados • A função do IAM que suas tarefas devem usar - Definição de tarefas
  18. Amazon ECS permite executar e manter simultaneamente um número especificado

    de instâncias de uma definição de tarefa em um cluster de Amazon ECS. Chamamos isso de um serviço. Se qualquer uma de suas tarefas falharem por algum motivo, o gerenciador de serviço do Amazon ECS iniciará outra instância de sua definição de tarefa para substitui e mantém a contagem desejada de tarefas no serviço - Serviços https://docs.aws.amazon.com/pt_br/Amaz onECS/latest/developerguide/ecs_service s.html
  19. Além disso, é possível configurar: • Load Balancer • Auto

    scaling • Service Discovery • Tipos de Deploy ◦ Rolling update ◦ Blue Green (AWS Code Deploy) - Serviços https://docs.aws.amazon.com/pt_br/AmazonECS/lat est/developerguide/ecs_services.html
  20. Além disso, é possível configurar: • Load Balancer • Auto

    scaling • Service Discovery • Tipos de Deploy ◦ Rolling update ◦ Blue Green (AWS Code Deploy) - Serviços https://docs.aws.amazon.com/pt_br/AmazonECS/lat est/developerguide/ecs_services.html
  21. Além disso, é possível configurar: • Load Balancer • Auto

    scaling • Service Discovery • Tipos de Deploy ◦ Rolling update ◦ Blue Green (AWS Code Deploy) - Serviços https://docs.aws.amazon.com/pt_br/AmazonECS/lat est/developerguide/ecs_services.html
  22. Além disso, é possível configurar: • Load Balancer • Auto

    scaling • Service Discovery • Tipos de Deploy ◦ Rolling update ◦ Blue Green (AWS Code Deploy) - Serviços https://docs.aws.amazon.com/pt_br/AmazonECS/lat est/developerguide/ecs_services.html
  23. Além disso, é possível configurar: • Load Balancer • Auto

    scaling • Service Discovery • Tipos de Deploy ◦ Rolling update ◦ Blue Green (AWS Code Deploy) - Serviços https://docs.aws.amazon.com/pt_br/AmazonECS/lat est/developerguide/ecs_services.html
  24. Além disso, é possível configurar: • Load Balancer • Auto

    scaling • Service Discovery • Tipos de Deploy ◦ Rolling update ◦ Blue Green (AWS Code Deploy) - Serviços https://docs.aws.amazon.com/pt_br/AmazonECS/lat est/developerguide/ecs_services.html
  25. O Amazon ECR é um serviço de registro de imagens

    Docker na AWS. Podendo usar o CLI do Docker para enviar, obter e gerenciar imagens. O Amazon ECR oferece suporte a repositórios do Docker privados com permissões baseadas em recursos usando o IAM da AWS, de maneira que usuários específicos ou instâncias do Amazon EC2 possam acessar repositórios e imagens. - ECR (Amazon Elastic Container Registry) https://docs.aws.amazon.com/pt_br/AmazonECS/lat est/developerguide/ECS_Console_Repositories.html
  26. - Custos do AWS Fargate Detalhe de preços por vCPU

    por hora 0,04048 USD por GB por hora 0,04048 USD https://aws.amazon.com/pt/fargate/pricing/?nc=sn& loc=2
  27. - Combinação de recursos vCPU Valores de memória 0,25 vCPU

    0,5 GB, 1 GB e 2 GB 0,5 vCPU Mín. 1 GB e máx. 4 GB, em incrementos de 1 GB 1 vCPU Mín. 2 GB e máx. 8 GB, em incrementos de 1 GB 2 vCPUs Mín. 4 GB e máx. 16 GB, em incrementos de 1 GB 4 vCPUs Mín. 8 GB e máx. 30 GB, em incrementos de 1 GB https://aws.amazon.com/pt/fargate/pricing/?nc=sn& loc=2
  28. • 5 Tarefas do ECS • Cada tarefa com 1vCPU

    e 2GB • Execução por 10 minutos (600 segundos) • Execução por um mês (30 dias) vCPU = nº de tarefas x nº de vCPUs x preço por segundo de vCPU x duração de vCPU por dia (segundos) x nº de dias vCPU = 5 x 1 x 0,000011244 x 600 x 30 = 1,01 USD MB = nº de tarefas x memória em GB x preço por GB x duração da memória por dia (segundos) x nº de dias MB = 5 x 2 x 0,000001235 x 600 x 30 = 0,22 USD - Exemplo de definição de preços V1 https://aws.amazon.com/pt/fargate/prici ng/?nc=sn&loc=2
  29. • 1 Tarefa do ECS • 0.5 vCPU e 1GB

    • 1 dia (86400 segundos) • Execução por um mês (30 dias) vCPU = nº de tarefas x nº de vCPUs x preço por segundo de vCPU x duração de vCPU por dia (segundos) x nº de dias vCPU = 1 x 1 x 0,000011244 x 86400 x 30 = 29,15 USD MB = nº de tarefas x memória em GB x preço por GB x duração da memória por dia (segundos) x nº de dias MB = 1 x 1 x 0,000001235 x 86400 x 30 = 3,20 USD - Exemplo de definição de preços V2 https://aws.amazon.com/pt/fargate/pric ing/?nc=sn&loc=2