Criar seu primeiro serviço Express Mode usando a AWS CLI
Este tutorial mostra como criar uma aplicação de serviço Express Mode usando a AWS AWS CLI. Você implantará uma aplicação web simples que demonstra os principais recursos do serviço Express Mode.
Pré-requisitos
Antes de começar, verifique se você tem:
Uma conta da AWS com permissões apropriadas
A AWS AWS CLI instalada e configurada
Uma imagem de contêiner armazenada no Amazon ECR ou em um registro privado
Etapa 1: criar perfis do IAM
Um serviço Express Mode exige dois perfis do IAM. O perfil de execução de tarefa permite que o Amazon ECS extraia imagens de contêineres e grave logs em seu nome. Crie um perfil de execução de tarefa e um perfil de infraestrutura com as seguintes políticas:
#Create the roles with ECS trust policies aws iam create-role --role-name ecsTaskExecutionRole \ --assume-role-policy-document '{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "ecs-tasks.amazonaws.com" }, "Action": "sts:AssumeRole", } ] }' aws iam create-role --role-name ecsInfrastructureRoleForExpressServices \ --assume-role-policy-document '{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowAccessInfrastructureForECSExpressServices", "Effect": "Allow", "Principal": { "Service": "ecs.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }'
#Attach the AWS managed policies aws iam attach-role-policy --role-name ecsTaskExecutionRole \ --policy-arn arn:aws:iam::aws:policy/service-role/AmazonECSTaskExecutionRolePolicy aws iam attach-role-policy --role-name ecsInfrastructureRoleForExpressServices \ --policy-arn arn:aws:iam::aws:policy/service-role/AmazonECSInfrastructureRoleforExpressGatewayServices
Para obter mais informações, consulte Função do IAM de execução de tarefas do Amazon ECS.
Etapa 2: criar a primeira aplicação de serviço Express Mode
Crie uma aplicação de serviço Express Mode com os parâmetros mínimos necessários:
aws ecs create-express-gateway-service \ --image "public.ecr.aws/nginx/nginx:latest" \ --execution-role-arn arn:aws:iam::123456789012:role/ecsTaskExecutionRole \ --infrastructure-role-arn arn:aws:iam::123456789012:role/ecsInfrastructureRoleForExpressServices \ --monitor-resources
Esse comando cria uma aplicação de serviço Express Mode com:
Um nome de serviço exclusivo gerado com base no nome da imagem
1 vCPU e 2 GB de memória
Porta 80 para tráfego HTTPS
Ajuste de escala automático com base na utilização de CPU
Um Application Load Balancer voltado para a Internet na VPC padrão e nas sub-redes públicas
Um URL exclusivo para esse serviço no formato
servicename.ecs.region.on.aws
O comando monitora continuamente os recursos à medida que eles estão sendo provisionados e retorna o status. Quando a implantação estiver concluída, o URL da aplicação estará pronto para receber tráfego. Quando você interrompe o monitoramento, as informações sobre o serviço criado são retornadas, incluindo o ARN e o URL do serviço:
{ "service": { "cluster": "arn:aws:ecs:region:123456789012:cluster/default", "serviceName": "nginx-1234", "serviceArn": "arn:aws:ecs:region:123456789012:service/default/nginx-1234", "infrastructureRoleArn": "arn:aws:iam::123456789012:role/ecsInfrastructureRoleForExpressServices", "status": { "statusCode": "ACTIVE" }, "createdAt": "UNIXTIMESTAMP" } }
Etapa 3: criar uma aplicação de serviço Express Mode com configurações personalizadas
Você pode personalizar sua aplicação de serviço Express Mode especificando parâmetros adicionais:
aws ecs create-express-gateway-service \ --execution-role-arn arn:aws:iam::123456789012:role/ecsTaskExecutionRole \ --infrastructure-role-arn arn:aws:iam::123456789012:role/ecsInfrastructureRoleForExpressServices \ --primary-container \ ‘{“image”=“123456789012.dkr.ecr.region.amazonaws.com/my-app:latest", \ “containerPort”=8080, \ “environment”=[{“name”=“ENV”,”value”=“production”},{“name”=“DEBUG”,”value”=“false”}]}’ \ --service-name "my-web-app" \ --cpu 2 \ --memory 4 \ --health-check-path "/health" \ --scaling-target ‘{“minTaskCount”=3,”maxTaskCount”=100}’ --monitor-resources
Isso cria uma aplicação com:
Um nome personalizado “my-web-app”
2 vCPU e 4 GB de memória
Porta 8080 para tráfego da aplicação
Endpoint de verificação de integridade personalizado
Variáveis de ambiente
No mínimo três tarefas e no máximo 100 para ajuste de escala automático
Etapa 4: monitorar a implantação
Um sinalizador --monitor-resources funciona em qualquer chamada Criar, Atualizar ou Excluir para seus serviços Express Mode. Mas, além disso, você pode monitorar os recursos em um serviço a qualquer momento, independentemente de uma ação mutante. O tempo de implantação pode variar dependendo dos recursos que precisam ser provisionados. Quando o status muda para ACTIVE, sua aplicação está pronta para receber tráfego.
aws ecs monitor-express-gateway-service --service-arn arn:aws:ecs:region:123456789012:service/app-23d97h88
Você também pode encontrar a configuração e o status atuais da sua aplicação de serviço Express Mode:
aws ecs describe-express-gateway-service --service-arn arn:aws:ecs:region:123456789012:service/app-23d97h88
Etapa 5: acessar sua aplicação
Acesse a aplicação de serviço Express Mode usando o URL fornecido quando ele se tornar ativo. O formato do URL é:
https://<service-name>.ecs.<region>.on.aws/
Por exemplo:
https://app-23d97h88.ecs.us-west-2.on.aws/
Sua aplicação agora está sendo executado com:
Encerramento automático de SSL/TLS
Balanceamento de carga em várias zonas de disponibilidade
Ajuste de escala automático com base na utilização de CPU
Log e monitoramento do CloudWatch
Alarmes de reversão 5XX e implantações canário para futuras atualizações