Conceitos básicos da AWS CLI - AWS Proton

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Conceitos básicos da AWS CLI

Para começar com o AWS Proton a usar o AWS CLI, siga este tutorial. O tutorial demonstra um serviço público com balanceamento de carga do AWS Proton baseado em AWS Fargate. O tutorial também fornece um pipeline de CI/CD que implanta um site estático com uma imagem exibida.

Antes de começar, verifique se tudo está configurado corretamente. Para obter mais detalhes, consulte Pré-requisitos.

Etapa 1: Registrar um modelo de ambiente

Nesta etapa, como administrador, você registra um modelo de ambiente de exemplo, que contém um cluster do Amazon Elastic Container Service (Amazon ECS) e uma Amazon Virtual Private Cloud (Amazon VPC) com duas sub-redes públicas/privadas.

Para registrar um modelo de ambiente
  1. Bifurque o repositório do AWS Proton Sample CloudFormation Templates na sua conta ou organização do GitHub. Esse repositório inclui os modelos de ambiente e serviço que usamos neste tutorial.

    Em seguida, registre seu repositório bifurcado com o AWS Proton. Para obter mais informações, consulte Crie um link para seu repositório.

  2. Criar um modelo de ambiente.

    O recurso do modelo de ambiente rastreia as versões do modelo de ambiente.

    $ aws proton create-environment-template \ --name "fargate-env" \ --display-name "Public VPC Fargate" \ --description "VPC with public access and ECS cluster"
  3. Crie uma configuração de sincronização de modelos.

    O AWS Proton configura uma relação de sincronização entre seu repositório e seu modelo de ambiente. Em seguida, ele cria a versão 1.0 do modelo em status de DRAFT.

    $ aws proton create-template-sync-config \ --template-name "fargate-env" \ --template-type "ENVIRONMENT" \ --repository-name "your-forked-repo" \ --repository-provider "GITHUB" \ --branch "your-branch" \ --subdirectory "environment-templates/fargate-env"
  4. Aguarde até que a versão do modelo de ambiente seja registrada com sucesso.

    Quando esse comando retorna com um status de saída de 0, o registro da versão é concluído. Isso é útil em scripts para garantir que você possa executar o comando com êxito na próxima etapa.

    $ aws proton wait environment-template-version-registered \ --template-name "fargate-env" \ --major-version "1" \ --minor-version "0"
  5. Publique a versão do modelo de ambiente para disponibilizá-la para criação de ambiente.

    $ aws proton update-environment-template-version \ --template-name "fargate-env" \ --major-version "1" \ --minor-version "0" \ --status "PUBLISHED"

Etapa 2: Registrar um modelo de serviço

Nesta etapa, como administrador, você registra um exemplo de modelo de serviço, que contém todos os recursos necessários para provisionar um serviço Amazon ECS Fargate por trás de um balanceador de carga e um pipeline de CI/CD que usa o AWS CodePipeline.

Para registrar um modelo de serviço
  1. Crie um modelo de serviço.

    O recurso do modelo de serviço rastreia as versões do modelo de serviço.

    $ aws proton create-service-template \ --name "load-balanced-fargate-svc" \ --display-name "Load balanced Fargate service" \ --description "Fargate service with an application load balancer"
  2. Crie uma configuração de sincronização de modelos.

    O AWS Proton configura uma relação de sincronização entre seu repositório e seu modelo de serviço. Em seguida, ele cria a versão 1.0 do modelo em status de DRAFT.

    $ aws proton create-template-sync-config \ --template-name "load-balanced-fargate-svc" \ --template-type "SERVICE" \ --repository-name "your-forked-repo" \ --repository-provider "GITHUB" \ --branch "your-branch" \ --subdirectory "service-templates/load-balanced-fargate-svc"
  3. Aguarde até que a versão do modelo de serviço seja registrada com sucesso.

    Quando esse comando retorna com um status de saída de 0, o registro da versão é concluído. Isso é útil em scripts para garantir que você possa executar o comando com êxito na próxima etapa.

    $ aws proton wait service-template-version-registered \ --template-name "load-balanced-fargate-svc" \ --major-version "1" \ --minor-version "0"
  4. Publique a versão do modelo de serviço para disponibilizá-la para criação de serviços.

    $ aws proton update-service-template-version \ --template-name "load-balanced-fargate-svc" \ --major-version "1" \ --minor-version "0" \ --status "PUBLISHED"

Etapa 3: implantar um ambiente

Nesta etapa, como administrador, você instancia um ambiente do AWS Proton a partir do modelo de ambiente.

