SlideShare uma empresa Scribd logo
1 de 59
Baixar para ler offline
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Desenvolvimento de Aplicações em
Container com AWS Fargate
Bruno Emer
Arquiteto de Soluções
Amazon Web Services
DEV302
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Motivação para o AWS Fargate
Trabalhando com o AWS Fargate
Novidades para o Amazon ECS e
AWS Fargate
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Motivação
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
No início, existia
Amazon EC2
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Então, Docker!
Clientes começaram a conteinerizar aplicações utilizando
instâncias EC2
EC2 Instance
Containers
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Containers tornaram fácil criar e escalar aplicações
nativas em nuvem
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Clientes precisavam de uma forma fácil para gerenciar grandes clusters de
instâncias, iniciar containers e executar serviços
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Agendamento e Orquestração
Cluster Manager Placement Engine
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
ECS
Agent
Docker
Agent
SO
Instância EC2
Mas você continuava gerenciando mais do que apenas containers
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Aplicação de patches e upgrades em SO, agentes, etc.
Escalando a frota de instâncias para melhor utilização
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
ECS
Agent
Docker
Agent
SO
Instância EC2
ECS
Agent
Docker
Agent
SO
Instância EC2
ECS
Agent
Docker
Agent
SO
Instância EC2
Elastic
Container
Service
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Suas
Aplicações em
Containers
GERENCIADO PELA AWS
Sem instâncias EC2 para provisionar, escalar ou gerenciar
ELÁSTICO
Escale para mais ou para menos. Pague apenas pelo uso.
INTEGRADO
Com todo o ecossistema AWS: Amazon VPC, Elastic Load Balancing, AWS
Identity and Access Management , Amazon CloudWatch e mais.
AWS Fargate
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Panorama dos serviços de Containers da AWS
GESTÃO
Implantação, agendamento,
dimensionamento e gestão
de aplicações em containers
HOSPEDAGEM
Onde os containers rodam
Amazon Elastic
Container Service
Amazon Elastic
Container Service
for Kubernetes
Amazon EC2 AWS Fargate
REGISTRO DE IMAGENS
Repositório de imagens de
containers
Amazon Elastic
Container Registry
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Clientes utilizando AWS Fargate
”We don't want to
babysit any clusters.
That has nothing to do
with us.”
Shimon Tolts
CTO, DATREE
“We moved to Fargate
because we need the
ability to scale quickly up
from baseline and get
fine-grained network
control, without having to
manage our own
infrastructure.”
Product Hunt
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Trabalhando com o Fargate
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Utilizando Fargate com Amazon ECS
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Define os containers da aplicação: url
da imagem, requisitos de CPU e
memória, etc.
register
Task Definition
create
Cluster
• Limite de isolamento da infraestrutura
• Limite de permissões IAM
run
Task
• Uma instância de uma task
definition em execução
• Use o tipo de lançamento
AWS Fargate
create
Service
Elastic Load
Balancing
• Mantém N cópias em execução
• Integrado ao Elastic Load
Balancing
• Tasks não saudáveis são
automaticamente substituídas
Utilizando Fargate com Amazon ECS
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Task Definition
{
"family": “scorekeep",
"containerDefinitions": [
{
"name":“scorekeep-frontend",
"image":"xxx.dkr.ecr.us-east-1.amazonaws.com/fe"
},
{
"name":“scorekeep-api",
"image":"xxx.dkr.ecr.us-east-1.amazonaws.com/api"
}
]
}
Documento imutável e versionado
Identificado pela família: versão
Contém uma lista de até 10 definições de containers
Todos os containers são executados no mesmo host
Cada Container Definition possui:
• Um nome
• URL da Imagem (Amazon ECR or Imagens
Públicas)
• E mais… fique ligado!
Snippet de uma Task Definition
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Suporte a Repositórios
Repositórios privados de terceiros (em breve!)
Repositórios públicos suportados
Amazon ECR
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Computação
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Especificação de CPU e Memória
{
"family": "scorekeep",
"cpu": "1 vCpu",
"memory": "2 gb",
"containerDefinitions": [
{
"name":“scorekeep-frontend",
"image":"xxx.dkr.ecr.us-east-1.amazonaws.com/fe“,
"cpu": 256,
"memoryReservation": 512
},
{
"name":“scorekeep-api",
"image":"xxx.dkr.ecr.us-east-1.amazonaws.com/api",
"cpu": 768,
"memoryReservation": 512
}
]
}
Recursos a Nível de Task
• CPU/memória total para todos os containers
• Campos obrigatórios
• Dimensões de cobrança
Unidades
• CPU: cpu-units. 1 vCPU = 1024 cpu-units
• Memória: MB
Recursos a nível de Container
• Define o compartilhamento de recursos entre os
containers
• Campos opcionais
Recursos a
Nível de
Task
Recursos a
nível de
Container
Task Definition Snippet
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Configurações de CPU e Memória das Tasks
50 diferentes combinações de CPU/memória para serem escolhidas
CPU Memory
256 (.25 vCPU) 512 MB, 1 GB, 2 GB
512 (.5 vCPU) 1 GB, 2 GB, 3 GB, 4 GB
1024 (1 vCPU) 2 GB, 3 GB, 4 GB, 5 GB, 6 GB, 7 GB, 8 GB
2048 (2 vCPU) Entre 4 GB e 16 GB em incrementos de 1-GB
4096 (4 vCPU) Entre 8 GB e 30 GB em incrementos de 1-GB
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Precificação
Cobrança por Segundo. Mínimo de um minuto
Pague pelo que você provisiona
Cobrança pelo nível de CPU e memória das Tasks
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Rede
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Integração com VPC
172.31.0.0/16
Subnet
172.31.1.0/24
Internet
Other Entities in VPC
EC2 LB DB etc.
IP Privado
172.31.1.164
Inicie suas Tasks Fargate em subnets
Nos bastidores:
• Nós criamos uma Elastic Network Interface (ENI)
• É alocado IP privado de sua subnet a esta ENI
• A ENI é conectado à sua Task
• Agora sua Task possui um IP privado de sua subnet!
Você pode associar IPs públicos às suas tasks
Configure security groups para controlar o tráfego de entrada
e saída
ENI Fargate
TaskPúblico /
208.57.73.13 /
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Configuração da VPC
{
"family": "scorekeep",
"cpu": "1 vCpu",
"memory": "2 gb",
"networkMode": "awsvpc",
"containerDefinitions": [
{
"name":“scorekeep-frontend",
"image":"xxx.dkr.ecr.us-east-1.amazonaws.com/fe",
"cpu": 256,
"memoryReservation": 512
},
{
"name":“scorekeep-api",
"image":"xxx.dkr.ecr.us-east-1.amazonaws.com/api",
"cpu": 768,
"memoryReservation": 512
}
]
}
$ aws ecs run-task ...
-- task-definition scorekeep:1
-- network-configuration
“awsvpcConfiguration = {
subnets=[subnet1-id, subnet2-id],
securityGroups=[sg-id]
}”
Habilita a
criação e
conexão da
ENI à Task
Run Task
Task Definition
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Acesso a Internet
A ENI da Task é utilizada para todo o tráfego de entrada e saída de e para sua Task
Ela também é utilizada para:
• Baixar as imagens (do ECR ou de repositórios públicos)
• Enviar logs para o CloudWatch
Estes endpoints precisam ser acessíveis através da ENI de sua Task
Dois modos de setup comuns:
• Privado sem tráfego de entrada a partir da internet, mas permite saída para internet
• Tasks públicas, com acesso de entrada e saída a internet
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Configuração de Tasks Privadas
Subnet Pública Subnet Privada
Fargate
TaskENI
IP Privado
172.31.1.164
NAT Gateway
EIP Público
34.214.162.237
Internet
Gateway
172.31.0.0/16
172.31.2.0/24 172.31.1.0/24
Destination Target
172.31.0.0/16 local
0.0.0.0/0 NAT Gateway
Destination Target
172.31.0.0/16 local
0.0.0.0/0 Internet Gateway
Route Tables
Internet
Conecte o Internet Gateway à VPC
Configure uma Subnet Publica com:
• Rota para o Internet Gateway
• NAT Gateway
Configure a Subnet Privada com
• Task Fargate
• Rota para o NAT Gateway
Security Group para permitir o tráfego de
saída para a Internet
Tipo Porta Destino
All Traffic ALL 0.0.0.0/0
Outbound Security Group Rules
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Outbound
Inbound
Configuração de Tasks Públicas
Public subnet
Fargate
Task
Public IP
54.191.135.66
Internet
Gateway
172.31.0.0/16
172.31.2.0/24
Destination Target
172.31.0.0/16 local
0.0.0.0/0 Internet Gateway
Route Table
Internet
ENI
$ aws ecs run-task ...
-- network-configuration
“awsvpcConfiguration = {
subnets=[public-subnet],
securityGroups=[sg-id],
}”
Inicie a Tasks em uma subnet pública
A task receberá um IP público
Security Group que permita o tráfego de entrada
proveniente da InternetType Port Source
HTTP 8080 0.0.0.0/0
Inbound Security Group Rule
Type Port Destination
All Traffic ALL 0.0.0.0/0
Outbound Security Group Rules
assignPublicIp=ENABLED
Run Task
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Configuração do Elastic Load Balancing
{
"family": "scorekeep",
"cpu": "1 vCpu",
"memory": "2 gb",
"networkMode": “awsvpc“,
"containerDefinitions": [
{
"name":“scorekeep-frontend",
"image":"xxx.dkr.ecr.us-east-1.amazonaws.com/fe",
"cpu": 256,
"memoryReservation": 512,
"portMappings": [
{ "containerPort": 8080 }
]
},
{
"name":“scorekeep-api",
"image":"xxx.dkr.ecr.us-east-1.amazonaws.com/api",
"cpu": 768,
"memoryReservation": 512,
"portMappings": [
{ "containerPort": 5000 }
]
}
]
}
$ aws ecs create-service ...
-- task-definition scorekeep:1
-- network-configuration
“awsvpcConfiguration = {
subnets=[subnet-id],
securityGroups=[sg-id]
}”
-- load-balancers
“[
{
"targetGroupArn": “<insert arn>",
"containerName": “scorekeep-frontend",
"containerPort": 8080
}
]”
Create Service
Task Definition
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Configuração de Elastic Load Balancing Público
Public subnet Private subnet
Fargate
TaskENI
Private IP
172.31.1.164
:8080
ALB
Public IP
208.57.73.13
:80
172.31.0.0/16
172.31.2.0/24 172.31.1.0/24
Internet
Task em uma subnet privada com endereço IP
privado
ALB em subnet pública com endereço IP público
Tenha certeza que as Availability Zones das duas
subnets combinam
Security group do ALB deve permitir tráfego de
entrada a partir da Internet
O security group da Task deve permitir o tráfego de
entrada a partir do security group do ALB
Task Security GroupALB Security Group
Type Port Source
HTTP 80 0.0.0.0/0
Inbound Rule
Type Port Source
Custom TCP 8080 ALB Security Group
Inbound Rule
us-east-1a us-east-1a
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Armazenamento
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Armazenamento em Disco
Armazenamento efêmero provido pelo Amazon EBS na forma de:
Volume de armazenamento
Armazenamento de camada gravável
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Camada de Armazenamento
• Imagens Docker são compostas por camadas.
A camada superior é a camada de escrita que
captura mudanças em arquivos feitas pelo
container em execução.
• Camada de armazenamento de 10-GB
disponível por task, para todos os containers,
incluindo camadas de imagem
• Escritas não visíveis entre containers
• Armazenamento efêmero não disponível
depois que a task pára.
Image Layers
Writable Layer
Image Layers
Writable Layer
Container 1 Container 2
10 GB per Task
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Armazenamento de Volume
• Precisa que a escrita seja visível entre
containers?
• Fargate provê 4GB de espaço por task
• Configure via "volume mounts" na task
definition
• Pode montar em diferentes containerPaths
• Não especifique o sourcePath do host
• Lembre-se que este armazenamento também
é efêmero, ou seja, não disponível depois que
a task é parada.
Container 1 Container 2
4 GB Volume Storage
mount
/var/container1/data /var/container2/data
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Permissões IAM
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Camadas de Permissão
Cluster
Permissions
Application
Permissions
Task
Housekeeping
Permissions
Cluster
Fargate Task
Permissões do Cluster:
Controle quem pode lançar/descrever tasks em seu cluster
Permissões de Aplicação:
Permite os containers de sua aplicação acessar recursos da AWS
de forma segura.
Permissões de Sustentação:
Permite que execute atividades de sustentação em sua task:
• Amazon ECR Image Pull
• Envio de logs para o Amazon CloudWatch
• Criação de ENI
• Registrar/Desregistrar targets em Elastic Load
Balancers
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Permissões do Cluster
{
"Effect": "Allow",
"Action": [ "ecs:RunTask" ],
"Condition": {
"ArnEquals": {"ecs:cluster":"<cluster-arn>"}
},
"Resource": [ “<task_def_family>:*" ]
}
Você pode criar políticas IAM para controlar o controle de acesso aos seus clusters de forma granular
Associe estas políticas a usuários IAM e/ou papéis conforme necessário
Algumas políticas de exemplo:
Exemplo 1: Permite RunTask em um cluster
específico com uma task definition específica
{
"Effect": "Allow",
"Action": [ "ecs:ListTasks“,
“ecs:DescribeTasks” ],
"Condition": {
"ArnEquals": {"ecs:cluster":"<cluster-arn>"}
},
"Resource": “*”
}
Exemplo 2: Acesso apenas de leitura a tasks em
um cluster específico
E muito mais!
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Permissões de Aplicação
Seus containers acessam outros recursos da AWS?
Precisa obter credenciais para a task?
Crie uma Role IAM com as permissões que sua aplicação
precisa. Em nosso exemplo, permissões para DDB e Amazon
SNS.
Estabeleça uma relação de confiança com ecs-
tasks.amazonaws.com nesta role. Isto nos permite assumir a
role e associar as credenciais à sua task.
Adicione o arn da role à sua task definition e pronto!
Nós geramos e rotacionamos credenciais temporárias.
Chamadas para a AWS via CLI/SDK de sua aplicação irão
automaticamente utilizar as credencias da Role associada à
task.
Use uma Task Role
{
"family": "scorekeep",
"cpu": "1 vCpu",
"memory": "2 gb",
"networkMode": “awsvpc“,
“taskRoleArn": “arn:aws...role/scorekeepRole“,
"containerDefinitions": [
{
"name":“scorekeep-frontend",
"image":"xxx.dkr.ecr.us-east-1.amazonaws.com/fe",
"cpu": 256,
"memoryReservation": 512,
"portMappings": [
{ "containerPort": 8080 }
]
},
{
"name":“scorekeep-api",
"image":"xxx.dkr.ecr.us-east-1.amazonaws.com/api",
"cpu": 768,
"memoryReservation": 512,
"portMappings": [
{ "containerPort": 5000 }
]
}
]
}
Task Definition
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Permissões de Sustentação
• Nós precisamos de certas permissões na sua conta para iniciar sua task e mantê-la
em execução.
• Execution Role nos dá permissões para:
• Baixar imagens do Amazon ECR
• Enviar logs para o CloudWatch
• Amazon ECS Service Linked Role nos dá permissão para:
• Gestão de ENI’s
• Registrar/Desregistrar targets em Elastic Load Balancing
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Role de Execução
• Utilizando uma imagem no Amazon ECR ou CloudWatch
Logs?
• Crie uma Role IAM e adicione permissões de leitura ao
Amazon ECR
• ecr:GetAuthorizationToken e ecr:BatchGetImage
• Ou utilize a política gerenciada
AmazonEC2ContainerRegistryReadOnly
• Adicione permissões de escrita ao CloudWatch Logs
• logs:CreateLogStream e logs:PutLogEvents
• Ou utilize a política gerenciada
CloudWatchLogsFullAccess
• Estabeleça relação de confiança com ecs-
tasks.amazonaws.com. Isto nos permite assumir a role
• Adicione o arn de execução da role em sua task definition
Nos dê permissões através de uma Role de Execução {
"family": "scorekeep",
"cpu": "1 vCpu",
"memory": "2 gb",
"networkMode": “awsvpc“,
“taskRoleArn": “arn:aws...role/scorekeepRole“,
“executionRoleArn":
“arn:aws...role/scorekeepExecutionRole“,
"containerDefinitions": [
{
"name":“scorekeep-frontend",
"image":"xxx.dkr.ecr.us-east-1.amazonaws.com/fe",
"cpu": 256,
"memoryReservation": 512,
"portMappings": [
{ "containerPort": 8080 }
]
},
{
"name":“scorekeep-api",
"image":"xxx.dkr.ecr.us-east-1.amazonaws.com/api",
"cpu": 768,
"memoryReservation": 512,
"portMappings": [
{ "containerPort": 5000 }
]
}
]
}
Task Definition
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Role Vinculada ao Serviço Amazon ECS
• Uma role service-linked é um tipo único de role IAM que é vinculada diretamente a um serviço AWS,
neste caso, Amazon ECS
• Ela é criada automaticamente em sua conta na criação do primeiro cluster
• Ela possui uma política pré-definida, que é imutável. Neste caso, permissões ENI e Elastic Load
Balancing.
• Você não precisa passar esta role explicitamente na task definition ou em qualquer chamada API.
Apenas saiba sobre esta role caso você se depare com a mesma na console IAM.
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Visibilidade e Monitoramento
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Configuração do CloudWatch Logs
• Use o driver awslogs para enviar o
stdout de sua aplicação para o
CloudWatch Logs
• Crie um Log Group no CloudWatch
• Configure o driver de log em sua
task definition
• Lembre-se de adicionar permissões
através da Task Execution Role
{
"family": "scorekeep",
...
"containerDefinitions": [
{
"name":“scorekeep-frontend",
...
"logConfiguration": {
"logDriver": "awslogs",
"options": {
"awslogs-group": "scorekeep",
"awslogs-region": “us-east-1",
"awslogs-stream-prefix": "scorekeep/frontend“}}
},
{
"name":“scorekeep-api",
...
"logConfiguration": {
"logDriver": "awslogs",
"options": {
"awslogs-group": "scorekeep",
"awslogs-region": “us-east-1",
"awslogs-stream-prefix": "scorekeep/api"}}
}
]}
Task Definition
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
CloudWatch Logs
Tab Logs na
página de
detalhes da Task
Visualize logs através da console do Amazon ECS ou CloudWatch
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Outras Ferramentas de Visibilidade
Métricas de utilização de CPU/memória de
serviços disponíveis no CloudWatch
CloudWatch Events em mudanças de estado
das tasks
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
O que há de novo?
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
• Pesquise dados de ambiente e estatísticas para tasks em execução direto da Task! Habilita
ferramentas de monitoramento como Datadog, etc.
• Endpoints disponíveis:
Nível da Task (para todos os containers)
• 169.254.170.2/v2/metadata –JSON com Metadados para a Task
• 169.254.170.2/v2/stats -JSON com estatísticas do Docker para todos os containers na Task
Nível do Container
• 169.254.170.2/v2/metadata/<container-id>
• 169.254.170.2/v2/stats/<container-id>
Metadadados da Task
NOVO!
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
{
"Cluster": "default",
"TaskARN": "arn:aws:ecs:us-west-
2:012345678910:task/9781c248-0edd-4cdb-
9a93-f63cb662a5d3",
"Family": "nginx",
"Revision": "5",
"DesiredStatus": "RUNNING",
"KnownStatus": "RUNNING",
"Containers": [
{
"DockerId":
"731a0d6a3b4210e2448339bc7015aaa",
"Name": "~internal~ecs~pause",
"DockerName": "ecs-nginx-5-
internalecspause-1234",
Metadados da Task
Novo!
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
{
"Containers": [
{
"DockerId":
"731a0d6a3b4210e2448339bc7015aaa",
"Name": "~internal~ecs~pause",
"DockerName": "ecs-nginx-5-
internalecspause-1234",
"Image": "amazon/amazon-ecs-
pause:0.1.0",
"ImageID": "",
"Labels": {
"com.amazonaws.ecs.cluster":
"default",
"com.amazonaws.ecs.task-arn":
"com.amazonaws.ecs.task-definition-family":
"nginx",
"com.amazonaws.ecs.task-definition-
version": "5"
},
Metadados da Task
"DesiredStatus":
"RESOURCES_PROVISIONED",
"KnownStatus": "RESOURCES_PROVISIONED",
"Limits": {
"CPU": 512,
"Memory": 512
}
Novo!
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Monitoramento com Datadog Autodiscovery e AWS Fargate
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Health Checks em Containers
- Defina comandos de heath check customizados no ECS Task Definition
NOVO!
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Service Discovery Gerenciado para Amazon ECS
NOVO!
• Registro de Serviços:
• Nomes previsíveis para serviços
• Atualizado automaticamente com
os últimos endereços IP
saudáveis, porta
• Gerenciado: Sem sobrecarga de
instalação ou monitoramento
• Alta disponibilidade, alta escala
• Extensível: Limites flexíveis para auto
descoberta
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Amazon Route 53 Auto Naming Provê Registro de Serviços
Amazon Route 53 provê APIs para a
criação de
• Namespace
• CNAME por serviço
• Registros tipo A por IP de Task
• Registros SRV por IP + porta de Task
Service
CNAME: A / SRV record
Namespace
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Demo
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Lições Aprendidas
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Lições Aprendidas
• Fargate é um novo tipo de execução do Amazon ECS para execução de containers sem a
necessidade de gestão de instâncias Amazon EC2.
• Se você está decidindo entre Amazon EC2 vs. AWS Fargate, comece sua arquitetura utilizando
Fargate.
• Isto irá forçar boas práticas no design, mantendo os containers de sua aplicação verdadeiramente
independentes do host subjacente..
• Se você acha que precisa ter acesso ao host subjacente, pense novamente.
• Existem algumas boas razões: necessidades de um tipo especial de instância, instâncias EC2 dedicadas,
utilização de instâncias reservadas, GPUs, workloads Windows, etc
• E nos conte seu caso de uso. Nós queremos te ajudar com o Fargate!
• Comece utilizando o AWS Fargate hoje!
• Fargate trabalha com suas imagens de container Docker
• Você pode executar task definitions existentes no AWS Fargate com apenas algumas modificações.
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Aprenda mais em aws.amazon.com/Fargate
Obrigado!
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Avalie esta sessão
1. Clique no ícone da
Agenda.
2. Selecione a sessão
que assistiu.
3. Clique em Session Survey
para avaliar a sessão.

Mais conteúdo relacionado

Mais procurados

DevOps na AWS: Construindo Sistemas para Entregas Rápidas - DEV301 - Sao Pau...
DevOps na AWS: Construindo Sistemas para Entregas Rápidas -  DEV301 - Sao Pau...DevOps na AWS: Construindo Sistemas para Entregas Rápidas -  DEV301 - Sao Pau...
DevOps na AWS: Construindo Sistemas para Entregas Rápidas - DEV301 - Sao Pau...Amazon Web Services
 
Levando Serverless para o Edge - ARC301 - Sao Paulo Summit
Levando Serverless para o Edge -  ARC301 - Sao Paulo SummitLevando Serverless para o Edge -  ARC301 - Sao Paulo Summit
Levando Serverless para o Edge - ARC301 - Sao Paulo SummitAmazon Web Services
 
Escalando do Zero aos seus Primeiros 10 Milhões de Usuários - ARC203 - Sao P...
Escalando do Zero aos seus Primeiros 10 Milhões de Usuários -  ARC203 - Sao P...Escalando do Zero aos seus Primeiros 10 Milhões de Usuários -  ARC203 - Sao P...
Escalando do Zero aos seus Primeiros 10 Milhões de Usuários - ARC203 - Sao P...Amazon Web Services
 
Sessão Avançada: Armazenamento Híbrido na Nuvem com AWS Storage Gateway - CM...
Sessão Avançada: Armazenamento Híbrido na Nuvem com AWS Storage Gateway -  CM...Sessão Avançada: Armazenamento Híbrido na Nuvem com AWS Storage Gateway -  CM...
Sessão Avançada: Armazenamento Híbrido na Nuvem com AWS Storage Gateway - CM...Amazon Web Services
 
Detecção e Mitigação de Ameaças - SID301 - Sao Paulo Summit
Detecção e Mitigação de Ameaças -  SID301 - Sao Paulo SummitDetecção e Mitigação de Ameaças -  SID301 - Sao Paulo Summit
Detecção e Mitigação de Ameaças - SID301 - Sao Paulo SummitAmazon Web Services
 
Segurança - 10 regras que você deve saber antes de migrar sua infraestrutura ...
Segurança - 10 regras que você deve saber antes de migrar sua infraestrutura ...Segurança - 10 regras que você deve saber antes de migrar sua infraestrutura ...
Segurança - 10 regras que você deve saber antes de migrar sua infraestrutura ...Amazon Web Services LATAM
 
Processamento Dados em Escala com Serverless: Um Estudo de Caso da Amazon.com...
Processamento Dados em Escala com Serverless: Um Estudo de Caso da Amazon.com...Processamento Dados em Escala com Serverless: Um Estudo de Caso da Amazon.com...
Processamento Dados em Escala com Serverless: Um Estudo de Caso da Amazon.com...Amazon Web Services
 
Componentes de IoT: Dos Dispositivos de Borda a Análise de Dados na Nuvem
Componentes de IoT: Dos Dispositivos de Borda a Análise de Dados na NuvemComponentes de IoT: Dos Dispositivos de Borda a Análise de Dados na Nuvem
Componentes de IoT: Dos Dispositivos de Borda a Análise de Dados na NuvemAmazon Web Services LATAM
 
DevOps na AWS: Construindo Sistemas para Entregas Rápidas
DevOps na AWS: Construindo Sistemas para Entregas RápidasDevOps na AWS: Construindo Sistemas para Entregas Rápidas
DevOps na AWS: Construindo Sistemas para Entregas RápidasAmazon Web Services LATAM
 
Sessão Avançada: Amazon Aurora - DAT302 - Sao Paulo Summit
Sessão Avançada: Amazon Aurora -  DAT302 - Sao Paulo SummitSessão Avançada: Amazon Aurora -  DAT302 - Sao Paulo Summit
Sessão Avançada: Amazon Aurora - DAT302 - Sao Paulo SummitAmazon Web Services
 
DevOps aplicado à AWS - DEM07 - Sao Paulo Summit
DevOps aplicado à AWS -  DEM07 - Sao Paulo SummitDevOps aplicado à AWS -  DEM07 - Sao Paulo Summit
DevOps aplicado à AWS - DEM07 - Sao Paulo SummitAmazon Web Services
 
Criando Aplicações Serverless - ARC302 - Sao Paulo Summit
Criando Aplicações Serverless -  ARC302 - Sao Paulo SummitCriando Aplicações Serverless -  ARC302 - Sao Paulo Summit
Criando Aplicações Serverless - ARC302 - Sao Paulo SummitAmazon Web Services
 
Construindo um Data Warehouse moderno com Amazon Redshift
Construindo um Data Warehouse moderno com Amazon RedshiftConstruindo um Data Warehouse moderno com Amazon Redshift
Construindo um Data Warehouse moderno com Amazon RedshiftAmazon Web Services LATAM
 
Do monolítico a sem servidor com a Dynatrace - DEM06 - Sao Paulo Summit
Do monolítico a sem servidor com a Dynatrace -  DEM06 - Sao Paulo SummitDo monolítico a sem servidor com a Dynatrace -  DEM06 - Sao Paulo Summit
Do monolítico a sem servidor com a Dynatrace - DEM06 - Sao Paulo SummitAmazon Web Services
 
Componentes de IoT: Dos Dispositivos de Borda a Análise de Dados na Nuvem - ...
Componentes de IoT: Dos Dispositivos de Borda a Análise de Dados na Nuvem -  ...Componentes de IoT: Dos Dispositivos de Borda a Análise de Dados na Nuvem -  ...
Componentes de IoT: Dos Dispositivos de Borda a Análise de Dados na Nuvem - ...Amazon Web Services
 
Sem medo de sair do monolito para o sem servidor com Dynatrace - DEM10 - Sao...
Sem medo de sair do monolito para o sem servidor com Dynatrace -  DEM10 - Sao...Sem medo de sair do monolito para o sem servidor com Dynatrace -  DEM10 - Sao...
Sem medo de sair do monolito para o sem servidor com Dynatrace - DEM10 - Sao...Amazon Web Services
 

Mais procurados (20)

DevOps na AWS: Construindo Sistemas para Entregas Rápidas - DEV301 - Sao Pau...
DevOps na AWS: Construindo Sistemas para Entregas Rápidas -  DEV301 - Sao Pau...DevOps na AWS: Construindo Sistemas para Entregas Rápidas -  DEV301 - Sao Pau...
DevOps na AWS: Construindo Sistemas para Entregas Rápidas - DEV301 - Sao Pau...
 
Levando Serverless para o Edge - ARC301 - Sao Paulo Summit
Levando Serverless para o Edge -  ARC301 - Sao Paulo SummitLevando Serverless para o Edge -  ARC301 - Sao Paulo Summit
Levando Serverless para o Edge - ARC301 - Sao Paulo Summit
 
Escalando do Zero aos seus Primeiros 10 Milhões de Usuários - ARC203 - Sao P...
Escalando do Zero aos seus Primeiros 10 Milhões de Usuários -  ARC203 - Sao P...Escalando do Zero aos seus Primeiros 10 Milhões de Usuários -  ARC203 - Sao P...
Escalando do Zero aos seus Primeiros 10 Milhões de Usuários - ARC203 - Sao P...
 
Sessão Avançada: Armazenamento Híbrido na Nuvem com AWS Storage Gateway - CM...
Sessão Avançada: Armazenamento Híbrido na Nuvem com AWS Storage Gateway -  CM...Sessão Avançada: Armazenamento Híbrido na Nuvem com AWS Storage Gateway -  CM...
Sessão Avançada: Armazenamento Híbrido na Nuvem com AWS Storage Gateway - CM...
 
Detecção e Mitigação de Ameaças - SID301 - Sao Paulo Summit
Detecção e Mitigação de Ameaças -  SID301 - Sao Paulo SummitDetecção e Mitigação de Ameaças -  SID301 - Sao Paulo Summit
Detecção e Mitigação de Ameaças - SID301 - Sao Paulo Summit
 
Segurança - 10 regras que você deve saber antes de migrar sua infraestrutura ...
Segurança - 10 regras que você deve saber antes de migrar sua infraestrutura ...Segurança - 10 regras que você deve saber antes de migrar sua infraestrutura ...
Segurança - 10 regras que você deve saber antes de migrar sua infraestrutura ...
 
Processamento Dados em Escala com Serverless: Um Estudo de Caso da Amazon.com...
Processamento Dados em Escala com Serverless: Um Estudo de Caso da Amazon.com...Processamento Dados em Escala com Serverless: Um Estudo de Caso da Amazon.com...
Processamento Dados em Escala com Serverless: Um Estudo de Caso da Amazon.com...
 
Criando Aplicações Serverless
Criando Aplicações ServerlessCriando Aplicações Serverless
Criando Aplicações Serverless
 
Componentes de IoT: Dos Dispositivos de Borda a Análise de Dados na Nuvem
Componentes de IoT: Dos Dispositivos de Borda a Análise de Dados na NuvemComponentes de IoT: Dos Dispositivos de Borda a Análise de Dados na Nuvem
Componentes de IoT: Dos Dispositivos de Borda a Análise de Dados na Nuvem
 
DevOps na AWS: Construindo Sistemas para Entregas Rápidas
DevOps na AWS: Construindo Sistemas para Entregas RápidasDevOps na AWS: Construindo Sistemas para Entregas Rápidas
DevOps na AWS: Construindo Sistemas para Entregas Rápidas
 
Sessão Avançada: Amazon Aurora - DAT302 - Sao Paulo Summit
Sessão Avançada: Amazon Aurora -  DAT302 - Sao Paulo SummitSessão Avançada: Amazon Aurora -  DAT302 - Sao Paulo Summit
Sessão Avançada: Amazon Aurora - DAT302 - Sao Paulo Summit
 
Construindo Data Lakes e Analytics na AWS
Construindo Data Lakes e Analytics na AWSConstruindo Data Lakes e Analytics na AWS
Construindo Data Lakes e Analytics na AWS
 
DevOps aplicado à AWS - DEM07 - Sao Paulo Summit
DevOps aplicado à AWS -  DEM07 - Sao Paulo SummitDevOps aplicado à AWS -  DEM07 - Sao Paulo Summit
DevOps aplicado à AWS - DEM07 - Sao Paulo Summit
 
Criando Aplicações Serverless - ARC302 - Sao Paulo Summit
Criando Aplicações Serverless -  ARC302 - Sao Paulo SummitCriando Aplicações Serverless -  ARC302 - Sao Paulo Summit
Criando Aplicações Serverless - ARC302 - Sao Paulo Summit
 
Rodando Kubernetes com Amazon EKS
Rodando Kubernetes com Amazon EKSRodando Kubernetes com Amazon EKS
Rodando Kubernetes com Amazon EKS
 
Construindo um Data Warehouse moderno com Amazon Redshift
Construindo um Data Warehouse moderno com Amazon RedshiftConstruindo um Data Warehouse moderno com Amazon Redshift
Construindo um Data Warehouse moderno com Amazon Redshift
 
Do monolítico a sem servidor com a Dynatrace - DEM06 - Sao Paulo Summit
Do monolítico a sem servidor com a Dynatrace -  DEM06 - Sao Paulo SummitDo monolítico a sem servidor com a Dynatrace -  DEM06 - Sao Paulo Summit
Do monolítico a sem servidor com a Dynatrace - DEM06 - Sao Paulo Summit
 
Componentes de IoT: Dos Dispositivos de Borda a Análise de Dados na Nuvem - ...
Componentes de IoT: Dos Dispositivos de Borda a Análise de Dados na Nuvem -  ...Componentes de IoT: Dos Dispositivos de Borda a Análise de Dados na Nuvem -  ...
Componentes de IoT: Dos Dispositivos de Borda a Análise de Dados na Nuvem - ...
 
Microsoft Workloads em Amazon Web Services
Microsoft Workloads em Amazon Web ServicesMicrosoft Workloads em Amazon Web Services
Microsoft Workloads em Amazon Web Services
 
Sem medo de sair do monolito para o sem servidor com Dynatrace - DEM10 - Sao...
Sem medo de sair do monolito para o sem servidor com Dynatrace -  DEM10 - Sao...Sem medo de sair do monolito para o sem servidor com Dynatrace -  DEM10 - Sao...
Sem medo de sair do monolito para o sem servidor com Dynatrace - DEM10 - Sao...
 

Semelhante a Desenvolvimento de Aplicações em Container com AWS Fargate - DEV302 - Sao Paulo Summit

Criando o seu Data Center Virtual: Fundamentos de VPC e Opções de Conectivida...
Criando o seu Data Center Virtual: Fundamentos de VPC e Opções de Conectivida...Criando o seu Data Center Virtual: Fundamentos de VPC e Opções de Conectivida...
Criando o seu Data Center Virtual: Fundamentos de VPC e Opções de Conectivida...Amazon Web Services
 
Criando seu Data Center Virtual: Fundamentos de VPC e Opções de Conectividade
Criando seu Data Center Virtual: Fundamentos de VPC e Opções de ConectividadeCriando seu Data Center Virtual: Fundamentos de VPC e Opções de Conectividade
Criando seu Data Center Virtual: Fundamentos de VPC e Opções de ConectividadeAmazon Web Services LATAM
 
FSI Roundtable - Cultura de Inovação com DevOps, microserviços e serverless
FSI Roundtable - Cultura de Inovação com DevOps, microserviços e serverlessFSI Roundtable - Cultura de Inovação com DevOps, microserviços e serverless
FSI Roundtable - Cultura de Inovação com DevOps, microserviços e serverlessAmazon Web Services LATAM
 
Passo a passo para criar seu desktop virtual na nuvem
Passo a passo para criar seu desktop virtual na nuvemPasso a passo para criar seu desktop virtual na nuvem
Passo a passo para criar seu desktop virtual na nuvemAmazon Web Services LATAM
 
DevOps aplicado à AWS - DEM07 - Sao Paulo Summit
DevOps aplicado à AWS -  DEM07 - Sao Paulo SummitDevOps aplicado à AWS -  DEM07 - Sao Paulo Summit
DevOps aplicado à AWS - DEM07 - Sao Paulo SummitAmazon Web Services
 
Melhores práticas de CI/CD na construção de aplicações modernas
Melhores práticas de CI/CD na construção de aplicações modernasMelhores práticas de CI/CD na construção de aplicações modernas
Melhores práticas de CI/CD na construção de aplicações modernasAmazon Web Services LATAM
 
AWS para terceiro setor - Sessão 1 - Introdução à nuvem
AWS para terceiro setor - Sessão 1 - Introdução à nuvemAWS para terceiro setor - Sessão 1 - Introdução à nuvem
AWS para terceiro setor - Sessão 1 - Introdução à nuvemAmazon Web Services LATAM
 
AWS para terceiro setor - Sessão 1 - Introdução à nuvem
AWS para terceiro setor - Sessão 1 - Introdução à nuvemAWS para terceiro setor - Sessão 1 - Introdução à nuvem
AWS para terceiro setor - Sessão 1 - Introdução à nuvemAmazon Web Services LATAM
 
Cloud & AWS: Da teoria à prática
Cloud & AWS: Da teoria à práticaCloud & AWS: Da teoria à prática
Cloud & AWS: Da teoria à práticaRicardo Martins ☁
 
Usando Containers e Serverless para acelerar o desenvolvimento de aplicações ...
Usando Containers e Serverless para acelerar o desenvolvimento de aplicações ...Usando Containers e Serverless para acelerar o desenvolvimento de aplicações ...
Usando Containers e Serverless para acelerar o desenvolvimento de aplicações ...Amazon Web Services LATAM
 
AWS Webinar Series Brasil: Modernize seus Workloads Windows na AWS
AWS Webinar Series Brasil: Modernize seus Workloads Windows na AWSAWS Webinar Series Brasil: Modernize seus Workloads Windows na AWS
AWS Webinar Series Brasil: Modernize seus Workloads Windows na AWSAmazon Web Services LATAM
 
Vitor Hugo Bastos Cardoso apresenta voando alto com WordPress: um guia prátic...
Vitor Hugo Bastos Cardoso apresenta voando alto com WordPress: um guia prátic...Vitor Hugo Bastos Cardoso apresenta voando alto com WordPress: um guia prátic...
Vitor Hugo Bastos Cardoso apresenta voando alto com WordPress: um guia prátic...WordCamp Floripa
 
Rio Cloud Computing Meetup 25/01/2017 - Lançamentos do AWS re:Invent 2016
Rio Cloud Computing Meetup 25/01/2017 - Lançamentos do AWS re:Invent 2016Rio Cloud Computing Meetup 25/01/2017 - Lançamentos do AWS re:Invent 2016
Rio Cloud Computing Meetup 25/01/2017 - Lançamentos do AWS re:Invent 2016Filipe Barretto
 
Agile development with Amazon Linux WorkSpaces and Amazon WorkLink - SVC202 -...
Agile development with Amazon Linux WorkSpaces and Amazon WorkLink - SVC202 -...Agile development with Amazon Linux WorkSpaces and Amazon WorkLink - SVC202 -...
Agile development with Amazon Linux WorkSpaces and Amazon WorkLink - SVC202 -...Amazon Web Services
 
Twelve-Factor serverless applications - MAD302 - São Paulo AWS Summit
Twelve-Factor serverless applications - MAD302 - São Paulo AWS SummitTwelve-Factor serverless applications - MAD302 - São Paulo AWS Summit
Twelve-Factor serverless applications - MAD302 - São Paulo AWS SummitAmazon Web Services
 
AWS Initiate Digital week 2020 - Nuvem Hibrida.pptx
AWS Initiate Digital week 2020 - Nuvem Hibrida.pptxAWS Initiate Digital week 2020 - Nuvem Hibrida.pptx
AWS Initiate Digital week 2020 - Nuvem Hibrida.pptxAmazon Web Services LATAM
 

Semelhante a Desenvolvimento de Aplicações em Container com AWS Fargate - DEV302 - Sao Paulo Summit (20)

Criando o seu Data Center Virtual: Fundamentos de VPC e Opções de Conectivida...
Criando o seu Data Center Virtual: Fundamentos de VPC e Opções de Conectivida...Criando o seu Data Center Virtual: Fundamentos de VPC e Opções de Conectivida...
Criando o seu Data Center Virtual: Fundamentos de VPC e Opções de Conectivida...
 
Criando seu Data Center Virtual: Fundamentos de VPC e Opções de Conectividade
Criando seu Data Center Virtual: Fundamentos de VPC e Opções de ConectividadeCriando seu Data Center Virtual: Fundamentos de VPC e Opções de Conectividade
Criando seu Data Center Virtual: Fundamentos de VPC e Opções de Conectividade
 
FSI Roundtable - Cultura de Inovação com DevOps, microserviços e serverless
FSI Roundtable - Cultura de Inovação com DevOps, microserviços e serverlessFSI Roundtable - Cultura de Inovação com DevOps, microserviços e serverless
FSI Roundtable - Cultura de Inovação com DevOps, microserviços e serverless
 
Passo a passo para criar seu desktop virtual na nuvem
Passo a passo para criar seu desktop virtual na nuvemPasso a passo para criar seu desktop virtual na nuvem
Passo a passo para criar seu desktop virtual na nuvem
 
DevOps aplicado à AWS - DEM07 - Sao Paulo Summit
DevOps aplicado à AWS -  DEM07 - Sao Paulo SummitDevOps aplicado à AWS -  DEM07 - Sao Paulo Summit
DevOps aplicado à AWS - DEM07 - Sao Paulo Summit
 
Introdução ao Amazon EKS
Introdução ao Amazon EKSIntrodução ao Amazon EKS
Introdução ao Amazon EKS
 
Melhores práticas de CI/CD na construção de aplicações modernas
Melhores práticas de CI/CD na construção de aplicações modernasMelhores práticas de CI/CD na construção de aplicações modernas
Melhores práticas de CI/CD na construção de aplicações modernas
 
AWS para terceiro setor - Sessão 1 - Introdução à nuvem
AWS para terceiro setor - Sessão 1 - Introdução à nuvemAWS para terceiro setor - Sessão 1 - Introdução à nuvem
AWS para terceiro setor - Sessão 1 - Introdução à nuvem
 
AWS para terceiro setor - Sessão 1 - Introdução à nuvem
AWS para terceiro setor - Sessão 1 - Introdução à nuvemAWS para terceiro setor - Sessão 1 - Introdução à nuvem
AWS para terceiro setor - Sessão 1 - Introdução à nuvem
 
Cloud & AWS: Da teoria à prática
Cloud & AWS: Da teoria à práticaCloud & AWS: Da teoria à prática
Cloud & AWS: Da teoria à prática
 
Webinar: Containers
Webinar: ContainersWebinar: Containers
Webinar: Containers
 
Usando Containers e Serverless para acelerar o desenvolvimento de aplicações ...
Usando Containers e Serverless para acelerar o desenvolvimento de aplicações ...Usando Containers e Serverless para acelerar o desenvolvimento de aplicações ...
Usando Containers e Serverless para acelerar o desenvolvimento de aplicações ...
 
AWS Webinar Series Brasil: Modernize seus Workloads Windows na AWS
AWS Webinar Series Brasil: Modernize seus Workloads Windows na AWSAWS Webinar Series Brasil: Modernize seus Workloads Windows na AWS
AWS Webinar Series Brasil: Modernize seus Workloads Windows na AWS
 
Vitor Hugo Bastos Cardoso apresenta voando alto com WordPress: um guia prátic...
Vitor Hugo Bastos Cardoso apresenta voando alto com WordPress: um guia prátic...Vitor Hugo Bastos Cardoso apresenta voando alto com WordPress: um guia prátic...
Vitor Hugo Bastos Cardoso apresenta voando alto com WordPress: um guia prátic...
 
AWS Webinar | Como usar AWS?
AWS Webinar | Como usar AWS?AWS Webinar | Como usar AWS?
AWS Webinar | Como usar AWS?
 
Rio Cloud Computing Meetup 25/01/2017 - Lançamentos do AWS re:Invent 2016
Rio Cloud Computing Meetup 25/01/2017 - Lançamentos do AWS re:Invent 2016Rio Cloud Computing Meetup 25/01/2017 - Lançamentos do AWS re:Invent 2016
Rio Cloud Computing Meetup 25/01/2017 - Lançamentos do AWS re:Invent 2016
 
Introduction to Cloud Computing
Introduction to Cloud ComputingIntroduction to Cloud Computing
Introduction to Cloud Computing
 
Agile development with Amazon Linux WorkSpaces and Amazon WorkLink - SVC202 -...
Agile development with Amazon Linux WorkSpaces and Amazon WorkLink - SVC202 -...Agile development with Amazon Linux WorkSpaces and Amazon WorkLink - SVC202 -...
Agile development with Amazon Linux WorkSpaces and Amazon WorkLink - SVC202 -...
 
Twelve-Factor serverless applications - MAD302 - São Paulo AWS Summit
Twelve-Factor serverless applications - MAD302 - São Paulo AWS SummitTwelve-Factor serverless applications - MAD302 - São Paulo AWS Summit
Twelve-Factor serverless applications - MAD302 - São Paulo AWS Summit
 
AWS Initiate Digital week 2020 - Nuvem Hibrida.pptx
AWS Initiate Digital week 2020 - Nuvem Hibrida.pptxAWS Initiate Digital week 2020 - Nuvem Hibrida.pptx
AWS Initiate Digital week 2020 - Nuvem Hibrida.pptx
 

Mais de Amazon Web Services

Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...Amazon Web Services
 
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...Amazon Web Services
 
Esegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS FargateEsegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS FargateAmazon Web Services
 
Costruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWSCostruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWSAmazon Web Services
 
Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot Amazon Web Services
 
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...Amazon Web Services
 
OpsWorks Configuration Management: automatizza la gestione e i deployment del...
OpsWorks Configuration Management: automatizza la gestione e i deployment del...OpsWorks Configuration Management: automatizza la gestione e i deployment del...
OpsWorks Configuration Management: automatizza la gestione e i deployment del...Amazon Web Services
 
Microsoft Active Directory su AWS per supportare i tuoi Windows Workloads
Microsoft Active Directory su AWS per supportare i tuoi Windows WorkloadsMicrosoft Active Directory su AWS per supportare i tuoi Windows Workloads
Microsoft Active Directory su AWS per supportare i tuoi Windows WorkloadsAmazon Web Services
 
Database Oracle e VMware Cloud on AWS i miti da sfatare
Database Oracle e VMware Cloud on AWS i miti da sfatareDatabase Oracle e VMware Cloud on AWS i miti da sfatare
Database Oracle e VMware Cloud on AWS i miti da sfatareAmazon Web Services
 
Crea la tua prima serverless ledger-based app con QLDB e NodeJS
Crea la tua prima serverless ledger-based app con QLDB e NodeJSCrea la tua prima serverless ledger-based app con QLDB e NodeJS
Crea la tua prima serverless ledger-based app con QLDB e NodeJSAmazon Web Services
 
API moderne real-time per applicazioni mobili e web
API moderne real-time per applicazioni mobili e webAPI moderne real-time per applicazioni mobili e web
API moderne real-time per applicazioni mobili e webAmazon Web Services
 
Database Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatareDatabase Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatareAmazon Web Services
 
Tools for building your MVP on AWS
Tools for building your MVP on AWSTools for building your MVP on AWS
Tools for building your MVP on AWSAmazon Web Services
 
How to Build a Winning Pitch Deck
How to Build a Winning Pitch DeckHow to Build a Winning Pitch Deck
How to Build a Winning Pitch DeckAmazon Web Services
 
Building a web application without servers
Building a web application without serversBuilding a web application without servers
Building a web application without serversAmazon Web Services
 
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...Amazon Web Services
 
Introduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container ServiceIntroduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container ServiceAmazon Web Services
 

Mais de Amazon Web Services (20)

Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
 
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
 
Esegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS FargateEsegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS Fargate
 
Costruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWSCostruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWS
 
Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot
 
Open banking as a service
Open banking as a serviceOpen banking as a service
Open banking as a service
 
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
 
OpsWorks Configuration Management: automatizza la gestione e i deployment del...
OpsWorks Configuration Management: automatizza la gestione e i deployment del...OpsWorks Configuration Management: automatizza la gestione e i deployment del...
OpsWorks Configuration Management: automatizza la gestione e i deployment del...
 
Microsoft Active Directory su AWS per supportare i tuoi Windows Workloads
Microsoft Active Directory su AWS per supportare i tuoi Windows WorkloadsMicrosoft Active Directory su AWS per supportare i tuoi Windows Workloads
Microsoft Active Directory su AWS per supportare i tuoi Windows Workloads
 
Computer Vision con AWS
Computer Vision con AWSComputer Vision con AWS
Computer Vision con AWS
 
Database Oracle e VMware Cloud on AWS i miti da sfatare
Database Oracle e VMware Cloud on AWS i miti da sfatareDatabase Oracle e VMware Cloud on AWS i miti da sfatare
Database Oracle e VMware Cloud on AWS i miti da sfatare
 
Crea la tua prima serverless ledger-based app con QLDB e NodeJS
Crea la tua prima serverless ledger-based app con QLDB e NodeJSCrea la tua prima serverless ledger-based app con QLDB e NodeJS
Crea la tua prima serverless ledger-based app con QLDB e NodeJS
 
API moderne real-time per applicazioni mobili e web
API moderne real-time per applicazioni mobili e webAPI moderne real-time per applicazioni mobili e web
API moderne real-time per applicazioni mobili e web
 
Database Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatareDatabase Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatare
 
Tools for building your MVP on AWS
Tools for building your MVP on AWSTools for building your MVP on AWS
Tools for building your MVP on AWS
 
How to Build a Winning Pitch Deck
How to Build a Winning Pitch DeckHow to Build a Winning Pitch Deck
How to Build a Winning Pitch Deck
 
Building a web application without servers
Building a web application without serversBuilding a web application without servers
Building a web application without servers
 
Fundraising Essentials
Fundraising EssentialsFundraising Essentials
Fundraising Essentials
 
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
 
Introduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container ServiceIntroduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container Service
 

Desenvolvimento de Aplicações em Container com AWS Fargate - DEV302 - Sao Paulo Summit

  • 1. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Desenvolvimento de Aplicações em Container com AWS Fargate Bruno Emer Arquiteto de Soluções Amazon Web Services DEV302
  • 2. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Motivação para o AWS Fargate Trabalhando com o AWS Fargate Novidades para o Amazon ECS e AWS Fargate
  • 3. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Motivação
  • 4. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. No início, existia Amazon EC2
  • 5. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Então, Docker! Clientes começaram a conteinerizar aplicações utilizando instâncias EC2 EC2 Instance Containers
  • 6. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Containers tornaram fácil criar e escalar aplicações nativas em nuvem
  • 7. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Clientes precisavam de uma forma fácil para gerenciar grandes clusters de instâncias, iniciar containers e executar serviços
  • 8. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Agendamento e Orquestração Cluster Manager Placement Engine
  • 9. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. ECS Agent Docker Agent SO Instância EC2 Mas você continuava gerenciando mais do que apenas containers
  • 10. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Aplicação de patches e upgrades em SO, agentes, etc. Escalando a frota de instâncias para melhor utilização
  • 11. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. ECS Agent Docker Agent SO Instância EC2 ECS Agent Docker Agent SO Instância EC2 ECS Agent Docker Agent SO Instância EC2 Elastic Container Service
  • 12. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Suas Aplicações em Containers GERENCIADO PELA AWS Sem instâncias EC2 para provisionar, escalar ou gerenciar ELÁSTICO Escale para mais ou para menos. Pague apenas pelo uso. INTEGRADO Com todo o ecossistema AWS: Amazon VPC, Elastic Load Balancing, AWS Identity and Access Management , Amazon CloudWatch e mais. AWS Fargate
  • 13. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Panorama dos serviços de Containers da AWS GESTÃO Implantação, agendamento, dimensionamento e gestão de aplicações em containers HOSPEDAGEM Onde os containers rodam Amazon Elastic Container Service Amazon Elastic Container Service for Kubernetes Amazon EC2 AWS Fargate REGISTRO DE IMAGENS Repositório de imagens de containers Amazon Elastic Container Registry
  • 14. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Clientes utilizando AWS Fargate ”We don't want to babysit any clusters. That has nothing to do with us.” Shimon Tolts CTO, DATREE “We moved to Fargate because we need the ability to scale quickly up from baseline and get fine-grained network control, without having to manage our own infrastructure.” Product Hunt
  • 15. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Trabalhando com o Fargate
  • 16. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Utilizando Fargate com Amazon ECS
  • 17. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Define os containers da aplicação: url da imagem, requisitos de CPU e memória, etc. register Task Definition create Cluster • Limite de isolamento da infraestrutura • Limite de permissões IAM run Task • Uma instância de uma task definition em execução • Use o tipo de lançamento AWS Fargate create Service Elastic Load Balancing • Mantém N cópias em execução • Integrado ao Elastic Load Balancing • Tasks não saudáveis são automaticamente substituídas Utilizando Fargate com Amazon ECS
  • 18. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Task Definition { "family": “scorekeep", "containerDefinitions": [ { "name":“scorekeep-frontend", "image":"xxx.dkr.ecr.us-east-1.amazonaws.com/fe" }, { "name":“scorekeep-api", "image":"xxx.dkr.ecr.us-east-1.amazonaws.com/api" } ] } Documento imutável e versionado Identificado pela família: versão Contém uma lista de até 10 definições de containers Todos os containers são executados no mesmo host Cada Container Definition possui: • Um nome • URL da Imagem (Amazon ECR or Imagens Públicas) • E mais… fique ligado! Snippet de uma Task Definition
  • 19. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Suporte a Repositórios Repositórios privados de terceiros (em breve!) Repositórios públicos suportados Amazon ECR
  • 20. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Computação
  • 21. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Especificação de CPU e Memória { "family": "scorekeep", "cpu": "1 vCpu", "memory": "2 gb", "containerDefinitions": [ { "name":“scorekeep-frontend", "image":"xxx.dkr.ecr.us-east-1.amazonaws.com/fe“, "cpu": 256, "memoryReservation": 512 }, { "name":“scorekeep-api", "image":"xxx.dkr.ecr.us-east-1.amazonaws.com/api", "cpu": 768, "memoryReservation": 512 } ] } Recursos a Nível de Task • CPU/memória total para todos os containers • Campos obrigatórios • Dimensões de cobrança Unidades • CPU: cpu-units. 1 vCPU = 1024 cpu-units • Memória: MB Recursos a nível de Container • Define o compartilhamento de recursos entre os containers • Campos opcionais Recursos a Nível de Task Recursos a nível de Container Task Definition Snippet
  • 22. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Configurações de CPU e Memória das Tasks 50 diferentes combinações de CPU/memória para serem escolhidas CPU Memory 256 (.25 vCPU) 512 MB, 1 GB, 2 GB 512 (.5 vCPU) 1 GB, 2 GB, 3 GB, 4 GB 1024 (1 vCPU) 2 GB, 3 GB, 4 GB, 5 GB, 6 GB, 7 GB, 8 GB 2048 (2 vCPU) Entre 4 GB e 16 GB em incrementos de 1-GB 4096 (4 vCPU) Entre 8 GB e 30 GB em incrementos de 1-GB
  • 23. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Precificação Cobrança por Segundo. Mínimo de um minuto Pague pelo que você provisiona Cobrança pelo nível de CPU e memória das Tasks
  • 24. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Rede
  • 25. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Integração com VPC 172.31.0.0/16 Subnet 172.31.1.0/24 Internet Other Entities in VPC EC2 LB DB etc. IP Privado 172.31.1.164 Inicie suas Tasks Fargate em subnets Nos bastidores: • Nós criamos uma Elastic Network Interface (ENI) • É alocado IP privado de sua subnet a esta ENI • A ENI é conectado à sua Task • Agora sua Task possui um IP privado de sua subnet! Você pode associar IPs públicos às suas tasks Configure security groups para controlar o tráfego de entrada e saída ENI Fargate TaskPúblico / 208.57.73.13 /
  • 26. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Configuração da VPC { "family": "scorekeep", "cpu": "1 vCpu", "memory": "2 gb", "networkMode": "awsvpc", "containerDefinitions": [ { "name":“scorekeep-frontend", "image":"xxx.dkr.ecr.us-east-1.amazonaws.com/fe", "cpu": 256, "memoryReservation": 512 }, { "name":“scorekeep-api", "image":"xxx.dkr.ecr.us-east-1.amazonaws.com/api", "cpu": 768, "memoryReservation": 512 } ] } $ aws ecs run-task ... -- task-definition scorekeep:1 -- network-configuration “awsvpcConfiguration = { subnets=[subnet1-id, subnet2-id], securityGroups=[sg-id] }” Habilita a criação e conexão da ENI à Task Run Task Task Definition
  • 27. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Acesso a Internet A ENI da Task é utilizada para todo o tráfego de entrada e saída de e para sua Task Ela também é utilizada para: • Baixar as imagens (do ECR ou de repositórios públicos) • Enviar logs para o CloudWatch Estes endpoints precisam ser acessíveis através da ENI de sua Task Dois modos de setup comuns: • Privado sem tráfego de entrada a partir da internet, mas permite saída para internet • Tasks públicas, com acesso de entrada e saída a internet
  • 28. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Configuração de Tasks Privadas Subnet Pública Subnet Privada Fargate TaskENI IP Privado 172.31.1.164 NAT Gateway EIP Público 34.214.162.237 Internet Gateway 172.31.0.0/16 172.31.2.0/24 172.31.1.0/24 Destination Target 172.31.0.0/16 local 0.0.0.0/0 NAT Gateway Destination Target 172.31.0.0/16 local 0.0.0.0/0 Internet Gateway Route Tables Internet Conecte o Internet Gateway à VPC Configure uma Subnet Publica com: • Rota para o Internet Gateway • NAT Gateway Configure a Subnet Privada com • Task Fargate • Rota para o NAT Gateway Security Group para permitir o tráfego de saída para a Internet Tipo Porta Destino All Traffic ALL 0.0.0.0/0 Outbound Security Group Rules
  • 29. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Outbound Inbound Configuração de Tasks Públicas Public subnet Fargate Task Public IP 54.191.135.66 Internet Gateway 172.31.0.0/16 172.31.2.0/24 Destination Target 172.31.0.0/16 local 0.0.0.0/0 Internet Gateway Route Table Internet ENI $ aws ecs run-task ... -- network-configuration “awsvpcConfiguration = { subnets=[public-subnet], securityGroups=[sg-id], }” Inicie a Tasks em uma subnet pública A task receberá um IP público Security Group que permita o tráfego de entrada proveniente da InternetType Port Source HTTP 8080 0.0.0.0/0 Inbound Security Group Rule Type Port Destination All Traffic ALL 0.0.0.0/0 Outbound Security Group Rules assignPublicIp=ENABLED Run Task
  • 30. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Configuração do Elastic Load Balancing { "family": "scorekeep", "cpu": "1 vCpu", "memory": "2 gb", "networkMode": “awsvpc“, "containerDefinitions": [ { "name":“scorekeep-frontend", "image":"xxx.dkr.ecr.us-east-1.amazonaws.com/fe", "cpu": 256, "memoryReservation": 512, "portMappings": [ { "containerPort": 8080 } ] }, { "name":“scorekeep-api", "image":"xxx.dkr.ecr.us-east-1.amazonaws.com/api", "cpu": 768, "memoryReservation": 512, "portMappings": [ { "containerPort": 5000 } ] } ] } $ aws ecs create-service ... -- task-definition scorekeep:1 -- network-configuration “awsvpcConfiguration = { subnets=[subnet-id], securityGroups=[sg-id] }” -- load-balancers “[ { "targetGroupArn": “<insert arn>", "containerName": “scorekeep-frontend", "containerPort": 8080 } ]” Create Service Task Definition
  • 31. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Configuração de Elastic Load Balancing Público Public subnet Private subnet Fargate TaskENI Private IP 172.31.1.164 :8080 ALB Public IP 208.57.73.13 :80 172.31.0.0/16 172.31.2.0/24 172.31.1.0/24 Internet Task em uma subnet privada com endereço IP privado ALB em subnet pública com endereço IP público Tenha certeza que as Availability Zones das duas subnets combinam Security group do ALB deve permitir tráfego de entrada a partir da Internet O security group da Task deve permitir o tráfego de entrada a partir do security group do ALB Task Security GroupALB Security Group Type Port Source HTTP 80 0.0.0.0/0 Inbound Rule Type Port Source Custom TCP 8080 ALB Security Group Inbound Rule us-east-1a us-east-1a
  • 32. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Armazenamento
  • 33. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Armazenamento em Disco Armazenamento efêmero provido pelo Amazon EBS na forma de: Volume de armazenamento Armazenamento de camada gravável
  • 34. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Camada de Armazenamento • Imagens Docker são compostas por camadas. A camada superior é a camada de escrita que captura mudanças em arquivos feitas pelo container em execução. • Camada de armazenamento de 10-GB disponível por task, para todos os containers, incluindo camadas de imagem • Escritas não visíveis entre containers • Armazenamento efêmero não disponível depois que a task pára. Image Layers Writable Layer Image Layers Writable Layer Container 1 Container 2 10 GB per Task
  • 35. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Armazenamento de Volume • Precisa que a escrita seja visível entre containers? • Fargate provê 4GB de espaço por task • Configure via "volume mounts" na task definition • Pode montar em diferentes containerPaths • Não especifique o sourcePath do host • Lembre-se que este armazenamento também é efêmero, ou seja, não disponível depois que a task é parada. Container 1 Container 2 4 GB Volume Storage mount /var/container1/data /var/container2/data
  • 36. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Permissões IAM
  • 37. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Camadas de Permissão Cluster Permissions Application Permissions Task Housekeeping Permissions Cluster Fargate Task Permissões do Cluster: Controle quem pode lançar/descrever tasks em seu cluster Permissões de Aplicação: Permite os containers de sua aplicação acessar recursos da AWS de forma segura. Permissões de Sustentação: Permite que execute atividades de sustentação em sua task: • Amazon ECR Image Pull • Envio de logs para o Amazon CloudWatch • Criação de ENI • Registrar/Desregistrar targets em Elastic Load Balancers
  • 38. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Permissões do Cluster { "Effect": "Allow", "Action": [ "ecs:RunTask" ], "Condition": { "ArnEquals": {"ecs:cluster":"<cluster-arn>"} }, "Resource": [ “<task_def_family>:*" ] } Você pode criar políticas IAM para controlar o controle de acesso aos seus clusters de forma granular Associe estas políticas a usuários IAM e/ou papéis conforme necessário Algumas políticas de exemplo: Exemplo 1: Permite RunTask em um cluster específico com uma task definition específica { "Effect": "Allow", "Action": [ "ecs:ListTasks“, “ecs:DescribeTasks” ], "Condition": { "ArnEquals": {"ecs:cluster":"<cluster-arn>"} }, "Resource": “*” } Exemplo 2: Acesso apenas de leitura a tasks em um cluster específico E muito mais!
  • 39. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Permissões de Aplicação Seus containers acessam outros recursos da AWS? Precisa obter credenciais para a task? Crie uma Role IAM com as permissões que sua aplicação precisa. Em nosso exemplo, permissões para DDB e Amazon SNS. Estabeleça uma relação de confiança com ecs- tasks.amazonaws.com nesta role. Isto nos permite assumir a role e associar as credenciais à sua task. Adicione o arn da role à sua task definition e pronto! Nós geramos e rotacionamos credenciais temporárias. Chamadas para a AWS via CLI/SDK de sua aplicação irão automaticamente utilizar as credencias da Role associada à task. Use uma Task Role { "family": "scorekeep", "cpu": "1 vCpu", "memory": "2 gb", "networkMode": “awsvpc“, “taskRoleArn": “arn:aws...role/scorekeepRole“, "containerDefinitions": [ { "name":“scorekeep-frontend", "image":"xxx.dkr.ecr.us-east-1.amazonaws.com/fe", "cpu": 256, "memoryReservation": 512, "portMappings": [ { "containerPort": 8080 } ] }, { "name":“scorekeep-api", "image":"xxx.dkr.ecr.us-east-1.amazonaws.com/api", "cpu": 768, "memoryReservation": 512, "portMappings": [ { "containerPort": 5000 } ] } ] } Task Definition
  • 40. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Permissões de Sustentação • Nós precisamos de certas permissões na sua conta para iniciar sua task e mantê-la em execução. • Execution Role nos dá permissões para: • Baixar imagens do Amazon ECR • Enviar logs para o CloudWatch • Amazon ECS Service Linked Role nos dá permissão para: • Gestão de ENI’s • Registrar/Desregistrar targets em Elastic Load Balancing
  • 41. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Role de Execução • Utilizando uma imagem no Amazon ECR ou CloudWatch Logs? • Crie uma Role IAM e adicione permissões de leitura ao Amazon ECR • ecr:GetAuthorizationToken e ecr:BatchGetImage • Ou utilize a política gerenciada AmazonEC2ContainerRegistryReadOnly • Adicione permissões de escrita ao CloudWatch Logs • logs:CreateLogStream e logs:PutLogEvents • Ou utilize a política gerenciada CloudWatchLogsFullAccess • Estabeleça relação de confiança com ecs- tasks.amazonaws.com. Isto nos permite assumir a role • Adicione o arn de execução da role em sua task definition Nos dê permissões através de uma Role de Execução { "family": "scorekeep", "cpu": "1 vCpu", "memory": "2 gb", "networkMode": “awsvpc“, “taskRoleArn": “arn:aws...role/scorekeepRole“, “executionRoleArn": “arn:aws...role/scorekeepExecutionRole“, "containerDefinitions": [ { "name":“scorekeep-frontend", "image":"xxx.dkr.ecr.us-east-1.amazonaws.com/fe", "cpu": 256, "memoryReservation": 512, "portMappings": [ { "containerPort": 8080 } ] }, { "name":“scorekeep-api", "image":"xxx.dkr.ecr.us-east-1.amazonaws.com/api", "cpu": 768, "memoryReservation": 512, "portMappings": [ { "containerPort": 5000 } ] } ] } Task Definition
  • 42. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Role Vinculada ao Serviço Amazon ECS • Uma role service-linked é um tipo único de role IAM que é vinculada diretamente a um serviço AWS, neste caso, Amazon ECS • Ela é criada automaticamente em sua conta na criação do primeiro cluster • Ela possui uma política pré-definida, que é imutável. Neste caso, permissões ENI e Elastic Load Balancing. • Você não precisa passar esta role explicitamente na task definition ou em qualquer chamada API. Apenas saiba sobre esta role caso você se depare com a mesma na console IAM.
  • 43. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Visibilidade e Monitoramento
  • 44. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Configuração do CloudWatch Logs • Use o driver awslogs para enviar o stdout de sua aplicação para o CloudWatch Logs • Crie um Log Group no CloudWatch • Configure o driver de log em sua task definition • Lembre-se de adicionar permissões através da Task Execution Role { "family": "scorekeep", ... "containerDefinitions": [ { "name":“scorekeep-frontend", ... "logConfiguration": { "logDriver": "awslogs", "options": { "awslogs-group": "scorekeep", "awslogs-region": “us-east-1", "awslogs-stream-prefix": "scorekeep/frontend“}} }, { "name":“scorekeep-api", ... "logConfiguration": { "logDriver": "awslogs", "options": { "awslogs-group": "scorekeep", "awslogs-region": “us-east-1", "awslogs-stream-prefix": "scorekeep/api"}} } ]} Task Definition
  • 45. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. CloudWatch Logs Tab Logs na página de detalhes da Task Visualize logs através da console do Amazon ECS ou CloudWatch
  • 46. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Outras Ferramentas de Visibilidade Métricas de utilização de CPU/memória de serviços disponíveis no CloudWatch CloudWatch Events em mudanças de estado das tasks
  • 47. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. O que há de novo?
  • 48. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. • Pesquise dados de ambiente e estatísticas para tasks em execução direto da Task! Habilita ferramentas de monitoramento como Datadog, etc. • Endpoints disponíveis: Nível da Task (para todos os containers) • 169.254.170.2/v2/metadata –JSON com Metadados para a Task • 169.254.170.2/v2/stats -JSON com estatísticas do Docker para todos os containers na Task Nível do Container • 169.254.170.2/v2/metadata/<container-id> • 169.254.170.2/v2/stats/<container-id> Metadadados da Task NOVO!
  • 49. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. { "Cluster": "default", "TaskARN": "arn:aws:ecs:us-west- 2:012345678910:task/9781c248-0edd-4cdb- 9a93-f63cb662a5d3", "Family": "nginx", "Revision": "5", "DesiredStatus": "RUNNING", "KnownStatus": "RUNNING", "Containers": [ { "DockerId": "731a0d6a3b4210e2448339bc7015aaa", "Name": "~internal~ecs~pause", "DockerName": "ecs-nginx-5- internalecspause-1234", Metadados da Task Novo!
  • 50. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. { "Containers": [ { "DockerId": "731a0d6a3b4210e2448339bc7015aaa", "Name": "~internal~ecs~pause", "DockerName": "ecs-nginx-5- internalecspause-1234", "Image": "amazon/amazon-ecs- pause:0.1.0", "ImageID": "", "Labels": { "com.amazonaws.ecs.cluster": "default", "com.amazonaws.ecs.task-arn": "com.amazonaws.ecs.task-definition-family": "nginx", "com.amazonaws.ecs.task-definition- version": "5" }, Metadados da Task "DesiredStatus": "RESOURCES_PROVISIONED", "KnownStatus": "RESOURCES_PROVISIONED", "Limits": { "CPU": 512, "Memory": 512 } Novo!
  • 51. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Monitoramento com Datadog Autodiscovery e AWS Fargate
  • 52. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Health Checks em Containers - Defina comandos de heath check customizados no ECS Task Definition NOVO!
  • 53. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Service Discovery Gerenciado para Amazon ECS NOVO! • Registro de Serviços: • Nomes previsíveis para serviços • Atualizado automaticamente com os últimos endereços IP saudáveis, porta • Gerenciado: Sem sobrecarga de instalação ou monitoramento • Alta disponibilidade, alta escala • Extensível: Limites flexíveis para auto descoberta
  • 54. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Amazon Route 53 Auto Naming Provê Registro de Serviços Amazon Route 53 provê APIs para a criação de • Namespace • CNAME por serviço • Registros tipo A por IP de Task • Registros SRV por IP + porta de Task Service CNAME: A / SRV record Namespace
  • 55. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Demo
  • 56. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Lições Aprendidas
  • 57. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Lições Aprendidas • Fargate é um novo tipo de execução do Amazon ECS para execução de containers sem a necessidade de gestão de instâncias Amazon EC2. • Se você está decidindo entre Amazon EC2 vs. AWS Fargate, comece sua arquitetura utilizando Fargate. • Isto irá forçar boas práticas no design, mantendo os containers de sua aplicação verdadeiramente independentes do host subjacente.. • Se você acha que precisa ter acesso ao host subjacente, pense novamente. • Existem algumas boas razões: necessidades de um tipo especial de instância, instâncias EC2 dedicadas, utilização de instâncias reservadas, GPUs, workloads Windows, etc • E nos conte seu caso de uso. Nós queremos te ajudar com o Fargate! • Comece utilizando o AWS Fargate hoje! • Fargate trabalha com suas imagens de container Docker • Você pode executar task definitions existentes no AWS Fargate com apenas algumas modificações.
  • 58. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Aprenda mais em aws.amazon.com/Fargate Obrigado!
  • 59. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Avalie esta sessão 1. Clique no ícone da Agenda. 2. Selecione a sessão que assistiu. 3. Clique em Session Survey para avaliar a sessão.