Introducción al AWS CLI - AWS Proton

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Introducción al AWS CLI

Para empezar con AWS Proton mediante la AWS CLI, siga este tutorial. El tutorial muestra un servicio de AWS Proton con carga equilibrada y orientado al público basado en AWS Fargate. El tutorial también proporciona una canalización de CI/CD que implementa un sitio web estático con una imagen para mostrar.

Antes de empezar, el usuario debe asegurarse de que esté configurado correctamente. Para obtener más información, consulte Requisitos previos.

Paso 1: Registrar una plantilla de entorno

En este paso, como administrador, el usuario registrará una plantilla de entorno de ejemplo que contenga un clúster de Amazon Elastic Container Service (Amazon ECS) y una Amazon Virtual Private Cloud (Amazon VPC) con dos subredes, una pública y otra privada.

Para registrar una plantilla de entorno
  1. Cree una adaptación del repositorio de plantillas de CloudFormation de muestra de AWS Proton en la cuenta u organización de GitHub. Este repositorio incluye las plantillas de entorno y de servicio que utilizaremos en este tutorial.

    A continuación, registre el repositorio adaptado con AWS Proton. Para obtener más información, consulte Creación de un enlace para el repositorio del usuario.

  2. Cree una plantilla de entorno.

    El recurso de la plantilla de entorno realiza un seguimiento de las versiones de la plantilla de entorno.

    $ aws proton create-environment-template \ --name "fargate-env" \ --display-name "Public VPC Fargate" \ --description "VPC with public access and ECS cluster"
  3. Cree una configuración de sincronización de plantillas.

    AWS Proton establece una relación de sincronización entre el repositorio y la plantilla de entorno. A continuación, crea la versión 1.0 de la plantilla en estado 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. Espere a que la versión de la plantilla de entorno se registre correctamente.

    Cuando se devuelva este comando con un estado de salida de 0, se habrá completado el registro de la versión. Esto resulta útil en los scripts para garantizar que se pueda ejecutar correctamente el comando en el siguiente paso.

    $ aws proton wait environment-template-version-registered \ --template-name "fargate-env" \ --major-version "1" \ --minor-version "0"
  5. Publique la versión de la plantilla de entorno para que esté disponible para la creación del entorno.

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

Paso 2: Registrar una plantilla de servicio

En este paso, como administrador, el usuario registrará una plantilla de servicio de ejemplo que contenga todos los recursos necesarios para aprovisionar un servicio de Fargate de Amazon ECS detrás de un equilibrador de carga y una canalización de CI/CD que utilice AWS CodePipeline.

Para registrar una plantilla de servicio
  1. Cree una plantilla de servicio.

    El recurso de la plantilla de servicio realiza un seguimiento de las versiones de la plantilla de servicio.

    $ 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. Cree una configuración de sincronización de plantillas.

    AWS Proton establece una relación de sincronización entre el repositorio y la plantilla de servicio. A continuación, crea la versión 1.0 de la plantilla en estado 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. Espere a que la versión de la plantilla de servicio se registre correctamente.

    Cuando se devuelva este comando con un estado de salida de 0, se habrá completado el registro de la versión. Esto resulta útil en los scripts para garantizar que se pueda ejecutar correctamente el comando en el siguiente paso.

    $ aws proton wait service-template-version-registered \ --template-name "load-balanced-fargate-svc" \ --major-version "1" \ --minor-version "0"
  4. Publique la versión de la plantilla de servicio para que esté disponible para la creación del servicio.

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

Paso 3: Implementar un entorno

En este paso, como administrador, el usuario creará una instancia de un entorno de AWS Proton a partir de la plantilla de entorno.

Para implementar un entorno
  1. Obtenga un archivo de especificaciones de ejemplo para la plantilla de entorno que ha registrado.

    Puede descargar el archivo environment-templates/fargate-env/spec/spec.yaml desde el repositorio de ejemplos de plantillas. Como alternativa, puede obtener todo el repositorio de forma local y ejecutar el comando create-environment desde el directorio environment-templates/fargate-env.

  2. Cree un entorno.

    AWS Proton lee los valores de entrada de las especificaciones del entorno, los combina con la plantilla de entorno y aprovisiona los recursos del entorno en la cuenta de AWS del usuario mediante su rol de servicio de 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. Espere a que el entorno se implemente correctamente.

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

Paso 4: Implementar un servicio [desarrollador de aplicaciones]

En los pasos anteriores, un administrador registró y publicó una plantilla de servicio e implementó un entorno. Como desarrollador de aplicaciones, ahora puede crear un servicio de AWS Proton e implementarlo en el entorno de AWS Proton

Para implementar un servicio
  1. Obtenga un archivo de especificaciones de ejemplo para la plantilla de servicio que registró el administrador.

    Puede descargar el archivo service-templates/load-balanced-fargate-svc/spec/spec.yaml desde el repositorio de ejemplos de plantillas. Como alternativa, puede obtener todo el repositorio de forma local y ejecutar el comando create-service desde el directorio service-templates/load-balanced-fargate-svc.

  2. Cree una adaptación del repositorio de los servicios de muestra de AWS Proton en la cuenta u organización de GitHub. Este repositorio incluye el código fuente de la aplicación que utilizamos en este tutorial.

  3. Cree un servicio.

    AWS Proton lee los valores de entrada de la especificación de servicio, los combina con la plantilla de servicio y aprovisiona los recursos de servicio de la cuenta de AWS del usuario en el entorno especificado en la especificación. Una canalización de AWS CodePipeline implementa el código de la aplicación desde el repositorio que especifique el usuario en el 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. Espere a que el servicio se implemente correctamente.

    $ aws proton wait service-created --name "static-website"
  5. Recupere las salidas y consulte el nuevo sitio web.

    Ejecute el siguiente comando:

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

    La salida del comando debería ser similar a la siguiente:

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

    El valor de la salida de la instancia ServiceURL es el punto de conexión del nuevo sitio web del servicio. Utilice el navegador para navegar hasta él. Debería ver el siguiente gráfico en una página estática:

    Un navegador web que muestre el sitio de imágenes estáticas resultante del procedimiento inicial de la CLI

Paso 5: Limpieza (opcional)

En este paso, cuando haya terminado de explorar los recursos de AWS que creó como parte de este tutorial y para ahorrar en los costos asociados a estos recursos, procederá a eliminarlos.

Para eliminar los recursos del tutorial
  1. Para eliminar el servicio, ejecute el comando siguiente:

    $ aws proton delete-service --name "static-website"
  2. Para eliminar el entorno, ejecute el siguiente comando:

    $ aws proton delete-environment --name "fargate-env-prod"
  3. Para eliminar la plantilla de servicio, ejecute los siguientes 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 eliminar la plantilla de entorno, ejecute los siguientes comandos:

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