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.
Tutorial: implementación en instancias de Amazon EC2 con CodePipeline
Este tutorial le ayuda a crear una acción de implementación en CodePipeline que implemente el código en instancias que ha configurado en Amazon EC2.
nota
Como parte de la creación de una canalización en la consola, CodePipeline utilizará un bucket de artefactos de S3 para los artefactos. (Es diferente del bucket que se usa para una acción de origen de S3). Si el bucket de artefactos de S3 se encuentra en una cuenta diferente a la cuenta de su canalización, asegúrese de que el bucket de artefactos de S3 pertenezca a Cuentas de AWS que sean seguras y fiables.
nota
La acción de implementación de EC2 solo está disponible para canalizaciones de tipo V2.
Requisitos previos
Para poder usar este tutorial para crear su propia canalización de implementación continua debe tener instalados algunos recursos. Esto es lo que necesita para empezar:
nota
Todos estos recursos deben crearse en la misma región de AWS.
-
Un repositorio de control de origen (en este tutorial, se utiliza GitHub) donde agregará un archivo
script.shde ejemplo. -
Debe usar un rol de servicio de CodePipeline existente que se haya actualizado con los permisos necesarios para esta acción. Para actualizar su rol de servicio, consulte Permisos de política de roles de servicio para la acción de EC2 despliegue.
Una vez satisfechos estos requisitos previos, puede continuar con el tutorial y crear su canalización de implementación continua.
Paso 1: creación de instancias de Amazon EC2 en Linux
En este paso, va a crear las instancias de Amazon EC2 en las que va a implementar una aplicación de ejemplo. Como parte de este proceso, cree un rol de instancia en IAM si aún no ha creado un rol de instancia en la región en la que desea crear los recursos.
Para crear un rol de instancia
-
Abra la consola de IAM en https://console.aws.amazon.com/iam/
. -
En el panel de la consola, elija Roles.
-
Seleccione Crear rol.
-
En Seleccionar el tipo de entidad de confianza, seleccione Servicio de AWS. En Elegir un caso de uso, seleccione EC2. En Select your use case (Seleccionar su caso de uso), elija EC2. Elija Siguiente.
-
Busque y seleccione la política denominada
AmazonSSMManagedEC2InstanceDefaultPolicy. -
Busque y seleccione la política denominada
AmazonSSMManagedInstanceCore. Elija Siguiente: Etiquetas. -
Elija Siguiente: Revisar. Escriba el nombre del rol (por ejemplo,
EC2InstanceRole).nota
Anote el nombre del rol para utilizarlo en el siguiente paso. Tendrá que elegir este rol cuando cree la instancia.
nota
Agregará permisos a este rol para permitir el acceso al bucket de artefactos de S3 para su canalización una vez creada la canalización.
Seleccione Crear rol.
Para lanzar las instancias
Abra la consola de Amazon EC2 en https://console.aws.amazon.com/ec2/
. -
En la barra de navegación lateral, elija Instancias y seleccione Lanzar instancias en la parte superior de la página.
-
En Name (Nombre), escriba
MyInstances. Esto asigna a la instancia una clave de etiquetaNamey un valor de etiquetaMyInstances. -
En Imágenes de aplicaciones y sistemas operativos (Amazon Machine Image) , busque la opción AMI de Amazon Linux con el logotipo AWS y asegúrese de que esté seleccionada. (Esta AMI se describe como AMI de Amazon Linux 2 (HVM) y se denomina "Free tier eligible" (Apta para capa gratuita).)
-
En Tipo de instancia, elija el tipo
t2.microapto para la capa gratuita como configuración de hardware de la instancia. -
En Par de claves (inicio de sesión), seleccione un par de claves o cree uno.
-
En Configuración de red, asegúrese de que el estado sea Habilitar.
-
Amplíe Advanced details (Detalles avanzados). En Perfil de instancia de IAM, elija el rol de IAM que creó en el procedimiento anterior (por ejemplo,
EC2InstanceRole).nota
No deje el rol de instancia en blanco, ya que esto crea un rol predeterminado y no selecciona el rol que ha creado.
-
En Resumen, en Número de instancias, especifique
2. -
Seleccione Iniciar instancia.
-
Puede ver el estado del lanzamiento en la página Instances. Al lanzar una instancia, su estado inicial es
pending. Una vez iniciada la instancia, el estado cambia arunningy recibe un nombre de DNS público. (Si la columna Public DNS no se muestra, haga clic en el icono Show/Hide y después seleccione Public DNS.)
Paso 2: agregación de los permisos del bucket de artefactos al rol de instancia de EC2
Debe actualizar el rol de instancia de EC2 que creó para su instancia a fin de que pueda acceder al bucket de artefactos de su canalización.
nota
Al crear la instancia, se crea o se utiliza un rol de instancia de EC2 existente. Para evitar errores de tipo Access Denied, debe añadir permisos de bucket de S3 al rol de instancia para conceder a la instancia permisos para el bucket de artefactos de CodePipeline. Cree un rol predeterminado o actualice el rol actual con el permiso s3:GetObject limitado al bucket de artefactos correspondiente a la región de su canalización.
-
Vaya a su canalización en la consola de CodePipeline. Seleccione Configuración. Vea el nombre y la ubicación del almacén de artefactos de una canalización existente. Anote el nombre de recurso de Amazon (ARN) del bucket de artefactos y cópielo.
-
Vaya a la consola de IAM y elija Roles (Roles). Elija el rol de instancia que creó en el paso 1 de este tutorial.
-
En la pestaña Permisos, elija Añadir política en línea.
-
Agregue el siguiente JSON al documento de política y sustituya el valor del campo
Resourcepor el ARN del bucket.{ "Effect": "Allow", "Principal": "*", "Action": "s3:GetObject", "Resource": "arn:aws:s3:::BucketName" } -
Elija Actualizar.
Paso 3: agregación del archivo de script al repositorio
Pegue este texto de ejemplo para crear el archivo script.sh para el paso posterior al script de la implementación.
echo "Hello World!"
Para añadir un archivo script.sh a su repositorio de código fuente
-
Abra un editor de texto y luego copie y pegue el archivo anterior en un nuevo archivo.
-
Confirme la operación e inserte el archivo
script.shen el repositorio de código fuente.-
Añada el archivo.
git add . -
Valide el cambio con.
git commit -m "Adding script.sh." -
Envíe la confirmación.
git push
Anote la ruta en su repositorio.
/MyDemoRepo/test/script.sh -
Paso 4: creación de una canalización
Utilice el asistente de CodePipeline para crear las etapas de la canalización y conectar el repositorio de origen.
Para crear la canalización
Abra la consola de CodePipeline en https://console.aws.amazon.com/codepipeline/
. -
En la página Bienvenido, Introducción o Canalizaciones, elija Crear canalización.
-
En la página Paso 1: elección de la opción de creación, en Opciones de creación, seleccione la opción Crear una canalización personalizada. Elija Siguiente.
-
En Paso 2: elegir la configuración de la canalización, en Nombre de la canalización, escriba
MyPipeline. -
CodePipeline proporciona canalizaciones de tipo V1 y V2, que difieren en características y precio. El tipo V2 es el único tipo que puede elegir en la consola. Para obtener más información, consulte Tipos de canalización. Para obtener más información acerca de los precios de CodePipeline, consulte Precios
. -
En Rol de servicio, elija Usar el rol de servicio existente y, a continuación, elija el rol de servicio de CodePipeline que se ha actualizado con los permisos necesarios para esta acción. Para configurar el rol de servicio de CodePipeline para esta acción, consulte Permisos de política de roles de servicio para la acción de EC2 despliegue.
-
En Advanced settings (Configuración avanzada), deje los valores predeterminados y elija Next (Siguiente).
-
En la página Paso 3: agregar la etapa de origen, agregue una etapa de origen:
-
En Proveedor de origen, elija GitHub (mediante la aplicación de GitHub).
-
En Conexión, seleccione una conexión existente o cree una nueva. Para crear o administrar una conexión para su acción de origen de GitHub, consulte GitHub conexiones.
-
En Nombre de repositorio, elija el nombre de su repositorio de GitHub.
Elija Siguiente.
-
-
En la página Paso 4: agregación de la etapa de compilación, seleccione Omitir.
-
En la página Paso 5: agregación de la etapa de implementación, elija EC2.
-
En el directorio de destino, especifique el directorio de la instancia en la que desee realizar la implementación, por ejemplo
/home/ec2-user/testhelloworld.nota
Especifique el directorio de implementación que desea que utilice la acción en la instancia. La acción automatizará la creación del directorio especificado en la instancia como parte de la implementación.
-
En el caso de PostScript, especifique la ruta y el nombre del archivo del script, por ejemplo
test/script.sh. -
Elija Siguiente.
-
-
En la página Step 6: Review, revise la configuración de la canalización y elija Create pipeline para crear la canalización.
-
Cuando la canalización se haya ejecutado correctamente, elija Ver detalles para consultar los registros de la acción y ver la salida de la acción de computación administrada.
Paso 5: Probar la canalización
Su canalización debería tener todo lo necesario para ejecutar una implementación continua de AWS nativa de extremo a extremo. Ahora, pruebe su funcionalidad enviando un cambio de código al repositorio de código fuente.
Para probar la canalización
-
Realice una modificación del código en el repositorio de código fuente configurado, valide y envíe el cambio.
Abra la consola de CodePipeline en https://console.aws.amazon.com/codepipeline/
. -
Seleccione su canalización de la lista.
-
Vea el progreso en la canalización a través de sus etapas. La canalización debería completarse y la acción implementar el script en las instancias.
-
Para obtener más información sobre la solución de problemas, consulte EC2 La acción de despliegue falla y muestra un mensaje de error No such file.