Para implantar um ambiente
  1. Obtenha um exemplo de arquivo de especificação para o modelo de ambiente que você registrou.

    Você pode baixar os environment-templates/fargate-env/spec/spec.yaml do arquivo do repositório de exemplos de modelos. Como alternativa, você pode buscar o repositório inteiro localmente e executar o comando create-environment a partir do diretório environment-templates/fargate-env.

  2. Crie um ambiente.

    O AWS Proton lê os valores de entrada de sua especificação de ambiente, os combina com seu modelo de ambiente e provisiona recursos ambientais em sua conta do AWS usando seu perfil de serviço do AWS Proton.

    $ aws proton create-environment \ --name "fargate-env-prod" \ --template-name "fargate-env" \ --template-major-version 1 \ --proton-service-role-arn "arn:aws:iam::123456789012:role/AWSProtonServiceRole" \ --spec "file://spec/spec.yaml"
  3. Aguarde até que o ambiente seja implantado com sucesso.

    $ aws proton wait environment-deployed --name "fargate-env-prod"

Etapa 4: Implantar um serviço [desenvolvedor de aplicativos]

Nas etapas anteriores, um administrador registrou e publicou um modelo de serviço e implantou um ambiente. Como desenvolvedor de aplicativos, agora você pode criar um serviço do AWS Proton e implantá-lo no ambiente do AWS Proton

Para implantar um serviço.
  1. Obtenha um exemplo de arquivo de especificação para o modelo de serviço que o administrador registrou.

    Você pode baixar os service-templates/load-balanced-fargate-svc/spec/spec.yaml do arquivo do repositório de exemplos de modelos. Como alternativa, você pode buscar o repositório inteiro localmente e executar o comando create-service a partir do diretório service-templates/load-balanced-fargate-svc.

  2. Bifurque o repositório do AWS Proton Sample Services na sua conta ou organização do GitHub. Esse repositório inclui o código-fonte do aplicativo que usamos neste tutorial.

  3. Crie um serviço.

    O AWS Proton lê os valores de entrada de sua especificação de serviço, os combina com seu modelo de serviço e provisiona recursos de serviço em sua conta do AWS no ambiente especificado na especificação. Um pipeline do AWS CodePipeline implanta o código do seu aplicativo a partir do repositório que você especifica no comando.

    $ aws proton create-service \ --name "static-website" \ --repository-connection-arn \ "arn:aws:codestar-connections:us-east-1:123456789012:connection/your-codestar-connection-id" \ --repository-id "your-GitHub-account/aws-proton-sample-services" \ --branch-name "main" \ --template-major-version 1 \ --template-name "load-balanced-fargate-svc" \ --spec "file://spec/spec.yaml"
  4. Aguarde até que o serviço seja implantado com sucesso.

    $ aws proton wait service-created --name "static-website"
  5. Recupere os resultados e visualize seu novo site.

    Execute o seguinte comando :

    $ aws proton list-service-instance-outputs \ --service-name "static-website" \ --service-instance-name load-balanced-fargate-svc-prod

    A saída do comando deve ser semelhante ao mostrado a seguir:

    { "outputs": [ { "key": "ServiceURL", "valueString": "http://your-service-endpoint.us-east-1.elb.amazonaws.com" } ] }

    O valor da saída da instância de ServiceURL é o endpoint do seu novo site de serviço. Use seu navegador para navegar até ele. Você deve ver o seguinte gráfico em uma página estática:

    
              Um navegador da Web mostrando o site de imagem estática resultante do procedimento de introdução da CLI

Etapa 5: Limpeza (opcional)

Nesta etapa, quando terminar de explorar os recursos do AWS que você criou como parte deste tutorial e para economizar nos custos associados a esses recursos, você os exclui.

Para excluir recursos do tutorial
  1. Para excluir o serviço, execute o seguinte comando:

    $ aws proton delete-service --name "static-website"
  2. Para excluir o ambiente, execute o seguinte comando:

    $ aws proton delete-environment --name "fargate-env-prod"
  3. Para excluir o modelo de serviço, execute os seguintes comandos:

    $ aws proton delete-template-sync-config \ --template-name "load-balanced-fargate-svc" \ --template-type "SERVICE" $ aws proton delete-service-template --name "load-balanced-fargate-svc"
  4. Para excluir o modelo de ambiente, execute os seguintes comandos:

    $ aws proton delete-template-sync-config \ --template-name "fargate-env" \ --template-type "ENVIRONMENT" $ aws proton delete-environment-template --name "fargate-env"