AWS CodeDeployGuiacutea del usuario
Versioacuten de API 2014-10-06
AWS CodeDeploy Guiacutea del usuario
AWS CodeDeploy Guiacutea del usuarioCopyright copy Amazon Web Services Inc andor its affiliates All rights reserved
Las marcas comerciales y la imagen comercial de Amazon no se pueden utilizar en relacioacuten con ninguacuten producto oservicio que no sea de Amazon de ninguna manera que pueda causar confusioacuten entre los clientes y que menosprecieo desacredite a Amazon Todas las demaacutes marcas comerciales que no sean propiedad de Amazon son propiedad desus respectivos propietarios que pueden o no estar afiliados conectados o patrocinados por Amazon
AWS CodeDeploy Guiacutea del usuario
Table of ContentsiquestQueacute es CodeDeploy 1
Ventajas de AWS CodeDeploy 2Descripcioacuten general de las plataformas informaacuteticas de CodeDeploy 2Introduccioacuten a los tipos de implementacioacuten de CodeDeploy 7
Descripcioacuten general de una implementacioacuten laquoin-placeraquo 8Descripcioacuten general de una implementacioacuten laquobluegreenraquo 9
Esperamos tener noticias suyas 12Componentes principales 12
Aplicacioacuten 12Plataforma de computacioacuten 13Configuracioacuten de implementacioacuten 13Grupo de implementaciones 14Tipo de implementacioacuten 14Tipo de implementacioacuten 15Revisioacuten 15Rol de servicio 15revisioacuten de destino 15Otros componentes 16
Implementaciones 16Implementaciones en unaAWSPlataforma de computacioacuten Lambda 16Implementaciones en una plataforma de computacioacuten Amazon ECS 19Implementaciones en una plataforma de computacioacuten EC2On-Premises 27
Archivos de especificacioacuten de aplicacioacuten 32Archivos AppSpec en una plataforma de computacioacuten Amazon ECS 33Archivos AppSpec en unAWS Lambdaplataforma de computacioacuten 33Archivos AppSpec en una plataforma de computacioacuten EC2On-Premises 33Coacutemo utiliza el agente de CodeDeploy el archivo AppSpec 34
Introduccioacuten 35Paso 1 Instalar o actualizar y a continuacioacuten configurar laAWS CLI 35Paso 2 Crear un rol de servicio 36
Creacioacuten de un rol de servicio de (consola) 37Creacioacuten de un rol de servicio de (CLI) 39Obtenga el ARN del rol de servicio (consola) 40Obtenga el ARN del rol de servicio (CLI) 41
Paso 3 Provisionar un usuario de IAM 41Paso 4 Crear un perfil de instancia de IAM 43
Crear un perfil de instancias de IAM para sus instancias Amazon EC2 (CLI) 43Crear un perfil de instancias de IAM para sus instancias Amazon EC2 (consola) 45
Integraciones de productos y servicios 48Integracioacuten con otros servicios de AWS 48
Amazon EC2 Auto Scaling 53Elastic Load Balancing 57
Integracioacuten a productos y servicios de socios 60GitHub 63
Ejemplos de integracioacuten de la comunidad 66Entradas de blogs 66
Tutoriales 68Tutorial Implementacioacuten de WordPress en una instancia sin Windows 68
Paso 1 Lance una instancia Amazon EC2 69Paso 2 Configurar el contenido de origen 70Paso 3 Cargar la aplicacioacuten en Amazon S3 74Paso 4 Implementar la aplicacioacuten 77Paso 5 Actualiza y vuelve a desplegar tu aplicacioacuten 82Paso 6 Eliminar recursos 85
Versioacuten de API 2014-10-06iii
AWS CodeDeploy Guiacutea del usuario
Tutorial Implementacioacuten de una aplicacioacuten Hello World en una instancia de Windows Server 87Paso 1 Lance una instancia Amazon EC2 88Paso 2 Configurar el contenido de origen 90Paso 3 Cargue su aplicacioacuten en Amazon S3 92Paso 4 Implementar la aplicacioacuten 95Paso 5 Actualiza y vuelve a desplegar tu aplicacioacuten 99Paso 6 Eliminar recursos 101
Tutorial Implementacioacuten de una aplicacioacuten en una instancia on-premises 103Requisitos previos 104Paso 1 Configuracioacuten de la instancia on-premises 104Paso 2 Creacioacuten de una revisioacuten de aplicacioacuten de muestra 104Paso 3 Agrupe y cargue la revisioacuten de la aplicacioacuten en Amazon S3 108Paso 4 Implementar la revisioacuten de la aplicacioacuten 108Paso 5 Verificacioacuten de la implementacioacuten 108Paso 6 Limpiar recursos 108
Tutorial Implementar en un grupo de Auto Scaling 110Requisitos previos 110Paso 1 Creacioacuten y configuracioacuten del grupo de Auto Scaling 111Paso 2 Implementar la aplicacioacuten en el grupo de Auto Scaling 115Paso 3 Compruebe sus resultados 121Paso 4 Aumente el nuacutemero de instancias de Amazon EC2 en el grupo de Auto Scaling 122Paso 5 Vuelve a comprobar los resultados 123Paso 6 Eliminar recursos 125
Tutorial Implementar una aplicacioacuten desde GitHub 127Requisitos previos 127Paso 1 Configure una cuenta de GitHub 127Paso 2 Creacioacuten de un repositorio de GitHub 128Paso 3 Cargue una aplicacioacuten de ejemplo en el repositorio GitHub 129Paso 4 Aprovisionar una instancia 132Paso 5 Crear una aplicacioacuten y un grupo de implementaciones 133Paso 6 Implementacioacuten de la aplicacioacuten en la instancia 134Paso 7 Supervisar y verificar la implementacioacuten 137Paso 8 Eliminar recursos 138
Tutorial Implementar un servicio de Amazon ECS 139Requisitos previos 141Paso 1 Actualice la aplicacioacuten de Amazon ECS 141Paso 2 Creacioacuten del archivo AppSpec 142Paso 3 Utilice la consola de CodeDeploy para implementar su servicio Amazon ECS 143Paso 4 Eliminar recursos 146
Tutorial Implementacioacuten de un servicio Amazon ECS con una prueba de validacioacuten 147Requisitos previos 149Paso 1 Crear un agente de escucha de prueba 149Paso 2 Actualice la aplicacioacuten de Amazon ECS 149Paso 3 Crear una funcioacuten Lambda de enlace de ciclo de vida 150Paso 4 Actualice el archivo AppSpec 151Paso 5 Utilice la consola de CodeDeploy para implementar su servicio Amazon ECS 153Paso 6 Visualice la salida de la funcioacuten de enlace de Lambda en CloudWatch Logs 154Paso 7 Eliminar recursos 155
Tutorial Implemente una funcioacuten Lambda medianteAWSSAM 156Requisitos previos 156Paso 1 Configurar la infraestructura 156Paso 2 Actualizacioacuten de la funcioacuten Lambda 167Paso 3 Implemente la funcioacuten de Lambda actualizada 168Paso 4 Consulte los resultados de la implementacioacuten 171Paso 5 Eliminar recursos 173
Trabajar con el agente de CodeDeploy 175Sistemas operativos compatibles con el agente de CodeDeploy 175
Versioacuten de API 2014-10-06iv
AWS CodeDeploy Guiacutea del usuario
Sistemas operativos AMI de Amazon EC2 compatibles 175Sistemas operativos locales compatibles 176
Protocolo de comunicacioacuten y puerto para el agente de CodeDeploy 176Historial de versiones del agente de CodeDeploy 176Revisioacuten de aplicaciones y limpieza de archivos de registro 183Archivos instalados por el agente de CodeDeploy 183Administracioacuten de operaciones del agente de CodeDeploy 186
Verifique que el agente de CodeDeploy esteacute en ejecucioacuten 186Determinar la versioacuten del agente de CodeDeploy 188Instalacioacuten del agente de CodeDeploy 189Actualizacioacuten del agente de CodeDeploy 198Desinstalacioacuten del agente de CodeDeploy 203SendCodeDeployRegistros de agentes de aCloudWatch 204
Trabajar con instancias 207Comparacioacuten de instancias de Amazon EC2 con instancias locales 207Tareas de instancia para CodeDeploy 208Etiquetado de instancias para implementaciones de CodeDeploy 209
Ejemplo 1 Grupo de etiquetas individuales etiqueta uacutenica 210Ejemplo 2 Grupo de etiquetas individuales etiquetas muacuteltiples 211Ejemplo 3 Varios grupos de etiquetas etiquetas individuales 212Ejemplo 4 Varios grupos de etiquetas varias etiquetas 214
Trabajar con instancias Amazon EC2 216Creacioacuten de una instancia de Amazon EC2 para CodeDeploy 217Crear una instancia Amazon EC2 (AWS CloudFormationplantilla) 221Configurar una instancia de Amazon EC2 228
Trabajar con instancias on-premises 230Requisitos previos para configurar una instancia on-premises 231Registro de una instancia on-premises 232Administracioacuten de operaciones de instancias on-premises 253
Visualizacioacuten de los detalles de la instancia 258Ver los detalles de la instancia (consola) 258Visualizacioacuten de los detalles de la instancia (CLI) 259
Estado de la instancia 259Estado 260Miacutenimo de instancias e implementaciones en buen estado 261
Uso de configuraciones de implementacioacuten 264Configuraciones de implementacioacuten en una plataforma de computacioacuten EC2On-Premises 264
Configuraciones de implementacioacuten predefinidas 264Configuraciones de implementacioacuten en una plataforma de computacioacuten Amazon ECS 267
Configuraciones de implementacioacuten predefinidas para Amazon ECS 267Configuraciones de implementacioacuten paraAWS CloudFormationImplementaciones bluegreen (AmazonECS) 267Configuraciones de implementacioacuten en unaAWS Lambdaplataforma de computacioacuten 268
Configuraciones de implementacioacuten predefinidas para Lambda 268 269
Crear una configuracioacuten de implementacioacuten 269Ver detalles de la configuracioacuten de implementacioacuten 270
Ver detalles de la configuracioacuten de implementacioacuten (consola) 270Visualizacioacuten de la configuracioacuten de implementacioacuten (CLI) 270
Eliminacioacuten de una configuracioacuten de implementacioacuten 271Trabajar con aplicaciones 272
Cree una aplicacioacuten 273Cree una aplicacioacuten para una implementacioacuten in situ (consola) 274Cree una aplicacioacuten para una implementacioacuten bluegreen (consola) 276Creacioacuten de una aplicacioacuten para una implementacioacuten de servicios de Amazon ECS (consola) 279Cree una aplicacioacuten para unaAWS Lambdaimplementacioacuten de funciones (consola) 281Crear una aplicacioacuten (CLI) 282
Versioacuten de API 2014-10-06v
AWS CodeDeploy Guiacutea del usuario
Ver los detalles de la aplicacioacuten 282Ver los detalles de la aplicacioacuten (consola) 282Ver los detalles de la aplicacioacuten (CLI) 283
Creacioacuten de una regla de notificacioacuten 283Cambiar el nombre de una aplicacioacuten 285Eliminar una aplicacioacuten 285
Eliminar una aplicacioacuten de (consola) 286Eliminar una aplicacioacuten (AWS CLI) 286
Trabajar con grupos de implementaciones 287Grupos de implementacioacuten en implementaciones de plataformas informaacuteticas de Amazon ECS 287Grupos de implementaciones enAWS Lambdaimplementaciones de plataformas de computacioacuten 287Grupos de implementaciones en implementaciones EC2On-Premises 287 288
Creacioacuten de un grupo de implementaciones 288Crear un grupo de implementaciones para una implementacioacuten in situ (consola) 289Crear un grupo de implementaciones para una implementacioacuten EC2On-Premises bluegreen(consola) 291Crear un grupo de implementacioacuten para una implementacioacuten de Amazon ECS (consola) 294Configurar un equilibrador de carga en Elastic Load Balancing para implementaciones deCodeDeploy Amazon EC2 295Configurar un equilibrador de carga grupos de destino y listeners para implementaciones deCodeDeploy Amazon ECS 296Creacioacuten de un grupo de implementaciones (CLI) 299
Ver detalles del grupo de implementacioacuten 300Ver detalles del grupo de implementaciones (consola) 300Ver detalles del grupo de implementaciones (CLI) 301
Cambiar la configuracioacuten del grupo de implementacioacuten 301Cambiar la configuracioacuten del grupo de implementaciones (consola) 302Cambiar la configuracioacuten del grupo de implementacioacuten (CLI) 302
Configuracioacuten de las opciones avanzadas de un grupo de implementaciones 303Eliminar un grupo de implementaciones 305
Eliminacioacuten de un grupo de implementaciones (consola) 306Eliminacioacuten de un grupo de implementaciones (CLI) 306
Gestioacuten de revisiones de aplicaciones 307Planear una revisioacuten 307Adicioacuten de un archivo AppSpec 308
Adicioacuten de un archivo AppSpec para una implementacioacuten de Amazon ECS 308Adicioacuten de un archivo AppSpec para unAWSImplementacioacuten de Lambda 310Adicioacuten de un archivo AppSpec para una implementacioacuten de EC2On-Premises 312
Eleccioacuten de un tipo de repositorio 314Enviar una revisioacuten 316
Impulsar una revisioacuten mediante elAWS CLI 317Ver detalles de una revisioacuten de aplicacioacuten 319
Ver detalles de una revisioacuten de aplicacioacuten (consola) 319Ver detalles de una revisioacuten de aplicacioacuten (CLI) 319
Registro de una revisioacuten de una aplicacioacuten 320Registro de una revisioacuten en Amazon S3 con CodeDeploy (CLI) 321Registro de una revisioacuten en GitHub con CodeDeploy (CLI) 321
Uso de las implementaciones 323Crear una implementacioacuten 324
Requisitos previos para la implementacioacuten 324Crear una implementacioacuten de Amazon ECS (consola) 327Creacioacuten de unAWSImplementacioacuten de Lambda Compute Platform (consola) 328Crear una implementacioacuten de Compute Platform (consola) de EC2On-Premises 329Crear una implementacioacuten de Amazon ECS Compute Platform (CLI) 333Creacioacuten de unAWSImplementacioacuten de Lambda Compute Platform (CLI) 334Crear una implementacioacuten de plataforma de computacioacuten EC2On-Premises (CLI) 335
Versioacuten de API 2014-10-06vi
AWS CodeDeploy Guiacutea del usuario
Cree una implementacioacuten bluegreen (azulverde) de Amazon ECS medianteAWSCloudFormation 337
Ver detalles de las implementaciones 340Ver los detalles de las implementaciones (consola) 341Ver los detalles de las implementaciones (CLI) 341
Ver datos del registro de implementacioacuten 342Ver los datos del archivo de registro en la consola de Amazon CloudWatch 342Ver archivos de registro de una instancia 342
Detener una implementacioacuten 344Detener una implementacioacuten (consola) 345Detener una implementacioacuten (CLI) 345
Reimplementa y reversioacuten de una implementacioacuten 345Restauraciones automaacuteticas 346Restauraciones manuales 346Flujo de trabajo de la restauracioacuten y reimplementacioacuten 346Comportamiento de reversioacuten con contenido existente 347
Implementar una aplicacioacuten en otroAWScuenta 349Paso 1 Creacioacuten de S3 Bucket en cualquiera de las cuentas 350Paso 2 Conceder permisos de bucket de Amazon S3 al perfil de instancia de IAM de la cuentade produccioacuten 350Paso 3 Creacioacuten de recursos y un rol entre cuentas en la cuenta de produccioacuten 351Paso 4 Cargue la revisioacuten de la aplicacioacuten en el bucket de Amazon S3 352Paso 5 Asumir el rol de acceso entre cuentas e implementar aplicaciones 352
Validar un paquete de implementacioacuten en una maacutequina local 352Requisitos previos 353Crear una implementacioacuten local 354Ejemplos 356
Monitorizar implementaciones 358Herramientas automatizadas 358Herramientas manuales 359Monitorizacioacuten de implementaciones con herramientas de Amazon CloudWatch 360
Monitorizacioacuten de implementaciones con alarmas de CloudWatch 360Monitoreo de implementaciones de mediante Amazon CloudWatch Events 362
Monitorizar implementaciones conAWS CloudTrail 364Informacioacuten de CodeDeploy en CloudTrail 364Descripcioacuten de las entradas de archivos log de CodeDeploy 364
Supervisioacuten de implementaciones con notificaciones de eventos de Amazon SNS 365Concesioacuten de permisos de Amazon SNS a un rol de servicio 366Creacioacuten de un disparador para un evento de CodeDeploy 367Edicioacuten de un desencadenador en un grupo de implementacioacuten 372Eliminar un desencadenador de un grupo de implementacioacuten 373Formatos de datos JSON para activadores 374
Seguridad 376Proteccioacuten de los datos 376
Privacidad del traacutefico entre redes 377Cifrado en reposo 377Cifrado en traacutensito 377Administracioacuten de claves de cifrado 378
Identity and Access Management 378Puacuteblico 378Autenticacioacuten con identidades 379Administracioacuten de acceso mediante poliacuteticas 381Coacutemo AWS CodeDeploy funciona con IAM 382AWSPoliacuteticas administradas por (predefinidas) para CodeDeploy 385Actualizaciones de CodeDeploy enAWSpoliacuteticas administradas 390Ejemplos de poliacuteticas basadas en identidad 390Solucioacuten de problemas 395
Versioacuten de API 2014-10-06vii
AWS CodeDeploy Guiacutea del usuario
Referencia de permisos de CodeDeploy 397Prevencioacuten del suplente confuso entre servicios 403
Respuesta frente a incidencias 404Auditoriacutea de todas las interacciones con CodeDeploy 404Administracioacuten de incidentes y alertas 404
Validacioacuten de conformidad 405Resiliencia 405Seguridad de infraestructuras 406
Referencia 407Referencia del archivo AppSpec 407
Archivos AppSpec en una plataforma de computacioacuten Amazon ECS 407Archivos AppSpec de unAWS Lambdaplataforma de computacioacuten 408Archivos AppSpec en una plataforma de computacioacuten EC2On-Premises 408Estructura de archivos AppSpec 408Ejemplo del archivo AppSpec 436Espaciado de archivos AppSpec 440Validar su ubicacioacuten de archivo y archivo de AppSpec 441
Referencia de configuracioacuten del agente 441Temas relacionados 444
AWS CloudFormationreferencia de plantillas 444Usar CodeDeploy con Amazon Virtual Private Cloud 446
Disponibilidad 447Crear puntos de enlace de la VPC para CodeDeploy 448Configuracioacuten del CodeDeploy permisos de agente e IAM 448
Referencia del kit de recursos 449Nombres de buckets del kit de recursos por regioacuten 449Contenido del kit de recursos 450Muestre una lista de los archivos del kit de recursos 452Descargue los archivos del kit de recursos 452
Liacutemites 454Aplicaciones 455Revisiones de aplicaciones 455Implementaciones 455Configuraciones de implementacioacuten 457Grupos de implementaciones 457Instancias 458
Solucioacuten de problemas 459Solucioacuten de problemas generales 459
Lista de comprobacioacuten de solucioacuten de problemas generales 459Los recursos de implementacioacuten de CodeDeploy solo se admiten en algunosAWSRegiones de 461Los procedimientos de esta guiacutea no sirven para la consola de CodeDeploy 461Los roles de IAM necesarios no estaacuten disponibles 461El uso de algunos editores de texto para crear archivos AppSpec y scripts del shell produce unerror en las implementaciones 461El uso de Finder en macOS para empaquetar una revisioacuten de la aplicacioacuten puede producir unerror en la implementacioacuten 462
Solucioacuten de problemas de implementacioacuten EC2On-premises 462El agente de CodeDeploy no se inicia en Windows 2016 463Error de falta de credenciales en el complemento CodeDeploy CommandPoller 464La implementacioacuten produce un error con el mensaje ldquoValidation of PKCS7 signed messagefailedrdquo 464La implementacioacuten o la reimplementacioacuten de los mismos archivos en la misma instanciaproducen el error The deployment failed because a specified file already exists at this location 464Los procesos de larga duracioacuten pueden producir un error en la implementacioacuten 466Solucioacuten de problemas AllowTraffic Evento de ciclo de vida sin ninguacuten error en los logs deimplementacioacuten 467
Versioacuten de API 2014-10-06viii
AWS CodeDeploy Guiacutea del usuario
Solucioacuten de problemas con un error ApplicationStop BeforeBlockTraffic o AfterBlockTrafficevento del ciclo de vida de la implementacioacuten 468Solucioacuten de problemas DownloadBundle evento de ciclo de vida de la implementacioacuten conUnknownError no abierto para lectura 469Solucioacuten de problemas cuando se omiten todos los eventos del ciclo de vida 469Windows PowerShell Los scripts no pueden utilizar la versioacuten de 64 bits de Windows PowerShellde forma predeterminada 471
SolucionarAWSProblemas de implementacioacuten de Lambda 471AWS LambdaLas implementaciones no se realizan correctamente si se detiene manualmenteuna implementacioacuten de Lambda que no tiene configuradas las reversiones 472
Solucioacuten de problemas de grupos de implementaciones 472Cuando se etiqueta una instancia como parte de un grupo de implementaciones no seimplementa automaacuteticamente la aplicacioacuten en la nueva instancia 472
Solucioacuten de problemas de instancias 472Las etiquetas deben estar configuradas correctamente 473AWS CodeDeployEl agente de debe estar instalado y ejecutaacutendose en las instancias 473Las implementaciones no producen error hasta una hora despueacutes cuando se termina unainstancia durante una implementacioacuten 473Anaacutelisis de archivos de registro para investigar los errores de implementacioacuten en instancias 473Creacioacuten de un nuevo CodeDeploy archivo log de si se ha eliminado por error 474Solucioacuten de errores de implementacioacuten ldquoInvalidSignatureException ndash Signature expired [hora] isnow earlier than [hora]rdquo 474
Solucionar GitHub Problemas con token 474Invalid (No vaacutelido) GitHub Token OAuth 474Nuacutemero maacuteximo de GitHub Se superaron los tokens OAuth 475
Solucioacuten de problemas de Amazon EC2 Auto Scaling 475Solucioacuten de problemas general de Amazon EC2 Auto Scaling 476laquoCodeDeployRole no le da permiso para realizar operaciones en las siguientesAWSservicio deError de AmazonAutoScalingraquo 476Las instancias de un grupo de Amazon EC2 Auto Scaling se aprovisionan y se terminanconstantemente antes de que pueda implementarse una revisioacuten 477La terminacioacuten o el reinicio de una instancia de Amazon EC2 Auto Scaling puede producir unerror en las implementaciones 477Evite asociar varios grupos de implementaciones a un uacutenico grupo de Amazon EC2 Auto Scaling 478Las instancias EC2 de un grupo de Amazon EC2 Auto Scaling no se pueden lanzar y aparece elerror laquoHeartbeat Timeoutraquo 479Los enlaces de ciclo de vida de Amazon EC2 Auto Scaling de Amazon EC2 podriacutean provocardetenciones o errores de las implementaciones automaacuteticas en grupos de Auto Scaling deAmazon EC2 480Error laquoLa implementacioacuten ha fallado porque no se han encontrado instancias para el grupo deimplementacioacutenraquo 481
Coacutedigos de error 486Temas relacionados 490
Recursos 491Guiacuteas de referencia y recursos de soporte 491Muestras 491Blogs 491AWSkits y herramientas de desarrollo de software 491
Historial de documentos 493Actualizaciones anteriores 497
Glosario de AWS 512 dxiii
Versioacuten de API 2014-10-06ix
AWS CodeDeploy Guiacutea del usuario
iquestQueacute es CodeDeployCodeDeploy es un servicio de implementacioacuten que automatiza la implementacioacuten de las aplicaciones eninstancias Amazon EC2 en instancias on-premises en funciones Lambda sin servidor o en servicios ECSde Amazon
Puede implementar una variedad de contenidos de aplicacioacuten praacutecticamente ilimitada entre las que seincluyen
bull Codebull Funciones AWS Lambda sin servidorbull Archivos de configuracioacuten y webbull Ejecutablesbull Paquetesbull Scriptsbull Archivos multimedia
CodeDeploy puede implementar contenido de aplicaciones que se ejecuta en un servidor y se almacenaen buckets de Amazon S3 repositorios de GitHub o repositorios de Bitbucket CodeDeploy tambieacuten puedeimplementar una funcioacuten de Lambda sin servidor No es necesario hacer cambios en el coacutedigo existentepara poder utilizar CodeDeploy
CodeDeploy le ayuda a
bull Lanzar raacutepidamente nuevas caracteriacutesticasbull Actualizar las versiones de las funciones de AWS Lambdabull Evitar tiempos de inactividad durante la implementacioacuten de las aplicacionesbull Gestionar el complejo proceso de actualizacioacuten de las aplicaciones evitando muchos de los riesgos
asociados a las implementaciones manuales que son susceptibles a errores
El servicio se adapta a su infraestructura por lo que puede implementar faacutecilmente en una sola instancia oen miles de ellas
CodeDeploy funciona con diversos sistemas de administracioacuten de configuracioacuten control de coacutedigofuenteintegracioacuten continuaentrega continuae implementacioacuten continua Para obtener maacutes informacioacutenconsulteIntegraciones de productos
La consola de CodeDeploy tambieacuten proporciona una forma raacutepida de buscar sus recursos comorepositorios proyectos de compilacioacuten aplicaciones de implementacioacuten y canalizaciones Elija Go toresource (Ir a recurso) o pulse la tecla y a continuacioacuten escriba el nombre del recurso Se muestrantodas las coincidencias en la lista En las buacutesquedas no se distingue entre mayuacutesculas y minuacutesculas Solopuede ver los recursos para los que tiene permiso Para obtener maacutes informacioacuten consulte Identity andAccess Management en AWS CodeDeploy (p 378)
Temasbull Ventajas de AWS CodeDeploy (p 2)bull Descripcioacuten general de las plataformas informaacuteticas de CodeDeploy (p 2)bull Introduccioacuten a los tipos de implementacioacuten de CodeDeploy (p 7)bull Esperamos tener noticias suyas (p 12)bull Componentes principales de CodeDeploy (p 12)bull Implementaciones de CodeDeploy (p 16)
Versioacuten de API 2014-10-061
AWS CodeDeploy Guiacutea del usuarioVentajas de AWS CodeDeploy
bull Archivos de especificacioacuten de aplicacioacuten CodeDeploy (AppSpec) (p 32)
Ventajas de AWS CodeDeployCodeDeploy ofrece las ventajas siguientes
bull Aplicaciones de servidor sin servidor y contenedor CodeDeploy le permite implementar tantoaplicaciones tradicionales basadas en servidores como aplicaciones que implementan un sistema de sinservidorAWS Lambdaversioacuten de funcioacuten o una aplicacioacuten de Amazon ECS
bull Implementaciones automatizadas CodeDeploy automatiza totalmente la implementacioacuten de lasaplicaciones en los entornos de desarrollo pruebas y produccioacuten CodeDeploy se adapta a suinfraestructura por lo que puede implementar en una sola instancia o en miles de ellas
bull Minimizar el tiempo de inactividad Si la aplicacioacuten utiliza la plataforma de computacioacuten EC2On-premises CodeDeploy ayuda a maximizar la disponibilidad de la aplicacioacuten En las implementacionesin situ CodeDeploy actualiza de forma continua en las instancias Amazon EC2 Es posible especificarel nuacutemero de instancias que se desactivan a la vez para efectuar las actualizaciones Durante unaimplementacioacuten bluegreen la uacuteltima revisioacuten de la aplicacioacuten se instala en las instancias de sustitucioacutenEl traacutefico se desviacutea a estas instancias en el momento que desee bien inmediatamente o cuando hayaterminado de probar el nuevo entorno En ambos tipos de implementacioacuten CodeDeploy supervisa elestado de la aplicacioacuten de acuerdo con las reglas que configure
bull Detencioacuten y reversioacuten En caso de que haya errores puede detener y revertir la implementacioacuten deforma automaacutetica o manual
bull Control centralizado Puede iniciar y controlar el estado de las implementaciones faacutecilmente a traveacutesde la consola de CodeDeploy o laAWS CLI Recibiraacute un informe que indica el momento en que seimplementoacute cada revisioacuten de la aplicacioacuten en cada instancia Amazon EC2
bull Facilidad de adopcioacuten CodeDeploy no depende de ninguna plataforma y funciona con cualquieraplicacioacuten Permite reutilizar faacutecilmente el coacutedigo de configuracioacuten CodeDeploy tambieacuten puedeintegrarse en procesos de publicacioacuten de software o cadenas de herramientas de entrega continua yaexistentes
bull Implementaciones simultaacuteneas Si tiene maacutes de una aplicacioacuten que utiliza la plataforma de computacioacutenEC2On-premises CodeDeploy puede implementarlas simultaacuteneamente en el mismo conjunto deinstancias
Descripcioacuten general de las plataformas informaacuteticasde CodeDeploy
CodeDeploy puede implementar aplicaciones en tres plataformas de computacioacuten
bull EC2On-Premises Describe las instancias de servidores fiacutesicos que pueden ser instancias en la nubede Amazon EC2 servidores on-premises o ambos Las aplicaciones creadas mediante la plataformade computacioacuten EC2On-premises pueden estar formadas por archivos ejecutables archivos deconfiguracioacuten imaacutegenes etc
Las implementaciones que utilizan la plataforma de computacioacuten EC2On-premises administran laforma en que el traacutefico se enviacutea a las instancias mediante un tipo de implementacioacuten laquoin-placeraquo olaquobluegreenraquo Para obtener maacutes informacioacuten consulte Introduccioacuten a los tipos de implementacioacuten deCodeDeploy (p 7)
bull AWSLambda Se utiliza para implementar aplicaciones que constan de una versioacuten actualizada deuna funcioacuten LambdaAWS Lambdaadministra la funcioacuten Lambda en un entorno de computacioacuten sinservidor formado por una estructura de computacioacuten de alta disponibilidad AWS Lambda se encarga
Versioacuten de API 2014-10-062
AWS CodeDeploy Guiacutea del usuarioDescripcioacuten general de las plataformas
informaacuteticas de CodeDeploy
de realizar toda la administracioacuten de los recursos de computacioacuten Para obtener maacutes informacioacutenconsulteInformaacutetica sin servidor y aplicaciones Para obtener maacutes informacioacuten acerca deAWSLambdafunciones de Lambda consulteAWS Lambda
Puede administrar la forma en que el traacutefico se desplaza a las versiones actualizadas de la funcioacutenLambda durante una implementacioacuten eligiendo una configuracioacuten controlada lineal o todo a la vez
bull Amazon ECS Se utiliza para implementar una aplicacioacuten en contenedores de Amazon ECS comoconjunto de tareas CodeDeploy realiza una implementacioacuten bluegreen instalando una versioacutenactualizada de la aplicacioacuten como un nuevo conjunto de tareas de sustitucioacuten CodeDeploy redirige eltraacutefico de produccioacuten del conjunto de tareas de la aplicacioacuten original al conjunto de tareas de sustitucioacutenCuando la implementacioacuten se realiza correctamente se termina el conjunto de tareas original Paraobtener maacutes informacioacuten acerca de Amazon ECS consulteAmazon Elastic Container Service
Puede administrar la forma en que el traacutefico se desplaza al conjunto de tareas actualizado durante unaimplementacioacuten eligiendo una configuracioacuten controlada lineal o todo a la vez
Note
Las implementaciones bluegreen (azulverde) de Amazon ECS se admiten con CodeDeployyAWS CloudFormation Los detalles de estas implementaciones se describen en seccionesposteriores
En la tabla siguiente se describe coacutemo se utilizan los componentes de CodeDeploy con cada plataforma decomputacioacuten Para obtener maacutes informacioacuten consulte
bull Trabajar con grupos de implementaciones en CodeDeploy (p 287)bull Uso de las implementaciones en CodeDeploy (p 323)bull Uso de configuraciones de implementacioacuten en CodeDeploy (p 264)bull Uso de revisiones de aplicaciones de CodeDeploy (p 307)bull Trabajar con aplicaciones en CodeDeploy (p 272)
Componente CodeDeploy EC2On-Premises AWS Lambda AmazonECS
Grupo de implementaciones Implementa una revisioacuten enun conjunto de instancias
Implementa una nuevaversioacuten de una funcioacutenLambda sin servidor en unainfraestructura informaacuteticade alta disponibilidad
Especificael serviciode AmazonECS con laaplicacioacuten encontenedorparaimplementarcomo unconjunto detareas unagente deescucha deproduccioacuteny de pruebaopcionalque seutiliza paraentregartraacutefico a laaplicacioacuten
Versioacuten de API 2014-10-063
AWS CodeDeploy Guiacutea del usuarioDescripcioacuten general de las plataformas
informaacuteticas de CodeDeploy
Componente CodeDeploy EC2On-Premises AWS Lambda AmazonECSimplementadacuaacutendoredirigir eltraacutefico yterminar elconjuntode tareasoriginal dela aplicacioacutenimplementadaydesencadenadoralarma yrestauracioacutenopcionalConfiguracioacutendel
Implementacioacuten Implementa una nuevarevisioacuten que consta de unaaplicacioacuten y un archivoAppSpec El archivoAppSpec especifica coacutemose implementa la aplicacioacutenen las instancias de ungrupo de implementaciones
Desviacutea el traacutefico deproduccioacuten desde unaversioacuten de una funcioacutenLambda a una nuevaversioacuten de la mismafuncioacuten El archivo AppSpecespecifica queacute versioacuten de lafuncioacuten de Lambda se debeimplementar
Implementauna versioacutenactualizadade unaaplicacioacutende encontenedorde AmazonECS comoun nuevoconjunto detareas desustitucioacutenCodeDeployredirige eltraacutefico deproduccioacutendesde elconjunto detareas conla versioacutenoriginalal nuevoconjunto detareas desustitucioacutencon laversioacutenactualizadaCuando secompleta laimplementacioacutense terminael conjuntode tareasoriginal
Versioacuten de API 2014-10-064
AWS CodeDeploy Guiacutea del usuarioDescripcioacuten general de las plataformas
informaacuteticas de CodeDeploy
Componente CodeDeploy EC2On-Premises AWS Lambda AmazonECS
Configuracioacuten deimplementacioacuten
Configuracioacuten quedetermina la velocidadde implementacioacuten yel nuacutemero miacutenimo deinstancias que deben estaren buen estado en cualquiermomento durante unaimplementacioacuten
Configuracioacuten quedetermina coacutemo se desviacuteael traacutefico a las versionesde la funcioacuten de Lambdaactualizadas
Configuracioacutenquedeterminacoacutemo sedesviacutea eltraacutefico alconjuntode tareasde AmazonECSactualizado
Versioacuten de API 2014-10-065
AWS CodeDeploy Guiacutea del usuarioDescripcioacuten general de las plataformas
informaacuteticas de CodeDeploy
Componente CodeDeploy EC2On-Premises AWS Lambda AmazonECS
Revisioacuten Combinacioacuten de un archivoAppSpec y de archivosde aplicacioacuten comoejecutables archivos deconfiguracioacuten etc
Un archivo AppSpecque especifica la funcioacutenLambda implementar ylas funciones Lambdaque ejecutan pruebas devalidacioacuten durante enlacesde eventos de ciclo de vidade implementacioacuten
Un archivode AppSpecqueespecifica
bull Ladefinicioacutendetareas deAmazonECS parael servicioAmazonECScon laaplicacioacutende encontenedorque seva aimplementar
bull Elcontenedoren elque seimplementalaaplicacioacutenactualizada
bull Un puertopara elcontenedordonde seredirige eltraacutefico deproduccioacuten
bull Ajustes deconfiguracioacutende redopcionalesyfuncionesLambdaquepuedenejecutarpruebasdevalidacioacutenduranteenlaces deeventosde ciclo
Versioacuten de API 2014-10-066
AWS CodeDeploy Guiacutea del usuarioIntroduccioacuten a los tipos de implementacioacuten de CodeDeploy
Componente CodeDeploy EC2On-Premises AWS Lambda AmazonECS
de vida deimplementacioacuten
Aplicacioacuten Coleccioacuten de gruposde implementaciones yrevisiones Una aplicacioacutenEC2On-Premises utiliza laplataforma de computacioacutenEC2On-Premises
Coleccioacuten de gruposde implementaciones yrevisiones Una aplicacioacutenque se utiliza para unaAWSLambdala implementacioacutenutiliza el sistema sinservidorAWSPlataforma decomputacioacuten de Lambda
Coleccioacuten degrupos deimplementacionesy revisionesUnaaplicacioacutenutilizadapara unaimplementacioacutende AmazonECS utilizala plataformainformaacuteticade AmazonECS
Introduccioacuten a los tipos de implementacioacuten deCodeDeploy
CodeDeploy ofrece dos opciones en cuanto al tipo de implementacioacuten
bull Implementacioacuten in situ La aplicacioacuten de cada instancia del grupo de implementacioacuten se para seinstala la uacuteltima revisioacuten de la aplicacioacuten y se inicia y valida la nueva versioacuten de la aplicacioacuten Puedeutilizar un balanceador de carga de modo que se cancele el registro de cada instancia durante suimplementacioacuten y a continuacioacuten vuelva a ponerse en servicio una vez completada la implementacioacutenSolo las implementaciones que usan la plataforma de computacioacuten EC2On-premises pueden utilizarimplementaciones laquoin-placeraquo Para obtener maacutes informacioacuten acerca de las implementaciones in-placeconsulte Descripcioacuten general de una implementacioacuten laquoin-placeraquo (p 8)
Note
AWSLas implementaciones de Lambda y Amazon ECS no pueden usar un tipo deimplementacioacuten laquoin-placeraquo
bull Implementacioacuten bluegreen El funcionamiento de la implementacioacuten depende de la plataforma decomputacioacuten que utilicebull Bluegreen en una plataforma de computacioacuten EC2On-Premises Las instancias de un grupo de
implementaciones (el entorno original) se sustituyen por otro conjunto de instancias (el entorno desustitucioacuten) siguiendo estos pasosbull Las instancias se aprovisionan para el entorno de sustitucioacutenbull La uacuteltima revisioacuten de la aplicacioacuten se instala en las instancias de sustitucioacutenbull Se produce un tiempo de espera opcional para actividades tales como pruebas de aplicaciones y
verificacioacuten del sistemabull Las instancias del entorno de sustitucioacuten se registran con un balanceador de carga de Elastic Load
Balancing lo que provoca que el traacutefico se dirija a ellas Las instancias del entorno original secancelan el registro y pueden terminarse o mantenerse en ejecucioacuten para otros usos
Versioacuten de API 2014-10-067
AWS CodeDeploy Guiacutea del usuarioDescripcioacuten general de una implementacioacuten laquoin-placeraquo
Note
Si utiliza una plataforma informaacutetica EC2local tenga en cuenta que las implementaciones enazul y verde funcionan uacutenicamente con instancias de Amazon EC2
bull Bluegreen en unAWS Lambdao plataforma de coacutemputo Amazon ECS El traacutefico se desviacutea enincrementos de acuerdo con unacanariolineal o bientodo a la vezconfiguracioacuten de implementacioacutenPara obtener maacutes informacioacuten consulte Configuracioacuten de implementacioacuten (p 13)
bull Implementaciones bluegreen (azul-verde) conAWS CloudFormation El traacutefico se desviacutea desde losrecursos actuales a los recursos actualizados como parte de unAWS CloudFormationactualizacioacuten depila de Actualmente solo se admiten implementaciones de ECS bluegreen (azulverde)
Para obtener maacutes informacioacuten acerca de las implementaciones bluegreen consulte Descripcioacuten generalde una implementacioacuten laquobluegreenraquo (p 9)
Note
Con el agente de CodeDeploy puede realizar una implementacioacuten en una instancia en la quehaya iniciado sesioacuten sin necesidad de una aplicacioacuten un grupo de implementaciones o ni siquieraunAWSaccount Para obtener informacioacuten consulte Usar el agente de CodeDeploy para validarun paquete de implementacioacuten en una maacutequina local (p 352)
Temasbull Descripcioacuten general de una implementacioacuten laquoin-placeraquo (p 8)bull Descripcioacuten general de una implementacioacuten laquobluegreenraquo (p 9)
Descripcioacuten general de una implementacioacuten laquoin-placeraquo
Note
AWSLas implementaciones de Lambda y Amazon ECS no pueden usar un tipo deimplementacioacuten laquoin-placeraquo
A continuacioacuten se explica coacutemo funciona una implementacioacuten laquoin-placeraquo
1 En primer lugar debe crear contenido implementable en su equipo de desarrollo local o un entornosimilar y a continuacioacuten debe agregar unarchivo de especificacioacuten de la aplicacioacuten(archivo AppSpec)El archivo AppSpec es exclusivo de CodeDeploy Define las acciones de implementacioacuten que debeejecutar CodeDeploy El contenido implementable y el archivo AppSpec se agrupan en un archivo dealmacenamiento y a continuacioacuten cargarlo en un bucket de Amazon S3 o un repositorio GitHub Estearchivo de almacenamiento se denomina revisioacuten de la aplicacioacuten (o simplemente revisioacuten)
2 A continuacioacuten debe proporcionar a CodeDeploy informacioacuten acerca de la implementacioacuten comoel bucket de Amazon S3 o el repositorio de GitHub del que debe tomar la revisioacuten y el conjunto deinstancias Amazon EC2 en que debe implementar el contenido CodeDeploy llama a un conjunto deinstancias de Amazon EC2grupo de implementacioacuten Un grupo de implementaciones contiene instanciasetiquetadas individualmente de Amazon EC2 instancias Amazon EC2 en grupos de Auto Scaling deAmazon EC2 o ambas
Cada vez que cargue correctamente una nueva revisioacuten de una aplicacioacuten que desee implementaren el grupo de implementaciones el paquete correspondiente se marca como revisioacuten de destinopara ese grupo de implementaciones En otras palabras la revisioacuten de la aplicacioacuten que debeimplementarse en cada momento es la revisioacuten de destino Tambieacuten es la revisioacuten que se extrae paralas implementaciones automaacuteticas
Versioacuten de API 2014-10-068
AWS CodeDeploy Guiacutea del usuarioDescripcioacuten general de una implementacioacuten laquobluegreenraquo
3 A continuacioacuten el agente de CodeDeploy de cada instancia sondea a CodeDeploy para determinar queacuteextraer del bucket de Amazon S3 o repositorio GitHub especificado y cuaacutendo hacerlo
4 Por uacuteltimo el agente de CodeDeploy de cada instancia extrae la revisioacuten de destino del bucket deAmazon S3 o repositorio GitHub y sigue las instrucciones del archivo AppSpec para implementar elcontenido en la instancia
CodeDeploy mantiene un registro de las implementaciones para proporcionarle informacioacuten tal como suestado y sus paraacutemetros de configuracioacuten de la implementacioacuten el estado de las instancias etc
Descripcioacuten general de una implementacioacuten laquobluegreenraquoSe utiliza una implementacioacuten bluegreen para actualizar las aplicaciones al tiempo que se minimizan lasinterrupciones causadas por los cambios de una nueva versioacuten de la aplicacioacuten CodeDeploy aprovisionala nueva versioacuten de la aplicacioacuten junto con la versioacuten anterior antes de reenrutar el traacutefico de produccioacuten
bull AWSLambda El traacutefico se desviacutea desde una versioacuten de una funcioacuten Lambda a una nueva versioacuten de lamisma funcioacuten Lambda
bull Amazon ECS El traacutefico se desviacutea desde un conjunto de tareas de su servicio de Amazon ECS a unconjunto de tareas actualizado de sustitucioacuten en el mismo servicio Amazon ECS
bull EC2On-Premises El traacutefico se desviacutea desde un conjunto de instancias en el entorno original a unconjunto de instancias de sustitucioacuten
TodosAWSLas implementaciones de Lambda y Amazon ECS son bluegreen Una implementacioacuten EC2On-Premises puede ser in situ o bluegreen Una implementacioacuten bluegreen ofrece diversas ventajas conrespecto a la implementacioacuten in situ
bull Puede instalar y probar una aplicacioacuten en el nuevo entorno de sustitucioacuten e implementarla en produccioacutencon solo redirigir el traacutefico
bull Si utiliza la plataforma de computacioacuten EC2On-premises es maacutes raacutepido y seguro volver a cambiar ala versioacuten maacutes reciente de una aplicacioacuten Esto se debe a que el traacutefico puede volver a dirigirse a lasinstancias originales siempre que no se hayan terminado Con una implementacioacuten in situ las versionesdeben revertirse a la versioacuten anterior de la aplicacioacuten
bull Si utiliza la plataforma de computacioacuten EC2On-premises se preparan instancias nuevas para unaimplementacioacuten bluegreen y reflejan las configuraciones maacutes actuales de los servidores Esto ayudaa evitar la clase de problemas que a veces aparecen en las instancias que llevan mucho tiempo enejecucioacuten
bull Si utiliza laAWSPlataforma de computacioacuten de Lambda puede controlar coacutemo se desviacutea el traacutefico de suoriginalAWSVersioacuten de funcioacuten de Lambda para su nuevoAWSVersioacuten de funcioacuten de Lambda
bull Si utiliza la plataforma de computacioacuten Amazon ECS puede controlar coacutemo se desviacutea el traacutefico delconjunto de tareas original al nuevo conjunto de tareas
Una implementacioacuten bluegreen (azulverde) con AWS CloudFormation puede utilizar uno de los siguientesmeacutetodos
bull AWS CloudFormationplantillas para implementaciones Al configurar implementacionesconAWS CloudFormationplantillas sus implementaciones se activan medianteAWSCloudFormationactualizaciones Cuando cambia un recurso y carga un cambio de plantilla unaactualizacioacuten de pila en AWS CloudFormation inicia la nueva implementacioacuten Para obtener unalista de los recursos que puede utilizar en las plantillas de AWS CloudFormation consulte AWSCloudFormationplantillas para referencia de CodeDeploy (p 444)
Versioacuten de API 2014-10-069
AWS CodeDeploy Guiacutea del usuarioDescripcioacuten general de una implementacioacuten laquobluegreenraquo
bull Implementaciones bluegreen (azul-verde) conAWS CloudFormation Puede usarAWSCloudFormationpara administrar sus implementaciones bluegreen (azulverde) a traveacutes deactualizaciones de pila Defina los recursos blue y green (azules y verdes) ademaacutes de especificar laconfiguracioacuten de enrutamiento y estabilizacioacuten del traacutefico dentro de la plantilla de pila A continuacioacutensi actualiza los recursos seleccionados durante una actualizacioacuten de pila AWS CloudFormationgenera todos los recursos green (verdes) necesarios desviacutea el traacutefico en funcioacuten de los paraacutemetrosde direccionamiento del traacutefico especificados y elimina los recursos blue (azules) Para obtener maacutesinformacioacuten consulteAutomatice las implementaciones bluegreen (azulverde) de Amazon ECS a traveacutesde CodeDeployAWS CloudFormationen laAWS CloudFormationGuiacutea del usuario de
Note
Solo se admite para implementaciones bluegreen (azulverde) de Amazon ECS
La forma de configurar una implementacioacuten bluegreen depende la plataforma de computacioacuten que utilicela implementacioacuten
Implementacioacuten bluegreen en unaAWS Lambdao plataforma decoacutemputo Amazon ECSSi utiliza laAWS Lambdao plataforma informaacutetica Amazon ECS debe indicar coacutemo se desplaza el traacuteficodel originalAWS Lambdafuncioacuten o conjunto de tareas de Amazon ECS en la nueva funcioacuten o conjunto detareas Para indicar coacutemo se desviacutea el traacutefico debe especificar una de las siguientes configuraciones deimplementacioacuten
bull canariobull linealbull todo a la vez
Para obtener maacutes informacioacuten sobre coacutemo se desviacutea el traacutefico en configuraciones de implementacionescanarias lineales o todo a la vez consulteConfiguracioacuten de implementacioacuten (p 13)
Para obtener maacutes informacioacuten sobre la configuracioacuten de implementacioacuten de Lambda consulteConfiguraciones de implementacioacuten en unaAWS Lambdaplataforma de computacioacuten (p 268)
Para obtener maacutes informacioacuten sobre la configuracioacuten de implementacioacuten de Amazon ECSconsulteConfiguraciones de implementacioacuten en una plataforma de computacioacuten Amazon ECS (p 267)
Implementacioacuten bluegreen en una plataforma de computacioacutenEC2On-Premises
Note
Debe utilizar instancias Amazon EC2 para implementaciones bluegreen en la plataformade computacioacuten EC2On-Premises No se admiten instancias on-premises para el tipo deimplementacioacuten bluegreen
Si utiliza la plataforma de computacioacuten EC2On-Premises tenga en cuenta lo siguiente
Debe disponer de una o varias instancias Amazon EC2 con identificacioacuten de etiquetas de Amazon EC2 oun grupo de Auto Scaling de Amazon EC2 Las instancias tambieacuten deben cumplir los requisitos siguientes
bull Cada instancia de Amazon EC2 debe tener asociado el perfil de instancia de IAM correctobull El agente de CodeDeploy debe estar instalado y en ejecucioacuten en cada instancia
Versioacuten de API 2014-10-0610
AWS CodeDeploy Guiacutea del usuarioDescripcioacuten general de una implementacioacuten laquobluegreenraquo
Note
Normalmente tambieacuten hay una revisioacuten de la aplicacioacuten ejecutaacutendose en las instancias delentorno original pero esto no es un requisito para una implementacioacuten bluegreen
Al crear un grupo de implementaciones para utilizarlo en implementaciones bluegreen puede elegir elmodo de especificar el entorno de sustitucioacuten
Copiar un grupo de Amazon EC2 Auto Scaling existente En las implementaciones bluegreen CodeDeploycrea las instancias del entorno de sustitucioacuten durante la implementacioacuten Con esta opcioacuten CodeDeployutiliza el grupo de Amazon EC2 Auto Scaling especificado como plantilla para el entorno de sustitucioacutenincluyendo el mismo nuacutemero de instancias en ejecucioacuten y muchas otras opciones de configuracioacuten
Elegir las instancias manualmente Puede especificar las instancias consideradas de sustitucioacuten medianteetiquetas de instancia Amazon EC2 nombres de grupo de Amazon EC2 Auto Scaling o ambos Si eligeesta opcioacuten no tendraacute que especificar las instancias del entorno de sustitucioacuten hasta el momento de crearuna implementacioacuten
Asiacute es como funciona
1 Ya cuenta con instancias o un grupo de Auto Scaling de Amazon EC2 que sirven como entorno originalLa primera vez que ejecute una implementacioacuten bluegreen normalmente usaraacute instancias que ya sehabraacuten utilizado en una implementacioacuten in situ
2 Para una aplicacioacuten de CodeDeploy ya existente debe crear un grupo de implementaciones bluegreenen el que ademaacutes de las opciones necesarias para una implementacioacuten in situ debe especificar losiguientebull El balanceador de carga que dirige el traacutefico del entorno original al entorno de sustitucioacuten durante el
proceso de implementacioacuten bluegreenbull Si el traacutefico debe dirigirse al entorno de sustitucioacuten de inmediato o esperar a que lo redirija
manualmentebull La velocidad con la que se dirige el traacutefico a las instancias de sustitucioacutenbull Si las instancias sustituidas deben terminarse o mantenerse en ejecucioacuten
3 Ahora crearaacute una implementacioacuten para este grupo de implementaciones en la que ocurriraacute lo siguientea Si decide copiar un grupo de Auto Scaling de Amazon EC2 se preparan instancias para el entorno de
sustitucioacutenb La revisioacuten de aplicacioacuten especificada para la implementacioacuten se instala en las instancias de
sustitucioacutenc Si ha especificado un tiempo de espera en la configuracioacuten del grupo de implementaciones la
implementacioacuten se pausa Este es el momento en el que puede realizar pruebas y verificaciones enel entorno de sustitucioacuten Si no redirige manualmente el traacutefico antes de que finalice el periodo deespera la implementacioacuten se detiene
d Las instancias del entorno de sustitucioacuten se registran con un balanceador de carga de Elastic LoadBalancing y el traacutefico comienza a dirigirse a ellas
e Las instancias del entorno original se borran del registro y se terminan o se mantienen en ejecucioacutenseguacuten lo que haya especificado para el grupo de implementaciones
Implementacioacuten bluegreen (azulAWS CloudFormationPuede administrar implementaciones bluegreen de CodeDeploy (azulverde) de CodeDeploy modelandosus recursos con unAWS CloudFormationplantilla de
Cuando modela los recursos bluegreen (azulverde) utilizando una plantilla de AWS CloudFormationcrea una actualizacioacuten de pila en AWS CloudFormation que actualiza el conjunto de tareas El traacutefico deproduccioacuten pasa del conjunto de tareas original del servicio a un conjunto de tareas de sustitucioacuten o bien
Versioacuten de API 2014-10-0611
AWS CodeDeploy Guiacutea del usuarioEsperamos tener noticias suyas
todo a la vez con implementaciones lineales y tiempos de procesamiento o bien con implementacionesde valores controlados La actualizacioacuten de la pila inicia una implementacioacuten en CodeDeploy Puedever el estado y el historial de la implementacioacuten en CodeDeploy pero no crea ni administra recursos deCodeDeploy de fuera de laAWS CloudFormationplantilla de
Note
Para implementaciones bluegreen (azulverde) a traveacutesAWS CloudFormation no se crea unaaplicacioacuten de CodeDeploy ni un grupo de implementacioacuten
Este meacutetodo solo admite implementaciones bluegreen (azulverde) de Amazon ECS Para obtener maacutesinformacioacuten acerca de las implementaciones bluegreen (azulverde) a traveacutes de AWS CloudFormationconsulte Cree una implementacioacuten bluegreen (azulverde) de Amazon ECS medianteAWSCloudFormation (p 337)
Esperamos tener noticias suyasAgradecemos sus comentarios Para ponerse en contacto con nosotros visiteforo de CodeDeploy
Temas
bull Primary Components (p 12)bull Deployments (p 16)bull Application Specification Files (p 32)
Componentes principales de CodeDeployAntes de empezar a trabajar con el servicio debe familiarizarse con los componentes principales delproceso de implementacioacuten de CodeDeploy
Temasbull Aplicacioacuten (p 12)bull Plataforma de computacioacuten (p 13)bull Configuracioacuten de implementacioacuten (p 13)bull Grupo de implementaciones (p 14)bull Tipo de implementacioacuten (p 14)bull Perfil de instancia IAM (p 15)bull Revisioacuten (p 15)bull Rol de servicio (p 15)bull revisioacuten de destino (p 15)bull Otros componentes (p 16)
AplicacioacutenUnaplicacioacutenes un nombre que identifica de forma exclusiva la aplicacioacuten que desea implementarCodeDeploy utiliza este nombre que actuacutea como contenedor para asegurar que se hace referencia a lacombinacioacuten correcta de revisioacuten configuracioacuten de implementacioacuten y grupo de implementacioacuten duranteuna implementacioacuten
Versioacuten de API 2014-10-0612
AWS CodeDeploy Guiacutea del usuarioPlataforma de computacioacuten
Plataforma de computacioacutenUNAplataforma de computacioacutenes una plataforma en la que CodeDeploy implementa una aplicacioacutenExisten tres plataformas de computacioacuten
bull EC2On-Premises Describe las instancias de servidores fiacutesicos que pueden ser instancias en la nube deAmazon EC2 servidores on-premises o ambas cosas Las aplicaciones creadas mediante la plataformade computacioacuten EC2On-Premises pueden estar formadas por archivos ejecutables archivos deconfiguracioacuten imaacutegenes etc
Las implementaciones que usan la plataforma de computacioacuten EC2On-Premises administran laforma en que el traacutefico se enviacutea a las instancias mediante un tipo de implementacioacuten laquoin-placeraquo olaquobluegreenraquo Para obtener maacutes informacioacuten consulte Introduccioacuten a los tipos de implementacioacuten deCodeDeploy (p 7)
bull AWSLambda Se utiliza para implementar aplicaciones que constan de una versioacuten actualizada deuna funcioacuten LambdaAWS Lambdaadministra la funcioacuten Lambda en un entorno de computacioacuten sinservidor formado por una estructura de computacioacuten de alta disponibilidad AWS Lambda se encargade realizar toda la administracioacuten de los recursos de computacioacuten Para obtener maacutes informacioacutenconsulteInformaacutetica sin servidor y aplicaciones Para obtener maacutes informacioacuten acerca deAWS Lambdaylas funciones Lambda consulteAWS Lambda
Puede administrar la forma en que el traacutefico se dirige a las versiones actualizadas de las funcionesLambda durante una implementacioacuten eligiendo una configuracioacuten controlada lineal o todo a la vez
bull Amazon ECS Se utiliza para implementar una aplicacioacuten en contenedor de Amazon ECS como conjuntode tareas CodeDeploy realiza una implementacioacuten bluegreen (azulverde) instalando una versioacutenactualizada de la aplicacioacuten como un nuevo conjunto de tareas de sustitucioacuten CodeDeploy redirige eltraacutefico de produccioacuten del conjunto de tareas de la aplicacioacuten original al conjunto de tareas de sustitucioacutenCuando la implementacioacuten se realiza correctamente se termina el conjunto de tareas original Paraobtener maacutes informacioacuten acerca de Amazon ECS consulteAmazon Elastic Container Service
Puede administrar la forma en que el traacutefico se desplaza al conjunto de tareas actualizado durante unaimplementacioacuten eligiendo una configuracioacuten controlada lineal o todo a la vez
Note
Las implementaciones bluegreen (azulverde) de Amazon ECS se admiten a traveacutes deCodeDeploy yAWS CloudFormation Los detalles de estas implementaciones se describen ensecciones posteriores
Configuracioacuten de implementacioacutenUNAconfiguracioacuten de implementacioacutenes un conjunto de reglas de implementacioacuten y condiciones de eacutexitoo fracaso que CodeDeploy utiliza durante una implementacioacuten Si su implementacioacuten usa la plataforma decomputacioacuten EC2On-Premises puede especificar el nuacutemero miacutenimo de instancias en buen estado parala implementacioacuten Si la implementacioacuten utiliza elAWS Lambdao la plataforma de computacioacuten AmazonECS puede especificar la forma en que el traacutefico se enviacutea a la funcioacuten Lambda actualizada o al conjuntode tareas ECS
Para obtener maacutes informacioacuten acerca de coacutemo especificar el nuacutemero miacutenimo de hosts en buen estadopara una implementacioacuten que usa la plataforma de computacioacuten EC2On-Premises consulteMiacutenimo deinstancias e implementaciones en buen estado (p 261)
En las siguientes configuraciones de implementacioacuten se especifica la forma en que el traacutefico se enviacuteadurante una implementacioacuten que usa Lambda o la plataforma de computacioacuten ECS
bull Canario El traacutefico se desviacutea en dos incrementos Puede elegir opciones laquocanaryraquo predefinidas queespecifiquen el porcentaje de traacutefico desviado a la funcioacuten Lambda actualizada o al conjunto de tareas
Versioacuten de API 2014-10-0613
AWS CodeDeploy Guiacutea del usuarioGrupo de implementaciones
ECS en el primer incremento y el intervalo en minutos antes de que el traacutefico restante se desviacutee en elsegundo incremento
bull Lineal El traacutefico se desviacutea en incrementos iguales con el mismo nuacutemero de minutos entre incrementosPuede elegir opciones lineales predefinidas que especifiquen el porcentaje de traacutefico desviado en cadaincremento y el nuacutemero de minutos entre cada incremento
bull Todo a la vez Todo el traacutefico se desviacutea de la funcioacuten Lambda original o el conjunto de tareas ECS a lafuncioacuten actualizada o conjunto de tareas a la vez
Grupo de implementacionesUNAgrupo de implementacioacutenes un conjunto de instancias individuales Un grupo de implementacioacutencontiene instancias etiquetadas individualmente instancias de Amazon EC2 en grupos de Amazon EC2Auto Scaling o ambos elementos Para obtener informacioacuten sobre las etiquetas de las instancias deAmazon EC2 consulteUso de etiquetas mediante la consola Para obtener maacutes informacioacuten acercade instancias on-premises consulte Working with On-Premises Instances (p 230) Para obtenerinformacioacuten sobre Amazon EC2 Auto Scaling consulteIntegracioacuten de CodeDeploy con Amazon EC2 AutoScaling (p 53)
Tipo de implementacioacutenUNAtipo de implementacioacutenes un meacutetodo utilizado para hacer que la uacuteltima revisioacuten de la aplicacioacuten esteacutedisponible en instancias de un grupo de implementacioacuten Existen dos tipos de implementaciones
bull Implementacioacuten in situ Se detiene la aplicacioacuten de cada instancia del grupo de implementacioacuten seinstala la uacuteltima revisioacuten de la aplicacioacuten y se inicia y valida la nueva versioacuten de la aplicacioacuten Puedeutilizar un balanceador de carga de modo que se cancele el registro de cada instancia durante suimplementacioacuten y a continuacioacuten vuelva a ponerse en servicio una vez completada la implementacioacutenSolo las implementaciones que usan la plataforma de computacioacuten EC2On-Premises pueden utilizarimplementaciones laquoin-placeraquo Para obtener maacutes informacioacuten acerca de las implementaciones in-placeconsulte Descripcioacuten general de una implementacioacuten laquoin-placeraquo (p 8)
bull Implementacioacuten bluegreen El funcionamiento de la implementacioacuten depende de la plataforma decomputacioacuten que utilicebull Bluegreen en una plataforma de computacioacuten EC2On-Premises Las instancias de un grupo de
implementacioacuten (el entorno original) se sustituyen por otro conjunto de instancias (el entorno desustitucioacuten) siguiendo estos pasosbull Las instancias se aprovisionan para el entorno de sustitucioacutenbull La uacuteltima revisioacuten de la aplicacioacuten se instala en las instancias de sustitucioacutenbull Se produce un tiempo de espera opcional para actividades tales como pruebas de aplicaciones y
verificacioacuten del sistemabull Las instancias del entorno de sustitucioacuten se registran con un balanceador de carga de Elastic Load
Balancing lo que hace que el traacutefico se desviacutee hacia ellas Las instancias del entorno original secancelan del registro y pueden terminarse o mantenerse en ejecucioacuten para otros usos
Note
Si utiliza una plataforma informaacutetica EC2local tenga en cuenta que las implementaciones enazul y verde funcionan uacutenicamente con instancias de Amazon EC2
bull Bluegreen en unAWS Lambdao plataforma de coacutemputo Amazon ECS El traacutefico se desviacutea enincrementos de acuerdo con uncanariolineal o bientodo a la vezconfiguracioacuten de implementacioacutenPara obtener maacutes informacioacuten consulte Configuracioacuten de implementacioacuten (p 13)
bull Implementaciones bluegreen (azul-verde) conAWS CloudFormation El traacutefico se desviacutea de losrecursos actuales a los recursos actualizados de como parte de unaAWS CloudFormationactualizacioacutende pila de Actualmente solo se admiten implementaciones de ECS bluegreen (azulverde)
Versioacuten de API 2014-10-0614
AWS CodeDeploy Guiacutea del usuarioTipo de implementacioacuten
Para obtener maacutes informacioacuten acerca de las implementaciones bluegreen consulte Descripcioacuten generalde una implementacioacuten laquobluegreenraquo (p 9)
Note
Las implementaciones bluegreen (azulverde) de Amazon ECS se admiten mediante CodeDeployyAWS CloudFormation Los detalles de estas implementaciones se describen en seccionesposteriores
Perfil de instancia IAMUnPerfil de instancia IAMes un rol de IAM que adjunta a las instancias de Amazon EC2 Este perfil incluyelos permisos necesarios para acceder a los buckets de Amazon S3 o a los repositorios GitHub en losque se encuentran las aplicaciones Para obtener maacutes informacioacuten consulte Paso 4 Crear un perfil deinstancias de IAM para sus instancias Amazon EC2 (p 43)
RevisioacutenUNArevisioacutenes una versioacuten de la aplicacioacuten UnAWSLa revisioacuten de implementacioacuten de Lambda es unarchivo con formato YAML o JSON que especifica informacioacuten sobre la funcioacuten Lambda que se va aimplementar Una revisioacuten de una implementacioacuten EC2On-Premises es un archivo de almacenamientoque incluye contenido de origen (coacutedigo fuente paacuteginas web archivos ejecutables y scripts deimplementacioacuten) y un archivo de especificacioacuten de la aplicacioacuten (archivo AppSpec)AWS Las revisionesLambda se pueden almacenar en buckets de Amazon S3 Las revisiones EC2On-Premises se almacenanen buckets de Amazon S3 o en repositorios GitHub En el caso de Amazon S3 una revisioacuten se identificade forma exclusiva mediante su clave de objeto de Amazon S3 y etiqueta electroacutenica de Amazon S3su versioacuten o ambos elementos Para GitHub una revisioacuten se identifica de forma exclusiva por su ID deconfirmacioacuten
Rol de servicioUNARol de servicio dees un rol de IAM que otorga permisos a unAWSservicio para que puedaaccederAWSde AWS Las poliacuteticas que adjuntas al rol de servicio determinan queacuteAWSrecursos a los quepuede acceder el servicio y las acciones que puede llevar a cabo con esos recursos Para CodeDeploy seutiliza un rol de servicio para lo siguiente
bull Para leer las etiquetas aplicadas a las instancias o los nombres de grupo de Amazon EC2 AutoScaling asociados a las instancias Esto permite a CodeDeploy identificar instancias en las que puedeimplementar aplicaciones
bull Para realizar operaciones en instancias grupos Auto Scaling de Amazon EC2 y balanceadores de cargade Elastic Load Balancing
bull Para publicar informacioacuten en temas de Amazon SNS para que se puedan enviar notificaciones cuandose produzcan eventos de instancia o implementacioacuten especificados
bull Para recuperar informacioacuten sobre las alarmas de CloudWatch para configurar la supervisioacuten de alarmaspara implementaciones
Para obtener maacutes informacioacuten consulte Paso 2 Creacioacuten de un rol de servicio paraCodeDeploy (p 36)
revisioacuten de destinoUNArevisioacuten de destinoes la versioacuten maacutes reciente de la revisioacuten de la aplicacioacuten que ha cargado en elrepositorio y desea implementar en las instancias de un grupo de implementacioacuten Es decir revisioacuten de la
Versioacuten de API 2014-10-0615
AWS CodeDeploy Guiacutea del usuarioOtros componentes
aplicacioacuten que se va a incluir en la implementacioacuten actual Tambieacuten es la revisioacuten que se extrae para lasimplementaciones automaacuteticas
Otros componentesPara obtener informacioacuten sobre otros componentes del flujo de trabajo de CodeDeploy consulte lossiguientes temas
bull Elija un tipo de repositorio de CodeDeploy (p 314)bull Deployments (p 16)bull Application Specification Files (p 32)bull Instance Health (p 259)bull Trabajar con el agente de CodeDeploy (p 175)bull Working with On-Premises Instances (p 230)
Implementaciones de CodeDeployEste tema proporciona informacioacuten sobre los componentes y el flujo de trabajo de las implementacionesen CodeDeploy El proceso de implementacioacuten variacutea seguacuten la plataforma de computacioacuten o el meacutetodode implementacioacuten (Lambda Amazon ECS EC2On-Premises o a traveacutes deAWS CloudFormation) queutilizas para tus implementaciones
Note
Las implementaciones en una plataforma de computacioacuten Amazon ECS no se admiten en laregioacuten Asia-Paciacutefico (Osaka)
Temasbull Implementaciones en unaAWSPlataforma de computacioacuten Lambda (p 16)bull Implementaciones en una plataforma de computacioacuten Amazon ECS (p 19)bull Implementaciones en una plataforma de computacioacuten EC2On-Premises (p 27)
Implementaciones en unaAWSPlataforma decomputacioacuten LambdaEste tema proporciona informacioacuten sobre los componentes y el flujo de trabajo de las implementaciones deCodeDeploy que utilizan laAWSPlataforma de computacioacuten Lambda
Temasbull Flujo de trabajo de implementacioacuten enAWS Lambdaplataforma de computacioacuten (p 17)bull Carga de la revisioacuten de la aplicacioacuten (p 18)bull Crear la aplicacioacuten de y los grupos de implementaciones (p 18)bull Implementacioacuten de la revisioacuten de la aplicacioacuten (p 18)bull Actualizacioacuten de la aplicacioacuten (p 18)bull Implementaciones detenidas y con error (p 18)bull Reimplementaciones y restauracioacuten de implementaciones (p 18)
Versioacuten de API 2014-10-0616
AWS CodeDeploy Guiacutea del usuarioImplementaciones en unaAWSPlataforma
de computacioacuten Lambda
Flujo de trabajo de implementacioacuten enAWS Lambdaplataformade computacioacutenEn el siguiente diagrama se muestran los principales pasos en la implementacioacuten de funciones AWSLambda nuevas y actualizadas
Estos pasos incluyen
1 Cree una aplicacioacuten y asiacutegnele un nombre que identifique las revisiones de la aplicacioacuten que deseaimplementar Para desplegar funciones Lambda elijaAWSPlataforma de computacioacuten Lambda alcrear la aplicacioacuten de CodeDeploy utiliza este nombre durante una implementacioacuten para asegurarsede que se haga referencia a los componentes correctos de la implementacioacuten como el grupo deimplementaciones la configuracioacuten de la implementacioacuten y la revisioacuten de la aplicacioacuten Para obtenermaacutes informacioacuten consulte Crear una aplicacioacuten con CodeDeploy (p 273)
2 Configure un grupo de implementaciones especificando el nombre del grupo3 Elija una configuracioacuten de implementacioacuten para especificar coacutemo se desviacutea el traacutefico desde el
originalAWS Lambdaversioacuten de funcioacuten a la nueva versioacuten de funcioacuten Lambda Para obtener maacutesinformacioacuten consulte View Deployment Configuration Details (p 270)
4 Carga de unarchivo de especificacioacuten de la aplicacioacuten(archivo de AppSpec) para Amazon S3 Enel archivo AppSpec se especifica una versioacuten de la funcioacuten de Lambda y las funciones de Lambdautilizadas para validar la implementacioacuten Si no desea crear un archivo AppSpec puede especificaruna versioacuten de la funcioacuten de Lambda y las funciones de validacioacuten de la implementacioacuten de Lambdadirectamente en la consola utilizando YAML o JSON Para obtener maacutes informacioacuten consulte Uso derevisiones de aplicaciones de CodeDeploy (p 307)
5 Implemente la revisioacuten de la aplicacioacuten en el grupo de implementacionesAWS CodeDeployimplementala revisioacuten de la funcioacuten de Lambda que ha especificado El traacutefico se desviacutea a la revisioacuten de la funcioacutende Lambda utilizando el archivo AppSpec de implementacioacuten que seleccionoacute al crear la aplicacioacuten Paraobtener maacutes informacioacuten consulte Cree una implementacioacuten con CodeDeploy (p 324)
6 Compruebe los resultados de la implementacioacuten Para obtener maacutes informacioacuten consulte Monitorizarimplementaciones en CodeDeploy (p 358)
Versioacuten de API 2014-10-0617
AWS CodeDeploy Guiacutea del usuarioImplementaciones en unaAWSPlataforma
de computacioacuten Lambda
Carga de la revisioacuten de la aplicacioacutenPonga un archivo AppSpec en Amazon S3 o introduacutezcalo directamente en la consola oAWS CLI Paraobtener maacutes informacioacuten consulte Application Specification Files (p 32)
Crear la aplicacioacuten de y los grupos de implementacionesUn grupo de implementaciones de CodeDeploy en unAWSLa plataforma de computacioacuten Lambdaidentifica una coleccioacuten de uno o varios archivos AppSpec Cada archivo de AppSpec puede implementaruna versioacuten de funcioacuten Lambda Un grupo de implementaciones tambieacuten define un conjunto de opcionesde configuracioacuten para implementaciones futuras como alarmas y configuraciones de restauracioacuten
Implementacioacuten de la revisioacuten de la aplicacioacutenAhora ya estaacute listo para implementar la revisioacuten de la funcioacuten especificada en el archivo AppSpecen el grupo de implementaciones Puede utilizar la consola de CodeDeploy o lacreate deploymentcreatecomando Hay paraacutemetros que puede especificar para controlar la implementacioacuten que incluyen larevisioacuten el grupo de implementaciones y la configuracioacuten de la implementacioacuten
Actualizacioacuten de la aplicacioacutenPuede llevar a cabo actualizaciones de su aplicacioacuten y a continuacioacuten utilizar la consola de CodeDeploy ollamar alcreate deployment createpara impulsar una revisioacuten
Implementaciones detenidas y con errorPuede utilizar la consola de CodeDeploy o ladetener el desplieguepara detener una implementacioacutenCuando se intenta detener la implementacioacuten sucede una de estas tres cosas
bull La implementacioacuten se detiene y la operacioacuten devuelve el estado ldquorealizada correctamenterdquo En estecaso no se ejecutan maacutes eventos del ciclo de vida de implementacioacuten en el grupo de implementacionespara la implementacioacuten detenida
bull La implementacioacuten no se detiene inmediatamente y la operacioacuten devuelve el estado ldquopendienterdquo En estecaso podriacutean seguir ejecutaacutendose algunos eventos del ciclo de vida de implementacioacuten en el grupo deimplementaciones Despueacutes de finalizada la operacioacuten pendiente las llamadas posteriores para detenerla implementacioacuten devuelven el estado ldquorealizada correctamenterdquo
bull La implementacioacuten no se puede detener y la operacioacuten devuelve un error Para obtener maacutes informacioacutenconsulteErrorInformationyErrores comunesen laAWS CodeDeployReferencia de la API de
Al igual que las implementaciones detenidas las implementaciones con errores pueden hacer que algunoseventos del ciclo de vida de implementacioacuten ya se hayan ejecutado Para saber por queacute se produjo unerror en una implementacioacuten puede utilizar la consola de CodeDeploy o analizar los datos del archivode registro de la implementacioacuten que dio error Para obtener maacutes informacioacuten consulte Revisioacuten deaplicaciones y limpieza de archivos de registro (p 183) y Ver datos de registro de las implementacionesde CodeDeploy EC2On-Premises (p 342)
Reimplementaciones y restauracioacuten de implementacionesCodeDeploy implementa restauraciones volviendo a implementar una revisioacuten implementada anteriormentecomo una nueva implementacioacuten
Puede configurar un grupo de implementaciones para que se restaure automaacuteticamente si se danciertas condiciones por ejemplo si falla una implementacioacuten o si se supera el umbral de monitorizacioacuten
Versioacuten de API 2014-10-0618
AWS CodeDeploy Guiacutea del usuarioImplementaciones en una plataforma
de computacioacuten Amazon ECS
de alarmas Ademaacutes puede anular la configuracioacuten de restauracioacuten especificada para el grupo deimplementaciones en una implementacioacuten individual
Tambieacuten puede optar por restaurar una implementacioacuten que produjo error manualmente volviendo aimplementar una revisioacuten implementada anteriormente
En todos los casos a la implementacioacuten nueva o restaurada se le asigna su propio ID de implementacioacutenEn la lista de implementaciones que puede ver en la consola de CodeDeploy se muestra cuaacuteles son elresultado de una implementacioacuten automaacutetica
Para obtener maacutes informacioacuten consulte Redesplegar y deshacer una implementacioacuten conCodeDeploy (p 345)
Implementaciones en una plataforma de computacioacutenAmazon ECSEste tema proporciona informacioacuten sobre los componentes y el flujo de trabajo de las implementaciones deCodeDeploy que utilizan la plataforma de computacioacuten Amazon ECS
Temasbull Antes de iniciar una implementacioacuten de Amazon ECS (p 19)bull Flujo de trabajo de implementacioacuten (alto nivel) en una plataforma de computacioacuten Amazon
ECS (p 21)bull Queacute ocurre durante una implementacioacuten de Amazon ECS (p 22)bull Carga de la revisioacuten de la aplicacioacuten (p 26)bull Crear la aplicacioacuten de y los grupos de implementaciones (p 26)bull Implementacioacuten de la revisioacuten de la aplicacioacuten (p 26)bull Actualizacioacuten de la aplicacioacuten (p 26)bull Implementaciones detenidas y con error (p 26)bull Reimplementaciones y restauracioacuten de implementaciones (p 27)bull Implementaciones laquobluegreenraquo de Amazon ECS a traveacutes deAWS CloudFormation (p 27)
Antes de iniciar una implementacioacuten de Amazon ECSAntes de empezar una implementacioacuten de aplicacioacuten de Amazon ECS debe tener listo lo siguienteAlgunos requisitos se especifican al crear su grupo de implementaciones y algunos se especifican en elarchivo AppSpec
Requisito Donde se especifica
Cluacutester de Amazon ECS Grupo de implementaciones
Servicio de Amazon ECS Grupo de implementaciones
Application Load Balancer o Network LoadBalancer
Grupo de implementaciones
Agente de escucha de produccioacuten Grupo de implementaciones
Agente de escucha de prueba (opcional) Grupo de implementaciones
Dos grupos de destino Grupo de implementaciones
Definicioacuten de tarea de Amazon ECS archivo AppSpec
Versioacuten de API 2014-10-0619
AWS CodeDeploy Guiacutea del usuarioImplementaciones en una plataforma
de computacioacuten Amazon ECS
Requisito Donde se especifica
Nombre de contenedor archivo AppSpec
Puerto del contenedor archivo AppSpec
Cluacutester de Amazon ECS
Un cluacutester de Amazon ECS es una agrupacioacuten loacutegica de tareas o servicios Especifique el cluacutester deAmazon ECS que contiene su servicio de Amazon ECS al crear el grupo de implementaciones de laaplicacioacuten CodeDeploy Para obtener maacutes informacioacuten consulteCluacutesteres de Amazon ECSen laGuiacuteadel usuario de Amazon Elastic
Servicio de Amazon ECS
Un Amazon ECSServicio demantiene y ejecuta instancias especificadas de una definicioacuten de tareaen un cluacutester de Amazon ECS El servicio Amazon ECS debe estar habilitado para CodeDeploy Deforma predeterminada un servicio Amazon ECS estaacute habilitado para implementaciones de AmazonECS Al crear su grupo de implementaciones puede elegir implementar un servicio de Amazon ECSque se encuentra en su cluacutester de Amazon ECS Para obtener maacutes informacioacuten consulteServicios deAmazon ECSen laGuiacutea del usuario de Amazon Elastic
Application Load Balancer o Network Load Balancer
Debe utilizar Elastic Load Balancing con el servicio Amazon ECS que desea actualizar con unaimplementacioacuten de Amazon ECS Puede utilizar un Application Load Balancer o un Network LoadBalancer Le recomendamos un Application Load Balancer para que pueda aprovechar caracteriacutesticastales como el mapeo de puertos dinaacutemico y el enrutamiento basado en rutas y las reglas de prioridadEspecifique el balanceador de carga al crear el grupo de implementaciones de la aplicacioacuten deCodeDeploy Para obtener maacutes informacioacuten consulteConfigurar un equilibrador de carga grupos dedestino y listeners para implementaciones de CodeDeploy Amazon ECS (p 296)yCreacioacuten de unbalanceador de cargaen laGuiacutea del usuario de Amazon Elastic
Uno o dos agentes de escucha
El balanceador de carga utiliza un agente de escucha para dirigir el traacutefico hacia los grupos dedestino Es obligatorio un agente de escucha de produccioacuten Puede especificar un segundo agentede escucha de prueba opcional que dirija el traacutefico hacia conjunto de tareas de sustitucioacuten mientrasejecuta las pruebas de validacioacuten Especifique uno o ambos agentes de escucha al crear su grupode implementaciones Si utiliza la consola de Amazon ECS para crear su servicio de Amazon ECSlos agentes de escucha se crean automaacuteticamente Para obtener maacutes informacioacuten consulteAgentesde escucha para balanceadores de carga de aplicacionesen laElastic Load Balancing Guiacutea delusuarioyCrear un servicioen laGuiacutea del usuario de Amazon Elastic
Dos grupos objetivo de Amazon ECS
Un grupo de destino se utiliza para dirigir el traacutefico a un destino registrado Una implementacioacutende Amazon ECS requiere dos grupos de destino uno para el conjunto de tareas original de laaplicacioacuten Amazon ECS y otro para su conjunto de tareas de sustitucioacuten Durante la implementacioacutenCodeDeploy crea un conjunto de tareas de sustitucioacuten y redirige el traacutefico desde el conjunto de tareasoriginal al nuevo Especifique los grupos de destino al crear el grupo de implementaciones de laaplicacioacuten de CodeDeploy
Durante una implementacioacuten CodeDeploy determina queacute grupo de destino estaacute asociado al conjuntode tareas del servicio Amazon ECS que tiene el estadoPRIMARY(este es el conjunto de tareas original)y le asocia un grupo de destino y a continuacioacuten asocia el otro grupo de destino al conjunto detareas de sustitucioacuten Si realiza otra implementacioacuten el grupo de destino asociado al conjunto detareas original de la implementacioacuten actual se asocia al siguiente conjunto de tareas de sustitucioacuten deimplementacioacuten Para obtener maacutes informacioacuten consulteGrupos de destino para los balanceadores decarga de aplicacionesen laElastic Load Balancing Guiacutea del usuario
Versioacuten de API 2014-10-0620
AWS CodeDeploy Guiacutea del usuarioImplementaciones en una plataforma
de computacioacuten Amazon ECS
Una definicioacuten de tarea de Amazon ECS
UNAdefinicioacuten de tareaes necesario para ejecutar el contenedor Docker que contiene la aplicacioacutenAmazon ECS Especifique el ARN de su definicioacuten de tarea en el archivo AppSpec de la aplicacioacutenCodeDeploy Para obtener maacutes informacioacuten consulteDefiniciones de tareas de Amazon ECSen laGuiacuteadel usuario del servicio de Amazon Elasticy Seccioacuten laquoresourcesraquo de AppSpec para implementacionesde Amazon ECS (p 416)
Contenedor de la aplicacioacuten Amazon ECS
Un contenedor Docker es una unidad de software que empaqueta coacutedigo y sus dependencias paraque pueda ejecutarse su aplicacioacuten Un contenedor aiacutesla la aplicacioacuten por lo que se puede ejecutaren distintos entornos informaacuteticos El balanceador de carga dirige traacutefico a un contenedor del conjuntode tareas de la aplicacioacuten de Amazon ECS Especifique el nombre del contenedor en el archivoAppSpec de la aplicacioacuten CodeDeploy El contenedor especificado en su archivo AppSpec debe seruno de los contenedores especificados en la definicioacuten de tareas de Amazon ECS Para obtener maacutesinformacioacuten consulteiquestQueacute es Amazon Elastic Container Serviceen laGuiacutea del usuario de AmazonElasticy Seccioacuten laquoresourcesraquo de AppSpec para implementaciones de Amazon ECS (p 416)
Un puerto para su conjunto de tareas de sustitucioacuten
Durante la implementacioacuten de Amazon ECS el balanceador de carga dirige traacutefico hacia estepuertoenel contenedor especificado en el archivo AppSpec de la aplicacioacuten CodeDeploy Especifique el puertoen el archivo AppSpec de la aplicacioacuten CodeDeploy Para obtener maacutes informacioacuten consulte Seccioacutenlaquoresourcesraquo de AppSpec para implementaciones de Amazon ECS (p 416)
Flujo de trabajo de implementacioacuten (alto nivel) en una plataformade computacioacuten Amazon ECSEn el diagrama siguiente se muestran los principales pasos en la implementacioacuten de servicios de AmazonECS actualizados
Estos pasos incluyen
Versioacuten de API 2014-10-0621
AWS CodeDeploy Guiacutea del usuarioImplementaciones en una plataforma
de computacioacuten Amazon ECS
1 Cree una aplicacioacuten de AWS CodeDeploy especificando un nombre que represente de forma exclusivalo que desea implementar Para implementar una aplicacioacuten Amazon ECS en suAWS CodeDeployelija la plataforma informaacutetica de Amazon ECS CodeDeploy utiliza una aplicacioacuten durante unaimplementacioacuten para hacer referencia a los componentes correctos de la implementacioacuten como elgrupo de implementaciones grupos de destino agentes de escucha y comportamiento de redireccioacutende traacutefico asiacute como revisioacuten de la aplicacioacuten Para obtener maacutes informacioacuten consulte Crear unaaplicacioacuten con CodeDeploy (p 273)
2 Configure un grupo de implementaciones especificandobull El nombre del grupo de implementacionesbull El nombre del servicio y el cluacutester de Amazon ECS El controlador de implementacioacuten del servicio de
Amazon ECS se debe establecer en CodeDeploybull El agente de escucha de produccioacuten un agente de escucha de prueba opcional y los grupos de
destino utilizados durante una implementacioacutenbull Configuracioacuten de implementacioacuten como por ejemplo cuaacutendo redirigir el traacutefico de produccioacuten al
conjunto de tareas Amazon ECS de sustitucioacuten en su servicio de Amazon ECS y cuaacutendo terminar elconjunto de tareas Amazon ECS original en su servicio de Amazon ECS
bull Las configuraciones opcionales como los desencadenadores alarmas y comportamiento derestauracioacuten
3 Especificar unarchivo de especificacioacuten de la aplicacioacuten(archivo AppSpec) Puede cargarlo en AmazonS3 introducirlo en la consola en formato YAML o JSON o especificarlo con laAWS CLIo SDK Elarchivo AppSpec especifica una definicioacuten de tareas de Amazon ECS para la implementacioacuten unnombre de contenedor y el mapeo de puertos utilizado para dirigir el traacutefico y funciones Lambdaejecutadas despueacutes de los enlaces de ciclo de vida de implementacioacuten El nombre del contenedor debeser un contenedor en la definicioacuten de tareas de Amazon ECS Para obtener maacutes informacioacuten consulteUso de revisiones de aplicaciones de CodeDeploy (p 307)
4 Implemente la revisioacuten de la aplicacioacutenAWS CodeDeployredirige el traacutefico desde la versioacuten original deun conjunto de tareas en su servicio de Amazon ECS a un nuevo conjunto de tareas de sustitucioacutenLos grupos de destino especificados en el grupo de implementaciones se utilizan para enviar traacutefico alos conjuntos de tareas original y de sustitucioacuten Cuando se completa la implementacioacuten se termina elconjunto de tareas original Puede especificar un agente de escucha de prueba opcional para enviartraacutefico de prueba a la versioacuten de sustitucioacuten antes de redirigir el traacutefico a la misma Para obtener maacutesinformacioacuten consulte Cree una implementacioacuten con CodeDeploy (p 324)
5 Compruebe los resultados de la implementacioacuten Para obtener maacutes informacioacuten consulte Monitorizarimplementaciones en CodeDeploy (p 358)
Queacute ocurre durante una implementacioacuten de Amazon ECSAntes de iniciar una implementacioacuten de Amazon ECS con un agente de escucha de prueba debeconfigurar sus componentes Para obtener maacutes informacioacuten consulte Antes de iniciar una implementacioacutende Amazon ECS (p 19)
En el siguiente diagrama se muestra la relacioacuten entre estos componentes cuando una implementacioacuten deAmazon ECS estaacute lista para comenzar
Versioacuten de API 2014-10-0622
AWS CodeDeploy Guiacutea del usuarioImplementaciones en una plataforma
de computacioacuten Amazon ECS
Cuando comienza la implementacioacuten los eventos del ciclo de vida de la implementacioacuten empiezan aejecutarse uno tras otro Algunos eventos del ciclo de vida son enlaces que solo ejecutan las funcionesLambda especificadas en el archivo AppSpec Los eventos de ciclo de vida de la implementacioacuten de lasiguiente tabla se indican en el orden en el que se ejecutan Para obtener maacutes informacioacuten consulteSeccioacuten hooks de AppSpec para una implementacioacuten de Amazon ECS (p 422)
Evento del ciclo de vida Accioacuten de evento del ciclo de vida
BeforeInstall(un enlace para funcionesLambda)
Ejecute funciones Lambda
Instalar Configurar el conjunto de tareas de sustitucioacuten
AfterInstall(un enlace para funcionesLambda)
Ejecute funciones Lambda
AllowTestTraffic Dirigir el traacutefico del agente de prueba al grupo dedestino 2
AfterAllowTestTraffic(un enlace parafunciones Lambda)
Ejecute funciones Lambda
BeforeAllowTraffic(un enlace para funcionesLambda)
Ejecute funciones Lambda
AllowTraffic Dirigir el traacutefico desde el agente de escucha deproduccioacuten al grupo de destino 2
AfterAllowTraffic Ejecute funciones Lambda
Note
Las funciones de Lambda en un enlace son opcionales
1Ejecute todas las funciones Lambda especificadas en elBeforeInstallgancho en el archivoAppSpec
Versioacuten de API 2014-10-0623
AWS CodeDeploy Guiacutea del usuarioImplementaciones en una plataforma
de computacioacuten Amazon ECS
2Durante el evento de ciclo de vida Install
a Se crea un conjunto de tareas de sustitucioacuten en el servicio Amazon ECSb La aplicacioacuten en contenedor actualizada se instala en el conjunto de tareas de sustitucioacutenc El segundo grupo de destino se asocia al conjunto de tareas de sustitucioacuten
En el siguiente diagrama se muestran los componentes de implementacioacuten con el nuevo conjuntode tareas de sustitucioacuten La aplicacioacuten en contenedor estaacute dentro del conjunto de tareas El conjuntode tareas se compone de tres tareas (Una aplicacioacuten puede tener cualquier nuacutemero de tareas) Elsegundo grupo de destino se asocia ahora al conjunto de tareas de sustitucioacuten
3Ejecute todas las funciones Lambda especificadas en elAfterInstallgancho en el archivoAppSpec
4Se invoca el evento AllowTestTraffic Durante este evento del ciclo de vida el agente de escuchade prueba dirige el traacutefico a la aplicacioacuten en contenedor actualizada
Versioacuten de API 2014-10-0624
AWS CodeDeploy Guiacutea del usuarioImplementaciones en una plataforma
de computacioacuten Amazon ECS
5Ejecute todas las funciones Lambda especificadas en elAfterAllowTestTrafficgancho en elarchivo AppSpec Las funciones de Lambda pueden validar la implementacioacuten mediante traacuteficode prueba Por ejemplo una funcioacuten Lambda puede servir traacutefico al agente de escucha de pruebay realizar un seguimiento de las meacutetricas del conjunto de tareas de sustitucioacuten Si se configuranrestauraciones puede configurar una alarma de CloudWatch que active una restauracioacuten cuando nose supere la prueba de validacioacuten de la funcioacuten de Lambda
Una vez realizadas las pruebas de validacioacuten se produce una de las situaciones siguientes
bull Si no se supera la validacioacuten y se han configurado las restauraciones el estado de laimplementacioacuten se marca como Failed y los componentes vuelven al estado que teniacutean cuando seinicioacute la implementacioacuten
bull Si no se supera la validacioacuten y no se han configurado las restauraciones el estado de laimplementacioacuten se marca como Failed y los componentes permanecen en su estado actual
bull Si se supera la validacioacuten la implementacioacuten continuacutea hasta el enlace BeforeAllowTraffic
Para obtener maacutes informacioacuten consulte Supervisioacuten de implementaciones con alarmas deCloudWatch en CodeDeploy (p 360) Restauraciones automaacuteticas (p 346) y Configuracioacuten de lasopciones avanzadas de un grupo de implementaciones (p 303)
6Ejecute todas las funciones Lambda especificadas en elBeforeAllowTrafficgancho en el archivoAppSpec
7Se invoca el evento AllowTraffic El traacutefico se desviacutea del conjunto de tareas original al conjuntode tareas de sustitucioacuten En el siguiente diagrama se muestra el conjunto de tareas de sustitucioacutenrecibiendo traacutefico de produccioacuten
8Ejecute todas las funciones Lambda especificadas en elAfterAllowTrafficgancho en el archivoAppSpec
9Despueacutes de que todos los eventos se ejecuten correctamente el estado de la implementacioacuten seestablece en Succeeded y el conjunto de tareas original se elimina
Versioacuten de API 2014-10-0625
AWS CodeDeploy Guiacutea del usuarioImplementaciones en una plataforma
de computacioacuten Amazon ECS
Carga de la revisioacuten de la aplicacioacutenPonga un archivo AppSpec en Amazon S3 o introduacutezcalo directamente en la consola oAWS CLI Paraobtener maacutes informacioacuten consulte Application Specification Files (p 32)
Crear la aplicacioacuten de y los grupos de implementacionesUn grupo de implementaciones de CodeDeploy en una plataforma de computacioacuten Amazon ECS identificaagentes de escucha para enviar traacutefico a la aplicacioacuten Amazon ECS actualizada y a dos grupos de destinoutilizados durante la implementacioacuten Un grupo de implementaciones tambieacuten define un conjunto deopciones de configuracioacuten como alarmas y configuraciones de restauracioacuten
Implementacioacuten de la revisioacuten de la aplicacioacutenAhora estaacute listo para implementar el servicio de Amazon ECS actualizado especificado en su grupo deimplementaciones Puede utilizar la consola de CodeDeploy o lacreate deployment createcomando Hayparaacutemetros que puede especificar para controlar la implementacioacuten que incluyen el grupo de revisioacuten y deimplementaciones
Actualizacioacuten de la aplicacioacutenPuede llevar a cabo actualizaciones de su aplicacioacuten y a continuacioacuten utilizar la consola de CodeDeploy ollamar alcreate deployment createpara impulsar una revisioacuten
Implementaciones detenidas y con errorPuede utilizar la consola de CodeDeploy o ladetener el desplieguepara detener una implementacioacutenCuando se intenta detener la implementacioacuten sucede una de estas tres cosas
bull La implementacioacuten se detiene y la operacioacuten devuelve el estado ldquorealizada correctamenterdquo En estecaso no se ejecutan maacutes eventos del ciclo de vida de implementacioacuten en el grupo de implementacionespara la implementacioacuten detenida
bull La implementacioacuten no se detiene inmediatamente y la operacioacuten devuelve el estado ldquopendienterdquo En estecaso podriacutean seguir ejecutaacutendose algunos eventos del ciclo de vida de implementacioacuten en el grupo de
Versioacuten de API 2014-10-0626
AWS CodeDeploy Guiacutea del usuarioImplementaciones en una plataformade computacioacuten EC2On-Premises
implementaciones Despueacutes de finalizada la operacioacuten pendiente las llamadas posteriores para detenerla implementacioacuten devuelven el estado ldquorealizada correctamenterdquo
bull La implementacioacuten no se puede detener y la operacioacuten devuelve un error Para obtener maacutes informacioacutenconsulteInformacioacuten de erroresyErrores comunesen laAWS CodeDeployReferencia de la API de
Reimplementaciones y restauracioacuten de implementacionesCodeDeploy implementa restauraciones redirigiendo traacutefico desde el conjunto de tareas de sustitucioacuten alconjunto de tareas original
Puede configurar un grupo de implementaciones para que se restaure automaacuteticamente si se danciertas condiciones por ejemplo si falla una implementacioacuten o si se supera el umbral de monitorizacioacutende alarmas Ademaacutes puede anular la configuracioacuten de restauracioacuten especificada para el grupo deimplementaciones en una implementacioacuten individual
Tambieacuten puede optar por restaurar una implementacioacuten que produjo error manualmente volviendo aimplementar una revisioacuten implementada anteriormente
En todos los casos a la implementacioacuten nueva o restaurada se le asigna su propio ID de implementacioacutenEn la consola de CodeDeploy se muestra una lista de las implementaciones que son el resultado de unaimplementacioacuten automaacutetica
Si vuelve a realizar una implementacioacuten el grupo de destino asociado al conjunto de tareas originalde la implementacioacuten actual se asocia al siguiente conjunto de tareas de sustitucioacuten de la nuevaimplementacioacuten
Para obtener maacutes informacioacuten consulte Redesplegar y deshacer una implementacioacuten conCodeDeploy (p 345)
Implementaciones laquobluegreenraquo de Amazon ECS a traveacutesdeAWS CloudFormationPuede utilizarAWS CloudFormationpara administrar las implementaciones laquobluegreenraquo de Amazon ECS atraveacutes de CodeDeploy Para obtener maacutes informacioacuten consulte Cree una implementacioacuten bluegreen (azulverde) de Amazon ECS medianteAWS CloudFormation (p 337)
Note
Administracioacuten de implementaciones laquobluegreenraquo de Amazon ECS conAWS CloudFormationnoestaacute disponible en la regioacuten Asia-Paciacutefico (Osaka)
Implementaciones en una plataforma de computacioacutenEC2On-PremisesEste tema proporciona informacioacuten sobre los componentes y el flujo de trabajo de las implementacionesde CodeDeploy que utilizan la plataforma de computacioacuten EC2On-Premises Para obtener informacioacutensobre las implementaciones bluegreen consulte Descripcioacuten general de una implementacioacuten laquobluegreenraquo (p 9)
Temasbull Componentes de implementacioacuten en una plataforma de computacioacuten EC2On-Premises (p 28)bull Flujo de trabajo de implementacioacuten en una plataforma de computacioacuten EC2On-Premises (p 28)
Versioacuten de API 2014-10-0627
AWS CodeDeploy Guiacutea del usuarioImplementaciones en una plataformade computacioacuten EC2On-Premises
bull Configuracioacuten de instancias (p 30)bull Carga de la revisioacuten de la aplicacioacuten (p 31)bull Crear la aplicacioacuten de y los grupos de implementaciones (p 31)bull Implementacioacuten de la revisioacuten de la aplicacioacuten (p 31)bull Actualizacioacuten de la aplicacioacuten (p 31)bull Implementaciones detenidas y con error (p 31)bull Reimplementaciones y restauracioacuten de implementaciones (p 32)
Componentes de implementacioacuten en una plataforma decomputacioacuten EC2On-PremisesEn el siguiente diagrama se muestran los componentes de una implementacioacuten de CodeDeploy en unaplataforma de computacioacuten EC2On-Premises
Flujo de trabajo de implementacioacuten en una plataforma decomputacioacuten EC2On-PremisesEn el diagrama siguiente se muestran los principales pasos en la implementacioacuten de revisiones deaplicaciones
Versioacuten de API 2014-10-0628
AWS CodeDeploy Guiacutea del usuarioImplementaciones en una plataformade computacioacuten EC2On-Premises
Estos pasos incluyen
1 Cree una aplicacioacuten y asiacutegnele un nombre que identifique las revisiones de la aplicacioacuten que deseaimplementar y la plataforma de computacioacuten de la aplicacioacuten CodeDeploy utiliza este nombre duranteuna implementacioacuten para asegurarse de que se haga referencia a los componentes correctos dela implementacioacuten como el grupo de implementaciones la configuracioacuten de la implementacioacuteny la revisioacuten de la aplicacioacuten Para obtener maacutes informacioacuten consulte Crear una aplicacioacuten conCodeDeploy (p 273)
2 Configure un grupo de implementaciones especificando un tipo de implementacioacuten y las instanciasen las que desea implementar las revisiones de la aplicacioacuten Una implementacioacuten in situ actualizainstancias con la uacuteltima revisioacuten de la aplicacioacuten Una implementacioacuten bluegreen registra un conjuntode instancias de sustitucioacuten para el grupo de implementaciones con un balanceador de carga y cancelael registro de las instancias originales
Puede especificar las etiquetas aplicadas a las instancias los nombres de grupos de Amazon EC2 AutoScaling o ambos
Si especifica un grupo de etiquetas en un grupo de implementaciones CodeDeploy se implementa eninstancias que tienen al menos una de las etiquetas especificadas aplicadas Si especifica dos o maacutesgrupos de etiquetas CodeDeploy se implementa uacutenicamente en las instancias que cumplan los criteriosde cada uno de los grupos de etiquetas Para obtener maacutes informacioacuten consulte Tagging Instances forDeployments (p 209)
En todos los casos las instancias se deben configurar para utilizarse en una implementacioacuten (es decirdeben estar etiquetadas o pertenecer a un grupo de Amazon EC2 Auto Scaling) y tener el agente deCodeDeploy instalado y ejecutaacutendose
Le proporcionamos unAWS CloudFormationplantilla que puede utilizar para configurar raacutepidamente unainstancia Amazon EC2 en funcioacuten de Amazon Linux o Windows Server Tambieacuten proporcionamos unagente de CodeDeploy independiente para que pueda instalarlo en instancias Amazon Linux UbuntuServer Red Hat Enterprise Linux (RHEL) o Windows Server Para obtener maacutes informacioacuten consulteCreacioacuten de un grupo de implementaciones con CodeDeploy (p 288)
Tambieacuten puede especificar las siguientes opcionesbull Notificaciones de Amazon SNS Cree desencadenadores que enviacuteen notificaciones a los suscriptores
de un tema de Amazon SNS cuando ocurren eventos especiacuteficos como eventos de eacutexito o error en
Versioacuten de API 2014-10-0629
AWS CodeDeploy Guiacutea del usuarioImplementaciones en una plataformade computacioacuten EC2On-Premises
las implementaciones e instancias Para obtener maacutes informacioacuten consulte Monitoring Deploymentswith Amazon SNS Event Notifications (p 365)
bull Administracioacuten de implementaciones basadas en alarmas Implemente la monitorizacioacuten de alarmasde Amazon CloudWatch para detener las implementaciones cuando las meacutetricas superan o caen pordebajo de los umbrales establecidos en CloudWatch
bull Restauraciones de implementaciones automaacuteticas Configure una implementacioacuten para que serestaure automaacuteticamente a la uacuteltima revisioacuten correcta conocida si se produce un error en unaimplementacioacuten o si se supera el umbral de la alarma
3 Especifique una configuracioacuten de implementacioacuten para indicar en cuaacutentas instancias se debenimplementar simultaacuteneamente las revisiones de la aplicacioacuten y describir las condiciones de eacutexito yfracaso de la implementacioacuten Para obtener maacutes informacioacuten consulte View Deployment ConfigurationDetails (p 270)
4 Cargue una revisioacuten de la aplicacioacuten a Amazon S3 o a GitHub Ademaacutes de los archivos que deseaimplementar y los scripts que desea ejecutar durante la implementacioacuten debe incluir unarchivode especificacioacuten de la aplicacioacuten(archivo AppSpec) Este archivo contiene las instrucciones deimplementacioacuten como por ejemplo doacutende se deben copiar los archivos en cada instancia y cuaacutendose deben ejecutar los scripts de implementacioacuten Para obtener maacutes informacioacuten consulte Uso derevisiones de aplicaciones de CodeDeploy (p 307)
5 Implemente la revisioacuten de la aplicacioacuten en el grupo de implementaciones El agente de CodeDeployde cada instancia del grupo de implementaciones copia la revisioacuten de la aplicacioacuten desde AmazonS3 o GitHub a la instancia A continuacioacuten el agente de CodeDeploy separa los paquetes de larevisioacuten y con el archivo AppSpec copia los archivos a las ubicaciones especificadas y ejecuta losscripts de implementacioacuten Para obtener maacutes informacioacuten consulte Cree una implementacioacuten conCodeDeploy (p 324)
6 Compruebe los resultados de la implementacioacuten Para obtener maacutes informacioacuten consulte Monitorizarimplementaciones en CodeDeploy (p 358)
7 Vuelva a implementar una revisioacuten Se recomienda hacer esto si se necesita corregir un error en elcontenido de origen o ejecutar los scripts de la implementacioacuten en un orden diferente o solucionar unaimplementacioacuten que dio error Para ello empaquete nuevamente el contenido de origen cualquier scriptde implementacioacuten y el archivo AppSpec en una revisioacuten nueva y a continuacioacuten cargue la revisioacuten albucket de Amazon S3 o al repositorio de GitHub Luego ejecute una nueva implementacioacuten en el mismogrupo de implementaciones con la nueva revisioacuten Para obtener maacutes informacioacuten consulte Cree unaimplementacioacuten con CodeDeploy (p 324)
Configuracioacuten de instanciasDebe configurar instancias antes de implementar revisiones en la aplicacioacuten por primera vez Si la revisioacutende una aplicacioacuten requiere tres servidores de produccioacuten y dos servidores de copia de seguridad lanzaraacute outilizaraacute cinco instancias
Para aprovisionar instancias manualmente
1 Instale el agente CodeDeploy en las instancias El agente CodeDeploy se puede instalar en instanciasde Amazon Linux Ubuntu Server RHEL y Windows Server
2 Habilite el etiquetado si estaacute utilizando etiquetas para identificar instancias en un grupo deimplementaciones CodeDeploy utiliza etiquetas para identificar y agrupar instancias en grupos deimplementaciones de CodeDeploy Si bien los tutoriales de Introduccioacuten utilizaron ambos puede usaruna clave o un valor para definir una etiqueta para un grupo de implementaciones
3 Lance instancias Amazon EC2 con un perfil de instancias de IAM adjunto Se deberaacute adjuntar el perfil dela instancia de IAM a una instancia Amazon EC2 al lanzarla para que el agente de CodeDeploy verifiquela identidad de la instancia
4 Cree un rol de servicio Conceda acceso al servicio para que CodeDeploy pueda expandir las etiquetasen elAWSaccount
Versioacuten de API 2014-10-0630
AWS CodeDeploy Guiacutea del usuarioImplementaciones en una plataformade computacioacuten EC2On-Premises
Para una implementacioacuten inicial la plantilla de AWS CloudFormation hace todo esto de maneraautomaacutetica Crea y configura instancias Amazon EC2 nuevas y uacutenicas en funcioacuten de Amazon Linux oWindows Server con el agente de CodeDeploy instalado Para obtener maacutes informacioacuten consulte Trabajocon instancias para CodeDeploy (p 207)
Note
Para una implementacioacuten laquobluegreenraquo puede elegir entre utilizar las instancias que ya tiene parael entorno de sustitucioacuten o permitir que CodeDeploy aprovisione nuevas instancias como parte delproceso de implementacioacuten
Carga de la revisioacuten de la aplicacioacutenColoque un archivo AppSpec en la carpeta raiacutez de la estructura de carpetas del contenido de origen de laaplicacioacuten Para obtener maacutes informacioacuten consulte Application Specification Files (p 32)
Empaquete la estructura de carpetas del contenido de origen de la aplicacioacuten en un formato de archivo dealmacenamiento como zip tar o tar comprimido Cargue el archivo de almacenamiento (elrevisioacuten) a unbucket de Amazon S3 o repositorio de GitHub
Note
Los formatos de archivo tar y tar comprimido (tar y targz) no se admiten para las instancias deWindows Server
Crear la aplicacioacuten de y los grupos de implementacionesUn grupo de implementaciones de CodeDeploy identifica un conjunto de instancias en funcioacuten de susetiquetas nombres de grupo de Amazon EC2 Auto Scaling o ambos Se pueden implementar variasrevisiones de la aplicacioacuten en la misma instancia Una revisioacuten de la aplicacioacuten se puede implementar enmuacuteltiples instancias
Por ejemplo podriacutea agregar una etiqueta Prod a los tres servidores de produccioacuten y Backup a los dosservidores de backup Estas dos etiquetas se pueden utilizar para crear dos grupos de implementacionesdistintos en la aplicacioacuten CodeDeploy lo que permite elegir queacute conjunto de servidores (o ambos) deberiacuteanparticipar en una implementacioacuten
Puede utilizar varios grupos de etiquetas en un grupo de implementaciones para restringir lasimplementaciones con un conjunto maacutes pequentildeo de instancias Para obtener informacioacuten consulteTagging Instances for Deployments (p 209)
Implementacioacuten de la revisioacuten de la aplicacioacutenAhora ya estaacute listo para implementar la revisioacuten de la aplicacioacuten desde Amazon S3 o GitHub al grupo deimplementaciones Puede utilizar la consola de CodeDeploy o lacreate deployment createcomando Hayparaacutemetros que puede especificar para controlar la implementacioacuten que incluyen la revisioacuten el grupo deimplementaciones y la configuracioacuten de la implementacioacuten
Actualizacioacuten de la aplicacioacutenPuede llevar a cabo actualizaciones de su aplicacioacuten y a continuacioacuten utilizar la consola de CodeDeploy ollamar alcreate deployment createpara impulsar una revisioacuten
Implementaciones detenidas y con errorPuede utilizar la consola de CodeDeploy o ladetener el desplieguepara detener una implementacioacutenCuando se intenta detener la implementacioacuten sucede una de estas tres cosas
Versioacuten de API 2014-10-0631
AWS CodeDeploy Guiacutea del usuarioArchivos de especificacioacuten de aplicacioacuten
bull La implementacioacuten se detiene y la operacioacuten devuelve el estado ldquorealizada correctamenterdquo En estecaso no se ejecutan maacutes eventos del ciclo de vida de implementacioacuten en el grupo de implementacionespara la implementacioacuten detenida Es posible que algunos archivos se hayan copiado y que algunosscripts ya se hayan ejecutado en una o varias de las instancias del grupo de implementaciones
bull La implementacioacuten no se detiene inmediatamente y la operacioacuten devuelve el estado ldquopendienterdquo En estecaso podriacutean seguir ejecutaacutendose algunos eventos del ciclo de vida de implementacioacuten en el grupo deimplementaciones Es posible que algunos archivos se hayan copiado y que algunos scripts ya se hayanejecutado en una o varias de las instancias del grupo de implementaciones Despueacutes de finalizada laoperacioacuten pendiente las llamadas posteriores para detener la implementacioacuten devuelven el estadoldquorealizada correctamenterdquo
bull La implementacioacuten no se puede detener y la operacioacuten devuelve un error Para obtener maacutes informacioacutenconsulteErrorInformationyErrores comunesen laAWS CodeDeployReferencia de la API de
Al igual que las implementaciones detenidas las que dan error pueden dar lugar a que algunos eventosdel ciclo de vida de implementacioacuten ya se hayan ejecutado en una o varias de las instancias del grupode implementaciones Para averiguar por queacute no se ha realizado una implementacioacuten puede utilizarla consola de CodeDeploy llame alget-deployment-instanceo analice los datos del archivo de log deesa implementacioacuten Para obtener maacutes informacioacuten consulte Revisioacuten de aplicaciones y limpieza dearchivos de registro (p 183) y Ver datos de registro de las implementaciones de CodeDeploy EC2On-Premises (p 342)
Reimplementaciones y restauracioacuten de implementacionesCodeDeploy implementa restauraciones volviendo a implementar una revisioacuten implementada anteriormentecomo una nueva implementacioacuten
Puede configurar un grupo de implementaciones para que se restaure automaacuteticamente si se danciertas condiciones por ejemplo si falla una implementacioacuten o si se supera el umbral de monitorizacioacutende alarmas Ademaacutes puede anular la configuracioacuten de restauracioacuten especificada para el grupo deimplementaciones en una implementacioacuten individual
Tambieacuten puede optar por restaurar una implementacioacuten que produjo error manualmente volviendo aimplementar una revisioacuten implementada anteriormente
En todos los casos a la implementacioacuten nueva o restaurada se le asigna su propio ID de implementacioacutenEn la lista de implementaciones que puede ver en la consola de CodeDeploy se muestra cuaacuteles son elresultado de una implementacioacuten automaacutetica
Para obtener maacutes informacioacuten consulte Redesplegar y deshacer una implementacioacuten conCodeDeploy (p 345)
Archivos de especificacioacuten de aplicacioacutenCodeDeploy (AppSpec)
Un archivo de especificacioacuten de la aplicacioacuten (archivo AppSpec) que es exclusivo de CodeDeploy esunYAML-formateado oJSON-archivo formateado El archivo AppSpec se utiliza para administrar cadaimplementacioacuten como una serie de enlaces de eventos de ciclo de vida que se definen en el archivo
Para obtener informacioacuten acerca de coacutemo crear un archivo AppSpec con el formato correctoconsulteReferencia del archivo CodeDeploy AppSpec (p 407)
Temasbull Archivos AppSpec en una plataforma de computacioacuten Amazon ECS (p 33)
Versioacuten de API 2014-10-0632
AWS CodeDeploy Guiacutea del usuarioArchivos AppSpec en una plataforma
de computacioacuten Amazon ECS
bull Archivos AppSpec en unAWS Lambdaplataforma de computacioacuten (p 33)bull Archivos AppSpec en una plataforma de computacioacuten EC2On-Premises (p 33)bull Coacutemo utiliza el agente de CodeDeploy el archivo AppSpec (p 34)
Archivos AppSpec en una plataforma de computacioacutenAmazon ECSSi una aplicacioacuten utiliza la plataforma de computacioacuten Amazon ECS el archivo AppSpec puede tenerformato YAML o JSON Tambieacuten se puede escribir directamente en un editor en la consola El archivoAppSpec se utiliza para especificar lo siguiente
bull El nombre del servicio Amazon ECS y el nombre del contenedor y el puerto utilizado para dirigir el traacuteficohacia el nuevo conjunto de tareas
bull Las funciones que se van a usar como pruebas de validacioacuten
Puede ejecutar funciones de Lambda de validacioacuten despueacutes de los eventos del ciclo de vida deimplementacioacuten Para obtener maacutes informacioacuten consulte Seccioacuten hooks de AppSpec para unaimplementacioacuten de Amazon ECS (p 422) Estructura de archivos de AppSpec para implementacionesde Amazon ECS (p 409) y Ejemplo de archivo AppSpec para una implementacioacuten de Amazon ECS (p 436)
Archivos AppSpec en unAWS Lambdaplataforma decomputacioacutenSi una aplicacioacuten utiliza la aplicacioacutenAWSPlataforma de computacioacuten Lambda el archivo AppSpec puedetener formato YAML o JSON Tambieacuten se puede escribir directamente en un editor en la consola Elarchivo AppSpec se utiliza para especificar lo siguiente
bull La versioacuten de la funcioacuten de AWS Lambda que se debe implementarbull Las funciones que se van a usar como pruebas de validacioacuten
Puede ejecutar funciones de Lambda de validacioacuten despueacutes de los eventos del ciclo de vidade implementacioacuten Para obtener maacutes informacioacuten consulte Seccioacuten hooks de AppSpec paraunAWSImplementacioacuten de Lambda (p 426)
Archivos AppSpec en una plataforma de computacioacutenEC2On-PremisesSi una aplicacioacuten utiliza la plataforma de computacioacuten EC2On-Premises el archivo AppSpec siempre tieneel formato YAML El archivo AppSpec se utiliza para lo siguiente
bull Asignar los archivos de origen de la revisioacuten de la aplicacioacuten a sus destinos en la instanciabull Especificar permisos personalizados para los archivos implementadosbull Especificar los scripts que se van a ejecutar en cada instancia en las distintas fases del proceso de
implementacioacuten
Puede ejecutar scripts en una instancia despueacutes de muchos de los eventos individuales del ciclo de vidade implementacioacuten CodeDeploy solo ejecuta los scripts especificados en el archivo pero esos scriptspueden llamar a otros scripts en la instancia Puede ejecutar cualquier tipo de script siempre y cuando
Versioacuten de API 2014-10-0633
AWS CodeDeploy Guiacutea del usuarioCoacutemo utiliza el agente de CodeDeploy el archivo AppSpec
sea compatible con el sistema operativo que se ejecuta en las instancias Para obtener maacutes informacioacutenconsulte Seccioacuten hooks de AppSpec para una implementacioacuten EC2On-Premises (p 428)
Coacutemo utiliza el agente de CodeDeploy el archivoAppSpecDurante la implementacioacuten el agente de CodeDeploy busca el nombre del evento actual enlahooksseccioacuten del archivo AppSpec Si el evento no se encuentra el agente de CodeDeploy va alsiguiente paso Si el evento se encuentra el agente de CodeDeploy recupera la lista de scripts que hayque ejecutar Los scripts se ejecutan de forma secuencial en el orden en que aparecen en el archivo Elestado de cada script se registra en el archivo de registro del agente de CodeDeploy de la instancia
Si un script se ejecuta correctamente devuelve un coacutedigo de salida de 0 (cero)
Note
El agente CodeDeploy no se utiliza en unAWSLambda o una implementacioacuten de Amazon ECS
Durante laInstalar el agente de CodeDeploy utiliza las asignaciones definidas en elfilesdel archivoAppSpec para determinar las carpetas o los archivos que hay que copiar de la revisioacuten a la instancia
Si el agente de CodeDeploy instalado en el sistema operativo no coincide con lo que se indica en elarchivo AppSpec la implementacioacuten falla
Para obtener informacioacuten sobre los archivos de registro del agente de CodeDeploy consulteTrabajar con elagente de CodeDeploy (p 175)
Versioacuten de API 2014-10-0634
AWS CodeDeploy Guiacutea del usuarioPaso 1 Instalar o actualizar y a
continuacioacuten configurar laAWS CLI
Introduccioacuten a CodeDeployPara poder usar AWS CodeDeploy por primera vez debe completar los pasos de configuracioacuten
Para comenzar debe crear una cuenta en AWS Para crear una cuenta vaya ahttpsawsamazoncomyeligeCreacioacuten de unAWSCuenta
Entonces podraacute continuar con el resto de las tareas de configuracioacuten de esta seccioacuten
Temasbull Paso 1 Instalar o actualizar y a continuacioacuten configurar laAWS CLI (p 35)bull Paso 2 Creacioacuten de un rol de servicio para CodeDeploy (p 36)bull Paso 3 Provisionar un usuario de IAM (p 41)bull Paso 4 Crear un perfil de instancias de IAM para sus instancias Amazon EC2 (p 43)
Paso 1 Instalar o actualizar y a continuacioacutenconfigurar laAWS CLI
Para llamar a los comandos de CodeDeploy desde elAWS CLIen un equipo de desarrollo local debeinstalar laAWS CLI Los comandos de CodeDeploy estaacuten disponibles desde la versioacuten 161 de laAWS CLILos comandos de CodeDeploy para trabajar con instancias on-premises estaacuten disponibles desde la versioacuten1719 de laAWS CLI
Si tiene una versioacuten anterior de laAWS CLIinstalado debe actualizarlo para que esteacuten disponibles loscomandos de CodeDeploy Llame a aws --version para comprobar la versioacuten
Para instalar o actualizar la AWS CLI
1 Siga las instrucciones de Instalacioacuten de la AWS Command Line Interface para instalar o actualizar laAWS CLI
2 Para configurar laAWS CLI consulteConfiguracioacuten deAWS Command Line InterfaceyAdministracioacutende las claves de acceso de los usuarios de IAM
Important
Cuando configure la AWS CLI se le pediraacute que especifique una regioacuten de AWS Seleccioneuna de las regiones admitidas enumeradas enRegioacuten y puntos de enlaceen laAWSReferenciageneral de
3 Para verificar la instalacioacuten o actualizacioacuten llame al siguiente comando desde la AWS CLI
aws deploy help
Si se ejecuta correctamente este comando muestra una lista de los comandos de CodeDeploydisponibles
Versioacuten de API 2014-10-0635
AWS CodeDeploy Guiacutea del usuarioPaso 2 Crear un rol de servicio
Paso 2 Creacioacuten de un rol de servicio paraCodeDeploy
En AWS se utilizan roles de servicio para conceder permisos a un servicio de AWS de modo que tengaacceso a recursos de AWS Las poliacuteticas que se adjuntan al rol del servicio determinan a queacute recursospodraacute obtener acceso el servicio y queacute puede hacer con esos recursos
El rol de servicio que crea para CodeDeploy debe recibir los permisos necesarios para su plataformade procesamiento Para implementar en maacutes de una plataforma de computacioacuten cree un rol de serviciopara cada una Para agregar permisos asocie una o maacutes de las siguientes opcionesAWSpoliacuteticassuministradas por
En las implementaciones EC2On-Premises asocie elAWSCodeDeployRolepoliacutetica Proporciona lospermisos necesarios para que su rol de servicio
bull Lea las etiquetas en las instancias o identifique sus instancias de Amazon EC2 mediante nombres degrupo de Amazon EC2 Auto Scaling
bull Lea cree actualice y elimine grupos de Auto Scaling de Amazon EC2 enlaces de ciclo de vida ypoliacuteticas de escalado
bull Publique informacioacuten en los temas de Amazon SNSbull Permite recuperar informacioacuten sobre alarmas de CloudWatchbull Lea y actualice Elastic Load Balancing
Note
Si crea un grupo de Auto Scaling con una plantilla de inicio debe agregar los siguientespermisosbull ec2RunInstances
bull ec2CreateTags
bull iamPassRolePara obtener maacutes informacioacuten consultePaso 2 Crear un rol de servicio (p 36)Creacioacuten deuna plantilla de lanzamiento para un grupo de Auto Scaling yCompatibilidad con las plantillasde lanzamientoen laGuiacutea del usuario de Amazon EC2 Auto Scaling
En las implementaciones de Amazon ECS si desea obtener acceso total a los servicios de soporte teacutecnicoasocie elAWSCodeDeployRoleForECSpoliacutetica Proporciona los permisos necesarios para que su rol deservicio
bull Lea actualice y elimine conjuntos de tareas de Amazon ECSbull Actualice grupos de destino de Elastic Load Balancing agentes de escucha y reglas debull Invoque a funciones de AWS Lambdabull Acceda a archivos de revisioacuten en buckets de Amazon S3bull Permite recuperar informacioacuten sobre alarmas de CloudWatchbull Publique informacioacuten en los temas de Amazon SNS
En las implementaciones de Amazon ECS si desea obtener acceso limitado a los servicios de soporteteacutecnico asocie elAWSCodeDeployRoleForECSLimitedpoliacutetica Proporciona los permisos necesariospara que su rol de servicio
bull Lea actualice y elimine conjuntos de tareas de Amazon ECSbull Permite recuperar informacioacuten sobre alarmas de CloudWatch
Versioacuten de API 2014-10-0636
AWS CodeDeploy Guiacutea del usuarioCreacioacuten de un rol de servicio de (consola)
bull Publique informacioacuten en los temas de Amazon SNS
ParaAWSLas implementaciones de Lambda si desea permitir la publicacioacuten en Amazon SNS asocieelAWSCodeDeployRoleForLambdapoliacutetica Proporciona los permisos necesarios para que su rol deservicio
bull Lea actualice e invoque funciones AWS Lambda y aliasbull Acceda a archivos de revisioacuten en buckets de Amazon S3bull Permite recuperar informacioacuten sobre alarmas de CloudWatchbull Publique informacioacuten en los temas de Amazon SNS
ParaAWSEn las implementaciones de Lambda si desea limitar el acceso a Amazon SNS asocieelAWSCodeDeployRoleForLambdaLimitedpoliacutetica Proporciona los permisos necesarios para que su rolde servicio
bull Lea actualice e invoque funciones AWS Lambda y aliasbull Acceda a archivos de revisioacuten en buckets de Amazon S3bull Permite recuperar informacioacuten sobre alarmas de CloudWatch
Como parte de la configuracioacuten del rol de servicio tambieacuten actualizaraacute su relacioacuten de confianza paraespecificar a queacute puntos de enlace desea concederle acceso
Puede crear un rol de servicio con la consola de IAM laAWS CLI o las API de IAM
Temasbull Creacioacuten de un rol de servicio de (consola) (p 37)bull Creacioacuten de un rol de servicio de (CLI) (p 39)bull Obtenga el ARN del rol de servicio (consola) (p 40)bull Obtenga el ARN del rol de servicio (CLI) (p 41)
Creacioacuten de un rol de servicio de (consola)1 Inicie sesioacuten en la AWS Management Console y abra la consola de IAM en https
consoleawsamazoncomiam2 En el panel de navegacioacuten seleccione Roles y luego seleccione Create role3 En la paacuteginaCreacioacuten de un rolpaacutegina elijaAWSServicio dey desde lasElija el servicio que utilizaraacute
este rollista elijaCodeDeploy4 En Select your use case (Seleccione su caso de uso) elija su caso de uso
bull En las implementaciones EC2On-Premises elijaCodeDeploybull Para las implementaciones de Amazon ECS elijaCodeDeploy - ECSbull ParaAWSImplementaciones de Lambda elijaCodeDeploy para Lambda
5 Seleccione Next (Siguiente) Permisos6 En la paacutegina Attached permissions policy (Poliacutetica de permisos asociada) se muestra la poliacutetica de
permisos Seleccione Next (Siguiente) Tags (Etiquetas)7 En la paacuteginaReview (Revisar)paacutegina enNombre del rol introduzca un nombre para el rol de servicio
de (por ejemploCodeDeployServiceRole) y luego elijaCreacioacuten de un rol
Tambieacuten puede introducir una descripcioacuten para este rol de servicio enDescripcioacuten del rol
Versioacuten de API 2014-10-0637
AWS CodeDeploy Guiacutea del usuarioCreacioacuten de un rol de servicio de (consola)
8 Si desea que este rol de servicio tenga permiso de acceso a todos los puntos de enlace contempladosactualmente ya ha terminado con este procedimiento
Para restringir el acceso de este rol de servicio a algunos puntos de enlace en la lista de rolesexamine y elija el rol que ha creado y continuacutee en el paso siguiente
9 En la pestantildea Trust relationships (Relaciones de confianza) elija Edit trust relationship (Editar relacioacutende confianza)
10 Debe aparecer la siguiente poliacutetica que concede al rol de servicio el permiso de acceso a todos lospuntos de enlace compatibles
Version 2012-10-17 Statement [ Sid Effect Allow Principal Service [ codedeployamazonawscom ] Action stsAssumeRole ]
Para conceder acceso al rol de servicio a solo algunos puntos de enlace admitidos reemplace elcontenido del recuadro Policy Document (Documento de poliacutetica) con la poliacutetica siguiente Quite lasliacuteneas de los puntos de enlace a los que desea evitar el acceso y a continuacioacuten elija Update TrustPolicy (Actualizar poliacutetica de confianza)
Version 2012-10-17 Statement [ Sid Effect Allow Principal Service [ codedeployus-east-2amazonawscom codedeployus-east-1amazonawscom codedeployus-west-1amazonawscom codedeployus-west-2amazonawscom codedeployeu-west-3amazonawscom codedeployca-central-1amazonawscom codedeployeu-west-1amazonawscom codedeployeu-west-2amazonawscom codedeployeu-central-1amazonawscom codedeployap-east-1amazonawscom codedeployap-northeast-1amazonawscom codedeployap-northeast-2amazonawscom codedeployap-southeast-1amazonawscom codedeployap-southeast-2amazonawscom codedeployap-south-1amazonawscom codedeploysa-east-1amazonawscom ] Action stsAssumeRole ]
Versioacuten de API 2014-10-0638
AWS CodeDeploy Guiacutea del usuarioCreacioacuten de un rol de servicio de (CLI)
Para obtener maacutes informacioacuten acerca de la creacioacuten de roles de servicio consulteCreacioacuten de un rol paradelegar permisos a unAWSServicio deen laIAM User Guide
Creacioacuten de un rol de servicio de (CLI)1 En el equipo de implementacioacuten crea un archivo de texto con un nombre como por ejemplo
CodeDeployDemo-Trustjson Este archivo se utiliza para permitir a CodeDeploy trabajar en sunombre
Realice alguna de las siguientes acciones
bull Para conceder acceso a todos los admitidosAWSRegions guarde el siguiente contenido en elarchivo
Version 2012-10-17 Statement [ Sid Effect Allow Principal Service [ codedeployamazonawscom ] Action stsAssumeRole ]
bull Para conceder acceso solo a algunas regiones escriba el siguiente contenido en el archivo yelimine las liacuteneas de las regiones a las que no desee conceder acceso
Version 2012-10-17 Statement [ Sid Effect Allow Principal Service [ codedeployus-east-2amazonawscom codedeployus-east-1amazonawscom codedeployus-west-1amazonawscom codedeployus-west-2amazonawscom codedeployeu-west-3amazonawscom codedeployca-central-1amazonawscom codedeployeu-west-1amazonawscom codedeployeu-west-2amazonawscom codedeployeu-central-1amazonawscom codedeployap-east-1amazonawscom codedeployap-northeast-1amazonawscom codedeployap-northeast-2amazonawscom codedeployap-southeast-1amazonawscom codedeployap-southeast-2amazonawscom codedeployap-south-1amazonawscom codedeploysa-east-1amazonawscom ] Action stsAssumeRole ]
Versioacuten de API 2014-10-0639
AWS CodeDeploy Guiacutea del usuarioObtenga el ARN del rol de servicio (consola)
Note
No incluya una coma despueacutes del uacuteltimo punto de enlace de la lista2 Desde el mismo directorio ejecute el comando create-role para crear un rol de servicio con el nombre
CodeDeployServiceRole basado en la informacioacuten del archivo de texto que acaba de crear
aws iam create-role --role-name CodeDeployServiceRole --assume-role-policy-document fileCodeDeployDemo-Trustjson
Important
Aseguacuterese de incluir file antes del nombre de archivo Es obligatorio en este comando
En la salida del comando anote el valor de la entrada Arn para el objeto Role Lo necesitaraacute maacutesadelante al crear grupos de implementaciones Si no recuerda el valor siga las instrucciones indicadasen Obtenga el ARN del rol de servicio (CLI) (p 41)
3 La poliacutetica administrada que utilice dependeraacute de la plataforma de computacioacuten
bull Para una implementacioacuten en una plataforma de computacioacuten EC2On-Premises
Llame a laattach-role-policypara asignar el rol de serviciodenominadoCodeDeployServiceRolelos permisos basados en la poliacutetica administrada de IAMdenominadaAWSCodeDeployRole Por ejemplo
aws iam attach-role-policy --role-name CodeDeployServiceRole --policy-arn arnawsiamawspolicyservice-roleAWSCodeDeployRole
bull Para una implementacioacuten en unaAWSPlataforma de computacioacuten Lambda
Llame a laattach-role-policypara asignar el rol de serviciodenominadoCodeDeployServiceRolelos permisos basados en la poliacutetica administrada de IAMdenominadaAWSCodeDeployRoleForLambdaoAWSCodeDeployRoleForLambdaLimited Porejemplo
aws iam attach-role-policy --role-name CodeDeployServiceRole --policy-arn arnawsiamawspolicyservice-roleAWSCodeDeployRoleForLambda
bull Para una implementacioacuten en una plataforma de computacioacuten Amazon ECS
Llame a laattach-role-policypara asignar el rol de serviciodenominadoCodeDeployServiceRolelos permisos basados en la poliacutetica administrada de IAMdenominadaAWSCodeDeployRoleForECSoAWSCodeDeployRoleForECSLimited Por ejemplo
aws iam attach-role-policy --role-name CodeDeployServiceRole --policy-arn arnawsiamawspolicyAWSCodeDeployRoleForECS
Para obtener maacutes informacioacuten acerca de la creacioacuten de roles de servicio consulteCreacioacuten de un rol paraunAWSServicio deen laIAM User Guide
Obtenga el ARN del rol de servicio (consola)Para obtener el ARN del rol de servicio con la consola de IAMVersioacuten de API 2014-10-06
40
AWS CodeDeploy Guiacutea del usuarioObtenga el ARN del rol de servicio (CLI)
1 Inicie sesioacuten en la AWS Management Console y abra la consola de IAM en httpsconsoleawsamazoncomiam
2 Seleccione Roles (Roles) en el panel de navegacioacuten3 En el cuadro Filter (Filtro) escriba CodeDeployServiceRole y a continuacioacuten pulse Intro4 Elija CodeDeployServiceRole5 Anote el valor del campo Role ARN (ARN de rol)
Obtenga el ARN del rol de servicio (CLI)Para obtener el ARN del rol de servicio con la AWS CLI ejecute el comando get-role para el rol de servicioCodeDeployServiceRole
aws iam get-role --role-name CodeDeployServiceRole --query RoleArn --output text
El valor devuelto es el ARN del rol de servicio
Paso 3 Provisionar un usuario de IAMSiga estas instrucciones para preparar a un usuario de IAM para que utilice CodeDeploy
1 Cree un usuario de IAM o utilice uno asociado a suAWSaccount Para obtener maacutes informacioacutenconsulteCreacioacuten de un usuario de IAMenIAM User Guide
2 Conceda al usuario de IAM acceso a CodeDeploy yAWSservicios y acciones de los que dependeCodeDeploy copie la siguiente poliacutetica y adjuacutentela al usuario de IAM
Version 2012-10-17 Statement [ Sid CodeDeployAccessPolicy Effect Allow Action [ autoscaling codedeploy ec2 lambda ecs elasticloadbalancing iamAddRoleToInstanceProfile iamAttachRolePolicy iamCreateInstanceProfile iamCreateRole iamDeleteInstanceProfile iamDeleteRole iamDeleteRolePolicy iamGetInstanceProfile iamGetRole iamGetRolePolicy iamListInstanceProfilesForRole iamListRolePolicies iamListRoles iamPutRolePolicy iamRemoveRoleFromInstanceProfile s3 ssm ] Resource
Versioacuten de API 2014-10-0641
AWS CodeDeploy Guiacutea del usuarioPaso 3 Provisionar un usuario de IAM
Sid CodeDeployRolePolicy Effect Allow Action [ iamPassRole ] Resource arnawsiamaccount-IDroleCodeDeployServiceRole ]
En la poliacutetica anterior sustituacuteyasearnawsiam account-idrolecodeDeployServiceRolecon el valor ARN del rol de servicio CodeDeploy de que ha creado enPaso 2 Creacioacuten de un rolde servicio para CodeDeploy (p 36) Puede encontrar el valor de ARN en la paacutegina de detalles delrol de servicio de la consola de IAM
La poliacutetica anterior concede al usuario de IAM para implementar unaAWSPlataforma de computacioacutenLambda una plataforma de computacioacuten EC2On-Premises y una plataforma de computacioacuten AmazonECS
Para obtener informacioacuten sobre coacutemo asociar una poliacutetica a un usuario de IAM consulteTrabajocon poliacuteticas Para obtener informacioacuten sobre coacutemo restringir a los usuarios de a un conjuntolimitado de acciones y recursos de CodeDeploy consulteIdentity and Access Management en AWSCodeDeploy (p 378)
Puede utilizar elAWS CloudFormationplantillas de que se incluyen en esta documentacioacutenpara lanzar las instancias de Amazon EC2 compatibles con CodeDeploy Para utilizarAWSCloudFormationplantillas de para crear aplicaciones grupos de implementaciones o configuracionesde implementacioacuten debe concederle acceso aAWS CloudFormationmdashyAWSservicios y accionesqueAWS CloudFormationdepende de asocie una poliacutetica adicional al usuario de IAM
Version 2012-10-17 Statement [ Effect Allow Action [ cloudformation ] Resource ]
Para obtener informacioacuten acerca de otros servicios de AWS mencionados en estas instruccionesconsulte
bull Informacioacuten general deAWS Identity and Access ManagementPoliacuteticas debull Control del acceso de los usuarios al balanceador de cargabull Control del acceso a los recursos de Auto Scalingbull ControlarAWS CloudFormationacceso a conAWS Identity and Access Management
Versioacuten de API 2014-10-0642
AWS CodeDeploy Guiacutea del usuarioPaso 4 Crear un perfil de instancia de IAM
Paso 4 Crear un perfil de instancias de IAM parasus instancias Amazon EC2
Note
Si utiliza Amazon ECS oAWSPlataforma de coacutemputo Lambda omita este paso Lasimplementaciones de Amazon ECS implementan un servicio Amazon ECS yAWSLasimplementaciones Lambda implementan una versioacuten de funcioacuten Lambda sin servidor por lo queno se requiere un perfil de instancia para las instancias Amazon EC2
Las instancias Amazon EC2 necesitan permiso de acceso a los buckets de Amazon S3 o a los repositoriosGitHub donde se encuentran las aplicaciones Para lanzar instancias Amazon EC2 compatibles conCodeDeploy debe crear un rol de IAM adicional unperfil de instancia Estas instrucciones le indicaraacutencoacutemo crear un perfil de instancia de IAM para asociarlo a las instancias Amazon EC2 Este rol concedea CodeDeploy permiso de acceso a los buckets de Amazon S3 o a los repositorios GitHub donde seencuentran las aplicaciones
Puede crear un perfil de instancia de IAM con elAWS CLI la consola de IAM o las API de IAMNote
Puede adjuntar un perfil de instancias de IAM a una instancia de EC2 en el momento de lanzarlao bien adjuntarlo a una instancia ya lanzada anteriormente Para obtener maacutes informacioacutenconsultePerfiles de instancias
Temasbull Crear un perfil de instancias de IAM para sus instancias Amazon EC2 (CLI) (p 43)bull Crear un perfil de instancias de IAM para sus instancias Amazon EC2 (consola) (p 45)
Crear un perfil de instancias de IAM para susinstancias Amazon EC2 (CLI)En estos pasos suponemos que ya ha seguido las instrucciones de los tres primeros pasos de Introduccioacutena CodeDeploy (p 35)
1 En el equipo de implementacioacuten crea un archivo de texto con el nombre CodeDeployDemo-EC2-Trustjson Pegue el contenido siguiente que permite a Amazon EC2 trabajar en su nombre
Version 2012-10-17 Statement [ Sid Effect Allow Principal Service ec2amazonawscom Action stsAssumeRole ]
2 En el mismo directorio crea un archivo de texto con el nombre CodeDeployDemo-EC2-Permissionsjson Pegue el siguiente contenido
Versioacuten de API 2014-10-0643
AWS CodeDeploy Guiacutea del usuarioCrear un perfil de instancias de IAM
para sus instancias Amazon EC2 (CLI)
Version 2012-10-17 Statement [ Action [ s3Get s3List ] Effect Allow Resource ]
Note
Le recomendamos que restrinja esta poliacutetica uacutenicamente a los buckets de Amazon S3 alos que las instancias Amazon EC2 deban tener acceso Aseguacuterese de conceder acceso alos buckets de Amazon S3 que contienen el agente de CodeDeploy De lo contrario podriacuteaproducirse un error cuando el agente de CodeDeploy se instale o actualice en las instanciasPara conceder al perfil de instancia de IAM acceso solo algunos buckets del kit de recursosde CodeDeploy en Amazon S3 utilice la poliacutetica siguiente pero elimine las liacuteneas de bucketsde a los que no desee conceder acceso
Version 2012-10-17 Statement [ Effect Allow Action [ s3Get s3List ] Resource [ arnawss3replace-with-your-s3-bucket-name arnawss3aws-codedeploy-us-east-2 arnawss3aws-codedeploy-us-east-1 arnawss3aws-codedeploy-us-west-1 arnawss3aws-codedeploy-us-west-2 arnawss3aws-codedeploy-ca-central-1 arnawss3aws-codedeploy-eu-west-1 arnawss3aws-codedeploy-eu-west-2 arnawss3aws-codedeploy-eu-west-3 arnawss3aws-codedeploy-eu-central-1 arnawss3aws-codedeploy-ap-east-1 arnawss3aws-codedeploy-ap-northeast-1 arnawss3aws-codedeploy-ap-northeast-2 arnawss3aws-codedeploy-ap-southeast-1 arnawss3aws-codedeploy-ap-southeast-2 arnawss3aws-codedeploy-ap-south-1 arnawss3aws-codedeploy-sa-east-1 ] ]
Note
Si desea utilizarAutorizacioacuten de IAMo puntos de enlace de Amazon Virtual Private Cloud(VPC) con CodeDeploy deberaacute agregar maacutes permisos ConsulteUso de CodeDeploy conAmazon Virtual Private Cloudpara obtener maacutes informacioacuten
Versioacuten de API 2014-10-0644
AWS CodeDeploy Guiacutea del usuarioCrear un perfil de instancias de IAM parasus instancias Amazon EC2 (consola)
3 Desde el mismo directorio llame alcreate-rolepara crear un rol de IAMdenominadoCodeDeployDemo-EC2-Instance-Profile basado en la informacioacuten del primerarchivo
Important
Aseguacuterese de incluir file antes del nombre de archivo Es obligatorio en este comando
aws iam create-role --role-name CodeDeployDemo-EC2-Instance-Profile --assume-role-policy-document fileCodeDeployDemo-EC2-Trustjson
4 Desde el mismo directorio llame al comando put-role-policy para conceder al rol CodeDeployDemo-EC2-Instance-Profile los permisos correspondientes a la informacioacuten del segundo archivo
Important
Aseguacuterese de incluir file antes del nombre de archivo Es obligatorio en este comando
aws iam put-role-policy --role-name CodeDeployDemo-EC2-Instance-Profile --policy-name CodeDeployDemo-EC2-Permissions --policy-document fileCodeDeployDemo-EC2-Permissionsjson
5 Llame a laattach-role-policypara otorgar al rol permisos de Amazon EC2 Systems Manager paraque SSM pueda instalar el agente de CodeDeploy Esta poliacutetica no es necesaria si tiene pensadoinstalar el agente desde el bucket de Amazon S3 puacuteblico con la liacutenea de comandos Maacutes informacioacutensobreinstalacioacuten del agente de CodeDeploy
aws iam attach-role-policy --policy-arn arnawsiamawspolicyAmazonSSMManagedInstanceCore --role-name CodeDeployDemo-EC2-Instance-Profile
6 Llame a lacreate-instance-profileseguida de laadd-role-to-instance-profilepara crear un perfil deinstancia de IAM denominadoCodeDeployDemo-EC2-Instance-Profile El perfil de instanciapermite a Amazon EC2 pasar el rol de IAM denominadoCodeDeployDemo-EC2-Instance-Profilea una instancia Amazon EC2 cuando se lanza la instancia por primera vez
aws iam create-instance-profile --instance-profile-name CodeDeployDemo-EC2-Instance-Profileaws iam add-role-to-instance-profile --instance-profile-name CodeDeployDemo-EC2-Instance-Profile --role-name CodeDeployDemo-EC2-Instance-Profile
Si necesita obtener el nombre del perfil de instancia de IAM consultelist-instance-perfiles-por-roleen laseccioacuten IAM delAWS CLIReferencia de de
Ya ha creado un perfil de instancia de IAM para asociarlo a las instancias Amazon EC2 Para obtener maacutesinformacioacuten consulteRoles de IAM para Amazon EC2en laGuiacutea del usuario de Amazon EC2
Crear un perfil de instancias de IAM para susinstancias Amazon EC2 (consola)1 Inicie sesioacuten en la AWS Management Console y abra la consola de IAM en https
consoleawsamazoncomiam2 En la consola de IAM en el panel de navegacioacuten elijaPoliacuteticasy luego seleccioneCrear poliacutetica Si
aparece el botoacuten Get Started (Empezar) eliacutejalo y a continuacioacuten elija Create Policy (Crear poliacutetica)3 En la paacutegina Create policy (Crear poliacutetica) pegue lo siguiente en la pestantildea JSON
Versioacuten de API 2014-10-0645
AWS CodeDeploy Guiacutea del usuarioCrear un perfil de instancias de IAM parasus instancias Amazon EC2 (consola)
Version 2012-10-17 Statement [ Action [ s3Get s3List ] Effect Allow Resource ]
Note
Le recomendamos que restrinja esta poliacutetica uacutenicamente a los buckets de Amazon S3 alos que las instancias Amazon EC2 deban tener acceso Aseguacuterese de conceder acceso alos buckets de Amazon S3 que contienen el agente de CodeDeploy De lo contrario podriacuteaproducirse un error cuando el agente de CodeDeploy se instale o actualice en las instanciasPara conceder al perfil de instancia de IAM acceso solo algunos buckets del kit de recursosde CodeDeploy en Amazon S3 utilice la poliacutetica siguiente pero elimine las liacuteneas de bucketsde a los que no desee conceder acceso
Version 2012-10-17 Statement [ Effect Allow Action [ s3Get s3List ] Resource [ arnawss3replace-with-your-s3-bucket-name arnawss3aws-codedeploy-us-east-2 arnawss3aws-codedeploy-us-east-1 arnawss3aws-codedeploy-us-west-1 arnawss3aws-codedeploy-us-west-2 arnawss3aws-codedeploy-ca-central-1 arnawss3aws-codedeploy-eu-west-1 arnawss3aws-codedeploy-eu-west-2 arnawss3aws-codedeploy-eu-west-3 arnawss3aws-codedeploy-eu-central-1 arnawss3aws-codedeploy-ap-east-1 arnawss3aws-codedeploy-ap-northeast-1 arnawss3aws-codedeploy-ap-northeast-2 arnawss3aws-codedeploy-ap-southeast-1 arnawss3aws-codedeploy-ap-southeast-2 arnawss3aws-codedeploy-ap-south-1 arnawss3aws-codedeploy-sa-east-1 ] ]
Note
Si desea utilizarAutorizacioacuten de IAMo puntos de enlace de Amazon Virtual Private Cloud(VPC) con CodeDeploy deberaacute agregar maacutes permisos ConsulteUso de CodeDeploy conAmazon Virtual Private Cloudpara obtener maacutes informacioacuten
4 Elija Review policy (Revisar poliacutetica)
Versioacuten de API 2014-10-0646
AWS CodeDeploy Guiacutea del usuarioCrear un perfil de instancias de IAM parasus instancias Amazon EC2 (consola)
5 En la paacutegina Create policy (Crear poliacutetica) escriba CodeDeployDemo-EC2-Permissions en elcuadro Policy Name (Nombre de la poliacutetica)
6 (Opcional) En Description (Descripcioacuten) escriba una descripcioacuten para la poliacutetica7 Elija Create Policy (Crear poliacutetica)8 En el panel de navegacioacuten seleccione Roles y luego seleccione Create role9 En la paacutegina Create role (Crear rol) seleccione AWS service (Servicio de) y en Choose the service
that will use this role (Seleccione el servicio que va a usar este rol) haga clic en EC210 En la lista Select your use case (Seleccionar caso de uso) elija EC211 Seleccione Next (Siguiente) Permisos12 En la lista de poliacuteticas seleccione la casilla de verificacioacuten situada junto a la poliacutetica que acaba de
crear (CodeDeployDemo-EC2-Permissions) Si es necesario utilice el cuadro de buacutesqueda paraencontrar la poliacutetica
13 Para utilizar Systems Manager para instalar o configurar el agente de CodeDeploy seleccione lacasilla situada junto a AmazonssmManagedInstanceCore Esta poliacutetica administrada por AWS permiteque una instancia utilice la funcionalidad baacutesica del servicio Systems Manager Si es necesario utiliceel cuadro de buacutesqueda para encontrar la poliacutetica Esta poliacutetica no es necesaria si tiene pensadoinstalar el agente desde el bucket de Amazon S3 puacuteblico con la liacutenea de comandos Maacutes informacioacutensobreinstalacioacuten del agente de CodeDeploy
14 Seleccione Next (Siguiente) Etiquetas15 Salir delAgregar etiquetas (opcional)paacutegina sin cambios y a continuacioacuten elijaSiguiente Consulte16 En la paacuteginaReview (Revisar)paacutegina enNombre del rol introduzca un nombre para el rol de servicio
(por ejemploCodeDeployDemo-EC2-Instance-Profile) y luego seleccioneCrear rol
Tambieacuten puede introducir una descripcioacuten para este rol de servicio enDescripcioacuten del rol
Ya ha creado un perfil de instancia de IAM para asociarlo a las instancias Amazon EC2 Para obtener maacutesinformacioacuten consulteRoles de IAM para Amazon EC2en laGuiacutea del usuario de Amazon EC2
Versioacuten de API 2014-10-0647
AWS CodeDeploy Guiacutea del usuarioIntegracioacuten con otros servicios de AWS
Integraciones de productos yservicios con CodeDeploy
De forma predeterminada CodeDeploy se integra con una serie deAWSservicios y productos y serviciosde socios La siguiente informacioacuten puede ayudarlo a configurar CodeDeploy para integrarlo con losproductos y los servicios que utilice
bull Integracioacuten con otros servicios de AWS (p 48)bull Integracioacuten a productos y servicios de socios (p 60)bull Ejemplos de integracioacuten de la comunidad (p 66)
Integracioacuten con otros servicios de AWSCodeDeploy se integra con lo siguienteAWSservicios de
Amazon CloudWatch Amazon CloudWatches un servicio de monitoreoparaAWSlos recursos de la nube y las aplicacionesen las que se ejecutaAWS Utilice AmazonCloudWatch para recopilar meacutetricas y realizar suseguimiento recopilar y monitorizar archivos deregistro y establecer alarmas CodeDeploy admitelas siguientes herramientas de CloudWatch
bull Alarmas de CloudWatchpara monitorizarlas implementaciones y detenerlas cuandolas meacutetricas de monitoreo especificadassuperen o caigan por debajo de los umbralesque especifique en una regla de alarma deCloudWatch Para utilizar la monitorizacioacuten dealarmas primero debe configurar una alarmaen CloudWatch y a continuacioacuten antildeadirla ala aplicacioacuten o al grupo de implementacionesde CodeDeploy a continuacioacuten antildeadirla a laaplicacioacuten o al grupo de implementaciones de
Maacutes informacioacutenbull Crear alarmas de CloudWatch Logs
bull Amazon CloudWatch Eventspara detectar yreaccionar a cambios de estado de una instanciao una implementacioacuten en las operaciones deCodeDeploy A continuacioacuten en funcioacuten de lasreglas que cree CloudWatch Events invoca auna o varias acciones de destino cuando unaimplementacioacuten o una instancia entra en elestado especificado en una regla
Maacutes informacioacutenbull Monitoreo de implementaciones de mediante
Amazon CloudWatch Events (p 362)
Versioacuten de API 2014-10-0648
AWS CodeDeploy Guiacutea del usuarioIntegracioacuten con otros servicios de AWS
bull Amazon CloudWatch Logspara monitorizarlos tres tipos de log creados por el agente deCodeDeploy sin necesidad de iniciar sesioacuten encada una de las instancias
Maacutes informacioacutenbull Ver registros de CodeDeploy en la consola de
CloudWatch Logs
Auto Scaling de Amazon EC2 Soporta CodeDeployAuto Scaling de Amazon EC2EsteAWSel servicio de puede lanzar instanciasAmazon EC2 automaacuteticamente en funcioacuten de loscriterios que especifique por ejemplo
bull Liacutemites superados para la utilizacioacuten de CPUespecificada
bull Lecturas o escrituras en discobull Traacutefico de red entrante o saliente durante un
intervalo de tiempo especificado
Puede escalar un grupo de instancias AmazonEC2 cuando las necesite y a continuacioacuten utilizarCodeDeploy implementar revisiones de aplicacioacutenautomaacuteticamente Amazon EC2 Auto Scalingtermina esas instancias de Amazon EC2 cuandodejan de ser necesarias
Maacutes informacioacuten
bull Integracioacuten de CodeDeploy con Amazon EC2Auto Scaling (p 53)
bull Tutorial UsarCodeDeploypara implementaruna aplicacioacuten en un grupo de AutoScaling (p 110)
bull Bajo el capoacute Integracioacuten de CodeDeploy y AutoScaling
Versioacuten de API 2014-10-0649
AWS CodeDeploy Guiacutea del usuarioIntegracioacuten con otros servicios de AWS
Amazon Elastic Container Service Puede utilizar CodeDeploy para implementaruna aplicacioacuten en contenedores de Amazon ECScomo conjunto de tareas CodeDeploy realizauna implementacioacuten bluegreen instalando unaversioacuten actualizada de la aplicacioacuten como un nuevoconjunto de tareas de sustitucioacuten CodeDeployredirige el traacutefico de produccioacuten del conjunto detareas de la aplicacioacuten original al conjunto detareas de sustitucioacuten Cuando la implementacioacutense realiza correctamente se termina el conjuntode tareas original Para obtener maacutes informacioacutenacerca de Amazon ECS consulteAmazon ElasticContainer Service
Puede administrar la forma en que el traacutefico sedesplaza al conjunto de tareas actualizado duranteuna implementacioacuten eligiendo una configuracioacutencontrolada lineal o todo a la vez Para obtener maacutesinformacioacuten acerca de las implementaciones deAmazon ECS consulteImplementaciones en unaplataforma de computacioacuten Amazon ECS
AWS CloudTrail CodeDeploy se integra conAWS CloudTrail Esteservicio captura las llamadas a la API realizadaspor CodeDeploy en nombre de CodeDeployen su nombreAWSy entrega los archivos logal bucket de Amazon S3 que se especifiqueCloudTrail captura las llamadas al API de laconsola de CodeDeploy desde los comandosde CodeDeploy a traveacutes de laAWS CLIo desdelas API de CodeDeploy directamente Mediantela informacioacuten recopilada por CloudTrail puededeterminar
bull La solicitud que se realizoacute a CodeDeploybull La direccioacuten IP de origen desde la que se realizoacute
la solicitudbull Quieacuten ha realizado la solicitudbull Cuando se realizoacute
Maacutes informacioacuten
bull Monitoring Deployments (p 364)
Versioacuten de API 2014-10-0650
AWS CodeDeploy Guiacutea del usuarioIntegracioacuten con otros servicios de AWS
AWS Cloud9 AWS Cloud9 es un entorno de desarrollo integrado(IDE) online basado en la nube que puede utilizarpara escribir ejecutar depurar e implementarcoacutedigo y solo necesita un navegador que esteacuteinstalado en una maacutequina con conexioacuten a InternetAWS Cloud9 cuenta con un editor de coacutedigo undepurador un terminal y herramientas esencialescomo AWS CLI y Git
bull Puede utilizar el IDE de AWS Cloud9 paraejecutar depurar y crear coacutedigo que esteacute enun repositorio de GitHub Puede ver modificary guardar el coacutedigo utilizando la ventanaEnvironment (Entorno) de su IDE y las pestantildeasdel editor Cuando haya terminado puedeutilizar Git en la sesioacuten de terminal de AWSCloud9 para insertar cambios en el coacutedigo ensu repositorio de GitHub y a continuacioacutenutilizar AWS CodeDeploy para implementar susactualizaciones Para obtener maacutes informacioacutenacerca del uso deAWS Cloud9con GitHubconsultaEjemplo de GitHub paraAWS Cloud9
bull Puede utilizar el IDE de AWS Cloud9 paraactualizar una funcioacuten de AWS Lambda Acontinuacioacuten puede utilizar AWS CodeDeploypara crear una implementacioacuten que desplacetraacutefico a la nueva versioacuten de su funcioacuten AWSLambda Para obtener maacutes informacioacutenconsulteUso deAWS Lambdafunciones delAWSCloud9Entorno de desarrollo integrado (IDE)
Para obtener maacutes informacioacuten acerca deAWSCloud9 consulteQueacute esAWS Cloud9yIntroduccioacutenalAWS Cloud9
Versioacuten de API 2014-10-0651
AWS CodeDeploy Guiacutea del usuarioIntegracioacuten con otros servicios de AWS
AWS CodePipeline AWS CodePipeline es un servicio de entregacontinua que permite modelar visualizar yautomatizar los pasos necesarios para lanzarsoftware en un proceso de entrega continua AWSCodePipeline le permite definir su propio procesode lanzamiento para que el servicio compilepruebe e implemente el coacutedigo cada vez quecambie Por ejemplo puede tener tres gruposde implementaciones para una aplicacioacuten BetaGamma y Prod Puede configurar una canalizacioacutenpara que cada vez que ocurra un cambio en elcoacutedigo fuente las actualizaciones se implementenen cada uno de los grupos
Puede configurarAWS CodePipelinepara utilizarCodeDeploy para desplegar
bull Coacutedigo en instancias Amazon EC2 instanciason-premises o ambas
bull Sin servidorAWSVersiones de la funcioacutenLambda
Puede crear la aplicacioacuten de CodeDeploy el grupode implementaciones para usarlo en una etapa dela accioacuten de implementacioacuten ya sea antes de crearla canalizacioacuten o en laCrear canalizacioacutenasistente
Maacutes informacioacuten
bull AWSpara DevOps informacioacuten acerca decoacutemo utilizar CodePipeline con CodeDeploypara entregar e implementar coacutedigo fuente derepositorios CodeCommit a instancias AmazonEC2 de forma continua
bull Tutorial de canalizacioacuten simple (Amazon S3Bucket)
bull Tutorial simple de canalizacioacuten (repositorioCodeCommit)
bull Tutorial de canalizacioacuten de cuatro etapas
AWSModelo de aplicacioacuten sin servidor de AWSModelo de aplicacioacuten sin servidor (AWSSAM)es un modelo para definir aplicaciones sin servidorSe extiendeAWS CloudFormationpara proporcionaruna forma simplificada de definirAWS LambdaAPI de Amazon API Gateway y tablas de AmazonDynamoDB necesarias para una aplicacioacutensin servidor Si ya usaAWSSAM puede antildeadirpreferencias de implementacioacuten para empezar autilizar CodeDeploy administrar la forma en que sedesviacutea el traacutefico durante unAWSImplementacioacuten deaplicaciones Lambda
Para obtener maacutes informacioacuten consultelaAWSModelo de aplicacioacuten sin servidor de
Versioacuten de API 2014-10-0652
AWS CodeDeploy Guiacutea del usuarioAmazon EC2 Auto Scaling
Elastic Load Balancing Soporta CodeDeployElastic Load Balancingun servicio que distribuye el traacutefico entrante deaplicaciones entre varias instancias Amazon EC2
Para las implementaciones de CodeDeploy losbalanceadores de carga impiden que el traacutefico deInternet se enrute a instancias cuando estas noesteacuten listas se estaacuten implementando objetos enellas o estas ya no se necesitan como parte de unentorno
Maacutes informacioacuten
bull Integrating CodeDeploy with Elastic LoadBalancing (p 57)
Temasbull Integracioacuten de CodeDeploy con Amazon EC2 Auto Scaling (p 53)bull Integracioacuten de CodeDeploy con Elastic Load Balancing (p 57)
Integracioacuten de CodeDeploy con Amazon EC2 AutoScalingCodeDeploy es compatible con Amazon EC2 Auto Scaling unAWSservicio que lanza automaacuteticamenteinstancias de Amazon EC2 de acuerdo con las condiciones que defina Estas condiciones pueden incluirque se supere un liacutemite de tiempo especiacutefico para el uso de la CPU que se lea o escriba el disco o eltraacutefico de red entrante y saliente Amazon EC2 Auto Scaling termina las instancias cuando dejan de sernecesarias Para obtener maacutes informacioacuten consulteiquestQueacute es Amazon EC2 Auto Scalingen laGuiacutea delusuario de Amazon EC2 Auto Scaling
Cuando se lanzan nuevas instancias Amazon EC2 como parte de un grupo de Amazon EC2 Auto ScalingCodeDeploy puede implementar automaacuteticamente las revisiones en las nuevas instancias Tambieacuten puedecoordinar las implementaciones en CodeDeploy con instancias de Amazon EC2 Auto Scaling registradascon balanceadores de carga de Elastic Load Balancing Para obtener maacutes informacioacuten consulte IntegratingCodeDeploy with Elastic Load Balancing (p 57) y Configurar un equilibrador de carga en Elastic LoadBalancing para implementaciones de CodeDeploy Amazon EC2 (p 295)
Note
Es posible que surjan problemas si asocia varios grupos de implementaciones con un uacutenico grupode Amazon EC2 Auto Scaling Por ejemplo si falla una implementacioacuten la instancia comenzaraacutea cerrarse pero el resto de las implementaciones en ejecucioacuten puede que tarden una hora enagotar el tiempo de espera Para obtener maacutes informacioacuten consulteEvite asociar varios gruposde implementaciones a un uacutenico grupo de Amazon EC2 Auto Scaling (p 478)yEntre bastidoresIntegracioacuten de CodeDeploy y Amazon EC2 Auto Scaling
Temasbull Implementacioacuten de aplicaciones CodeDeploy en grupos de Amazon EC2 Auto Scaling (p 54)bull Coacutemo funciona Amazon EC2 Auto Scaling con CodeDeploy (p 54)bull Uso de una AMI personalizada con CodeDeploy y Amazon EC2 Auto Scaling (p 57)
Versioacuten de API 2014-10-0653
AWS CodeDeploy Guiacutea del usuarioAmazon EC2 Auto Scaling
Implementacioacuten de aplicaciones CodeDeploy en grupos deAmazon EC2 Auto ScalingPara implementar una revisioacuten de la aplicacioacuten CodeDeploy en un grupo de Amazon EC2 Auto Scaling
1 Cree o localice un perfil de instancia de IAM que permita al grupo de Amazon EC2 Auto Scalingtrabajar con Amazon S3 Para obtener maacutes informacioacuten consulte Paso 4 Crear un perfil de instanciasde IAM para sus instancias Amazon EC2 (p 43)
Note
Tambieacuten puede usar CodeDeploy para implementar revisiones desde repositorios de GitHuben grupos de Amazon EC2 Auto Scaling Aunque las instancias de Amazon EC2 auacutennecesitaraacuten un perfil de instancia de IAM el perfil no requiere permisos adicionales paraimplementar desde un repositorio de GitHub
2 Cree o utilice un grupo de Amazon EC2 Auto Scaling especificando el perfil de instancia de IAM ensu configuracioacuten o plantilla de lanzamiento Para obtener maacutes informacioacuten consulteRol de IAM paraaplicaciones que se ejecuten en instancias de Amazon EC2
3 Cree o localice un rol de servicio que permita a CodeDeploy crear un grupo de implementaciones quecontiene el grupo de Amazon EC2 Auto Scaling
4 Cree un grupo de implementaciones mediante CodeDeploy especificando el rol de servicio y elnombre de grupo de Amazon EC2 Auto Scaling
5 Utilice CodeDeploy para implementar su revisioacuten en el grupo de implementaciones que contiene elgrupo de Amazon EC2 Auto Scaling
Para obtener maacutes informacioacuten consulte Tutorial UsarCodeDeploypara implementar una aplicacioacuten en ungrupo de Auto Scaling (p 110)
Coacutemo funciona Amazon EC2 Auto Scaling con CodeDeployPara que CodeDeploy implemente la revisioacuten de la aplicacioacuten en nuevas instancias de EC2 durante unevento de escalado horizontal de Auto Scaling CodeDeploy utiliza un gancho del ciclo de vida de AutoScaling El gancho del ciclo de vida notifica a CodeDeploy que hay un evento de escalabilidad horizontalde Auto Scaling en curso y que CodeDeploy debe implementar una revisioacuten de las instancias escaladas
Note
En esta seccioacuten los teacuterminos laquogancho del ciclo de vidaraquo y laquoganchoraquo hacen referencia al ganchoutilizado para integrar CodeDeploy con Auto Scaling Este gancho es diferente de los ganchosdescritos en elSeccioacuten hooks de AppSpec (p 422)
Temasbull iquestCoacutemo se crea e instala el gancho del ciclo de vida (p 54)bull Despueacutes de que CodeDeploy agregue el gancho del ciclo de vida iquestcoacutemo se utiliza (p 55)bull Coacutemo nombra CodeDeploy a los grupos de Amazon EC2 Auto Scaling (p 55)bull Orden de ejecucioacuten de eventos de enlace de ciclo de vida personalizados (p 55)bull Eventos de escalado horizontal durante una implementacioacuten (p 56)bull Orden de eventos enAWS CloudFormationscripts cfn-init (p 56)
iquestCoacutemo se crea e instala el gancho del ciclo de vidaAl crear o actualizar un grupo de implementacioacuten para incluir un grupo de Auto Scaling CodeDeployaccede al grupo Auto Scaling mediante el rol de servicio CodeDeploy y a continuacioacuten instala un ganchode ciclo de vida en el grupo Auto Scaling
Versioacuten de API 2014-10-0654
AWS CodeDeploy Guiacutea del usuarioAmazon EC2 Auto Scaling
Despueacutes de que CodeDeploy agregue el gancho del ciclo de vida iquestcoacutemo seutilizaUna vez instalado el gancho del ciclo de vida se utiliza durante los eventos de escalado horizontal Unevento de escalado horizontal se desarrolla de la siguiente manera
1 El servicio Auto Scaling (o simplemente Auto Scaling) determina que debe producirse un evento deescalado horizontal y se pone en contacto con el servicio EC2 para lanzar una nueva instancia de EC2
2 El servicio EC2 lanza una nueva instancia EC2 La instancia se traslada alPendingestado y luego enelPendingWaitestado
3 DurantePendingWait Auto Scaling ejecuta todos los ganchos del ciclo de vida asociados al grupoAuto Scaling incluido el gancho del ciclo de vida creado por CodeDeploy
4 El gancho del ciclo de vida enviacutea una notificacioacuten alCola de Amazon SQSque CodeDeploy sondea5 Tras recibir la notificacioacuten CodeDeploy analiza el mensaje realiza cierta validacioacuten y comienza a
implementar la aplicacioacuten en la nueva instancia de EC2 utilizando la uacuteltima revisioacuten correcta6 Mientras se ejecuta la implementacioacuten CodeDeploy enviacutea latidos cada cinco minutos a Auto Scaling
para informarle de que la instancia se sigue trabajando7 Hasta el momento la instancia EC2 sigue en elPendingWaitestado8 Cuando se completa la implementacioacuten CodeDeploy indica que Auto Scaling
seaCONTINUEoABANDONel proceso de lanzamiento de EC2 en funcioacuten de si la implementacioacuten se harealizado correctamente o nobull Si CodeDeploy indicaCONTINUE Auto Scaling continuacutea el proceso de lanzamiento ya sea
esperando a que se completen otros hooks o colocando la instancia en elPendingProceedy luegoelInServiceestado
bull Si CodeDeploy indicaABANDON Auto Scaling finaliza la instancia EC2 y reinicia el procedimiento delanzamiento si es necesario para cumplir el nuacutemero deseado de instancias tal como se define enAuto ScalingCapacidad deseadaconfiguracioacuten
Coacutemo nombra CodeDeploy a los grupos de Amazon EC2 Auto Scaling
Durante las implementaciones azulgreen en una plataforma informaacutetica local EC2 tiene dos opciones paraantildeadir instancias a su entorno de sustitucioacuten (verde)
bull Utilice instancias que ya existan o que cree manualmentebull Utilice la configuracioacuten de un grupo de Amazon EC2 Auto Scaling que especifique para definir y crear
instancias en un nuevo grupo de Amazon EC2 Auto Scaling
Si elige la segunda opcioacuten CodeDeploy aprovisiona por usted un nuevo grupo de Amazon EC2 AutoScaling Utiliza la siguiente convencioacuten para el nombre del grupo
CodeDeploy_deployment_group_name_deployment_id
Por ejemplo si una implementacioacuten con ID10implementa un grupo de implementacioacutendenominadoalpha-deployments el grupo de Amazon EC2 Auto Scaling aprovisionado sedenominaCodeDeploy_alpha-deployments_10 Para obtener maacutes informacioacuten consulte Crear ungrupo de implementaciones para una implementacioacuten EC2On-Premises bluegreen (consola) (p 291) yGreenFleetProvisioningOption
Orden de ejecucioacuten de eventos de enlace de ciclo de vida personalizadosPuede antildeadir sus propios enlaces de ciclo de vida a los grupos de Amazon EC2 Auto Scaling en losque implementa CodeDeploy Sin embargo el orden en que se ejecutan estos eventos de enlace deciclo de vida personalizados no se puede predeterminar en relacioacuten con los eventos de ciclo de vida de
Versioacuten de API 2014-10-0655
AWS CodeDeploy Guiacutea del usuarioAmazon EC2 Auto Scaling
implementacioacuten predeterminados de CodeDeploy Por ejemplo si agrega un gancho de ciclo de vidapersonalizado denominadoReadyForSoftwareInstalla un grupo de Amazon EC2 Auto Scaling nopuede saber de antemano si se ejecutaraacute antes del primer o despueacutes del uacuteltimo evento de ciclo de vidade implementacioacuten predeterminado de CodeDeploy
Para obtener informacioacuten sobre coacutemo antildeadir enlaces de ciclo de vida personalizados a un grupo deAmazon EC2 Auto Scaling consulteAdicioacuten de enlaces de ciclo de vidaen laGuiacutea del usuario de AmazonEC2 Auto Scaling
Eventos de escalado horizontal durante una implementacioacutenSi se produce un evento de escalado horizontal de Amazon EC2 Auto Scaling mientras estaacute en cursouna implementacioacuten las nuevas instancias se actualizaraacuten con la uacuteltima revisioacuten de la aplicacioacutenimplementada no con la revisioacuten de la aplicacioacuten que estaacute implementando actualmente Si laimplementacioacuten se realiza correctamente las instancias antiguas y las instancias recieacuten escaladas alojaraacutenrevisiones de la aplicacioacuten diferentes Para actualizar esas instancias CodeDeploy inicia automaacuteticamenteuna implementacioacuten de seguimiento (inmediatamente despueacutes de la primera) para actualizar cualquierinstancia obsoleta Si desea cambiar este comportamiento predeterminado para que las instancias EC2desactualizadas queden en la revisioacuten anterior consulteAutomatic updates to outdated instances
Si desea suspender los procesos de escalado horizontal de Amazon EC2 Auto Scaling mientrasse estaacuten llevando a cabo las implementaciones puede hacerlo mediante un paraacutemetro enelcommon_functionsshscript que se utiliza para equilibrar la carga con CodeDeploySiHANDLE_PROCS=true los siguientes eventos de Auto Scaling se suspenden automaacuteticamente duranteel proceso de implementacioacuten
bull AZRebalancebull AlarmNotificationbull ScheduledActionsbull ReplaceUnhealthy
Important
Solo la configuracioacuten de implementacioacuten CodeDeployDefaultOneATime es compatible con estafuncionalidad
Para obtener maacutes informacioacuten acerca del uso deHANDLE_PROCS=truepara evitar problemas deimplementacioacuten cuando se utiliza Amazon EC2 Auto Scaling consulteAviso importante sobre el manejo delos procesos AutoScalingenmuestras de aws-codedeploy-en GitHub
Orden de eventos enAWS CloudFormationscripts cfn-initSi utiliza cfn-init (o cloud-init) para ejecutar scripts en instancias basadas en Linux recieacutenaprovisionadas las implementaciones podriacutean fallar a menos que controle estrictamente el orden de loseventos que se producen despueacutes que se inicia la instancia
Ese orden debe ser
1 Se inicia la instancia recieacuten aprovisionada2 Se ejecutan todos los scripts de proceso de arranque cfn-init hasta su finalizacioacuten3 Se inicia el agente de CodeDeploy4 Se implementa la uacuteltima revisioacuten de la aplicacioacuten en la instancia
Si no se controla cuidadosamente el orden de los eventos el agente de CodeDeploy podriacutea comenzar unaimplementacioacuten antes de que termine la ejecucioacuten de todos los scripts
Para controlar el orden de los eventos utilice una de estas praacutecticas recomendadas
Versioacuten de API 2014-10-0656
AWS CodeDeploy Guiacutea del usuarioElastic Load Balancing
bull Instale el agente de CodeDeploy a traveacutes de uncfn-initscript colocaacutendolo despueacutes de todos losdemaacutes scripts
bull Incluya el agente de CodeDeploy en una AMI personalizada y utilice uncfn-initscript para iniciarlocolocaacutendolo despueacutes de todos los demaacutes scripts
Para obtener informacioacuten acerca del uso decfn-init consultecfn-initen laAWS CloudFormationGuiacutea delusuario de
Uso de una AMI personalizada con CodeDeploy y Amazon EC2Auto ScalingDispone de dos opciones para especificar la AMI base que se debe usar cuando se lancen nuevasinstancias Amazon EC2 en un grupo de Amazon EC2 Auto Scaling
bull Puede especificar una AMI personalizada base que ya tenga instalado el agente CodeDeploy Dado queel agente ya estaacute instalado esta opcioacuten lanza las nuevas instancias Amazon EC2 con mayor rapidez quela otra opcioacuten Sin embargo esta opcioacuten tiene mayor probabilidad de que fallen las implementacionesiniciales de instancias Amazon EC2 sobre todo si el agente de CodeDeploy estaacute obsoleto Si elige estaopcioacuten recomendamos que actualice el agente CodeDeploy con regularidad en su AMI personalizadabase
bull Puede especificar una AMI base que no tenga instalado el agente CodeDeploy e instalar dicho agentecuando se lance cada nueva instancia en un grupo de Amazon EC2 Auto Scaling Aunque esta opcioacutenlanza las nuevas instancias Amazon EC2 con mayor lentitud que la otra opcioacuten tiene mayor probabilidadde que las implementaciones iniciales de las instancias sean correctas Esta opcioacuten utiliza la versioacuten maacutesreciente del CodeDeploy de
Integracioacuten de CodeDeploy con Elastic LoadBalancingDurante las implementaciones de CodeDeploy un balanceador de carga impide que el traacutefico de Internetse enrute a instancias cuando estas no esteacuten listas se estaacuten implementando objetos en ellas o estas yano se necesitan como parte de un entorno Sin embargo el rol exacto que desempentildea el balanceador decarga depende de si se utiliza en una implementacioacuten bluegreen (azulverde) o una implementacioacuten insitu
Note
El uso de balanceadores de carga de Elastic Load Balancing es obligatorio en implementacionesbluegreen y opcional in situ
Tipos de Elastic Load BalancingElastic Load Balancing ofrece tres tipos de balanceadores de carga que se pueden utilizar en lasimplementaciones de CodeDeploy Balanceadores de carga claacutesicos Application Load Balancers yNetwork Load Balancers
Classic Load Balancer
Las rutas y los balanceadores de carga en la capa de transporte (TCPSSL) o la capa de aplicacioacuten(HTTPHTTPS) Admite EC2-Classic o una VPC
Application Load Balancer
Las rutas y los balanceadores de carga en la capa de la aplicacioacuten (HTTPHTTPS) y admite elenrutamiento basado en rutas Puede dirigir las solicitudes a puertos de cada instancia EC2 oinstancia de contenedor de su nube privada virtual (VPC)
Versioacuten de API 2014-10-0657
AWS CodeDeploy Guiacutea del usuarioElastic Load Balancing
Note
Los grupos de destino de Application Load Balancer de deben tener el tipo de destinodeinstancepara implementaciones en instancias EC2 yIPpara implementaciones deFargate Para obtener maacutes informacioacuten consulteTarget type (Tipo de objetivo)
Network Load Balancer
Rutea y balancea la carga en la capa de transporte (capa 4 de TCPUDP) basaacutendose en lainformacioacuten de las direcciones que extrae del encabezado del paquete TCP y no de su contenido Losbalanceadores de carga de red pueden atender raacutefagas de traacutefico conservar la IP de origen del clientey utilizar una IP fija mientras dura la vida uacutetil del balanceador de carga
Para obtener maacutes informacioacuten sobre los balanceadores de carga de Elastic Load Balancing consulte lostemas siguientes
bull iquestQueacute es Elastic Load Balancingbull iquestQueacute es un balanceador de carga claacutesicobull Queacute es un balanceador de carga de aplicacionesbull iquestQueacute es un balanceador de carga de red
Implementaciones bluegreen (azulverde)El reenrutamiento del traacutefico de instancias detraacutes de un balanceador de carga de Elastic Load Balancing esfundamental para las implementaciones bluegreen de CodeDeploy
Durante una implementacioacuten bluegreen (azulverde) el balanceador de carga permite dirigir el traacutefico alas nuevas instancias de un grupo de implementaciones en el que se haya implementado la uacuteltima revisioacutende la aplicacioacuten (el entorno de sustitucioacuten) de acuerdo con las reglas que especifique y a continuacioacutenbloquear el traacutefico de las instancias antiguas en las que se ejecutaba la revisioacuten de la aplicacioacuten previa(entorno original)
Una vez que las instancias de un entorno de sustitucioacuten se hayan registrado en un balanceador de cargase cancela el registro de las instancias del entorno original y si asiacute lo decide se terminan las instancias
Para una implementacioacuten azulverde puede especificar un Classic Load Balancer un Application LoadBalancer o un Network Load Balancer en el grupo de implementacioacuten Puede utilizar la consola deCodeDeploy oAWS CLIpara antildeadir el balanceador de carga a un grupo de implementaciones
Para obtener maacutes informacioacuten sobre los equilibradores de carga en las implementaciones bluegreen (azulverde) consulte los siguientes temas
bull Configurar un equilibrador de carga en Elastic Load Balancing para implementaciones de CodeDeployAmazon EC2 (p 295)
bull Cree una aplicacioacuten para una implementacioacuten bluegreen (consola) (p 276)bull Crear un grupo de implementaciones para una implementacioacuten EC2On-Premises bluegreen
(consola) (p 291)
Implementaciones in situDurante una implementacioacuten local el balanceador de carga impide que el traacutefico de Internet se dirija a lainstancia en la estaacute ocurriendo y la vuelve a poner a disposicioacuten una vez finalizada dicha implementacioacuten
Si no se utiliza un balanceador de carga durante una implementacioacuten local es posible que el traacutefico deInternet auacuten se dirija a una instancia durante el proceso de implementacioacuten Como resultado los clientes
Versioacuten de API 2014-10-0658
AWS CodeDeploy Guiacutea del usuarioElastic Load Balancing
podriacutean encontrarse con aplicaciones web dantildeadas incompletas o anticuadas Al utilizar un balanceadorde carga de Elastic Load Balancing con una implementacioacuten in situ se anula el registro de las instanciasde un grupo de implementaciones de un balanceador de carga estas se actualizan con la uacuteltima revisioacutende la aplicacioacuten y luego se vuelven a registrar en el balanceador de carga como parte del mismo grupo deimplementaciones despueacutes de que se realice la implementacioacuten exitoso CodeDeploy esperaraacute hasta 1hora para que la instancia se mantenga en buen estado detraacutes del equilibrador de carga Si el balanceadorde carga no marca la instancia como vaacutelida durante el periacuteodo de espera CodeDeploy pasa a la siguienteinstancia o falla la implementacioacuten seguacuten la configuracioacuten de la implementacioacuten
Para una implementacioacuten in situ puede especificar un Classic Load Balancer un Application LoadBalancer o un Network Load Balancer Puede especificar el balanceador de carga como parte de laconfiguracioacuten del grupo de implementaciones o utilizar un script proporcionado por CodeDeploy paraimplementar el balanceador de carga
Especificar el equilibrador de carga de implementacioacuten in situ mediante un grupode implementacioacutenPara antildeadir el balanceador de carga a un grupo de implementaciones se utiliza la consola de CodeDeployoAWS CLI Para obtener informacioacuten sobre coacutemo especificar un balanceador de carga en un grupo deimplementaciones para implementaciones in situ consulte los siguientes temas
bull Cree una aplicacioacuten para una implementacioacuten in situ (consola) (p 274)bull Crear un grupo de implementaciones para una implementacioacuten in situ (consola) (p 289)bull Configurar un equilibrador de carga en Elastic Load Balancing para implementaciones de CodeDeploy
Amazon EC2 (p 295)
Especificar el equilibrador de carga de implementacioacuten in situ mediante un script
Utilice los pasos que se indican en el siguiente procedimiento para usar scripts de ciclo de vida paraconfigurar el balanceo de carga para implementaciones locales
Note
Debe utilizar la configuracioacuten de la implementacioacuten CodeDeployDefaultOneAtATimesolo cuando se utiliza un script para configurar un balanceador de carga que se va ausar en una implementacioacuten in situ No se admiten las ejecuciones simultaacuteneas el ajusteCodeDeployDefaultOneAtATime garantiza la ejecucioacuten en serie de los scripts Para obtener maacutesinformacioacuten acerca de las configuraciones de implementacioacuten consulte Uso de configuracionesde implementacioacuten en CodeDeploy (p 264)
En el repositorio de ejemplos de CodeDeploy en GitHub proporcionamos instruccionesy ejemplos que puede adaptar para usar los balanceadores de carga de CodeDeployElastic Load Balancing de CodeDeploy Estos repositorios incluyen tres scripts deejemploregister_with_elbshderegister_from_elbsh ycommon_functionsshqueproporcionan todo el coacutedigo que necesita para empezar Solo tiene que editar los marcadores de posicioacutende estos tres scripts y despueacutes hacer referencia a estos scripts en el archivo appspecyml
Para configurar implementaciones in situ en CodeDeploy con instancias Amazon EC2 registradas conbalanceadores de carga de Elastic Load Balancing proceda del modo siguiente
1 Descargue los ejemplos del tipo de balanceador de carga que desea utilizar para una implementacioacutenin situ
bull Classic Load Balancerbull Balanceador de carga de aplicacioneso Network Load Balancer(se puede utilizar el mismo script
para cualquiera de estos tipos)2 Aseguacuterese de que cada una de sus instancias Amazon EC2 de destino tenga elAWS CLIinstalado
Versioacuten de API 2014-10-0659
AWS CodeDeploy Guiacutea del usuarioIntegracioacuten a productos y servicios de socios
3 Aseguacuterese de que cada una de sus instancias Amazon EC2 de destino tenga un perfil de instancia deIAM asociado con los permisos elasticloadbalancing y autoscaling como miacutenimo
4 En el directorio de coacutedigo fuente de la aplicacioacuten incluya los scripts de evento de ciclode vida de implementacioacuten (register_with_elbsh deregister_from_elbsh ycommon_functionssh)
5 En el navegadorappspecymlpara la revisioacuten de la aplicacioacuten proporcione instruccionespara que CodeDeploy ejecute elregister_with_elbshguioacuten durante elApplicationStartyelderegister_from_elbshguioacuten durante elApplicationStopevent
6 Si la instancia forma parte de un grupo de Amazon EC2 Auto Scaling puede omitir este paso
En el script common_functionssh
bull Si utiliza elClassic Load Balancer especifique los nombres de los balanceadores de carga de ElasticLoad Balancing enELB_LIST=y realice los cambios que necesite en el resto de la configuracioacutende la implementacioacuten en el archivo
bull Si utiliza elBalanceador de carga de aplicacioneso Network Load Balancer especifique los nombresde grupos de destino de Elastic Load Balancing enTARGET_GROUP_LIST=y realice los cambiosque necesite en el resto de la configuracioacuten de la implementacioacuten en el archivo
7 Empaquete el coacutedigo fuente de la aplicacioacuten el archivo appspecyml y los scripts de eventos deciclo de vida de la implementacioacuten en una revisioacuten de la aplicacioacuten y despueacutes cargue la revisioacutenImplemente la revisioacuten en las instancias Amazon EC2 Durante la implementacioacuten los scripts deeventos de ciclo de vida de la implementacioacuten cancelaraacuten el registro de la instancia Amazon EC2 conlos balanceadores de carga esperaraacuten a que se vaciacutee la conexioacuten y volveraacuten a registrar la instanciaAmazon EC2 con los balanceadores de carga una vez que se complete la implementacioacuten
Integracioacuten a productos y servicios de sociosCodeDeploy incluye capacidad de integracioacuten con los siguientes productos y servicios de socios
Ansible Si ya tiene un conjunto deAnsiblepero simplementenecesita un lugar donde ejecutarlo la plantilla deAnsible y CodeDeploy demuestra coacutemo un par desencillos enlaces de implementacioacuten aseguranque Ansible esteacute disponible en la instancia deimplementacioacuten local y ejecutan los PlaybooksSi ya dispone de un proceso de creacioacuten ymantenimiento de su inventario tambieacuten es posibleusar el moacutedulo de Ansible que hay disponible parainstalar y ejecutar el agente de CodeDeploy
Maacutes informacioacuten
bull Ansible y CodeDeploy
Atlassian mdash Bamboo and Bitbucket La tarea CodeDeploy paraBambuacutecomprime eldirectorio que contiene un archivo AppSpec enun archivo zip carga el archivo a Amazon S3 ydespueacutes comienza la implementacioacuten de acuerdocon la configuracioacuten proporcionada en la aplicacioacutenCodeDeploy
La compatibilidad de Atlassian Bitbucket conCodeDeploy permite enviar coacutedigo a instanciasAmazon EC2 directamente desde la interfaz
Versioacuten de API 2014-10-0660
AWS CodeDeploy Guiacutea del usuarioIntegracioacuten a productos y servicios de socios
de usuario de Bitbucket a cualquiera de losgrupos de implementaciones bajo demanda Estosignifica que despueacutes de actualizar coacutedigo en elrepositorio Bitbucket no necesita iniciar sesioacutenen la plataforma de integracioacuten continua (CI) o eninstancias Amazon EC2 para ejecutar un procesode implementacioacuten manual
Maacutes informacioacuten
bull Uso de la tarea CodeDeploy para Bamboobull Announcing Atlassian Bitbucket Support for
CodeDeploy
Chef AWSproporciona dos plantillas de ejemplo paraintegrarChefy CodeDeploy La primera es un librode recetas de Chef que instala e inicia el agentede CodeDeploy Esto permite seguir administrandola infraestructura de host con Chef al utilizarCodeDeploy La segunda plantilla muestra coacutemoutilizar CodeDeploy para organizar la ejecucioacuten delos libros de cocina y las recetas con chef-solo encada nodo
Maacutes informacioacuten
bull Chef and CodeDeploy
CircleCI CircleCI ofrece un conjunto de herramientasde prueba automatizada y de implementacioacutene integracioacuten continuas Despueacutes de crear unrol de IAM enAWSpara utilizar con CircleCI yconfigurar los paraacutemetros de implementacioacuten en elarchivo circleyml y a continuacioacuten utilice CircleCIcon CodeDeploy crear revisiones de aplicacioacutencargarlas en un bucket de Amazon S3 e iniciar ymonitorizar las implementaciones
Maacutes informacioacuten
bull Implementacioacuten continua con CodeDeploy
CloudBees Puede utilizar el complemento CodeDeployJenkins disponible enCloudBeesDEV cloudcomo accioacuten posterior a la compilacioacutenPor ejemplo puede utilizarlo al final de unacanalizacioacuten de entrega continua para implementaruna revisioacuten de aplicacioacuten en la flota de servidores
Maacutes informacioacuten
bull El complemento CodeDeploy Jenkins ya estaacutedisponible en DEV cloud
Versioacuten de API 2014-10-0661
AWS CodeDeploy Guiacutea del usuarioIntegracioacuten a productos y servicios de socios
Codeship Puede usarCodeshippara implementar revisionesde aplicacioacuten a traveacutes de CodeDeploy Tambieacutenpuede utilizar la interfaz de usuario de Codeshippara antildeadir CodeDeploy a una canalizacioacuten deimplementacioacuten de una ramificacioacuten
Maacutes informacioacuten
bull Implementacioacuten en CodeDeploybull Integracioacuten de CodeDeploy en CodeDeploy
GitHub Utilice CodeDeploy para implementar revisionesde la aplicacioacuten desdeGitHubrepositorios Tambieacutenpuede desencadenar una implementacioacuten de unrepositorio de GitHub cuando el coacutedigo fuente deese repositorio cambie
Maacutes informacioacuten
bull Integracioacuten de CodeDeploy conGitHub (p 63)
bull Tutorial Usa CodeDeploy para desplegar unaaplicacioacuten desde GitHub (p 127)
bull Despliegue automaacuteticamente desde GitHubutilizando CodeDeploy
HashiCorp Consul La herramienta de coacutedigo abierto HashiCorpConsul ayuda a garantizar la salud y estabilidaddel entorno de aplicacioacuten al implementaraplicaciones en CodeDeploy Utilice Consul pararegistrar las aplicaciones a descubrir durantela implementacioacuten cambiar las aplicaciones ylos nodos a modo de mantenimiento para quelas implementaciones los omitan y detener lasimplementaciones en caso de que las instancias dedestino no funcionen correctamente
Maacutes informacioacuten
bull Implementaciones de CodeDeploy conHashiCorp Consul
Jenkins CodeDeployJenkinsincluye un paso posterior ala compilacioacuten en proyectos de Jenkins Despueacutesde terminarse una compilacioacuten correctamentecomprime el espacio de trabajo carga en AmazonS3 e inicia una nueva implementacioacuten
Maacutes informacioacuten
bull Complemento Jenkins CodeDeploybull Configuracioacuten del complemento Jenkins para
CodeDeploy
Versioacuten de API 2014-10-0662
AWS CodeDeploy Guiacutea del usuarioGitHub
Puppet Labs AWSproporciona plantillas de ejemplo paraPuppetyCodeDeploy La primera es un moacutedulo Puppetque instala e inicia el agente de CodeDeploy Estopermite seguir administrando la infraestructurade host con Puppet al utilizar CodeDeployLa segunda plantilla muestra coacutemo utilizarCodeDeploy para organizar la ejecucioacuten demoacutedulos y manifiestos con un laquomasterless puppetraquoen cada nodo
Maacutes informacioacuten
bull Puppet and CodeDeploy
SaltStack Puede integrarSaltStackinfraestructura conCodeDeploy El moacutedulo CodeDeploy instala yejecuta el agente de CodeDeploy en los minionsTambieacuten puede usar CodeDeploy para organizar laejecucioacuten de los Salt States
Maacutes informacioacuten
bull SaltStack y CodeDeploy
TeamCity El complemento CodeDeploy Runner implementaaplicaciones directamente desde TeamCity Elcomplemento antildeade un paso de compilacioacuten deTeamCity que prepara y carga una revisioacuten deaplicacioacuten a un bucket de Amazon S3 registrala revisioacuten en una aplicacioacuten CodeDeploy silo prefiere espera a que la implementacioacuten setermine
Maacutes informacioacuten
bull CodeDeploy Runner (descarga)bull Complemento CodeDeploy Runner
(documentacioacuten)
Travis CI Puede configurarTravis CIpara activar unaimplementacioacuten en CodeDeploy despueacutes determinarse una compilacioacuten correctamente
Maacutes informacioacuten
bull Implementaciones de Travis CI y CodeDeploy
Temasbull Integracioacuten de CodeDeploy con GitHub (p 63)
Integracioacuten de CodeDeploy con GitHubCodeDeploy es compatibleGitHub un servicio de alojamiento y uso compartido de coacutedigo basado en webCodeDeploy puede implementar en instancias las revisiones de aplicaciones almacenadas en repositoriosGitHub o buckets de Amazon S3 CodeDeploy es compatible con GitHub solo para implementaciones deEC2On-Premises
Versioacuten de API 2014-10-0663
AWS CodeDeploy Guiacutea del usuarioGitHub
Temasbull Implementacioacuten de revisiones de CodeDeploy desde GitHub (p 64)bull Comportamientos de GitHub con CodeDeploy (p 64)
Implementacioacuten de revisiones de CodeDeploy desde GitHubPara implementar en instancias una revisioacuten de una aplicacioacuten desde un repositorio de GitHub
1 Cree una revisioacuten compatible con CodeDeploy y con el tipo de instancia Amazon EC2 en la que la va aimplementar
Para crear una revisioacuten compatible siga las instrucciones indicadas en Planear una revisioacuten paraCodeDeploy (p 307) y Agregar un archivo de especificacioacuten de aplicacioacuten a una revisioacuten deCodeDeploy (p 308)
2 Utilice una cuenta de GitHub para agregar la revisioacuten a un repositorio de GitHub
Para crear una cuenta de GitHub consulte Join GitHub Para crear un repositorio de GitHubconsulteCrear un repositorio
3 UsarCrear implementacioacutende la consola de CodeDeploy o de laAWS CLI create-deploymentparaimplementar la revisioacuten desde el repositorio de GitHub en las instancias de destino configuradas parasu uso en implementaciones de CodeDeploy
Si quieres llamar alcreate-deployment primero debe utilizar elCrear implementacioacutende la consolapara conceder a CodeDeploy permiso para interactuar con GitHub en nombre de la cuenta de GitHubque prefiera para la aplicacioacuten especificada Solamente es necesario hacerlo una vez para cadaaplicacioacuten
Para saber coacutemo usar la paacutegina Create deployment para implementar desde un repositorio de GitHubconsulte Cree una implementacioacuten con CodeDeploy (p 324)
Para saber coacutemo ejecutar el comando create-deployment para implementar desde un repositoriode GitHub consulte Crear una implementacioacuten de plataforma de computacioacuten EC2On-Premises(CLI) (p 335)
Para saber coacutemo preparar instancias para su uso en implementaciones de CodeDeployconsulteTrabajo con instancias para CodeDeploy (p 207)
Para obtener maacutes informacioacuten consulte Tutorial Usa CodeDeploy para desplegar una aplicacioacuten desdeGitHub (p 127)
Comportamientos de GitHub con CodeDeployTemas
bull Autenticacioacuten de GitHub con aplicaciones en CodeDeploy (p 64)bull Interaccioacuten de CodeDeploy con repositorios GitHub puacuteblicos y privados (p 66)bull Interaccioacuten de CodeDeploy con repositorios de GitHub administrados por la organizacioacuten (p 66)bull Implementacioacuten automaacutetica desde CodePipeline con CodeDeploy (p 66)
Autenticacioacuten de GitHub con aplicaciones en CodeDeploy
Una vez concedido a CodeDeploy permiso para interactuar con GitHub la asociacioacuten entre la cuenta deGitHub y la aplicacioacuten se almacena en CodeDeploy Es posible vincular la aplicacioacuten a otra cuenta deGitHub Tambieacuten se puede revocar el permiso para que CodeDeploy interactuacutee con GitHub
Versioacuten de API 2014-10-0664
AWS CodeDeploy Guiacutea del usuarioGitHub
Para vincular una cuenta de GitHub a una aplicacioacuten de CodeDeploy
1 Inicie sesioacuten enAWS Management Consoley abra la consola de CodeDeploy enhttpsconsoleawsamazoncomcodedeploy
Note
Inicie sesioacuten con la misma cuenta o informacioacuten de usuario de IAM que utilizoacute enIntroduccioacutena CodeDeploy (p 35)
2 En el panel de navegacioacuten expandaDesplegary despueacutesAplicaciones3 Elija la aplicacioacuten que desea vincular a otra cuenta de GitHub4 Si la aplicacioacuten no tiene un grupo de implementaciones seleccioneCreacioacuten de un grupo de
implementacionespara crear uno Para obtener maacutes informacioacuten consulte Creacioacuten de un grupo deimplementaciones con CodeDeploy (p 288) Se requiere un grupo de implementaciones para elegirCreate deployment (Crear implementacioacuten) en el paso siguiente
5 En Deployments (Implementaciones) elija Create deployment (Crear implementacioacuten)
Note
No es necesario crear una nueva implementacioacuten Actualmente esta es la uacutenica forma devincular una cuenta de GitHub distinta a una aplicacioacuten
6 En Deployment settings (Configuracioacuten de implementacioacuten) para Revision type (Tipo de revisioacuten) elijaMy application is stored in GitHub (Mi aplicacioacuten estaacute almacenada en GitHub)
7 Realice alguna de las siguientes acciones
bull Para crear una conexioacuten entre aplicaciones de AWS CodeDeploy y una cuenta de GitHub cierrela sesioacuten de GitHub en otra pestantildea del navegador web En GitHub token name (Nombre detoken de GitHub) escriba el nombre para identificar esta conexioacuten y luego elija Connect to GitHub(Conectarse a GitHub) La paacutegina web le pediraacute que autorice a CodeDeploy para que interactuacutee conGitHub para la aplicacioacuten Continuacutee en el paso 10
bull Para utilizar una conexioacuten que haya creado previamente seleccione su nombre en GitHub tokenname (Nombre de token de GitHub) y a continuacioacuten elija Connect to GitHub (Conectarse aGitHub) Continuacutee en el paso 8
bull Para crear una conexioacuten con una cuenta de GitHub distinta cierre la sesioacuten de GitHub en otrapestantildea del navegador web En GitHub token name (Nombre de token de GitHub) escriba elnombre para identificar la conexioacuten y luego elija Connect to GitHub (Conectarse a GitHub) Lapaacutegina web le pediraacute que autorice a CodeDeploy para que interactuacutee con GitHub para la aplicacioacutenContinuacutee en el paso 10
8 Si todaviacutea no ha iniciado sesioacuten en GitHub siga las instrucciones de la paacutegina Sign in para iniciarsesioacuten con la cuenta de GitHub a la que desea enlazar la aplicacioacuten
9 Elija Authorize application GitHub asignaraacute a CodeDeploy permiso para interactuar en nombre de lacuenta con la que ha iniciado sesioacuten para la aplicacioacuten seleccionada
10 Si no desea crear una implementacioacuten elija Cancel
Para revocar el permiso para que CodeDeploy interactuacutee con GitHub
1 Inicie sesioacuten en GitHub utilizando las credenciales de la cuenta de GitHub cuyos permisos desearevocar a AWS CodeDeploy
2 Abra GitHubAplicacionespaacutegina localizarCodeDeployen la lista de aplicaciones autorizadas ydespueacutes siga el procedimiento de GitHub para revocar la autorizacioacuten para una aplicacioacuten
Versioacuten de API 2014-10-0665
AWS CodeDeploy Guiacutea del usuarioEjemplos de integracioacuten de la comunidad
Interaccioacuten de CodeDeploy con repositorios GitHub puacuteblicos y privadosCodeDeploy permite la implementacioacuten de aplicaciones desde repositorios GitHub puacuteblicos y privadosAl conceder a CodeDeploy permiso para acceder a GitHub en su nombre CodeDeploy tendraacute acceso delectura y escritura a todos los repositorios GitHub privados a los que su cuenta de GitHub tenga accesoSin embargo CodeDeploy solo lee en los repositorios GitHub No escribiraacute nada en ninguno de susrepositorios de GitHub privados
Interaccioacuten de CodeDeploy con repositorios de GitHub administrados por laorganizacioacutenDe forma predeterminada los repositorios GitHub administrados por una organizacioacuten (a diferencia de losrepositorios puacuteblicos o privados de su cuenta personal) no conceden acceso a aplicaciones de terceroscomo es el caso de CodeDeploy Si intenta implementar coacutedigo desde un repositorio de GitHub de unaorganizacioacuten y esta ha definido restricciones a las aplicaciones de terceros la operacioacuten fallaraacute Existendos maneras de resolver este problema
bull Como miembro de la organizacioacuten puede solicitar al responsable que apruebe el acceso a CodeDeployLos pasos para presentar esta solicitud dependen de si ya ha autorizado a CodeDeploy para su cuentaindividualbull Si ha autorizado el acceso de CodeDeploy en su cuenta consulteSolicitar la aprobacioacuten de la
organizacioacuten para sus solicitudes autorizadasbull Si auacuten no ha autorizado el acceso de CodeDeploy en su cuenta consulteSolicitud de la aprobacioacuten de
una organizacioacuten para aplicaciones de tercerosbull El responsable de la organizacioacuten puede deshabilitar todas las restricciones a las aplicaciones de
terceros Para obtener informacioacuten consulteDeshabilitar las restricciones de aplicaciones de terceros
Para obtener maacutes informacioacuten consulteSobre las restricciones de aplicaciones de terceros
Implementacioacuten automaacutetica desde CodePipeline con CodeDeployEs posible activar una implementacioacuten desde CodePipeline cada vez que cambie el coacutedigo fuente Paraobtener maacutes informacioacuten consulteCodePipeline
Ejemplos de integracioacuten de la comunidadEn las siguientes secciones se incluyen enlaces a entradas de blogs artiacuteculos y ejemplos proporcionadosen la comunidad
Note
Estos enlaces se ofrecen solo con fines informativos y no deben considerarse una lista completa ouna anotacioacuten del contenido de los ejemplos AWS no se hace responsable del contenido ni de laexactitud del contenido externo
Entradas de blogsbull Automatizacioacuten del aprovisionamiento de CodeDeploy enAWS CloudFormation
Aprenda a aprovisionar la implementacioacuten de una aplicacioacuten en CodeDeploy medianteAWSCloudFormation
Fecha de publicacioacuten enero de 2016bull AWS Toolkit for EclipseIntegracioacuten a CodeDeploy (primera parte)
Versioacuten de API 2014-10-0666
AWS CodeDeploy Guiacutea del usuarioEntradas de blogs
AWS Toolkit for EclipseIntegracioacuten a CodeDeploy (segunda parte)
AWS Toolkit for EclipseIntegracioacuten a CodeDeploy (tercera parte)
Descubra coacutemo los desarrolladores de Java pueden utilizar el complemento CodeDeploy para Eclipsepara implementar aplicaciones web enAWSdirectamente desde entornos de desarrollo de Eclipse
Fecha de publicacioacuten febrero de 2015bull Despliegue automaacuteticamente desde GitHub utilizando CodeDeploy
Aprenda a utilizar implementaciones automaacuteticas de GitHub para CodeDeploy para crear unacanalizacioacuten de extremo a extremo desde el control de origen a las pruebas o los entornos deproduccioacuten
Fecha de publicacioacuten diciembre de 2014
Versioacuten de API 2014-10-0667
AWS CodeDeploy Guiacutea del usuarioTutorial Implementacioacuten de WordPress
en una instancia sin Windows
Tutoriales CodeDeployEsta seccioacuten incluye algunos tutoriales que le ayudan a aprender a utilizar CodeDeploy
Los procedimientos de estos tutoriales proporcionan sugerencias sobre la ubicacioacuten en la que almacenarlos archivos (por ejemplo ctemp) y los nombres que asignar a los buckets subcarpetas o archivos (porejemplo codeDeploydemobucket HelloWorldApp y CodeDeployDemo-EC2-Trustjson respectivamente)pero no estaacuten obligados a utilizarlas Solo tiene que recordar sustituir sus nombres y ubicaciones dearchivos a medida que realiza los procedimientos
Temasbull Tutorial Implementar WordPress en una instancia de Amazon EC2 (Amazon Linux o Red Hat
Enterprise Linux y Linux macOS o Unix) (p 68)bull Tutorial Despliega un laquohola mundoraquo aplicacioacuten con CodeDeploy (Windows Server) (p 87)bull Tutorial Implementar una aplicacioacuten en una instancia local con CodeDeploy (Windows Server Ubuntu
Server o Red Hat Enterprise Linux) (p 103)bull Tutorial UsarCodeDeploypara implementar una aplicacioacuten en un grupo de Auto Scaling (p 110)bull Tutorial Usa CodeDeploy para desplegar una aplicacioacuten desde GitHub (p 127)bull Tutorial Implementar un servicio de Amazon ECS (p 139)bull Tutorial Implementacioacuten de un servicio Amazon ECS con una prueba de validacioacuten (p 147)bull Tutorial Implementar una funcioacuten Lambda actualizada con CodeDeploy y laAWSModelo de aplicacioacuten
sin servidor de (p 156)
Tutorial Implementar WordPress en una instanciade Amazon EC2 (Amazon Linux o Red HatEnterprise Linux y Linux macOS o Unix)
En este tutorial podraacute implementar WordPress una herramienta de blogs y sistema de gestioacuten decontenidos de coacutedigo abierto basado en PHP y MySQL en una uacutenica instancia Amazon EC2 con AmazonLinux o Red Hat Enterprise Linux (RHEL)
iquestNo es lo que estaacute buscando
bull Para practicar la implementacioacuten en una instancia Amazon EC2 que se ejecuta en Windows ServerconsulteTutorial Despliega un laquohola mundoraquo aplicacioacuten con CodeDeploy (Windows Server) (p 87)
bull Para practicar la implementacioacuten en una instancia on-premises en lugar de en una instancia AmazonEC2 consulteTutorial Implementar una aplicacioacuten en una instancia local con CodeDeploy (WindowsServer Ubuntu Server o Red Hat Enterprise Linux) (p 103)
Los pasos de este tutorial se presentan desde la perspectiva de un equipo de desarrollo local con LinuxmacOS o Unix Aunque puede completar la mayoriacutea de los pasos en un equipo local con Windows debeadaptar los pasos que utilizan comandos como chmod y wget las aplicaciones como sed y las rutas dedirectorio como tmp
Antes de empezar este tutorial debe completar los requisitos previos indicados en Introduccioacuten aCodeDeploy (p 35) Entre ellos se encuentran la configuracioacuten de su cuenta de usuario de IAM lainstalacioacuten o actualizacioacuten de laAWS CLIy crear un perfil de instancia de IAM y un rol de servicio de
Temas
Versioacuten de API 2014-10-0668
AWS CodeDeploy Guiacutea del usuarioPaso 1 Lance una instancia Amazon EC2
bull Paso 1 Lance y configure una instancia Amazon Linux o Red Hat Enterprise Linux AmazonEC2 (p 69)
bull Paso 2 Configurar el contenido de origen para implementarlo en la instancia Amazon Linux o Red HatEnterprise Linux Amazon EC2 (p 70)
bull Paso 3 Cargue su aplicacioacuten de WordPress en Amazon S3 (p 74)bull Paso 4 Implemente la aplicacioacuten de WordPress (p 77)bull Paso 5 Actualiza y vuelve a implementar tu aplicacioacuten WordPress (p 82)bull Paso 6 Limpia tu aplicacioacuten de WordPress y recursos relacionados (p 85)
Paso 1 Lance y configure una instancia Amazon Linuxo Red Hat Enterprise Linux Amazon EC2Para implementar la aplicacioacuten de WordPress con CodeDeploy necesitaraacute una instancia Amazon EC2 conAmazon Linux o Red Hat Enterprise Linux (RHEL) La instancia Amazon EC2 requiere una nueva regla deseguridad de entrada que permita las conexiones HTTP Esta regla es necesaria para poder ver la paacuteginade WordPress en un navegador una vez que se haya implementado
Siga las instrucciones en Creacioacuten de una instancia de Amazon EC2 para CodeDeploy (p 217) Al llegara las instrucciones sobre la asignacioacuten de una etiqueta de instancia Amazon EC2 a la instancia aseguacuteresede especificar la clave de etiquetaNamey el valor de etiqueta deCodeDeployDemo (Si especifica otra claveu otro valor de etiqueta las instrucciones de Paso 4 Implemente la aplicacioacuten de WordPress (p 77)pueden producir resultados inesperados)
Una vez completadas las instrucciones para lanzar la instancia Amazon EC2 vuelva a esta paacutegina ycontinuacutee con la seccioacuten siguiente No continuacutee enCrear una aplicacioacuten con CodeDeploy (p 273)comopaso siguiente
Connect con la instancia Amazon Linux o RHEL Amazon EC2Una vez lanzada la nueva instancia Amazon EC2 siga estas instrucciones para practicar la conexioacuten a lamisma
1 Usarsshcomando (o un emulador de terminal con la funcioacuten SSH comoPuTTY) para conectarsecon la instancia Amazon Linux o RHEL Amazon EC2 Necesitaraacute la direccioacuten DNS puacuteblica de lainstancia y la clave privada del key pair que utilizoacute al iniciar la instancia Amazon EC2 Para obtenermaacutes informacioacuten consulte Conectar con la instancia
Por ejemplo si la direccioacuten DNS puacuteblica esec2-01-234-567-890compute-1amazonawscomy el key pair de instancia Amazon EC2 para el acceso SSH se denominacodedeploydemopemdeberiacutea escribir
ssh -i pathtocodedeploydemopem ec2-userec2-01-234-567-890compute-1amazonawscom
Reemplazarpathtocodedeploydemopemcon el camino a supemy la direccioacuten DNS deejemplo con la direccioacuten de la instancia Amazon EC2 con Amazon Linux o RHEL
Note
Si aparece un mensaje de error indicando que los permisos del archivo de clave sondemasiado abiertos deberaacute restringirlos de modo que solo tenga acceso el usuario actual(usted) Por ejemplo con elchmoden Linux macOS o Unix escriba
chmod 400 pathtocodedeploydemopem
Versioacuten de API 2014-10-0669
AWS CodeDeploy Guiacutea del usuarioPaso 2 Configurar el contenido de origen
2 Una vez que haya iniciado sesioacuten veraacute el roacutetulo de AMI para la instancia Amazon EC2 Para AmazonLinux deberiacutea verse lo siguiente
__| __|_ ) _| ( Amazon Linux AMI ___|___|___|
3 Ahora ya puede cerrar la sesioacuten en la instancia Amazon EC2 en ejecucioacutenWarning
No interrumpa ni termine la instancia Amazon EC2 De lo contrario CodeDeploy no podraacuteimplementar en ella
Agregar una regla de entrada que permita el traacutefico HTTP a suinstancia de Amazon Linux o RHEL Amazon EC2El siguiente paso confirma que la instancia Amazon EC2 tiene un puerto HTTP abierto para que se puedaver la paacutegina de inicio de la aplicacioacuten de WordPress implementada en un navegador
1 Inicie sesioacuten en la AWS Management Console y abra la consola de Amazon EC2 en httpsconsoleawsamazoncomec2
2 ElegirInstanciasy a continuacioacuten elija su instancia3 En la paacuteginaDescripcioacutenpestantildea enGrupos de seguridad eligeVer reglas de entrada
Debe aparecer una lista de reglas en el grupo de seguridad como el siguiente
Security Groups associated with i-1234567890abcdef0 Ports Protocol Source launch-wizard-N 22 tcp 00000
4 UNDERGrupos de seguridad elija el grupo de seguridad para la instancia Amazon EC2 Podriacuteallamarselaunch-wizard-N La N del nombre es un nuacutemero asignado al grupo de seguridad cuandose creoacute la instancia
Elija la pestantildea Inbound (Reglas entrantes) Si el grupo de seguridad de la instancia estaacute configuradocorrectamente deberiacutea ver una regla con los siguientes valores
bull Type HTTPbull Protocolo TCPbull Rango de puertos 80bull Fuente 00000
5 Si no ve una regla con estos valores utilice los procedimientos descritos enAgregar reglas a un grupode seguridadpara antildeadirlos a una nueva regla de seguridad
Paso 2 Configurar el contenido de origen paraimplementarlo en la instancia Amazon Linux o Red HatEnterprise Linux Amazon EC2Ha llegado el momento de configurar el contenido de origen de su aplicacioacuten para tener algo queimplementar en la instancia
Versioacuten de API 2014-10-0670
AWS CodeDeploy Guiacutea del usuarioPaso 2 Configurar el contenido de origen
Temasbull Obtener el coacutedigo fuente (p 71)bull Crear scripts para ejecutar la aplicacioacuten (p 72)bull Agregar un archivo de especificacioacuten de la aplicacioacuten (p 73)
Obtener el coacutedigo fuenteEn este tutorial implementaraacute la plataforma de publicacioacuten de contenido WordPress desde su equipo dedesarrollo en la instancia Amazon EC2 de destino Para obtener el coacutedigo fuente de WordPress puedeutilizar llamadas a liacutenea de comandos integradas O bien si tiene instalado Git en su equipo de desarrollopuede utilizarlo en su lugar
Para estos pasos suponemos que ha descargado una copia del coacutedigo fuente de WordPress en eldirectorio tmp del equipo de desarrollo (Puede elegir cualquier directorio que desee pero no olvidesustituir la ubicacioacuten por tmp siempre que se especifique en estos pasos)
Elija una de las dos opciones siguientes para copiar los archivos de coacutedigo fuente de WordPress en elequipo de desarrollo La primera opcioacuten utiliza llamadas a liacutenea de comandos integradas La segundaopcioacuten utiliza Git
Temasbull Para obtener una copia del coacutedigo fuente de WordPress (llamadas a liacutenea de comandos
integradas) (p 71)bull Para obtener una copia del coacutedigo fuente de WordPress (Git) (p 72)
Para obtener una copia del coacutedigo fuente de WordPress (llamadas a liacutenea decomandos integradas)
1 Llame al comando wget para descargar una copia del coacutedigo fuente de WordPress como unarchivo zip en el directorio actual
wget httpsgithubcomWordPressWordPressarchivemasterzip
2 Ejecute los comandos unzip mkdir cp y rm para
bull Descomprimir el archivo zip master en el directorio (carpeta) tmpWordPress_Tempbull Copiar el contenido descomprimido en la carpeta de destino tmpWordPressbull Eliminar la carpeta temporal tmpWordPress_Temp y el archivo master
Ejecute los comandos de uno en uno
unzip master -d tmpWordPress_Temp
mkdir -p tmpWordPress
cp -paf tmpWordPress_TempWordPress-master tmpWordPress
rm -rf tmpWordPress_Temp
rm -f master
Versioacuten de API 2014-10-0671
AWS CodeDeploy Guiacutea del usuarioPaso 2 Configurar el contenido de origen
De este modo se queda con un conjunto de archivos de coacutedigo fuente de WordPress limpio en lacarpeta tmpWordPress
Para obtener una copia del coacutedigo fuente de WordPress (Git)
1 Descargue e instale Git en el equipo de desarrollo2 En la carpeta tmpWordPress ejecute el comando git init3 Ejecute el comando git clone para clonar el repositorio de WordPress puacuteblico creando su propia copia
de eacutel en la carpeta de destino tmpWordPress
git clone httpsgithubcomWordPressWordPressgit tmpWordPress
De este modo se queda con un conjunto de archivos de coacutedigo fuente de WordPress limpio en lacarpeta tmpWordPress
Crear scripts para ejecutar la aplicacioacutenA continuacioacuten cree una carpeta y scripts en el directorio CodeDeploy utiliza estos scripts para configurare implementar la revisioacuten de la aplicacioacuten en la instancia Amazon EC2 de destino Puede utilizar cualquiereditor de texto para crear los scripts
1 Cree un directorio de scripts en la copia del coacutedigo fuente de WordPress
mkdir -p tmpWordPressscripts
2 Cree un archivo install_dependenciessh en tmpWordPressscripts Antildeada las liacuteneassiguientes al archivo Este script install_dependenciessh instala Apache MySQL y PHPTambieacuten antildeade compatibilidad con MySQL a PHP
binbashsudo amazon-linux-extras install php74sudo yum install -y httpd mariadb-server php
3 Cree un archivo start_serversh en tmpWordPressscripts Antildeada las liacuteneas siguientes alarchivo Este script start_serversh inicia Apache y MySQL
binbashsystemctl start mariadbservicesystemctl start httpdservicesystemctl start php-fpmservice
4 Cree un archivo stop_serversh en tmpWordPressscripts Antildeada las liacuteneas siguientes alarchivo Este script stop_serversh detiene Apache y MySQL
binbashisExistApp=pgrep httpdif [[ -n $isExistApp ]] thensystemctl stop httpdservicefiisExistApp=pgrep mysqldif [[ -n $isExistApp ]] thensystemctl stop mariadbservice
Versioacuten de API 2014-10-0672
AWS CodeDeploy Guiacutea del usuarioPaso 2 Configurar el contenido de origen
fiisExistApp=pgrep php-fpmif [[ -n $isExistApp ]] thensystemctl stop php-fpmservice
fi
5 Cree un archivo create_test_dbsh en tmpWordPressscripts Antildeada las liacuteneas siguientesal archivo Este script create_test_dbsh utiliza MySQL para crear una base de datos test paraWordPress
binbashmysql -uroot ltltCREATE_TEST_DBCREATE DATABASE IF NOT EXISTS testCREATE_TEST_DB
6 Por uacuteltimo cree un script change_permissionssh en tmpWordPressscripts Esto se utilizapara cambiar los permisos de carpeta en Apache
Important
Este script ha actualizado los permisos de la carpeta tmpWordPress de modo quecualquiera pueda escribir en ella Esto es necesario para que WordPress pueda escribiren su base de datos durante Paso 5 Actualiza y vuelve a implementar tu aplicacioacutenWordPress (p 82) Una vez configurada la aplicacioacuten de WordPress ejecute el siguientecomando para actualizar los permisos con una configuracioacuten maacutes segura
chmod -R 755 varwwwhtmlWordPress
binbashchmod -R 777 varwwwhtmlWordPress
7 Conceda permisos ejecutables a todos los scripts En la liacutenea de comando escriba
chmod +x tmpWordPressscripts
Agregar un archivo de especificacioacuten de la aplicacioacutenA continuacioacuten agregue un archivo de especificacioacuten de la aplicacioacuten (archivo AppSpec) unYAMLarchivocon formato utilizado por CodeDeploy para
bull Asignar los archivos de origen de la revisioacuten de la aplicacioacuten a sus destinos en la instancia de AmazonEC2 de destino
bull Especificar permisos personalizados para los archivos implementadosbull Especifique los scripts a ejecutarse en la instancia de Amazon EC2 de destino durante la
implementacioacuten
El archivo AppSpec debe denominarseappspecyml Debe colocarse en el directorio raiacutez del coacutedigofuente de la aplicacioacuten En este tutorial el directorio raiacutez es tmpWordPress
Mediante su editor de texto cree un archivo denominado appspecyml Antildeada las liacuteneas siguientes alarchivo
Versioacuten de API 2014-10-0673
AWS CodeDeploy Guiacutea del usuarioPaso 3 Cargar la aplicacioacuten en Amazon S3
version 00os linuxfiles - source destination varwwwhtmlWordPresshooks BeforeInstall - location scriptsinstall_dependenciessh timeout 300 runas root AfterInstall - location scriptschange_permissionssh timeout 300 runas root ApplicationStart - location scriptsstart_serversh - location scriptscreate_test_dbsh timeout 300 runas root ApplicationStop - location scriptsstop_serversh timeout 300 runas root
CodeDeploy utiliza este archivo AppSpec para copiar todos los archivos en latmpWordPresscarpetade la maacutequina de desarrollo en elvarwwwhtmlWordPressen la instancia de Amazon EC2 dedestino Durante la implementacioacuten CodeDeploy ejecuta los scripts especificados comorootenlavarwwwhtmlWordPressscriptscarpeta en la instancia de Amazon EC2 de destinocuando se producen los eventos especificados durante el ciclo de vida de la implementacioacuten porejemploBeforeInstallyAfterInstall Si cualquiera de estos scripts tarda maacutes de 300 segundos (5minutos) en ejecutarse CodeDeploy detiene la implementacioacuten y la marca como erroacutenea
Para obtener maacutes informacioacuten sobre la configuracioacuten consulte Referencia del archivo CodeDeployAppSpec (p 407)
Important
Las ubicaciones y el nuacutemero de espacios entre cada uno de los elementos de este archivo sonimportantes Si el espaciado es incorrecto CodeDeploy genera un error que puede resultar difiacutecilde depurar Para obtener maacutes informacioacuten consulte Espaciado de archivos AppSpec (p 440)
Paso 3 Cargue su aplicacioacuten de WordPress enAmazon S3Ahora prepararaacute y cargaraacute el contenido de origen en una ubicacioacuten desde la que CodeDeploy puedaimplementarla Las siguientes instrucciones explican coacutemo aprovisionar un bucket de Amazon S3preparar los archivos de la revisioacuten de la aplicacioacuten para el bucket agrupar los archivos de la revisioacuten y acontinuacioacuten enviar la revisioacuten al bucket
Note
Aunque no se trata en este tutorial puede utilizar CodeDeploy para implementar aplicacionesdesde repositorios de GitHub en instancias Para obtener maacutes informacioacuten consulte Integracioacutende CodeDeploy con GitHub (p 63)
Temasbull Aprovisionar un bucket de Amazon S3 (p 75)bull Preparar los archivos de la aplicacioacuten para el depoacutesito (p 76)
Versioacuten de API 2014-10-0674
AWS CodeDeploy Guiacutea del usuarioPaso 3 Cargar la aplicacioacuten en Amazon S3
bull Agrupe los archivos de la aplicacioacuten en un uacutenico archivo de archivo e inserte el archivo dearchivo (p 77)
Aprovisionar un bucket de Amazon S3Cree un contenedor de almacenamiento obaldeen Amazon S3 o utilice un bucket existente Aseguacuteresede que puede cargar la revisioacuten en el bucket y que las instancias de Amazon EC2 utilizadas en lasimplementaciones pueden descargar la revisioacuten del bucket
Puede utilizar elAWS CLI la consola de Amazon S3 o las API de Amazon S3 para crear un bucket deAmazon S3 Despueacutes de crear el bucket aseguacuterese de que concede permisos de acceso al bucket y a suusuario de IAM
Note
Los nombres de bucket deben ser uacutenicos en Amazon S3 para todosAWScuentas Si nopuede utilizar codedeploydemobucket pruebe otro nombre de bucket por ejemplocodedeploydemobucket seguido de un guion y sus iniciales o alguacuten otro identificador uacutenicoA continuacioacuten cuando aparezca codedeploydemobucket en este tutorial aseguacuterese desustituirlo por el nombre de su bucketEl bucket de Amazon S3 debe crearse en el mismoAWSregioacuten en la que se lanzan las instanciasde Amazon EC2 de destino Por ejemplo si crea el bucket en la regioacuten EE UU Este (Norte deVirginia) las instancias de Amazon EC2 de destino deben lanzarse en la regioacuten EE UU Este(Norte de Virginia)
Temasbull Para crear un bucket de Amazon S3 (CLI) (p 75)bull Para crear un bucket de Amazon S3 (consola) (p 75)bull Conceder permisos al bucket de Amazon S3 y a su usuario de IAM (p 75)
Para crear un bucket de Amazon S3 (CLI)Llame a lambpara crear un bucket de Amazon S3 denominadocodedeploydemobucket
aws s3 mb s3codedeploydemobucket
Para crear un bucket de Amazon S3 (consola)
1 Abra la consola de Amazon S3 en httpsconsoleawsamazoncoms32 En la consola de Amazon S3 elijacrear un bucket3 En el cuadro Bucket name (Nombre del bucket) escriba un nombre para el bucket4 En la lista Region (Regioacuten) elija la regioacuten de destino y a continuacioacuten seleccione Create (Crear)
Conceder permisos al bucket de Amazon S3 y a su usuario de IAMDebe tener permisos para cargar en el bucket de Amazon S3 Puede especificar estos permisos medianteuna poliacutetica de bucket de Amazon S3 Por ejemplo en la siguiente poliacutetica de bucket de Amazon S3 el usodel caraacutecter comodiacuten () permiteAWScuenta111122223333para cargar archivos en cualquier directorio delbucket de Amazon S3 denominadocodedeploydemobucket
Statement [ Action [
Versioacuten de API 2014-10-0675
AWS CodeDeploy Guiacutea del usuarioPaso 3 Cargar la aplicacioacuten en Amazon S3
s3PutObject ] Effect Allow Resource arnawss3codedeploydemobucket Principal AWS [ 111122223333 ] ]
Para ver losAWSID de la cuenta consulteBuacutesqueda de suAWSID de la cuenta de
Ahora es un buen momento para verificar que el bucket de Amazon S3 permitiraacute las solicitudes dedescarga de cada instancia de Amazon EC2 participante Puede especificarla mediante una poliacutetica debucket de Amazon S3 Por ejemplo en la siguiente poliacutetica de bucket de Amazon S3 el uso del caraacutectercomodiacuten () permite cualquier instancia de Amazon EC2 con un perfil de instancia de IAM adjunto quecontenga el ARNarnawsiam444455556666roleCodeDeployDemopara descargar archivosdesde cualquier directorio del bucket de Amazon S3 denominadocodedeploydemobucket
Statement [ Action [ s3Get s3List ] Effect Allow Resource arnawss3codedeploydemobucket Principal AWS [ arnawsiam444455556666roleCodeDeployDemo ] ]
Para obtener informacioacuten acerca de coacutemo generar y asociar una poliacutetica de bucket de Amazon S3consulteEjemplos de poliacutetica de bucket
Para obtener informacioacuten acerca de coacutemo crear y asociar una poliacutetica de IAM consulteTrabajo conpoliacuteticas
Preparar los archivos de la aplicacioacuten para el depoacutesitoAseguacuterese de que los archivos de la aplicacioacuten de WordPress el archivo AppSpec y los scripts esteacutenorganizados en el equipo de desarrollo de manera similar a la siguiente
tmp |--WordPress |-- appspecyml |-- scripts | |-- change_permissionssh | |-- create_test_dbsh | |-- install_dependenciessh | |-- start_serversh | |-- stop_serversh |-- wp-admin
Versioacuten de API 2014-10-0676
AWS CodeDeploy Guiacutea del usuarioPaso 4 Implementar la aplicacioacuten
| |-- (various files) |-- wp-content | |-- (various files) |-- wp-includes | |-- (various files) |-- indexphp |-- licensetxt |-- readmehtml |-- (various files ending with php)
Agrupe los archivos de la aplicacioacuten en un uacutenico archivo dearchivo e inserte el archivo de archivoAgrupe los archivos de la aplicacioacuten de WordPress y el archivo de AppSpec en un archivo dealmacenamiento (lo que se conoce como una aplicacioacuten)revisioacuten)
Note
Es posible que se cobre por almacenar objetos en un bucket y por transferir revisiones de laaplicacioacuten dentro y fuera de un bucket Para obtener maacutes informacioacuten consulte Precios deAmazon S3
1 En el equipo de desarrollo cambie a la carpeta en la que se almacenan los archivos
cd tmpWordPress
Note
Si no cambia a esta carpeta la agrupacioacuten del archivo comenzaraacute en su carpeta actualPor ejemplo si la carpeta actual es tmp en lugar de tmpWordPress la agrupacioacutencomenzaraacute con los archivos y subcarpetas de la carpeta tmp lo que puede incluir algo maacutesque la subcarpeta WordPress
2 Ejecute el comando create-application para registrar una aplicacioacuten nueva denominadaWordPress_App
aws deploy create-application --application-name WordPress_App
3 Llame a CodeDeploypushpara agrupar los archivos cargar las revisiones en Amazon S3 y registra enCodeDeploy sobre la revisioacuten cargada todo con una accioacuten
aws deploy push --application-name WordPress_App --s3-location s3codedeploydemobucketWordPressAppzip --ignore-hidden-files
Este comando agrupa los archivos del directorio actual (excepto los archivos ocultos) en unuacutenico archivo de almacenamiento denominadoWordPressAppzip carga la revisioacuten enelcodedeploydemobuckety registra informacioacuten con CodeDeploy sobre la revisioacuten cargada
Paso 4 Implemente la aplicacioacuten de WordPressAhora implementaraacute la revisioacuten de aplicacioacuten de WordPress de ejemplo que cargoacute en Amazon S3 Puedeutilizar elAWS CLIo la consola de CodeDeploy para implementar la revisioacuten y monitorizar el progreso dela implementacioacuten Una vez implementada correctamente la revisioacuten de la aplicacioacuten comprobaraacute losresultados
Versioacuten de API 2014-10-0677
AWS CodeDeploy Guiacutea del usuarioPaso 4 Implementar la aplicacioacuten
Temasbull Implemente la revisioacuten de la aplicacioacuten con CodeDeploy (p 78)bull Monitorizacioacuten y solucioacuten de problemas de la implementacioacuten (p 80)bull Verificacioacuten de la implementacioacuten (p 81)
Implemente la revisioacuten de la aplicacioacuten con CodeDeployUtilice la AWS CLI o la consola para implementar la revisioacuten de la aplicacioacuten
Temasbull Para implementar la revisioacuten de la aplicacioacuten (CLI) (p 78)bull Para implementar la revisioacuten de la aplicacioacuten (consola) (p 79)
Para implementar la revisioacuten de la aplicacioacuten (CLI)
1 La implementacioacuten necesita un grupo de implementaciones Sin embargo para crear el grupo deimplementaciones primero necesita un ARN de rol de servicio Un rol de servicio es un rol de IAM queconcede a un servicio permiso para actuar en su nombre En este caso el rol de servicio concede aCodeDeploy permiso de acceso a sus instancias de Amazon EC2 para ampliar (leer) sus etiquetas deinstancia de Amazon EC2
Ya debe haber seguido las instrucciones de Creacioacuten de un rol de servicio de (CLI) (p 39) para crearun rol de servicio Para obtener el ARN del rol de servicio consulte Obtenga el ARN del rol de servicio(CLI) (p 41)
2 Ahora que tiene el rol de servicio ARN llame alcreate-deployment-grouppara crear ungrupo de implementaciones denominadoWordPress_DepGroup asociado a la aplicacioacutendenominadaWordPress_App utilizando la etiqueta de Amazon EC2 denominadaCodeDeployDemoyconfiguracioacuten de implementacioacuten denominadaCodeDeployDefaultOneAtATime
aws deploy create-deployment-group --application-name WordPress_App --deployment-group-name WordPress_DepGroup --deployment-config-name CodeDeployDefaultOneAtATime --ec2-tag-filters Key=NameValue=CodeDeployDemoType=KEY_AND_VALUE --service-role-arn serviceRoleARN
Note
Lacreate-deployment-groupproporciona soporte para crear activadores que dan comoresultado el enviacuteo de notificaciones de Amazon SNS a los suscriptores de temas sobreeventos especiacuteficos en implementaciones e instancias El comando tambieacuten admite opcionespara revertir automaacuteticamente implementaciones y configurar alarmas para detener lasimplementaciones cuando se cumplen los umbrales de supervisioacuten en alarmas de AmazonCloudWatch Los comandos de estas acciones no se incluyen en este tutorial
3 Antes de crear una implementacioacuten las instancias del grupo de implementacioacuten deben tener instaladoel agente de CodeDeploy instalado Puede instalar el agente desde la liacutenea de comandos con AWSSystems Manager mediante el comando siguiente
aws ssm create-association --name AWS-ConfigureAWSPackage --targets Key=tagNameValues=CodeDeployDemo --parameters action=Installname=AWSCodeDeployAgent --schedule-expression cron(0 2 SUN )
Versioacuten de API 2014-10-0678
AWS CodeDeploy Guiacutea del usuarioPaso 4 Implementar la aplicacioacuten
Este comando crea una asociacioacuten en Systems Manager State Manager que instalaraacute el agentede CodeDeploy y despueacutes intentaraacute actualizarlo todos los domingos por la mantildeana a las 200Para obtener maacutes informacioacuten sobre el agente de CodeDeploy consulteTrabajar con el agente deCodeDeploy Para obtener maacutes informacioacuten acerca de Systems Manager consulteiquestQueacute es AWSSystems Manager
4 Ejecute ahora el comando create-deployment para crear una implementacioacuten asociada a la aplicacioacutenWordPress_App la configuracioacuten de implementacioacuten CodeDeployDefaultOneAtATimey el grupo de implementaciones WordPress_DepGroup utilizando la revisioacuten de la aplicacioacutenWordPressAppzip del bucket codedeploydemobucket
aws deploy create-deployment --application-name WordPress_App --deployment-config-name CodeDeployDefaultOneAtATime --deployment-group-name WordPress_DepGroup --s3-location bucket=codedeploydemobucketbundleType=zipkey=WordPressAppzip
Para implementar la revisioacuten de la aplicacioacuten (consola)
1 Antes de utilizar la consola de CodeDeploy para implementar la revisioacuten de la aplicacioacuten necesita unARN de rol de servicio ARN Un rol de servicio es un rol de IAM que concede a un servicio permisopara actuar en su nombre En este caso el rol de servicio concede a CodeDeploy permiso de accesoa sus instancias de Amazon EC2 para ampliar (leer) sus etiquetas de instancia de Amazon EC2
Ya debe haber seguido las instrucciones de Creacioacuten de un rol de servicio de (consola) (p 37) paracrear un rol de servicio Para obtener el ARN del rol de servicio consulte Obtenga el ARN del rol deservicio (consola) (p 40)
2 Ahora que tiene el ARN use la consola de CodeDeploy para implementar la revisioacuten de la aplicacioacuten
Inicie sesioacuten en laAWS Management Consoley abra la consola de CodeDeploy enhttpsconsoleawsamazoncomcodedeploy
Note
Inicie sesioacuten con la misma cuenta o informacioacuten de usuario de IAM que utilizoacute enIntroduccioacutena CodeDeploy (p 35)
3 En el panel de navegacioacuten expandaDesplegary despueacutesAplicaciones4 En la lista de aplicaciones elijaAplicacioacuten WordPress_5 En la pestantildea Deployment groups (Grupos de implementaciones) elija Create deployment group
(Crear grupo de implementaciones)6 En Deployment group name (Nombre de grupo de implementacioacuten) escriba WordPress_DepGroup7 En Deployment type elija In-place deployment8 EnConfiguracioacuten del entorno seleccioneInstancias de Amazon EC29 EnConfiguracioacuten del agente conAWS Systems Manager mantenga los valores predeterminados10 En Key (Clave) introduzca Name11 En Valor escriba CodeDeployDemo
Note
Despueacutes de escribirCodeDeployDemo un1debe aparecer enInstancias coincidpara confirmarque CodeDeploy ha encontrado una instancia de Amazon EC2 que coincida
12 EnConfiguracioacuten de implementacioacuten eligeCodeDeployDefaultOneAtATime13 En Service role ARN (ARN de rol de servicio) elija el ARN del rol de servicio y seleccione Create
deployment group (Crear grupo de implementacioacuten)
Versioacuten de API 2014-10-0679
AWS CodeDeploy Guiacutea del usuarioPaso 4 Implementar la aplicacioacuten
14 Elija Create deployment (Crear implementacioacuten)15 En Deployment group (Grupo de implementacioacuten) elija WordPress_DepGroup16 Junto aRepository type eligeMi aplicacioacuten se almacena en Amazon S3 EnUbicacioacuten de revisioacuten
introduzca la ubicacioacuten de la revisioacuten de aplicacioacuten de WordPress de ejemplo que cargoacute antes enAmazon S3 Para obtener la ubicacioacuten
a Abra la consola de Amazon S3 en httpsconsoleawsamazoncoms3b En la lista de buckets elijacodedeploydemobucket(o el nombre del bucket en el que cargoacute la
revisioacuten de la aplicacioacuten)c En la lista de objetos elijaWordPressAppzip que esd En la pestantildea Overview (Informacioacuten general) copie el valor del campo Link (Enlace) en el
portapapeles
Debe ser similar al siguiente
httpss3amazonawscomcodedeploydemobucketWordPressAppzip
e Regrese a la consola de CodeDeploy y enUbicacioacuten de revisioacuten pegue elViacutenculovalor de campo17 Si en la lista File type (Tipo de archivo) aparece un mensaje en el que se indica que no se ha podido
detectar el tipo de archivo seleccione zip18 (Opcional) Escriba un comentario en el cuadro Deployment description19 AmpliarAnulaciones de grupos de implementaciones y deConfiguracioacuten de implementacioacuten
eligeCodeDeployDefaultOneAtATime20 Elija Start deployment (Iniciar la implementacioacuten) En la paacutegina Deployments se mostraraacute informacioacuten
sobre la implementacioacuten que acaba de crear
Monitorizacioacuten y solucioacuten de problemas de la implementacioacutenUtilice la AWS CLI o la consola para monitorizar y resolver problemas de la implementacioacuten
Temasbull Para monitorizar y solucionar problemas en la implementacioacuten (CLI) (p 80)bull Para monitorizar y resolver problemas de la implementacioacuten (consola) (p 81)
Para monitorizar y solucionar problemas en la implementacioacuten (CLI)
1 Obtenga el ID de la implementacioacuten para ello ejecute el comando list-deployments para la aplicacioacutenWordPress_App y el grupo de implementaciones WordPress_DepGroup
aws deploy list-deployments --application-name WordPress_App --deployment-group-name WordPress_DepGroup --query deployments --output text
2 Llame al comando get-deployment con el ID de la implementacioacuten
aws deploy get-deployment --deployment-id deploymentID --query deploymentInfostatus --output text
3 El comando devuelve el estado general de la implementacioacuten Si todo sale bien el valor esSucceeded
Si el estado general esFailed puede llamar a comandos comoinstancias de implementacioacuten delistasyget-deployment-instancepara solucionar los problemas Si desea conocer maacutes opcionesde solucioacuten de problemas consulte Anaacutelisis de archivos de registro para investigar los errores deimplementacioacuten en instancias (p 473)
Versioacuten de API 2014-10-0680
AWS CodeDeploy Guiacutea del usuarioPaso 4 Implementar la aplicacioacuten
Para monitorizar y resolver problemas de la implementacioacuten (consola)
En la paacuteginaImplementacionesen la consola de CodeDeploy puede monitorizar el estado de laimplementacioacuten en laEstadocolumn
Para obtener maacutes informacioacuten acerca de la implementacioacuten sobre todo si el valor de la columna Statustiene un valor distinto de Succeeded
1 En la tabla Deployments (Implementaciones) elija el nombre de la implementacioacuten Cuando seproduce un error en una implementacioacuten aparece un mensaje que describe el motivo del error
2 En Actividad de instancia aparece maacutes informacioacuten sobre la implementacioacuten Cuando se unaimplementacioacuten falla es posible que pueda determinar las instancias de Amazon EC2 y el paso delproceso en el que se ha producido el error
3 Si desea continuar con la solucioacuten de problemas puede aplicar una teacutecnica como la descrita en ViewInstance Details (p 258) Tambieacuten puede analizar los archivos de log de la implementacioacuten en unainstancia de Amazon EC2 Para obtener maacutes informacioacuten consulte Anaacutelisis de archivos de registropara investigar los errores de implementacioacuten en instancias (p 473)
Verificacioacuten de la implementacioacutenUna vez efectuada con eacutexito la implementacioacuten puede comprobar que la instalacioacuten de WordPressfunciona Utilice la direccioacuten DNS puacuteblica de la instancia de Amazon EC2 seguida deWordPress paraver el sitio en un navegador web (Para obtener el valor de DNS puacuteblico en la consola de Amazon EC2elija la instancia de Amazon EC2 y enDescripcioacuten busque el valor deDNS puacuteblico)
Por ejemplo si la direccioacuten DNS puacuteblica de la instancia de Amazon EC2esec2-01-234-567-890compute-1amazonawscom usariacutea la siguiente direccioacuten URL
httpec2-01-234-567-890compute-1amazonawscomWordPress
Cuando vea el sitio en el navegador deberiacutea aparecer una paacutegina de bienvenida de WordPress que tieneun aspecto similar al siguiente
Versioacuten de API 2014-10-0681
AWS CodeDeploy Guiacutea del usuarioPaso 5 Actualiza y vuelve a desplegar tu aplicacioacuten
Si la instancia de Amazon EC2 no tiene ninguna regla entrante HTTP en su grupo de seguridad la paacuteginade bienvenida de WordPress no apareceraacute Si aparece un mensaje que indica que el servidor remotono responde aseguacuterese de que el grupo de seguridad de la instancia de Amazon EC2 tiene la regla deentrada Para obtener maacutes informacioacuten consulte Agregar una regla de entrada que permita el traacuteficoHTTP a su instancia de Amazon Linux o RHEL Amazon EC2 (p 70)
Paso 5 Actualiza y vuelve a implementar tu aplicacioacutenWordPressAhora que ha implementado correctamente la revisioacuten de la aplicacioacuten actualice el coacutedigo de WordPressen el equipo de desarrollo y a continuacioacuten utilice CodeDeploy para volver a implementar el sitioPosteriormente deberiacutea poder ver los cambios en el coacutedigo en la instancia de Amazon EC2
Temasbull Configurar el sitio de WordPress (p 82)bull Modificacioacuten del sitio (p 83)bull Volver a implementar el sitio (p 83)
Configurar el sitio de WordPressPara ver los efectos del cambio del coacutedigo termine de configurar el sitio de WordPress para tener unainstalacioacuten plenamente funcional
1 Escriba la URL del sitio web en el navegador web La URL es la direccioacuten DNS puacuteblicade la instancia Amazon EC2 con unaWordPress Para este sitio de WordPress de
Versioacuten de API 2014-10-0682
AWS CodeDeploy Guiacutea del usuarioPaso 5 Actualiza y vuelve a desplegar tu aplicacioacuten
ejemplo (y la direccioacuten DNS puacuteblica de la instancia Amazon EC2) la URL eshttpec2-01-234-567-890compute-1amazonawscomWordPress
2 Si no ha configurado el sitio todaviacutea aparece la paacutegina de bienvenida predeterminada de WordPressElija iexclVamos
3 En la paacutegina de configuracioacuten de la base de datos escriba los siguientes valores para utilizar la basede datos MySQL predeterminada
bull Database Name (Nombre de la base de datos) testbull User Name (Nombre del usuario) rootbull Contrasentildea Deje en blancobull Database Host (Host de base de datos) localhostbull Table Prefix (Prefijo de tabla) wp_
Elija Submit para configurar la base de datos4 Continuacutee con la configuracioacuten del sitio En la paacutegina Welcome rellene los valores deseados y luego
seleccione Install WordPress Cuando se haya completado la instalacioacuten puede iniciar sesioacuten en elpanel
Important
Durante la implementacioacuten de la aplicacioacuten de WordPress el script change_permissionsshha actualizado los permisos de la carpeta tmpWordPress de forma que cualquiera puedeescribir en ella Este es un buen momento para ejecutar el siguiente comando para restringir lospermisos de forma que solo usted el propietario pueda escribir en ella
chmod -R 755 varwwwhtmlWordPress
Modificacioacuten del sitioPara modificar el sitio de WordPress vaya a la carpeta de la aplicacioacuten en el equipo de desarrollo
cd tmpWordPress
Para modificar algunos colores del sitio en el archivo wp-contentthemestwentyfifteenstylecss utilice un editor de texto o sed para cambiar fff a 768331
En Linux u otros sistemas con sed GNU utilice
sed -i sfff768331g wp-contentthemestwentyfifteenstylecss
En macOS Unix u otros sistemas con sed BSD utilice
sed -i sfff768331g wp-contentthemestwentyfifteenstylecss
Volver a implementar el sitioAhora que ha modificado el coacutedigo del sitio utilice Amazon S3 y CodeDeploy para volver a implementar elsitio
Versioacuten de API 2014-10-0683
AWS CodeDeploy Guiacutea del usuarioPaso 5 Actualiza y vuelve a desplegar tu aplicacioacuten
Agrupe y cargue los cambios en Amazon S3 como se describe enAgrupe los archivos de la aplicacioacuten enun uacutenico archivo de archivo e inserte el archivo de archivo (p 77) (Cuando siga esas instruccionesrecuerde que no tiene que crear una aplicacioacuten) Asigne a la nueva revisioacuten la misma clave que antes(WordPressAppzip) Caacuterguela en el mismo bucket de Amazon S3 que creoacute anteriormente (porejemplocodedeploydemobucket)
UsarAWS CLI la consola de CodeDeploy o las API de CodeDeploy para volver a implementar el sitio
Temasbull Para volver implementar el sitio (CLI) (p 84)bull Para volver a implementar el sitio (consola) (p 84)
Para volver implementar el sitio (CLI)
Llame al comando create-deployment para crear una implementacioacuten basada en la revisioacutenrecieacuten cargada Utilice la aplicacioacuten WordPress_App la configuracioacuten de implementacioacutenCodeDeployDefaultOneAtATime el grupo de implementaciones WordPress_DepGroup y la revisioacutenWordPressAppzip del bucket codedeploydemobucket
aws deploy create-deployment --application-name WordPress_App --deployment-config-name CodeDeployDefaultOneAtATime --deployment-group-name WordPress_DepGroup --s3-location bucket=codedeploydemobucketbundleType=zipkey=WordPressAppzip
Puede comprobar el estado de la implementacioacuten como se describe en Monitorizacioacuten y solucioacuten deproblemas de la implementacioacuten (p 80)
Una vez que CodeDeploy ha vuelto a implementar el sitio visiacutetelo de nuevo en el navegador web paraverificar que los colores han cambiado (Puede que tenga que actualizar el navegador) Si los colores hancambiado iexclenhorabuena Ha modificado y vuelto a implementar correctamente su sitio
Para volver a implementar el sitio (consola)
1 Inicie sesioacuten enAWS Management Consoley abra la consola de CodeDeploy enhttpsconsoleawsamazoncomcodedeploy
Note
Inicie sesioacuten con la misma cuenta o informacioacuten de usuario de IAM que utilizoacute enIntroduccioacutena CodeDeploy (p 35)
2 En el panel de navegacioacuten expandaDesplegary a continuacioacuten elijaAplicaciones3 En la lista de aplicaciones elijaAplicacioacuten WordPress_4 En la pestantildea Deployment groups (Grupos de implementaciones) elija WordPress_DepGroup5 Elija Create deployment (Crear implementacioacuten)6 En la paacutegina Create deployment
a En Deployment group (Grupo de implementacioacuten) elija WordPress_DepGroupb En el navegadorRepository typearea elijaMi aplicacioacuten se almacena en Amazon S3y a
continuacioacuten copie el enlace de Amazon S3 de la revisioacuten en elUbicacioacuten de revisioacuten Paraencontrar el valor del enlace
i En una pestantildea diferente del navegador
Inicie sesioacuten en la AWS Management Console y abra la consola de Amazon S3 en httpsconsoleawsamazoncoms3
Versioacuten de API 2014-10-0684
AWS CodeDeploy Guiacutea del usuarioPaso 6 Eliminar recursos
Vaya a y abracodedeploydemobuckety a continuacioacuten elija la revisioacutenWordPressAppzipii Si el archivo dePropiedadesno estaacute visible en la consola de Amazon S3 elija
laPropiedadesbotoacuteniii En el navegadorPropiedades copie el valor de laViacutenculoen el campoUbicacioacuten de revisioacutenen
la consola de CodeDeployc Si aparece un mensaje que indica que el tipo de archivo no se pudo detectar elija zipd Deje el cuadro Deployment description en blancoe AmpliarAnulaciones de grupos de implementacionesy deConfiguracioacuten de implementacioacuten
eligeCodeDeployDefaultOneAtATimef Elija Start deployment (Iniciar la implementacioacuten) En la paacutegina Deployments se mostraraacute
informacioacuten sobre la implementacioacuten que acaba de crearg Puede comprobar el estado de la implementacioacuten como se describe en Monitorizacioacuten y solucioacuten
de problemas de la implementacioacuten (p 80)
Una vez que CodeDeploy ha vuelto a implementar el sitio visiacutetelo de nuevo en el navegador webpara verificar que los colores han cambiado (Puede que tenga que actualizar el navegador) Silos colores han cambiado iexclenhorabuena Ha modificado y vuelto a implementar correctamente susitio
Paso 6 Limpia tu aplicacioacuten de WordPress y recursosrelacionadosHa actualizado correctamente el coacutedigo de WordPress y ha vuelto a implementar el sitio Para evitarcargos recurrentes por los recursos que ha creado para este tutorial debe eliminar
bull CualquierAWS CloudFormationpila (o finalizar todas las instancias Amazon EC2 si las ha creado fueradeAWS CloudFormation)
bull Todos los buckets de Amazon S3bull LaWordPress_Appaplicacioacuten en CodeDeploybull LaAWS Systems ManagerAsociacioacuten del Administrador de estados de para el agente de CodeDeploy
Puede utilizar elAWS CLI elAWS CloudFormation consolas Amazon S3 Amazon EC2 y CodeDeploy olas consolasAWSAPI para realizar la limpieza
Temasbull Para limpiar los recursos (CLI) (p 85)bull Para limpiar los recursos (consola) (p 86)bull Siguientes pasos (p 87)
Para limpiar los recursos (CLI)1 Si ha utilizado la plantilla de AWS CloudFormation para este tutorial ejecute el comando delete-stack
para la pila CodeDeployDemoStack Asiacute terminaraacute todas las instancias Amazon EC2 asociadas yeliminaraacute todos los roles de IAM que haya creado la pila
aws cloudformation delete-stack --stack-name CodeDeployDemoStack
2 Para eliminar el bucket de Amazon S3 llame alrmcomando con el--recursivecambiar contra eldepoacutesito llamadocodedeploydemobucket Asiacute eliminaraacute el bucket y todos los objetos que contiene
Versioacuten de API 2014-10-0685
AWS CodeDeploy Guiacutea del usuarioPaso 6 Eliminar recursos
aws s3 rm s3codedeploydemobucket --recursive
3 Para eliminar la aplicacioacuten WordPress_App realice una llamada al comando delete-application Estoeliminaraacute tambieacuten todos los registros de grupo de implementaciones asociados y los registros deimplementacioacuten de la aplicacioacuten
aws deploy delete-application --application-name WordPress_App
4 Para eliminar la asociacioacuten del Administrador de estado de Systems Manager llame aldelete-associationcomando
aws ssm delete-association --assocation-id association-id
Para obtener el valor de id-asociacioacuten llame al comando describe-association
aws ssm describe-association --name AWS-ConfigureAWSPackage --targets Key=tagNameValues=CodeDeployDemo
Si no has usado elAWS CloudFormationpila para este tutorial llame alterminate-instancespara finalizarcualquier instancia de Amazon EC2 que haya creado manualmente Indique el ID de la instancia AmazonEC2 para terminar
aws ec2 terminate-instances --instance-ids instanceId
Para limpiar los recursos (consola)Si ha utilizado la plantilla de AWS CloudFormation para este tutorial elimine la pila de AWSCloudFormation asociada
1 Inicie sesioacuten en la AWS Management Console y abra la consola de AWS CloudFormation en httpsconsoleawsamazoncomcloudformation
2 En el cuadro Filter (Filtro) escriba el nombre de la pila de AWS CloudFormation que creoacuteanteriormente (por ejemplo CodeDeployDemoStack)
3 Seleccione la casilla junto al nombre de la pila En el menuacute Actions (Acciones) elija Delete Stack(Eliminar pila)
AWS CloudFormationelimina la pila termina todas las instancias Amazon EC2 asociadas y eliminatodos los roles de IAM correspondientes
Para terminar las instancias Amazon EC2 que haya creado fuera de unAWS CloudFormationpila
1 Inicie sesioacuten en la AWS Management Console y abra la consola de Amazon EC2 en httpsconsoleawsamazoncomec2
2 En la lista INSTANCES elija Instances3 En el campo de buacutesqueda escriba el nombre de la instancia Amazon EC2 que desee eliminar (por
ejemploCodeDeployDemo) y a continuacioacuten pulse Intro4 Seleccione el nombre de la instancia Amazon EC25 En el menuacute Actions seleccione Instance State y elija Terminate Cuando se le pregunte elija Yes
Terminate
Repita estos pasos para cada instancia
Versioacuten de API 2014-10-0686
AWS CodeDeploy Guiacutea del usuarioTutorial Implementacioacuten de una aplicacioacuten Hello
World en una instancia de Windows Server
Para eliminar el bucket de Amazon S3
1 Inicie sesioacuten en la AWS Management Console y abra la consola de Amazon S3 en httpsconsoleawsamazoncoms3
2 En la lista de buckets busque y elija el nombre del bucket de Amazon S3 que haya creadoanteriormente (por ejemplocodedeploydemobucket)
3 Para eliminar un bucket primero debe eliminar su contenido Seleccione todos los archivos delbucket como WordPressAppzip En el menuacute Actions elija Delete Cuando se le pida confirmar laeliminacioacuten elija OK
4 Una vez vaciacuteo puede eliminar el bucket En la lista de buckets elija la liacutenea del bucket (pero no sunombre) Elija Delete bucket y cuando se le pida que confirme seleccione OK
Para eliminar elWordPress_Appaplicacioacuten de CodeDeploy
1 Inicie sesioacuten en laAWS Management Consoley abra la consola de CodeDeploy enhttpsconsoleawsamazoncomcodedeploy
Note
Inicie sesioacuten con la misma cuenta o informacioacuten de usuario de IAM que utilizoacute enIntroduccioacutena CodeDeploy (p 35)
2 En el panel de navegacioacuten expandaDesplegary despueacutes elijaAplicaciones3 En la lista de aplicaciones elijaAplicacioacuten WordPress_4 En la paacutegina Application details (Detalles de la aplicacioacuten) elija Delete application (Eliminar
aplicacioacuten)5 Cuando se le solicite introduzca el nombre de la aplicacioacuten para confirmar que desea eliminarla y
seleccione Delete (Eliminar)
Para eliminar la asociacioacuten del Administrador de estado de Systems Manager
1 Abra el iconoAWS Systems Managerconsola en httpsconsoleawsamazoncomsystems-manager2 En el panel de navegacioacuten elija Administrador de estados3 Elija la asociacioacuten que ha creado y despueacutes elija Eliminar
Siguientes pasosSi ha llegado hasta aquiacute iexclenhorabuena Ha completado correctamente una implementacioacuten deCodeDeploy a continuacioacuten ha actualizado el coacutedigo del sitio y lo ha aplicado de nuevo
Tutorial Despliega un laquohola mundoraquo aplicacioacutencon CodeDeploy (Windows Server)
En este tutorial implementa una uacutenica paacutegina web en una sola instancia Amazon EC2 de Windows Serverque ejecuta Internet Information Services (IIS) como servidor web Esta paacutegina web muestra un mensajelaquoHello Worldraquo message
iquestNo es lo que estaacute buscando
bull Para practicar la implementacioacuten en una instancia Amazon EC2 de Linux o Red Hat Enterprise Linux(RHEL) consulteTutorial Implementar WordPress en una instancia de Amazon EC2 (Amazon Linux oRed Hat Enterprise Linux y Linux macOS o Unix) (p 68)
Versioacuten de API 2014-10-0687
AWS CodeDeploy Guiacutea del usuarioPaso 1 Lance una instancia Amazon EC2
bull Para practicar la implementacioacuten en una instancia on-premises consulte Tutorial Implementar unaaplicacioacuten en una instancia local con CodeDeploy (Windows Server Ubuntu Server o Red Hat EnterpriseLinux) (p 103)
Los pasos de este tutorial se presentan desde una perspectiva de Windows Aunque puede completar lamayoriacutea de estos pasos en un equipo local que ejecuta Linux macOS o Unix debe adaptar los pasos enlos que se utilizan rutas de directorio basadas en Windows comoctemp Ademaacutes si desea conectarsea la instancia Amazon EC2 necesita una aplicacioacuten cliente que pueda conectarse mediante el Protocolode Escritorio remoto (RDP) a la instancia Amazon EC2 que ejecuta Windows Server (Windows incluye unaaplicacioacuten cliente de conexioacuten RDP de forma predeterminada)
Antes de comenzar este tutorial debe completar los requisitos previos indicados enIntroduccioacuten aCodeDeploy (p 35) incluida la configuracioacuten del usuario de IAM la instalacioacuten o la actualizacioacuten delAWSCLIy crear un perfil de instancia de IAM y un rol de servicio de
Temasbull Paso 1 Lance una instancia de Amazon EC2 de Windows Server (p 88)bull Paso 2 Configurar el contenido de origen para implementarlo en la instancia de Amazon EC2 de
Windows Server (p 90)bull Paso 3 Sube tu laquohola mundoraquo aplicacioacuten a Amazon S3 (p 92)bull Paso 4 Implemente su aplicacioacuten Hello World (p 95)bull Paso 5 Actualiza y vuelve a desplegar tu laquohola mundoraquo revisiones de (p 99)bull Paso 6 Limpia tu laquohola mundoraquo aplicaciones y recursos relacionados (p 101)
Paso 1 Lance una instancia de Amazon EC2 deWindows ServerPara implementar la aplicacioacuten Hello World con CodeDeploy necesita una instancia Amazon EC2 que seejecuta en Windows Server
Siga las instrucciones en Creacioacuten de una instancia de Amazon EC2 para CodeDeploy (p 217) Cuandoesteacute listo para asignar una etiqueta de instancia Amazon EC2 a la instancia aseguacuterese de especificar laclave de etiquetaNamey el valor de etiqueta deCodeDeployDemo (Si especifica otra clave u otro valor deetiqueta las instrucciones de Paso 4 Implemente su aplicacioacuten Hello World (p 95) pueden producirresultados inesperados)
Despueacutes de lanzar la instancia Amazon EC2 vuelva a esta paacutegina y continuacutee con la seccioacuten siguiente Nocontinuacutee en Crear una aplicacioacuten con CodeDeploy (p 273) como paso siguiente
Connect con la instancia Amazon EC2Una vez lanzada la instancia Amazon EC2 siga estas instrucciones para practicar la conexioacuten a ella
Note
En estas instrucciones se supone que estaacute trabajando con Windows y con la aplicacioacuten cliente deconexioacuten a escritorio de Windows Para obtener informacioacuten consulteConectarse a una instanciade Windows mediante RDP Es posible que necesite adaptar estas instrucciones para otrossistemas operativos u otras aplicaciones cliente de conexioacuten RDP
1 Inicie sesioacuten en la AWS Management Console y abra la consola de Amazon EC2 en httpsconsoleawsamazoncomec2
Versioacuten de API 2014-10-0688
AWS CodeDeploy Guiacutea del usuarioPaso 1 Lance una instancia Amazon EC2
2 En el panel de navegacioacuten bajo Instances elija Instances3 Busque su instancia de Windows Server en la lista y seleccioacutenela4 Elija Connect5 Elija Get Password (Obtener contrasentildea) y a continuacioacuten elija Choose File (Seleccionar archivo)6 Busque y seleccione el archivo de key pair de la instancia Amazon EC2 asociado a la instancia de
Amazon EC2 de Windows Server y a continuacioacuten elijaAbierto7 Elija Decrypt Password (Descifrar contrasentildea) Apunte la contrasentildea que se muestra La necesitaraacute en
el paso 108 Elija Download Remote Desktop File (Descargar archivo de escritorio remoto) y abra el archivo9 Si se le pide conectarse a pesar de que el editor de la conexioacuten remota no pueda identificarse haacutegalo10 Escriba la contrasentildea que ha anotado en el paso 7 y continuacutee (Si la aplicacioacuten cliente de conexioacuten
RDP solicita un nombre de usuario escriba Administrator)11 Si se le pide que se conecte a pesar de que la identidad del equipo remoto no pueda verificarse
haacutegalo12 Despueacutes de haberse conectado se muestra el escritorio de la instancia Amazon EC2 que se ejecuta
en Windows Server13 Ahora puede desconectar de la instancia Amazon EC2
Warning
No interrumpa ni termine la instancia De lo contrario CodeDeploy no podraacute implementarseen ella
Agregar una regla entrante que permita el traacutefico HTTP a suinstancia de Amazon EC2 de Windows ServerEl siguiente paso confirma que la instancia Amazon EC2 tiene un puerto HTTP abierto para que se puedaver la paacutegina web implementada en la instancia de Amazon EC2 de Windows Server en un navegador
1 Inicie sesioacuten en la AWS Management Console y abra la consola de Amazon EC2 en httpsconsoleawsamazoncomec2
2 ElegirInstanciasy a continuacioacuten elija su instancia3 En la paacuteginaDescripcioacutenpestantildea enGrupos de seguridad eligeVer reglas de entrada
Debe aparecer una lista de reglas en el grupo de seguridad como el siguiente
Security Groups associated with i-1234567890abcdef0 Ports Protocol Source launch-wizard-N 22 tcp 00000
4 UNDERGrupos de seguridad elija el grupo de seguridad de la instancia Amazon EC2 Podriacuteallamarselaunch-wizard-N La N del nombre es un nuacutemero asignado al grupo de seguridad cuandose creoacute la instancia
Elija la pestantildea Inbound (Reglas entrantes) Si el grupo de seguridad de la instancia estaacute configuradocorrectamente deberiacutea aparecer una regla con los siguientes valores
bull Type HTTPbull Protocolo TCPbull Rango de puertos 80bull Fuente 00000
Versioacuten de API 2014-10-0689
AWS CodeDeploy Guiacutea del usuarioPaso 2 Configurar el contenido de origen
5 Si no ve una regla con estos valores utilice los procedimientos descritos enAgregar reglas a un grupode seguridadpara antildeadirlos a una nueva regla de seguridad
Paso 2 Configurar el contenido de origen paraimplementarlo en la instancia de Amazon EC2 deWindows ServerHa llegado el momento de configurar el contenido de origen de la aplicacioacuten para tener algo queimplementar en la instancia de Amazon EC2 En este tutorial implementaraacute una uacutenica paacutegina web enla instancia de Amazon EC2 que ejecuta Windows Server que a su vez ejecutaraacute Internet InformationServices (IIS) como servidor web Esta paacutegina web mostraraacute un mensaje Hello World message
Temasbull Crear la paacutegina web (p 90)bull Crear un script para ejecutar la aplicacioacuten (p 91)bull Agregar un archivo de especificacioacuten de la aplicacioacuten (p 91)
Crear la paacutegina web1 Cree un subdirectorio (subcarpeta) denominado HelloWorldApp en su carpeta ctemp y a
continuacioacuten pase a esa carpeta
mkdir ctempHelloWorldAppcd ctempHelloWorldApp
Note
La ubicacioacuten de la carpeta no tiene por queacute ser ctemp ni el nombre de la subcarpetaHelloWorldApp Si utiliza otra ubicacioacuten u otro nombre de subcarpeta aseguacuterese deutilizarlos en este tutorial
2 Utilice un editor de texto para crear un archivo dentro de la carpeta Asigne el nombre indexhtml alarchivo
notepad indexhtml
3 Antildeada el siguiente coacutedigo HTML al archivo y guaacuterdelo
ltDOCTYPE html PUBLIC -W3CDTD HTML 401 TransitionalEN httpwwww3orgTRhtml4loosedtdgtlthtmlgtltheadgt lttitlegtHello Worldlttitlegt ltstylegt body color ffffff background-color 0188cc font-family Arial sans-serif font-size14px ltstylegtltheadgtltbodygt ltdiv align=centergtlth1gtHello Worldlth1gtltdivgt
Versioacuten de API 2014-10-0690
AWS CodeDeploy Guiacutea del usuarioPaso 2 Configurar el contenido de origen
ltdiv align=centergtlth2gtYou have successfully deployed an application using CodeDeploylth2gtltdivgt ltdiv align=centergt ltpgtWhat to do next Take a look through the lta href=httpsawsamazoncomcodedeploygtCodeDeploy Documentationltagtltpgt ltdivgtltbodygtlthtmlgt
Crear un script para ejecutar la aplicacioacutenA continuacioacuten crearaacute un script que CodeDeploy utilizaraacute para configurar el servidor web de destino en lainstancia de Amazon EC2
1 En la misma subcarpeta donde se guarda el archivo indexhtml utilice un editor de texto para crearotro archivo Asigne el nombre before-installbat al archivo
notepad before-installbat
2 Antildeada el siguiente coacutedigo de script de procesamiento por lotes al archivo y a continuacioacuten guaacuterdelo
REM Install Internet Information Server (IIS)cWindowsSysnativeWindowsPowerShellv10powershellexe -Command Import-Module -Name ServerManagercWindowsSysnativeWindowsPowerShellv10powershellexe -Command Install-WindowsFeature Web-Server
Agregar un archivo de especificacioacuten de la aplicacioacutenA continuacioacuten antildeadiraacute un archivo de especificacioacuten de la aplicacioacuten (archivo AppSpec) ademaacutes de lapaacutegina web y el archivo con el script de procesamiento por lotes El archivo AppSpec es unYAML-archivocon formato utilizado por CodeDeploy para
bull Asignar los archivos de origen de la revisioacuten de la aplicacioacuten a sus destinos en la instanciabull Especificar los scripts que deben ejecutarse en la instancia durante la implementacioacuten
El archivo AppSpec debe denominarseappspecyml Debe ir en la carpeta raiacutez de coacutedigo fuente de laaplicacioacuten
1 Utilice un editor de texto para crear otro archivo en la misma carpeta en la que se encuentranindexhtml y before-installbat Asigne el nombre appspecyml al archivo
notepad appspecyml
2 Antildeada el siguiente coacutedigo YAML al archivo y guaacuterdelo
version 00os windowsfiles - source indexhtml destination cinetpubwwwroothooks BeforeInstall - location before-installbat timeout 900
Versioacuten de API 2014-10-0691
AWS CodeDeploy Guiacutea del usuarioPaso 3 Cargue su aplicacioacuten en Amazon S3
CodeDeploy utilizaraacute este archivo de AppSpec para copiar elindexhtmlen la carpeta raiacutez de coacutedigofuente de la aplicacioacuten a lacinetpubwwwrooten la instancia de Amazon EC2 de destino Durantela implementacioacuten CodeDeploy ejecutaraacute elbefore-installbatscript de procesamiento por lotesen la instancia de Amazon EC2 de destino durante elBeforeInstallevento del ciclo de vida de laimplementacioacuten Si este script tarda maacutes de 900 segundos (15 minutos) en ejecutarse CodeDeploydetendraacute la implementacioacuten en la instancia Amazon EC2 y la marcaraacute como erroacutenea
Para obtener maacutes informacioacuten sobre la configuracioacuten consulte Referencia del archivo CodeDeployAppSpec (p 407)
Important
Las ubicaciones y el nuacutemero de espacios entre cada uno de los elementos de este archivoson importantes Si el espaciado es incorrecto CodeDeploy generaraacute un error que puederesultar difiacutecil de depurar Para obtener maacutes informacioacuten consulte Espaciado de archivosAppSpec (p 440)
Paso 3 Sube tu laquohola mundoraquo aplicacioacuten a AmazonS3Ahora prepararaacute y cargaraacute su contenido de origen en una ubicacioacuten desde la que CodeDeploy puedaimplementarla Las siguientes instrucciones explican coacutemo aprovisionar un bucket de Amazon S3preparar los archivos de la revisioacuten de la aplicacioacuten para el bucket agrupar los archivos de la revisioacuten y acontinuacioacuten enviar la revisioacuten al bucket
Note
Aunque no se trata en este tutorial puede utilizar CodeDeploy para implementar aplicacionesdesde repositorios de GitHub en instancias Para obtener maacutes informacioacuten consulte Integracioacutende CodeDeploy con GitHub (p 63)
Temasbull Aprovisionar un bucket de Amazon S3 (p 92)bull Preparar los archivos de la aplicacioacuten para el depoacutesito (p 94)bull Agrupe los archivos de la aplicacioacuten en un uacutenico archivo de archivo e inserte el archivo de
archivo (p 94)
Aprovisionar un bucket de Amazon S3Cree un contenedor de almacenamiento obaldeen Amazon S3 o utilice un bucket existente Aseguacuteresede que puede cargar la revisioacuten en el bucket de y que las instancias de Amazon EC2 utilizadas en lasimplementaciones pueden descargar la revisioacuten del bucket
Puede utilizar elAWS CLI la consola de Amazon S3 o las API de Amazon S3 para crear un bucket deAmazon S3 Despueacutes de crear el bucket aseguacuterese de que concede permisos de acceso al bucket y a suusuario de IAM
Note
Los nombres de bucket deben ser uacutenicos en Amazon S3 para todosAWScuentas Si nopuede utilizar codedeploydemobucket pruebe otro nombre de bucket por ejemplocodedeploydemobucket seguido de un guion y sus iniciales o alguacuten otro identificador uacutenicoA continuacioacuten cuando aparezca codedeploydemobucket en este tutorial aseguacuterese desustituirlo por el nombre de su bucketEl bucket de Amazon S3 debe crearse en el mismoAWSregioacuten en la que se lanzan las instanciasde Amazon EC2 de destino Por ejemplo si crea el bucket en la regioacuten EE UU Este (Norte de
Versioacuten de API 2014-10-0692
AWS CodeDeploy Guiacutea del usuarioPaso 3 Cargue su aplicacioacuten en Amazon S3
Virginia) las instancias de Amazon EC2 de destino deben lanzarse en la regioacuten EE UU Este(Norte de Virginia)
Temasbull Para crear un bucket de Amazon S3 (CLI) (p 93)bull Para crear un bucket de Amazon S3 (consola) (p 93)bull Conceder permisos al bucket de Amazon S3 y a su usuario de IAM (p 93)
Para crear un bucket de Amazon S3 (CLI)
Llame a lambpara crear un bucket de Amazon S3 denominadocodedeploydemobucket
aws s3 mb s3codedeploydemobucket
Para crear un bucket de Amazon S3 (consola)
1 Abra la consola de Amazon S3 en httpsconsoleawsamazoncoms32 En la consola de Amazon S3 elijaCrear un bucket3 En el cuadro Bucket name (Nombre del bucket) escriba un nombre para el bucket4 En la lista Region (Regioacuten) elija la regioacuten de destino y a continuacioacuten seleccione Create (Crear)
Conceder permisos al bucket de Amazon S3 y a su usuario de IAM
Debe tener permisos para cargar en el bucket de Amazon S3 Puede especificar estos permisos a traveacutesde una poliacutetica de bucket de Amazon S3 Por ejemplo en la siguiente poliacutetica de bucket de Amazon S3el uso del caraacutecter comodiacuten () permiteAWScuenta111122223333para cargar archivos en cualquierdirectorio del bucket de Amazon S3 denominadocodedeploydemobucket
Statement [ Action [ s3PutObject ] Effect Allow Resource arnawss3codedeploydemobucket Principal AWS [ 111122223333 ] ]
Para ver losAWSID de cuenta consulteBuacutesqueda de suAWSID de la cuenta de
Ahora es un buen momento para verificar que el bucket de Amazon S3 permitiraacute las solicitudes dedescarga de cada instancia de Amazon EC2 participante Puede especificarlo a traveacutes de una poliacutetica debucket de Amazon S3 Por ejemplo en la siguiente poliacutetica de bucket de Amazon S3 el uso del caraacutectercomodiacuten () permite cualquier instancia de Amazon EC2 con un perfil de instancia de IAM adjunto quecontenga el ARNarnawsiam444455556666roleCodeDeployDemopara descargar archivosdesde cualquier directorio del bucket de Amazon S3 denominadocodedeploydemobucket
Versioacuten de API 2014-10-0693
AWS CodeDeploy Guiacutea del usuarioPaso 3 Cargue su aplicacioacuten en Amazon S3
Statement [ Action [ s3Get s3List ] Effect Allow Resource arnawss3codedeploydemobucket Principal AWS [ arnawsiam444455556666roleCodeDeployDemo ] ]
Para obtener informacioacuten acerca de coacutemo generar y asociar una poliacutetica de bucket de Amazon S3consulteEjemplos de poliacutetica de bucket
Su cuenta debe tener permiso para cargar la revisioacuten en el bucket de Amazon S3 Una forma deespecificarlo es a traveacutes de una poliacutetica de IAM La siguiente poliacutetica de IAM permite que el usuario de IAMcargue revisiones en cualquier lugar del bucket de Amazon S3 denominadocodedeploydemobucket
Version2012-10-17 Statement[ EffectAllow Action[s3PutObject] Resourcearnawss3codedeploydemobucket ]
Para obtener informacioacuten acerca de coacutemo crear y asociar una poliacutetica de IAM consulteTrabajo conpoliacuteticas
Preparar los archivos de la aplicacioacuten para el depoacutesitoAseguacuterese de que la paacutegina web el archivo de AppSpec y el script se organizan en su equipo dedesarrollo de este modo
c |-- temp |--HelloWorldApp |-- appspecyml |-- before-installbat |-- indexhtml
Agrupe los archivos de la aplicacioacuten en un uacutenico archivo dearchivo e inserte el archivo de archivoAgrupe los archivos en un archivo de almacenamiento (se denomina una revisioacuten de la aplicacioacuten)
Note
Es posible que se cobre por almacenar objetos en un bucket y por transferir revisiones de laaplicacioacuten dentro y fuera de un bucket Para obtener maacutes informacioacuten consulte Precios deAmazon S3
Versioacuten de API 2014-10-0694
AWS CodeDeploy Guiacutea del usuarioPaso 4 Implementar la aplicacioacuten
1 En el equipo de desarrollo cambie a la carpeta en la que se almacenan los archivos
cd ctempHelloWorldApp
Note
Si no cambia a esta carpeta la agrupacioacuten del archivo comenzaraacute en su carpeta actualPor ejemplo si la carpeta actual es ctemp en lugar de ctempHelloWorldApp laagrupacioacuten comenzaraacute con los archivos y subcarpetas de la carpeta ctemp lo que puedeincluir algo maacutes que la subcarpeta HelloWorldApp
2 Llame a lacreate-applicationpara registrar una aplicacioacuten nueva denominadaHelloWorld_AppconCodeDeploy
aws deploy create-application --application-name HelloWorld_App
3 Llame a CodeDeploypushpara agrupar los archivos cargar las revisiones en Amazon S3 y registra enCodeDeploy sobre la revisioacuten cargada todo con una accioacuten
aws deploy push --application-name HelloWorld_App --s3-location s3codedeploydemobucketHelloWorld_Appzip --ignore-hidden-files
Este comando agrupa los archivos del directorio actual (excepto los archivos ocultos) en unuacutenico archivo de almacenamiento denominadoHelloWorld_Appzip carga la revisioacuten enelcodedeploydemobuckety registra informacioacuten con CodeDeploy sobre la revisioacuten cargada
Paso 4 Implemente su aplicacioacuten Hello WorldAhora implementaraacute la revisioacuten de la aplicacioacuten Hello World de ejemplo que ha cargado en Amazon S3Utilizas elAWS CLIo la consola de CodeDeploy para implementar la revisioacuten y monitorizar el progresode la implementacioacuten Una vez implementada correctamente la revisioacuten de la aplicacioacuten comprobaraacute losresultados
Temasbull Implemente la revisioacuten de la aplicacioacuten con CodeDeploy (p 95)bull Monitorizacioacuten y solucioacuten de problemas de la implementacioacuten (p 97)bull Verificacioacuten de la implementacioacuten (p 98)
Implemente la revisioacuten de la aplicacioacuten con CodeDeployPuede implementar su aplicacioacuten con la CLI o la consola
Temasbull Para implementar la revisioacuten de la aplicacioacuten (CLI) (p 95)bull Para implementar la revisioacuten de la aplicacioacuten (consola) (p 96)
Para implementar la revisioacuten de la aplicacioacuten (CLI)
1 En primer lugar la implementacioacuten necesita un grupo de implementaciones Sin embargo para crearel grupo de implementaciones primero necesita un ARN de rol de servicio Un rol de servicio es un rolde IAM que concede a un servicio permiso para actuar en su nombre En este caso el rol de servicioconcede a CodeDeploy permiso de acceso a sus instancias de Amazon EC2 para ampliar (leer) susetiquetas de instancia Amazon EC2
Versioacuten de API 2014-10-0695
AWS CodeDeploy Guiacutea del usuarioPaso 4 Implementar la aplicacioacuten
Ya debe haber seguido las instrucciones de Creacioacuten de un rol de servicio de (CLI) (p 39) para crearun rol de servicio Para obtener el ARN del rol de servicio consulte Obtenga el ARN del rol de servicio(CLI) (p 41)
2 Ahora que tiene el ARN llame alcreate-deployment-grouppara crear un grupo de implementacionesdenominadoHelloWorld_DepGroup asociado a la aplicacioacuten denominadaHelloWorld_Apputilizando la etiqueta de instancia de Amazon EC2 denominadaCodeDeployDemoconfiguracioacuten deimplementacioacuten denominadaCodeDeployDefaultOneAtATime con el ARN del rol de servicio
aws deploy create-deployment-group --application-name HelloWorld_App --deployment-group-name HelloWorld_DepGroup --deployment-config-name CodeDeployDefaultOneAtATime --ec2-tag-filters Key=NameValue=CodeDeployDemoType=KEY_AND_VALUE --service-role-arn serviceRoleARN
Note
Lacreate-deployment-groupproporciona soporte para crear activadores que dan comoresultado el enviacuteo de notificaciones de Amazon SNS a los suscriptores de temas sobreeventos especiacuteficos en implementaciones e instancias El comando tambieacuten admite opcionespara revertir automaacuteticamente implementaciones y configurar alarmas para detener lasimplementaciones cuando se cumplen los umbrales de supervisioacuten en alarmas de AmazonCloudWatch Los comandos de estas acciones no se incluyen en este tutorial
3 Para crear una implementacioacuten las instancias del grupo de implementaciones deben tener instaladoel agente de CodeDeploy Puede instalar el agente desde la liacutenea de comandos con AWS SystemsManager mediante el comando siguiente
aws ssm create-association --name AWS-ConfigureAWSPackage --targets Key=tagNameValues=CodeDeployDemo --parameters action=Installname=AWSCodeDeployAgent --schedule-expression cron(0 2 SUN )
Este comando crea una asociacioacuten en Systems Manager de estados de que instalaraacute el agentede CodeDeploy y despueacutes intentaraacute actualizarlo todos los domingos por la mantildeana a las 200Para obtener maacutes informacioacuten sobre el agente de CodeDeploy consulteTrabajar con el agentede CodeDeploy Para obtener maacutes informacioacuten sobre Systems Manager consulteiquestQueacute es AWSSystems Manager
4 Ejecute ahora el comando create-deployment para crear una implementacioacuten asociada a la aplicacioacutenHelloWorld_App la configuracioacuten de implementacioacuten CodeDeployDefaultOneAtATimey el grupo de implementaciones HelloWorld_DepGroup utilizando la revisioacuten de la aplicacioacutenHelloWorld_Appzip del bucket codedeploydemobucket
aws deploy create-deployment --application-name HelloWorld_App --deployment-config-name CodeDeployDefaultOneAtATime --deployment-group-name HelloWorld_DepGroup --s3-location bucket=codedeploydemobucketbundleType=zipkey=HelloWorld_Appzip
Para implementar la revisioacuten de la aplicacioacuten (consola)
1 Para utilizar la consola de CodeDeploy para implementar la revisioacuten de la aplicacioacuten primero necesitaun ARN de rol de servicio ARN Un rol de servicio es un rol de IAM que concede a un servicio permisopara actuar en su nombre En este caso el rol de servicio concede a CodeDeploy permiso de accesoa sus instancias de Amazon EC2 para ampliar (leer) sus etiquetas de instancia Amazon EC2
Ya debe haber seguido las instrucciones de Creacioacuten de un rol de servicio de (consola) (p 37) paracrear un rol de servicio Para obtener el ARN del rol de servicio consulte Obtenga el ARN del rol deservicio (consola) (p 40)
Versioacuten de API 2014-10-0696
AWS CodeDeploy Guiacutea del usuarioPaso 4 Implementar la aplicacioacuten
2 Ahora que tiene el ARN puede utilizar la consola de CodeDeploy para implementar la revisioacuten de laaplicacioacuten
Inicie sesioacuten en laAWS Management Consoley abra la consola de CodeDeploy enhttpsconsoleawsamazoncomcodedeploy
Note
Inicia sesioacuten con la misma cuenta o informacioacuten de usuario de IAM que utilizasteenIntroduccioacuten a CodeDeploy (p 35)
3 En el panel de navegacioacuten expandaDesplegary despueacutesAplicaciones4 Elija HelloWorld_App5 En la pestantildea Deployment groups (Grupos de implementaciones) elija Create deployment group
(Crear grupo de implementaciones)6 En Deployment group name (Nombre de grupo de implementacioacuten) escriba HelloWorld_DepGroup7 En Service Role (Rol de servicio) elija el nombre del rol de servicio8 En Deployment type (Tipo de implementacioacuten) elija In-place (In situ)9 EnConfiguracioacuten del entorno seleccioneInstancias de Amazon EC210 EnConfiguracioacuten del agente conAWS Systems Manager mantenga los valores predeterminados11 En Key (Clave) introduzca Name12 En Valor escriba CodeDeployDemo13 EnConfiguracioacuten de implementacioacuten eligeCodeDeployDefaultOneAtATime14 En Load Balancer (Balanceador de carga) anule la seleccioacuten de Enable load balancing (Habilitar
balanceo de carga)15 Elija Create deployment group16 Elija Create deployment (Crear implementacioacuten)17 En Deployment group (Grupo de implementacioacuten) elija HelloWorld_DepGroup18 EnTipo de revisioacuten eligeMi aplicacioacuten se almacena en Amazon S3 y luego enUbicacioacuten de
revisioacuten introduzca la ubicacioacuten de la revisioacuten de la aplicacioacuten Hello World de ejemplo que cargoacuteanteriormente en Amazon S3 Para obtener la ubicacioacuten
a Abra la consola de Amazon S3 en httpsconsoleawsamazoncoms3b En la lista de buckets seleccionecodedeploydemobucket(o el nombre del bucket en el que cargoacute
la revisioacuten de la aplicacioacuten)c En la lista de objetos elija HelloWorld_Appzipd En la pestantildea Overview (Informacioacuten general) elija Copy path (Ruta de copia)e Regrese a la consola de CodeDeploy y enUbicacioacuten de revisioacuten pegue elViacutenculovalor de campo
19 En Revision file type (Tipo de archivo de revisioacuten) elija zip20 (Opcional) Escriba un comentario en Deployment description (Descripcioacuten de implementacioacuten)21 Elija Create deployment (Crear implementacioacuten) En la paacutegina Deployments se mostraraacute informacioacuten
sobre la implementacioacuten que acaba de crear
Monitorizacioacuten y solucioacuten de problemas de la implementacioacutenUtilice la AWS CLI o la consola para monitorizar y resolver problemas de la implementacioacuten
Temasbull Para monitorizar y solucionar problemas en la implementacioacuten (CLI) (p 98)
Versioacuten de API 2014-10-0697
AWS CodeDeploy Guiacutea del usuarioPaso 4 Implementar la aplicacioacuten
bull Para monitorizar y resolver problemas de la implementacioacuten (consola) (p 98)
Para monitorizar y solucionar problemas en la implementacioacuten (CLI)
1 Obtenga el ID de la implementacioacuten para ello ejecute el comando list-deployments para la aplicacioacutenHelloWorld_App y el grupo de implementaciones HelloWorld_DepGroup
aws deploy list-deployments --application-name HelloWorld_App --deployment-group-name HelloWorld_DepGroup --query deployments --output text
2 Llame al comando get-deployment con el ID de la implementacioacuten
aws deploy get-deployment --deployment-id deploymentID --query deploymentInfostatus --output text
3 El comando devuelve el estado general de la implementacioacuten Si todo sale bien el valor esSucceeded
Si el estado general esFailed puede llamar a comandos comoinstancias de implementacioacuten-list-deployment-yget-deployment-instancepara solucionar los problemas Si desea conocer maacutes opcionesde solucioacuten de problemas consulte Anaacutelisis de archivos de registro para investigar los errores deimplementacioacuten en instancias (p 473)
Para monitorizar y resolver problemas de la implementacioacuten (consola)En la paacuteginaImplementacionesen la consola de CodeDeploy puede monitorizar el estado de laimplementacioacuten en laEstadocolumn
Para obtener maacutes informacioacuten acerca de la implementacioacuten sobre todo si el valor de la columna Statustiene un valor distinto de Succeeded
1 En la tabla Deployments (Implementaciones) elija el ID de implementacioacuten Cuando se produce unerror en una implementacioacuten aparece un mensaje que describe el motivo del error en la paacutegina dedetalles de la implementacioacuten
2 Aparece maacutes informacioacuten sobre las instancias de la implementacioacuten Cuando se una implementacioacutenfalla es posible que pueda determinar las instancias de Amazon EC2 y el paso del proceso en el quese ha producido el error
3 Si desea realizar maacutes resolucioacuten de problemas puede utilizar una teacutecnica como View InstanceDetails (p 258) Tambieacuten puede analizar los archivos de log de la implementacioacuten en una instanciade Amazon EC2 Para obtener maacutes informacioacuten consulte Anaacutelisis de archivos de registro parainvestigar los errores de implementacioacuten en instancias (p 473)
Verificacioacuten de la implementacioacutenDespueacutes que la implementacioacuten se realiza correctamente verifique que funciona la instalacioacuten Utilice ladireccioacuten DNS puacuteblica de la instancia de Amazon EC2 para ver la paacutegina web en un navegador web (Paraobtener el valor de DNS puacuteblico en la consola de Amazon EC2 seleccione la instancia de Amazon EC2 yen laDescripcioacuten busque el valor enDNS puacuteblico)
Por ejemplo si la direccioacuten DNS puacuteblica de la instancia de Amazon EC2esec2-01-234-567-890compute-1amazonawscom usariacutea la siguiente direccioacuten URL
httpec2-01-234-567-890compute-1amazonawscom
Si la operacioacuten se realiza correctamente deberiacutea ver una paacutegina web Hello World
Versioacuten de API 2014-10-0698
AWS CodeDeploy Guiacutea del usuarioPaso 5 Actualiza y vuelve a desplegar tu aplicacioacuten
Paso 5 Actualiza y vuelve a desplegar tu laquoholamundoraquo revisiones deAhora que ha implementado correctamente la revisioacuten de la aplicacioacuten actualice el coacutedigo de la paacuteginaweb en el equipo de desarrollo y a continuacioacuten utilice CodeDeploy para volver a implementar el sitioUna vez implementada nuevamente la revisioacuten debe poder ver los cambios en el coacutedigo en la instancia deAmazon EC2
Temasbull Modificar la paacutegina web (p 99)bull Nuevo implementacioacuten del sitio (p 99)
Modificar la paacutegina web1 Vaya a la subcarpeta ctempHelloWorldApp y use un editor de texto para modificar el archivo
indexhtml
cd ctempHelloWorldAppnotepad indexhtml
2 Revise el contenido del archivo indexhtml para cambiar el color de fondo y parte del texto de lapaacutegina web y a continuacioacuten guarde el archivo
ltDOCTYPE html PUBLIC -W3CDTD HTML 401 TransitionalEN httpwwww3orgTRhtml4loosedtdgtlthtmlgtltheadgt lttitlegtHello Again Worldlttitlegt ltstylegt body color ffffff background-color 66cc00 font-family Arial sans-serif font-size14px ltstylegtltheadgtltbodygt ltdiv align=centergtlth1gtHello Again Worldlth1gtltdivgt ltdiv align=centergtlth2gtYou have successfully deployed a revision of an application using CodeDeploylth2gtltdivgt ltdiv align=centergt ltpgtWhat to do next Take a look through the lta href=httpsawsamazoncomcodedeploygtCodeDeploy Documentationltagtltpgt ltdivgtltbodygtlthtmlgt
Nuevo implementacioacuten del sitioAhora que ha modificado el coacutedigo utilice Amazon S3 y CodeDeploy para volver a implementar la paacuteginaweb
Agrupe y cargue los cambios en Amazon S3 como se describe enAgrupe los archivos de la aplicacioacuten enun uacutenico archivo de archivo e inserte el archivo de archivo (p 94) (Cuando siga esas instrucciones
Versioacuten de API 2014-10-0699
AWS CodeDeploy Guiacutea del usuarioPaso 5 Actualiza y vuelve a desplegar tu aplicacioacuten
recuerde que no tiene que crear una nueva aplicacioacuten) Asigne a la nueva revisioacuten la misma clave queantes (HelloWorld_Appzip) Caacuterguela en el mismo bucket de Amazon S3 que creoacute anteriormente (porejemplocodedeploydemobucket)
UsarAWS CLIo la consola de CodeDeploy para volver a implementar el sitio
Temasbull Para volver implementar el sitio (CLI) (p 100)bull Para volver a implementar el sitio (consola) (p 100)
Para volver implementar el sitio (CLI)
Ejecute el comando create-deployment para crear una implementacioacuten basada en la revisioacuten queha cargado utilizando tambieacuten la aplicacioacuten HelloWorld_App la configuracioacuten de implementacioacutenCodeDeployDefaultOneAtATime el grupo de implementaciones HelloWorld_DepGroup y larevisioacuten de la aplicacioacuten HelloWorld_Appzip del bucket codedeploydemobucket
aws deploy create-deployment --application-name HelloWorld_App --deployment-config-name CodeDeployDefaultOneAtATime --deployment-group-name HelloWorld_DepGroup --s3-location bucket=codedeploydemobucketbundleType=zipkey=HelloWorld_Appzip
Puede comprobar el estado de la nueva implementacioacuten como se describe en Monitorizacioacuten y solucioacuten deproblemas de la implementacioacuten (p 97)
Cuando CodeDeploy haya vuelto a implementar el sitio visite de nuevo el sitio en el navegador web paraverificar que el color de fondo y el texto de la paacutegina web han cambiado (Puede que tenga que actualizarel navegador) Si el color de fondo y el texto se han modificado iexclenhorabuena Ha modificado y ha vuelto aimplementar su sitio
Para volver a implementar el sitio (consola)
1 Inicie sesioacuten en elAWS Management Consoley abra la consola de CodeDeploy enhttpsconsoleawsamazoncomcodedeploy
Note
Inicie sesioacuten con la misma cuenta o informacioacuten de usuario de IAM que utilizoacute enIntroduccioacutena CodeDeploy (p 35)
2 En el panel de navegacioacuten elija Applications (Aplicaciones)3 En la lista Applications (Aplicaciones) elija HelloWorld_App4 En la pestantildea Deployments (Implementaciones) elija Create deployment (Crear implementacioacuten)
a En la lista Deployment group elija HelloWorld_DepGroupb EnUbicacioacuten de la revisioacuten introduzca el enlace de Amazon S3 para su revisioacuten
Para encontrar el valor del enlace
i Inicie sesioacuten en la AWS Management Console y abra la consola de Amazon S3 en httpsconsoleawsamazoncoms3
Vaya a y abracodedeploydemobuckety luego elija la revisioacutenHelloWorld_Appzip en laconsola de Amazon S3
ii Si el archivo dePropiedadesno se muestra en la consola de Amazon S3 elijalaPropiedadesBotoacuten
iii En el panel Properties (Propiedades) copie el valor del campo Link (Enlace)Versioacuten de API 2014-10-06
100
AWS CodeDeploy Guiacutea del usuarioPaso 6 Eliminar recursos
iv Vuelva a la consola de CodeDeploy a continuacioacuten pegue el enlace enUbicacioacuten de larevisioacuten
vc En Revision file type (Tipo de archivo de revisioacuten) si aparece un mensaje en el que se indica que
no se ha podido detectar el tipo de archivo elija zipd Deje Deployment description (Descripcioacuten de implementacioacuten) en blancoe AmpliarAnulaciones de grupos de implementacionesEn el navegadorConfiguracioacuten de
implementacioacutenlista elijaCodeDeployDefaultOneAtATimey luego elijaCrear implementacioacuten
Puede comprobar el estado de la implementacioacuten como se describe en Monitorizacioacuten y solucioacutende problemas de la implementacioacuten (p 97)
Cuando CodeDeploy haya vuelto a implementar el sitio visite de nuevo el sitio en el navegadorweb para verificar que el color de fondo y el texto de la paacutegina web han cambiado (Puedeque tenga que actualizar el navegador) Si el color de fondo y el texto se han modificadoiexclenhorabuena Ha modificado y ha vuelto a implementar su sitio
Paso 6 Limpia tu laquohola mundoraquo aplicaciones yrecursos relacionadosHa actualizado el coacutedigo de Hello World correctamente e implementado de nuevo el sitio Para evitarcargos recurrentes por los recursos que ha creado para completar este tutorial debe eliminar
bull CualquierAWS CloudFormationapila (o terminar todas las instancias de Amazon EC2) si las ha creadofuera deAWS CloudFormation)
bull Todos los buckets de Amazon S3bull LaHelloWorld_Appaplicacioacuten en CodeDeploybull LaAWS Systems ManagerAsociacioacuten de Administrador de estados de para el agente de CodeDeploy
Puede utilizar elAWS CLI elAWS CloudFormation consolas Amazon S3 Amazon EC2 y CodeDeploy olas consolasAWSAPI para realizar la limpieza
Temasbull Para limpiar los recursos (CLI) (p 101)bull Para limpiar los recursos (consola) (p 102)bull Siguientes pasos (p 103)
Para limpiar los recursos (CLI)1 Si utilizoacute la pila de AWS CloudFormation para este tutorial elimiacutenela realizando una llamada al
comando delete-stack para la pila denominada CodeDeployDemoStack Esto termina todas lasinstancias de Amazon EC2 vinculadas y eliminaraacute todos los roles de IAM asociados y creadosoriginalmente por el stack
aws cloudformation delete-stack --stack-name CodeDeployDemoStack
2 Para eliminar el bucket de Amazon S3 llame alrmcomando con el--recursivecambiar contra eldepoacutesito llamadocodedeploydemobucket Asiacute elimina el bucket y todos los objetos que contiene
aws s3 rm s3codedeploydemobucket --recursive
Versioacuten de API 2014-10-06101
AWS CodeDeploy Guiacutea del usuarioPaso 6 Eliminar recursos
3 Para eliminar elHelloWorld_Appdesde CodeDeploy llame aldelete-applicationcomando Estoelimina todos los registros de grupo de implementaciones asociados y los registros de implementacioacutende la aplicacioacuten
aws deploy delete-application --application-name HelloWorld_App
4 Para eliminar la asociacioacuten del Administrador de estados de Systems Manager llame aldelete-associationcomando
aws ssm delete-association --assocation-id association-id
Para obtener el valor de id-asociacioacuten llame al comando describe-association
aws ssm describe-association --name AWS-ConfigureAWSPackage --targets Key=tagNameValues=CodeDeployDemo
5 Si no has usado elAWS CloudFormationpila para este tutorial llame alterminate-instancesparaterminar las instancias de Amazon EC2 que haya creado manualmente Indique el ID de la instanciaAmazon EC2 que desea terminar
aws ec2 terminate-instances --instance-ids instanceId
Para limpiar los recursos (consola)Si ha utilizado la plantilla de AWS CloudFormation para este tutorial elimine la pila de AWSCloudFormation asociada
1 Inicie sesioacuten en la AWS Management Console y abra la consola de AWS CloudFormation en httpsconsoleawsamazoncomcloudformation
2 En el campo de buacutesqueda escriba el nombre de la pila de AWS CloudFormation (por ejemploCodeDeployDemoStack)
3 Seleccione la casilla junto al nombre de la pila4 En el menuacute Actions (Acciones) elija Delete Stack (Eliminar pila) Esto elimina la pila terminaraacute todas
las instancias de Amazon EC2 asociadas y eliminaraacute todos los roles de IAM asociados
Para terminar las instancias de Amazon EC2 que haya creado fuera de unAWS CloudFormationpila
1 Inicie sesioacuten en la AWS Management Console y abra la consola de Amazon EC2 en httpsconsoleawsamazoncomec2
2 En el aacuterea Instances elija Instances3 En el campo de buacutesqueda escriba el nombre de la instancia Amazon EC2 que desee eliminar y a
continuacioacuten pulseEntrar4 Seleccione la instancia Amazon EC25 Elija Actions seleccione Instance State y elija Terminate Cuando se le pregunte elija Yes Terminate
Repita estos pasos para todas las instancias de Amazon EC2
Para eliminar el bucket de Amazon S3
1 Inicie sesioacuten en la AWS Management Console y abra la consola de Amazon S3 en httpsconsoleawsamazoncoms3
2 En la lista de buckets busque y seleccione el nombre del bucket de Amazon S3 (porejemplocodedeploydemobucket)
Versioacuten de API 2014-10-06102
AWS CodeDeploy Guiacutea del usuarioTutorial Implementacioacuten de una
aplicacioacuten en una instancia on-premises
3 Para eliminar un bucket primero debe eliminar su contenido Seleccione todos los archivos del bucketcomo HelloWorld_Appzip En el menuacute Actions elija Delete Cuando se le pida confirmar laeliminacioacuten elija OK
4 Una vez vaciacuteo puede eliminar el bucket En la lista de buckets elija la liacutenea del bucket (pero no sunombre) Elija Delete bucket y cuando se le pida que confirme seleccione OK
Para eliminar elHelloWorld_Appaplicacioacuten de CodeDeploy
1 Inicie sesioacuten en elAWS Management Consoley abra la consola de CodeDeploy enhttpsconsoleawsamazoncomcodedeploy
Note
Inicie sesioacuten con la misma cuenta o informacioacuten de usuario de IAM que utilizoacute enIntroduccioacutena CodeDeploy (p 35)
2 En el panel de navegacioacuten expandaDesplegary a continuacioacuten seleccioneAplicaciones
3 Elija HelloWorld_App4 Seleccione Delete application (Eliminar aplicacioacuten)5 Cuando se le pregunte escriba Delete y a continuacioacuten elija Delete (Eliminar)
Para eliminar la asociacioacuten del Administrador de estados de Systems Manager
1 Abra el iconoAWS Systems Managerconsola en httpsconsoleawsamazoncomsystems-manager2 En el panel de navegacioacuten elija Administrador de estados3 Elija la asociacioacuten que ha creado y despueacutes elija Eliminar
Siguientes pasosSi ha llegado hasta aquiacute ha realizado correctamente una implementacioacuten con CodeDeploy iexclEnhorabuena
Tutorial Implementar una aplicacioacuten en unainstancia local con CodeDeploy (Windows ServerUbuntu Server o Red Hat Enterprise Linux)
Este tutorial le daraacute experiencia con CodeDeploy guiaacutendole por la implementacioacuten de una revisioacuten de unaaplicacioacuten en una uacutenica instancia on-premises es decir en un dispositivo fiacutesico que no es una instanciaAmazon EC2 con Windows Server Ubuntu Server o Red Hat Enterprise Linux (RHEL) Para obtener maacutesinformacioacuten sobre las instancias on-premises y coacutemo funcionan con CodeDeploy consulteWorking withOn-Premises Instances (p 230)
iquestNo es lo que estaacute buscando
bull Para practicar la implementacioacuten en una instancia Amazon EC2 que ejecuta Amazon Linux o RHELconsulteTutorial Implementar WordPress en una instancia de Amazon EC2 (Amazon Linux o Red HatEnterprise Linux y Linux macOS o Unix) (p 68)
bull Para practicar la implementacioacuten en una instancia Amazon EC2 que ejecuta Windows ServerconsulteTutorial Despliega un laquohola mundoraquo aplicacioacuten con CodeDeploy (Windows Server) (p 87)
Versioacuten de API 2014-10-06103
AWS CodeDeploy Guiacutea del usuarioRequisitos previos
Temasbull Requisitos previos (p 104)bull Paso 1 Configuracioacuten de la instancia on-premises (p 104)bull Paso 2 Creacioacuten de una revisioacuten de aplicacioacuten de muestra (p 104)bull Paso 3 Agrupe y cargue la revisioacuten de la aplicacioacuten en Amazon S3 (p 108)bull Paso 4 Implementar la revisioacuten de la aplicacioacuten (p 108)bull Paso 5 Verificacioacuten de la implementacioacuten (p 108)bull Paso 6 Limpiar recursos (p 108)
Requisitos previosAntes de comenzar este tutorial debe completar los requisitos previos enIntroduccioacuten aCodeDeploy (p 35) que incluyen configurar el usuario de IAM instalar o actualizar elAWS CLIy crear unrol de servicio No es necesario crear un perfil de instancia de IAM como se describe en los requisitosprevios Las instancias on-premises no utilizan perfiles de instancia de IAM
El dispositivo fiacutesico que configuraraacute como instancia on-premises debe emplear uno de los sistemasoperativos indicados en Sistemas operativos compatibles con el agente de CodeDeploy (p 175)
Paso 1 Configuracioacuten de la instancia on-premisesAntes de implementar en la instancia on-premises debe configurarla Siga las instrucciones de Workingwith On-Premises Instances (p 230) y a continuacioacuten vuelva a esta paacutegina
Instalacioacuten del agente de CodeDeployUna vez configurada la instancia on-premises siga los pasos para las instancias on-premises enInstalacioacutendel agente de CodeDeployy vuelva a esta paacutegina
Paso 2 Creacioacuten de una revisioacuten de aplicacioacuten demuestraEn este paso crearaacute una revisioacuten de aplicacioacuten de ejemplo para implementarla en la instancia en lasinstalaciones
Dado que es difiacutecil conocer el software y las caracteriacutesticas que ya estaacuten instalados -o que las poliacuteticasde su organizacioacuten permiten instalar- en la instancia on-premises la revisioacuten de aplicacioacuten de ejemploque incluimos aquiacute usa simplemente scripts por lotes (en Windows Server) o scripts shell (en UbuntuServer y RHEL) para escribir archivos de texto en una ubicacioacuten de la instancia on-premises Seescribe un archivo en cada uno de los eventos del ciclo de vida de la implementacioacuten de CodeDeploycomoInstalarAfterInstallApplicationStart yValidateService Durante el evento BeforeInstall del ciclode vida de la implementacioacuten se ejecutaraacute un script para eliminar los archivos antiguos escritos en lasimplementaciones anteriores de este ejemplo y crear una ubicacioacuten en la instancia on-premises en la queescribir los archivos nuevos
Note
La implementacioacuten de la revisioacuten de aplicacioacuten de ejemplo puede fallar si se da cualquiera de lassiguientes circunstancias
bull La cuenta de usuario que inicia el agente de CodeDeploy en la instancia on-premises no tienepermiso para ejecutar scripts
Versioacuten de API 2014-10-06104
AWS CodeDeploy Guiacutea del usuarioPaso 2 Creacioacuten de una revisioacuten de aplicacioacuten de muestra
bull La cuenta de usuario no tiene permiso para crear o eliminar carpetas en las ubicacionesindicadas en los scripts
bull La cuenta de usuario no tiene permiso para crear archivos de texto en las ubicaciones indicadasen los scripts
Note
Si ha configurado una instancia de Windows Server y desea implementar un ejemplo diferentepuede ser uacutetil usar el indicado enPaso 2 Configurar el contenido de origen para implementarloen la instancia de Amazon EC2 de Windows Server (p 90)en laTutorial Despliega un laquoholamundoraquo aplicacioacuten con CodeDeploy (Windows Server) (p 87)Hello WorldSi ha configurado una instancia de RHEL y desea implementar un ejemplo diferente puedeser uacutetil usar el indicado enPaso 2 Configurar el contenido de origen para implementarlo enla instancia Amazon Linux o Red Hat Enterprise Linux Amazon EC2 (p 70)en laTutorialImplementar WordPress en una instancia de Amazon EC2 (Amazon Linux o Red Hat EnterpriseLinux y Linux macOS o Unix) (p 68)Hello WorldEn la actualidad no hay ninguacuten ejemplo alternativo para Ubuntu Server
1 En el equipo de desarrollo cree un subdirectorio (subcarpeta) con el nombre CodeDeployDemo-OnPrem para almacenar los archivos de la revisioacuten de aplicacioacuten de ejemplo y a continuacioacuten situacuteeseen esa subcarpeta En este ejemplo se supone que usaraacute lactempcarpeta como carpeta raiacutez deWindows Server otmpcarpeta como carpeta raiacutez de Ubuntu Server y RHEL Si utiliza una carpetadiferente aseguacuterese de indicarla en lugar de la anterior en todo el tutorial
Para Windows
mkdir ctempCodeDeployDemo-OnPremcd ctempCodeDeployDemo-OnPrem
Para Linux macOS o Unix
mkdir tmpCodeDeployDemo-OnPremcd tmpCodeDeployDemo-OnPrem
2 En la raiacutez de la subcarpeta CodeDeployDemo-OnPrem utilice en editor de texto para crear dosarchivos con los nombres appspecyml e installtxt
appspecymlpara Windows Server
version 00os windowsfiles - source installtxt destination ctempCodeDeployExamplehooks BeforeInstall - location scriptsbefore-installbat timeout 900 AfterInstall - location scriptsafter-installbat timeout 900 ApplicationStart - location scriptsapplication-startbat timeout 900 ValidateService - location scriptsvalidate-servicebat timeout 900
Versioacuten de API 2014-10-06105
AWS CodeDeploy Guiacutea del usuarioPaso 2 Creacioacuten de una revisioacuten de aplicacioacuten de muestra
appspecymlpara Ubuntu Server y RHEL
version 00os linuxfiles - source installtxt destination tmpCodeDeployExamplehooks BeforeInstall - location scriptsbefore-installsh timeout 900 AfterInstall - location scriptsafter-installsh timeout 900 ApplicationStart - location scriptsapplication-startsh timeout 900 ValidateService - location scriptsvalidate-servicesh timeout 900
Para obtener maacutes informacioacuten acerca de los archivos de AppSpec consulte Agregar un archivode especificacioacuten de aplicacioacuten a una revisioacuten de CodeDeploy (p 308) y Referencia del archivoCodeDeploy AppSpec (p 407)
installtxt
The Install deployment lifecycle event successfully completed
3 En la raiacutez de la subcarpeta CodeDeployDemo-OnPrem cree una subcarpeta scripts y situacuteese enella
Para Windows
mkdir ctempCodeDeployDemo-OnPremscriptscd ctempCodeDeployDemo-OnPremscripts
Para Linux macOS o Unix
mkdir -p tmpCodeDeployDemo-OnPremscriptscd tmpCodeDeployDemo-OnPremscripts
4 En la raiacutez de lascriptssubcarpeta utilice un editor de texto para crear cuatro archivos con losnombresbefore-installbatafter-installbatapplication-startbat yvalidate-servicebatpara Windows Server obefore-installshafter-installshapplication-startsh yvalidate-serviceshpara Ubuntu Server y RHEL
Para Windows Server
before-installbat
set FOLDER=HOMEDRIVEtempCodeDeployExample
if exist FOLDER ( rd s q FOLDER)
mkdir FOLDER
Versioacuten de API 2014-10-06106
AWS CodeDeploy Guiacutea del usuarioPaso 2 Creacioacuten de una revisioacuten de aplicacioacuten de muestra
after-installbat
cd HOMEDRIVEtempCodeDeployExample
echo The AfterInstall deployment lifecycle event successfully completed gt after-installtxt
application-startbat
cd HOMEDRIVEtempCodeDeployExample
echo The ApplicationStart deployment lifecycle event successfully completed gt application-starttxt
validate-servicebat
cd HOMEDRIVEtempCodeDeployExample
echo The ValidateService deployment lifecycle event successfully completed gt validate-servicetxt
Para Ubuntu Server y RHEL
before-installsh
binbashexport FOLDER=tmpCodeDeployExample
if [ -d $FOLDER ]then rm -rf $FOLDERfi
mkdir -p $FOLDER
after-installsh
binbashcd tmpCodeDeployExample
echo The AfterInstall deployment lifecycle event successfully completed gt after-installtxt
application-startsh
binbashcd tmpCodeDeployExample
echo The ApplicationStart deployment lifecycle event successfully completed gt application-starttxt
validate-servicesh
binbashcd tmpCodeDeployExample
Versioacuten de API 2014-10-06107
AWS CodeDeploy Guiacutea del usuarioPaso 3 Agrupe y cargue la revisioacuten
de la aplicacioacuten en Amazon S3
echo The ValidateService deployment lifecycle event successfully completed gt validate-servicetxt
unset FOLDER
5 Solo para Ubuntu Server y RHEL aseguacuterese de que los cuatro scripts tengan permisos de ejecucioacuten
chmod +x scripts
Paso 3 Agrupe y cargue la revisioacuten de la aplicacioacuten enAmazon S3Para poder implementar la revisioacuten de la aplicacioacuten antes tiene que agrupar sus archivos y cargarel paquete en un bucket de Amazon S3 Siga las instrucciones en Crear una aplicacioacuten conCodeDeploy (p 273) y Enviar una revisioacuten de CodeDeploy en Amazon S3 (solo implementacionesde EC2locales) (p 316) (Aunque puede dar cualquier nombre a la aplicacioacuten y al grupo deimplementaciones le recomendamos especificar CodeDeploy-OnPrem-App como nombre para laaplicacioacuten y CodeDeploy-OnPrem-DG como nombre del grupo de implementaciones) Una vez que hayacompletado las instrucciones vuelve a esta paacutegina
Note
Como alternativa puede cargar el paquete de archivos en un repositorio de GitHub eimplementarlo desde alliacute Para obtener maacutes informacioacuten consulte Integracioacuten de CodeDeploy conGitHub (p 63)
Paso 4 Implementar la revisioacuten de la aplicacioacutenUna vez cargada la revisioacuten de la aplicacioacuten en un bucket de Amazon S3 intente implementarla en lainstancia on-premises Siga las instrucciones de Cree una implementacioacuten con CodeDeploy (p 324) y acontinuacioacuten vuelva a esta paacutegina
Paso 5 Verificacioacuten de la implementacioacutenPara comprobar si la implementacioacuten se ha realizado correctamente siga las instrucciones de Ver detallesde implementacioacuten de CodeDeploy (p 340) y a continuacioacuten vuelva a esta paacutegina
Si la implementacioacuten se ha realizado correctamente encontraraacute cuatro archivos de texto en lactempCodeDeployExamplecarpeta (para Windows Server) otmpCodeDeployExample(para UbuntuServer y RHEL)
Si la implementacioacuten ha fallado siga los pasos de resolucioacuten de problemas de View InstanceDetails (p 258) y Solucioacuten de problemas de instancias (p 472) Haga las correcciones necesariasvuelva a empaquetar y cargar la revisioacuten de la aplicacioacuten e intente implementarla de nuevo
Paso 6 Limpiar recursosPara evitar cargos recurrentes por los recursos que ha creado para este tutorial elimine el bucket deAmazon S3 si no va a utilizarlo Tambieacuten puede limpiar los recursos asociados como los registros de laaplicacioacuten y del grupo de implementaciones en CodeDeploy y la instancia on-premises
Puede utilizar elAWS CLIo una combinacioacuten de las consolas CodeDeploy y Amazon S3 yAWS CLIparalimpiar los recursos
Versioacuten de API 2014-10-06108
AWS CodeDeploy Guiacutea del usuarioPaso 6 Limpiar recursos
Limpieza de recursos (CLI)Para eliminar el bucket de Amazon S3
bull Ejecute el comando rm con el modificador --recursive para el bucket (por ejemplocodedeploydemobucket) El bucket y todos los objetos que contiene se eliminaraacuten
aws s3 rm s3your-bucket-name --recursive
Para eliminar los registros de la aplicacioacuten y el grupo de implementaciones en CodeDeploy
bull Llame a laeliminar aplicacioacutencomando contra la aplicacioacuten (por ejemploCodeDeploy-OnPrem-App)Los registros de la implementacioacuten y del grupo de implementaciones se eliminaraacuten
aws deploy delete-application --application-name your-application-name
Para cancelar el registro de la instancia on-premises y eliminar el usuario de IAM
bull Llame a laAnular registrocomando para la instancia on-premises y la regioacuten
aws deploy deregister --instance-name your-instance-name --delete-iam-user --region your-region
Note
Si no desea eliminar el usuario de IAM asociado a esta instancia on-premises utilice la--no-delete-iam-useropcioacuten en su lugar
Para desinstalar el agente de CodeDeploy y eliminar el archivo de configuracioacuten de la instanciaon-premises
bull Desde la instancia on-premises ejecute ladesinstalarcomando
aws deploy uninstall
Ha completado todos los pasos para limpiar los recursos utilizados en este tutorial
Limpieza de recursos (consola)Para eliminar el bucket de Amazon S3
1 Inicie sesioacuten en la AWS Management Console y abra la consola de Amazon S3 en httpsconsoleawsamazoncoms3
2 Elija el icono junto al bucket que desea eliminar (por ejemplo codedeploydemobucket) pero noelija el bucket en siacute
3 Elija Acciones y a continuacioacuten elija Eliminar4 Cuando se le pida confirmacioacuten de que desea eliminar el bucket elija OK
Versioacuten de API 2014-10-06109
AWS CodeDeploy Guiacutea del usuarioTutorial Implementar en un grupo de Auto Scaling
Para eliminar los registros de la aplicacioacuten y el grupo de implementaciones en CodeDeploy
1 Inicie sesioacuten en laAWS Management Consoley abra la consola de CodeDeploy enhttpsconsoleawsamazoncomcodedeploy
Note
Inicie sesioacuten con la misma cuenta o informacioacuten de usuario de IAM que utilizoacute enIntroduccioacutena CodeDeploy (p 35)
2 En el panel de navegacioacuten elija Applications (Aplicaciones)3 Elija el nombre de la aplicacioacuten que desea eliminar (por ejemplo CodeDeploy-OnPrem-App) y a
continuacioacuten elija Delete application (Eliminar aplicacioacuten)4 Cuando se le solicite introduzca el nombre de la aplicacioacuten para confirmar que desea eliminarla y
seleccione Delete (Eliminar)
No puede usar laAWS CodeDeploypara cancelar el registro de la instancia on-premises o para desinstalarel agente de CodeDeploy Siga las instrucciones en Para cancelar el registro de la instancia on-premises yeliminar el usuario de IAM (p 109)
Tutorial UsarCodeDeploypara implementar unaaplicacioacuten en un grupo de Auto Scaling
En este tutorial utilizaraacuteCodeDeployPara implementar una revisioacuten de una aplicacioacuten en un grupo de AutoScaling Amazon EC2 Auto Scaling lanza instancias de Amazon EC2 mediante condiciones predefinidasy a continuacioacuten termina esas instancias cuando ya no son necesarias Amazon EC2 Auto Scaling puedeayudarCodeDeployescalar garantizando que siempre cuenta con la cantidad correcta de instancias deAmazon EC2 disponibles para controlar la carga de implementaciones Para obtener informacioacuten acercade la integracioacuten de Amazon EC2 Auto Scaling conCodeDeploy consulteIntegracioacuten de CodeDeploy conAmazon EC2 Auto Scaling (p 53)
Temasbull Requisitos previos (p 110)bull Paso 1 Creacioacuten y configuracioacuten del grupo de Auto Scaling (p 111)bull Paso 2 Implementar la aplicacioacuten en el grupo de Auto Scaling (p 115)bull Paso 3 Compruebe sus resultados (p 121)bull Paso 4 Aumente el nuacutemero de instancias de Amazon EC2 en el grupo de Auto Scaling (p 122)bull Paso 5 Vuelve a comprobar los resultados (p 123)bull Paso 6 Eliminar recursos (p 125)
Requisitos previosPara seguir en este tutorial
bull Complete todos los pasos delIntroduccioacuten a CodeDeploy (p 35) incluida la configuracioacuten y configuracioacutendelAWS CLIy creacioacuten de un perfil de instancia de IAM (CodeDeployDemo-EC2-Instance-Profile)y un rol de servicio (CodeDeployDemo) UNARol de servicio dees un tipo especial de rol de IAM que daa un servicio permiso para actuar en nombre de un usuario
bull Si crea un grupo de Auto Scaling con una plantilla de lanzamiento debe agregar los siguientes permisosbull ec2RunInstances
bull ec2CreateTags
Versioacuten de API 2014-10-06110
AWS CodeDeploy Guiacutea del usuarioPaso 1 Creacioacuten y configuracioacuten del grupo de Auto Scaling
bull iamPassRole
Para obtener maacutes informacioacuten consultePaso 2 Crear un rol de servicio (p 36)Creacioacuten de una plantillade lanzamiento para un grupo de Auto Scaling yCompatibilidad con las plantillas de lanzamientoenlaGuiacutea del usuario de Amazon EC2 Auto Scaling
bull Cree y utilice una revisioacuten que sea compatible con una instancia de Ubuntu Server yCodeDeploy Parasu revisioacuten puede realizar una de las siguientes accionesbull Cree y utilice la revisioacuten de ejemplo en Paso 2 Creacioacuten de una revisioacuten de aplicacioacuten de
muestra (p 104) en el tutorial Tutorial Implementar una aplicacioacuten en una instancia local conCodeDeploy (Windows Server Ubuntu Server o Red Hat Enterprise Linux) (p 103)
bull Para crear su propia revisioacuten consulte Uso de revisiones de aplicaciones de CodeDeploy (p 307)bull Crear un grupo de seguridad denominadoCodeDeployDemo-AS-SGcon los siguientes ejemplos
deRegla de entradabull Type HTTPbull Origen Dondequiera
Esto es necesario para ver la aplicacioacuten y verificar el eacutexito de la implementacioacuten Para obtenerinformacioacuten sobre coacutemo crear un grupo de seguridad consulteCrear un grupo de seguridaden laGuiacutea delusuario de Amazon EC2
Paso 1 Creacioacuten y configuracioacuten del grupo de AutoScalingEn este paso crearaacute un grupo de Auto Scaling que contiene una uacutenica instancia Amazon EC2 de AmazonLinux RHEL o Windows Server En un paso posterior indicaraacute a Amazon EC2 Auto Scaling que antildeada otrainstancia de Amazon EC2 yCodeDeployimplementaraacute la revisioacuten en eacutel
Temasbull Para crear y configurar el grupo de Auto Scaling (CLI) (p 111)bull Para crear y configurar el grupo de Auto Scaling (consola) (p 114)
Para crear y configurar el grupo de Auto Scaling (CLI)1 Llame a lacreate-launch-templatepara crear una plantilla de lanzamiento de Amazon EC2
Antes de invocar este comando necesitaraacute el ID de una AMI adecuada para este tutorialrepresentado por el marcador de posicioacuten image-id Tambieacuten necesitaraacute el nombre de un key pairde instancia Amazon EC2 para permitir el acceso a la instancia de Amazon EC2 representado por elmarcador de posicioacutenNombre de clave
Para obtener el ID de una AMI adecuada para este tutorial
a Abra la consola de Amazon EC2 en httpsconsoleawsamazoncomec2b En el panel de navegacioacuten en Instances elija Instances y seleccione Launch Instancec En la paacuteginaQuick Start (Inicio raacutepido)Pestantildea dePaacutegina Choose an Amazon Machine Image
(Elegir una Amazon Machine Image) observe el ID de la AMI junto aAMI de Amazon Linux 2RedHat Enterprise Linux 71Ubuntu Server 1404 LTS o bienMicrosoft Windows Server 2012 R2
Note
Si dispone de una versioacuten personalizada de una AMI que sea compatible conCodeDeploy eliacutejala aquiacute en lugar de buscarla en la pestantildea Quick Start (Inicio raacutepido)
Versioacuten de API 2014-10-06111
AWS CodeDeploy Guiacutea del usuarioPaso 1 Creacioacuten y configuracioacuten del grupo de Auto Scaling
Para obtener informacioacuten sobre el uso de una AMI personalizada conCodeDeployyAmazon EC2 Auto Scaling consulteUso de una AMI personalizada con CodeDeploy yAmazon EC2 Auto Scaling (p 57)
Como key pair de la instancia de Amazon EC2 indique el nombre del key pair de su instancia deAmazon EC2
Ejecute el comando create-launch-template
En maacutequinas Linux macOS o Unix locales
aws ec2 create-launch-template --launch-template-name CodeDeployDemo-AS-Launch-Template --launch-template-data fileconfigjson
Contenido delconfigjsonfile
InstanceTypet1micro ImageIdimage-id IamInstanceProfile NameCodeDeployDemo-EC2-Instance-Profile KeyNamekey-name
En los equipos locales con Windows
aws ec2 create-launch-template --launch-template-name CodeDeployDemo-AS-Launch-Template --launch-template-data fileconfigjson
Contenido delconfigjsonfile
InstanceTypet1micro ImageIdimage-id IamInstanceProfile NameCodeDeployDemo-EC2-Instance-Profile KeyNamekey-name
Estos comandos junto con elconfigjson cree una plantilla de lanzamiento de Amazon EC2llamadaCodeDeployPlantilla de demostracioacuten como lanzamiento para su grupo de Auto Scalingque se crearaacute en un paso siguiente seguacuten el tipo de instancia t1micro Amazon EC2 Basado entus aportaciones paraImageIdIamInstanceProfile yKeyName la plantilla de lanzamientotambieacuten especifica el ID de AMI el nombre del perfil de instancia asociado con el rol de IAM que seva a transferir a las instancias en el lanzamiento y el key pair de Amazon EC2 que se va a utilizar alconectarse a las instancias
2 Llame a lacreate-auto-scaling-grouppara crear un grupo de Auto Scaling Necesitaraacute el nombre de unade las zonas de disponibilidad de una de las regiones enumeradas enRegioacuten y puntos de enlaceenlaAWSReferencia general de representado por el marcador de posicioacutenAvailability zone
Note
Para ver una lista de las zonas de disponibilidad de una regioacuten ejecute este comandoVersioacuten de API 2014-10-06
112
AWS CodeDeploy Guiacutea del usuarioPaso 1 Creacioacuten y configuracioacuten del grupo de Auto Scaling
aws ec2 describe-availability-zones --region region-name
Por ejemplo para ver una lista de zonas de disponibilidad de la regioacuten EE UU Oeste(Oregoacuten) ejecute el comando siguiente
aws ec2 describe-availability-zones --region us-west-2
Para obtener una lista de los identificadores de nombres de regioacuten consulte Nombres debuckets del kit de recursos por regioacuten (p 449)
En maacutequinas Linux macOS o Unix locales
aws autoscaling create-auto-scaling-group --auto-scaling-group-name CodeDeployDemo-AS-Group --launch-template CodeDeployDemo-AS-Launch-TemplateVersion=$Latest --min-size 1 --max-size 1 --desired-capacity 1 --availability-zones availability-zone --tags Key=NameValue=CodeDeployDemoPropagateAtLaunch=true
En los equipos locales con Windows
aws autoscaling create-auto-scaling-group --auto-scaling-group-name CodeDeployDemo-AS-Group --launch-template CodeDeployDemo-AS-Launch-TemplateVersion=$Latest --min-size 1 --max-size 1 --desired-capacity 1 --availability-zones availability-zone --tags Key=NameValue=CodeDeployDemoPropagateAtLaunch=true
Estos comandos crean un grupo de Auto Scaling denominadoCodeDeployDemo-AS-Groupbasadoen la plantilla de lanzamiento de Amazon EC2 denominadaCodeDeployDemo-AS-Launch-Template Este grupo de Auto Scaling tiene una uacutenica instancia de Amazon EC2 y se crea enla zona de disponibilidad especificada Cada instancia de este grupo de Auto Scaling tendraacute laetiquetaName=CodeDeployDemo La etiqueta se usaraacute al instalar el agente de CodeDeploy maacutesadelante
3 Ejecute el comando describe-auto-scaling-groups con CodeDeployDemo-AS-Group
aws autoscaling describe-auto-scaling-groups --auto-scaling-group-names CodeDeployDemo-AS-Group --query AutoScalingGroups[0]Instances[][HealthStatus LifecycleState] --output text
No continuacutee hasta que los valores devueltos indiquen Healthy y InService4 Las instancias de un grupo de Auto Scaling deben tener laCodeDeployagente instalado para ser
utilizado enCodeDeployImplementaciones Instalacioacuten delCodeDeployagente llamando alcreate-associationcomando deAWS Systems Managercon las etiquetas que se agregaron al crear el grupo deAuto Scaling
aws ssm create-association --name AWS-ConfigureAWSPackage --targets Key=tagNameValues=CodeDeployDemo --parameters action=Install name=AWSCodeDeployAgent --schedule-expression cron(0 2 SUN )
Versioacuten de API 2014-10-06113
AWS CodeDeploy Guiacutea del usuarioPaso 1 Creacioacuten y configuracioacuten del grupo de Auto Scaling
Este comando crea una asociacioacuten en el Administrador de estado de Systems Manager que instalaraacuteelCodeDeployagente en todas las instancias del grupo de Auto Scaling y a continuacioacuten intenteactualizarla todos los domingos por la mantildeana a las 200 Para obtener maacutes informacioacuten acerca delaCodeDeployagente consulteUso delCodeDeployagente Para obtener maacutes informacioacuten acerca deSystems Manager consulteiquestQueacute es AWS Systems Manager
Para crear y configurar el grupo de Auto Scaling (consola)1 Abra la consola de Amazon EC2 en httpsconsoleawsamazoncomec22 En la barra de navegacioacuten global aseguacuterese de que una de las regiones enumeradas enRegioacuten y
puntos de enlaceen laAWSReferencia general deestaacute seleccionado Los recursos de Amazon EC2Auto Scaling estaacuten asociados a la regioacuten especificada yCodeDeploysolo se admite en regionesseleccionadas
3 En la barra de navegacioacuten enInstancias eligePlantillas de lanzamiento4 Elija Create launch template (Crear plantilla de lanzamiento)5 En el navegadorNombre y descripcioacuten de la plantilla de lanzamiento paraNombre de la plantilla
de lanzamiento introduzcaCodeDeployDemo-AS-Launch-Template Mantenga los valorespredeterminados para el resto de los campos
6 En el navegadorImagen de maacutequina de Amazon (AMI) haz clic en el menuacute desplegable deAMI elijauna AMI adecuada para este tutorial
bull En la paacuteginaQuick Start (Inicio raacutepido)Pestantildea deAMIdesplegable elija una de las siguientesopciones AMI de Amazon Linux 2Red Hat Enterprise Linux 71Ubuntu Server 1404 LTS obienMicrosoft Windows Server 2012 R2
Note
Si dispone de una versioacuten personalizada de una AMI que sea compatible conCodeDeploy eliacutejala aquiacute en lugar de buscarla en la pestantildea Quick Start (Inicio raacutepido)Para obtener informacioacuten sobre el uso de una AMI personalizada conCodeDeployyAmazon EC2 Auto Scaling consulteUso de una AMI personalizada con CodeDeploy yAmazon EC2 Auto Scaling (p 57)
7 EnTipo de instancia selecciona el menuacute desplegable y eliget1micro Puede utilizar la barra debuacutesqueda para encontrarlo con maacutes rapidez
8 En el navegadorPar de claves (inicio de sesioacuten) seleccioneElija un key pair existente En elnavegadorSeleccionar un par de clavesElija el key pair de instancia de Amazon EC2 que ha creado ousado en los pasos anteriores
9 En el navegadorNetwork settings (Configuracioacuten de red) seleccioneVirtual Public Cloud (VPC)
En el navegadorGrupos de seguridadEn la lista desplegable elija el grupo de seguridad que ha creadoen laseccioacuten de requisitos previos del tutorial(CodeDeployDemo-AS-SG)
10 AmpliacuteeDetalles avanzadoscuadro de diaacutelogo En el navegadorPerfil de instancia IAMdesplegableseleccione el rol de IAM que ha creado anteriormente (CodeDeployDemo-EC2-Instance-Profile) enPerfil de instancia IAM
Deje el resto de las opciones predeterminadas11 Elija Create launch template (Crear plantilla de lanzamiento)12 En el navegadorPasos siguientes seleccioneCrear grupo de Auto Scaling13 En la paacuteginaElija la plantilla de lanzamiento o la configuracioacuten paraNombre de grupo de Auto Scaling
tipoCodeDeployDemo-AS-Group14 En el navegadorPlantilla de lanzamientocuadro de diaacutelogo la plantilla de lanzamiento
(CodeDeployDemo-AS-Launch-Template) debe rellenarse si no seleccioacutenela en el menuacutedesplegable Deje los valores predeterminados y elijaProacuteximo
Versioacuten de API 2014-10-06114
AWS CodeDeploy Guiacutea del usuarioPaso 2 Implementar la aplicacioacuten
en el grupo de Auto Scaling
15 En la paacuteginaPaacutegina Elegir opciones de lanzamiento de instancias en elRed paraVPC elija laVPC predeterminada A continuacioacuten paraZonas de disponibilidad y subredes elija una subredpredeterminada Debe crear una VPC si no puede elegir la predeterminada Para obtener maacutesinformacioacuten consulteIntroduccioacuten a Amazon VPC
16 En el navegadorNecesidades de tipo de instancia utilice la configuracioacuten predeterminada parasimplificar este paso (No anule la plantilla de lanzamiento) En este tutorial solo lanzaraacute instanciasbajo demanda con el tipo de instancia especificado en la plantilla de lanzamiento
17 Elija Next (Siguiente) para ir a la paacutegina Configure advanced options (Configuracioacuten de opcionesavanzadas)
18 Conserve los valores predeterminados y elijaProacuteximo19 En la paacuteginaConfigure el tamantildeo del grupo y las poliacuteticas de escalado conserve el valor
predeterminadoTamantildeo del grupovalores de 1 Elija Next( Siguiente)20 Omita el paso para configurar notificaciones y elijaProacuteximo21 En la paacuteginaAgregue etiquetas agregue una etiqueta para usarla al instalar elCodeDeployagente maacutes
tarde Elija Add tag
a En Key (Clave) introduzca Nameb En Valor escriba CodeDeployDemo
Elija Next( Siguiente)22 Revisar la informacioacuten del grupo de Auto Scaling enReview (Revisar)paacutegina y a continuacioacuten
eligeCrear grupo de Auto Scaling23 En la barra de navegacioacuten conGrupos de Auto Scalingseleccionado eligeCodeDeployDemo-
AS-Groupy luego elija laAdministracioacuten de instanciasPestantildea No continuacutee hasta que el valordeInServiceaparece en elCiclo de vidacolumna y el valor deSaludableaparece en elEstado demantenimiento decolumn
24 Instalacioacuten delCodeDeployagente siguiendo los pasos descritos enInstalacioacuten delCodeDeployagenteyutilizar elName=CodeDeployDemoEtiquetas de instancias
Paso 2 Implementar la aplicacioacuten en el grupo de AutoScalingEn este paso implementaraacute la revisioacuten en la uacutenica instancia Amazon EC2 del grupo de Auto Scaling
Temasbull Para crear la implementacioacuten (CLI) (p 115)bull Para crear la implementacioacuten (consola) (p 118)
Para crear la implementacioacuten (CLI)1 Ejecute el comando create-application para crear una aplicacioacuten denominada SimpleDemoApp
aws deploy create-application --application-name SimpleDemoApp
2 Ya debe haber creado un rol de servicio siguiendo las instrucciones del Paso 2 Creacioacuten de un rolde servicio para CodeDeploy (p 36) El rol de servicio daraacuteCodeDeploypermiso para acceder a susinstancias de Amazon EC2 y expandir (leer) sus etiquetas Necesitaraacute el rol de servicio ARN Paraobtener el rol de servicio ARN siga las instrucciones de Obtenga el ARN del rol de servicio (CLI) (p 41)
Versioacuten de API 2014-10-06115
AWS CodeDeploy Guiacutea del usuarioPaso 2 Implementar la aplicacioacuten
en el grupo de Auto Scaling
3 Ahora que tiene un ARN de rol de servicio llame alcreate-deployment-grouppara crearun grupo de implementaciones denominadoSimpleDemoDG asociada con la aplicacioacutendenominadaSimpleDemoApp mediante el grupo de Auto Scaling denominadoCodeDeployDemo-AS-Groupy configuracioacuten de implementacioacuten denominadaCodeDeployDefaultOneAtATime conel rol de servicio ARN especificado
Note
Lacreate-deployment-groupproporciona soporte para crear activadores que dan comoresultado el enviacuteo de notificaciones de Amazon SNS a los suscriptores de temas sobreeventos especiacuteficos en implementaciones e instancias El comando tambieacuten admite opcionespara revertir automaacuteticamente las implementaciones y configurar alarmas para detener lasimplementaciones al supervisar los umbrales en AmazonCloudWatchse cumplen las alarmasLos comandos de estas acciones no se incluyen en este tutorial
En maacutequinas Linux macOS o Unix locales
aws deploy create-deployment-group --application-name SimpleDemoApp --auto-scaling-groups CodeDeployDemo-AS-Group --deployment-group-name SimpleDemoDG --deployment-config-name CodeDeployDefaultOneAtATime --service-role-arn service-role-arn
En los equipos locales con Windows
aws deploy create-deployment-group --application-name SimpleDemoApp --auto-scaling-groups CodeDeployDemo-AS-Group --deployment-group-name SimpleDemoDG --deployment-config-name CodeDeployDefaultOneAtATime --service-role-arn service-role-arn
4 Ejecute el comando create-deployment para crear una implementacioacuten asociada a la aplicacioacutenSimpleDemoApp la configuracioacuten de implementacioacuten CodeDeployDefaultOneAtATime y elgrupo de implementaciones SimpleDemoDG utilizando la revisioacuten que se encuentra en el lugarespecificado
Para instancias Amazon Linux y RHEL Amazon EC2 llamadas desde maacutequinas Linux macOS o Unixlocales
aws deploy create-deployment --application-name SimpleDemoApp --deployment-config-name CodeDeployDefaultOneAtATime --deployment-group-name SimpleDemoDG --s3-location bucket=bucket-namebundleType=zipkey=sampleslatestSampleApp_Linuxzip
nombre-bucketes el nombre del bucket de Amazon S3 que contiene elCodeDeployArchivos delkit de recursos para su regioacuten Por ejemplo para la regioacuten EE UU Este (Ohio) sustituyanombre-bucketconaws-codedeploy-us-east-2 Para obtener una lista de los nombres de los bucketsconsulteNombres de buckets del kit de recursos por regioacuten (p 449)
Para instancias de Amazon EC2 y RHEL ejecutando desde equipos Windows locales
aws deploy create-deployment --application-name SimpleDemoApp --deployment-config-name CodeDeployDefaultOneAtATime --deployment-group-name SimpleDemoDG --s3-location bucket=bucket-namebundleType=zipkey=sampleslatestSampleApp_Linuxzip
Versioacuten de API 2014-10-06116
AWS CodeDeploy Guiacutea del usuarioPaso 2 Implementar la aplicacioacuten
en el grupo de Auto Scaling
nombre-bucketes el nombre del bucket de Amazon S3 que contiene elCodeDeployArchivos delkit de recursos para su regioacuten Por ejemplo para la regioacuten EE UU Este (Ohio) sustituyanombre-bucketconaws-codedeploy-us-east-2 Para obtener una lista de los nombres de los bucketsconsulteNombres de buckets del kit de recursos por regioacuten (p 449)
Para instancias de Amazon EC2 de Windows Server llamadas desde maacutequinas Linux macOS o Unixlocales
aws deploy create-deployment --application-name SimpleDemoApp --deployment-config-name CodeDeployDefaultOneAtATime --deployment-group-name SimpleDemoDG --s3-location bucket=bucket-namebundleType=zipkey=sampleslatestSampleApp_Windowszip
nombre-bucketes el nombre del bucket de Amazon S3 que contiene elCodeDeployArchivos delkit de recursos para su regioacuten Por ejemplo para la regioacuten EE UU Este (Ohio) sustituyanombre-bucketconaws-codedeploy-us-east-2 Para obtener una lista de los nombres de los bucketsconsulteNombres de buckets del kit de recursos por regioacuten (p 449)
Para instancias de Amazon EC2 de Windows Server ejecutando desde equipos Windows locales
aws deploy create-deployment --application-name SimpleDemoApp --deployment-config-name CodeDeployDefaultOneAtATime --deployment-group-name SimpleDemoDG --s3-location bucket=bucket-namebundleType=zipkey=sampleslatestSampleApp_Windowszip
nombre-bucketes el nombre del bucket de Amazon S3 que contiene elCodeDeployArchivos delkit de recursos para su regioacuten Por ejemplo para la regioacuten EE UU Este (Ohio) sustituyanombre-bucketconaws-codedeploy-us-east-2 Para obtener una lista de los nombres de los bucketsconsulteNombres de buckets del kit de recursos por regioacuten (p 449)
Note
En la actualidadCodeDeployNo ofrece una revisioacuten de ejemplo para implementar eninstancias de Amazon EC2 de Ubuntu Server Para crear su propia revisioacuten consulte Uso derevisiones de aplicaciones de CodeDeploy (p 307)
5 Ejecute el comando get-deployment para asegurarse de que la implementacioacuten se ha realizadocorrectamente
Antes de ejecutar este comando necesitaraacute el ID de la implementacioacuten que debe haberobtenido tras ejecutar el comando create-deployment Si necesita obtener de nuevo el ID de laimplementacioacuten ejecute el comando list-deployments para la aplicacioacuten SimpleDemoApp y el grupode implementaciones SimpleDemoDG
aws deploy list-deployments --application-name SimpleDemoApp --deployment-group-name SimpleDemoDG --query deployments --output text
Llame ahora al comando get-deployment utilizando el ID de la implementacioacuten
aws deploy get-deployment --deployment-id deployment-id --query deploymentInfostatus --output text
No continuacutee hasta que el valor devuelto sea Succeeded
Versioacuten de API 2014-10-06117
AWS CodeDeploy Guiacutea del usuarioPaso 2 Implementar la aplicacioacuten
en el grupo de Auto Scaling
Para crear la implementacioacuten (consola)1 Ya debe haber creado un rol de servicio siguiendo las instrucciones del Paso 2 Creacioacuten de un rol
de servicio para CodeDeploy (p 36) El rol de servicio daraacute a CodeDeploy permiso para accedera sus instancias y expandir (leer) sus etiquetas Antes de utilizar la consola de CodeDeploy paraimplementar la revisioacuten de la aplicacioacuten necesitaraacute el rol de servicio ARN Para obtener el rol deservicio ARN siga las instrucciones de Obtenga el ARN del rol de servicio (consola) (p 40)
2 Ahora que tiene el rol de servicio ARN puede utilizar la consola de CodeDeploy para implementar larevisioacuten de la aplicacioacuten
Inicie sesioacuten en laAWS Management Consoley abra elCodeDeployConsola de enhttpsconsoleawsamazoncomcodedeploy
Note
Inicie sesioacuten con la misma cuenta o informacioacuten de usuario de IAM que utilizoacute enIntroduccioacutena CodeDeploy (p 35)
3 En el panel de navegacioacuten expandaDesplegary luego seleccioneAplicaciones4 Elija Create application5 Elija Custom application (Aplicacioacuten personalizada)6 En Application name (Nombre de aplicacioacuten) escriba SimpleDemoApp7 En Compute platform (Plataforma de computacioacuten) elija EC2On-Premises8 Elija Create application9 En la pestantildea Deployment groups (Grupos de implementaciones) elija Create deployment group
(Crear grupo de implementaciones)10 En Deployment group name (Nombre de grupo de implementacioacuten) escriba SimpleDemoDG11 En Service Role (Rol de servicio) elija el nombre del rol de servicio12 En Deployment type (Tipo de implementacioacuten) elija In-place (In situ)13 EnConfiguracioacuten del entornoseleccionarGrupos de Auto Scalingy luego seleccioneCodeDeployDemo-
AS-Group14 EnConfiguracioacuten de implementacioacuten eligeCodeDeployPredeterminadaOneAtAhora15 Desactive Enable load balancing (Habilitar balanceo de carga)16 Elija Create deployment group17 En la paacutegina del grupo de implementaciones elija Create deployment (Crear implementacioacuten)18 EnTipo de revisioacuten eligeMi aplicacioacuten se almacena en Amazon S319 En Revision location (Ubicacioacuten de la revisioacuten) introduzca la ubicacioacuten de la aplicacioacuten de ejemplo
para el sistema operativo y la regioacuten
Para instancias Amazon Linux y RHEL Amazon EC2
Regioacuten Ubicacioacuten de aplicacioacuten de ejemplo
Regioacuten del este de EE UU (Ohio) https3-us-east-2amazonawscomaws-codedeploy-us-east-2sampleslatestSampleApp_Linuxzip
Regioacuten del este de EE UU (N Virginia) https3amazonawscomaws-codedeploy-us-east-1sampleslatestSampleApp_Linuxzip
Versioacuten de API 2014-10-06118
AWS CodeDeploy Guiacutea del usuarioPaso 2 Implementar la aplicacioacuten
en el grupo de Auto Scaling
Regioacuten Ubicacioacuten de aplicacioacuten de ejemplo
Regioacuten del oeste de EE UU (N California) https3-us-west-1amazonawscomaws-codedeploy-us-west-1sampleslatestSampleApp_Linuxzip
Regioacuten del oeste de EE UU (Oregon) https3-us-west-2amazonawscomaws-codedeploy-us-west-2sampleslatestSampleApp_Linuxzip
Canada (Central) Region https3-ca-central-1amazonawscomaws-codedeploy-ca-central-1sampleslatestSampleApp_Linuxzip
Europe (Ireland) Region https3-eu-west-1amazonawscomaws-codedeploy-eu-west-1sampleslatestSampleApp_Linuxzip
Europe (London) Region https3-eu-west-2amazonawscomaws-codedeploy-eu-west-2sampleslatestSampleApp_Linuxzip
Regioacuten de Europa (Pariacutes) https3-eu-west-3amazonawscomaws-codedeploy-eu-west-3sampleslatestSampleApp_Linuxzip
Europe (Frankfurt) Region https3-eu-central-1amazonawscomaws-codedeploy-eu-central-1sampleslatestSampleApp_Linuxzip
Regioacuten Asia Paciacutefico (Hong Kong) https3-ap-east-1amazonawscomaws-codedeploy-ap-east-1sampleslatestSampleApp_Linuxzip
Asia Pacific (Tokyo) Region https3-ap-northeast-1amazonawscomaws-codedeploy-ap-northeast-1sampleslatestSampleApp_Linuxzip
Asia Pacific (Seoul) Region https3-ap-northeast-2amazonawscomaws-codedeploy-ap-northeast-2sampleslatestSampleApp_Linuxzip
Asia Pacific (Singapore) Region https3-ap-southeast-1amazonawscomaws-codedeploy-ap-southeast-1sampleslatestSampleApp_Linuxzip
Asia Pacific (Sydney) Region https3-ap-southeast-2amazonawscomaws-codedeploy-ap-southeast-2sampleslatestSampleApp_Linuxzip
Regioacuten Asia-Paciacutefico (Mumbai) https3-ap-south-1amazonawscomaws-codedeploy-ap-south-1sampleslatestSampleApp_Linuxzip
Versioacuten de API 2014-10-06119
AWS CodeDeploy Guiacutea del usuarioPaso 2 Implementar la aplicacioacuten
en el grupo de Auto Scaling
Regioacuten Ubicacioacuten de aplicacioacuten de ejemplo
South America (Satildeo Paulo) Region https3-sa-east-1amazonawscomaws-codedeploy-sa-east-1sampleslatestSampleApp_Linuxzip
Para instancias Amazon EC2 de Windows Server
Regioacuten Ubicacioacuten de aplicacioacuten de ejemplo
Regioacuten del este de EE UU (Ohio) https3-us-east-2amazonawscomaws-codedeploy-us-east-2sampleslatestSampleApp_Windowszip
Regioacuten del este de EE UU (N Virginia) https3amazonawscomaws-codedeploy-us-east-1sampleslatestSampleApp_Windowszip
Regioacuten del oeste de EE UU (N California) https3-us-west-1amazonawscomaws-codedeploy-us-west-1sampleslatestSampleApp_Windowszip
Regioacuten del oeste de EE UU (Oregon) https3-us-west-2amazonawscomaws-codedeploy-us-west-2sampleslatestSampleApp_Windowszip
Canada (Central) Region https3-ca-central-1amazonawscomaws-codedeploy-ca-central-1sampleslatestSampleApp_Windowszip
Europe (Ireland) Region https3-eu-west-1amazonawscomaws-codedeploy-eu-west-1sampleslatestSampleApp_Windowszip
Europe (London) Region https3-eu-west-2amazonawscomaws-codedeploy-eu-west-2sampleslatestSampleApp_Windowszip
Regioacuten de Europa (Pariacutes) https3-eu-west-3amazonawscomaws-codedeploy-eu-west-3sampleslatestSampleApp_Windowszip
Europe (Frankfurt) Region https3-eu-central-1amazonawscomaws-codedeploy-eu-central-1sampleslatestSampleApp_Windowszip
Regioacuten Asia Paciacutefico (Hong Kong) https3-ap-east-1amazonawscomaws-codedeploy-ap-east-1sampleslatestSampleApp_Windowszip
Regioacuten Asia-Paciacutefico (Seuacutel) https3-ap-northeast-2amazonawscomaws-codedeploy-ap-northeast-2sampleslatestSampleApp_Windowszip
Versioacuten de API 2014-10-06120
AWS CodeDeploy Guiacutea del usuarioPaso 3 Compruebe sus resultados
Regioacuten Ubicacioacuten de aplicacioacuten de ejemplo
Asia Pacific (Singapore) Region https3-ap-southeast-1amazonawscomaws-codedeploy-ap-southeast-1sampleslatestSampleApp_Windowszip
Asia Pacific (Sydney) Region https3-ap-southeast-2amazonawscomaws-codedeploy-ap-southeast-2sampleslatestSampleApp_Windowszip
Regioacuten Asia-Paciacutefico (Mumbai) https3-ap-south-1amazonawscomaws-codedeploy-ap-south-1sampleslatestSampleApp_Windowszip
South America (Satildeo Paulo) Region https3-sa-east-1amazonawscomaws-codedeploy-sa-east-1sampleslatestSampleApp_Windowszip
Para instancias Amazon EC2 de Ubuntu Server
Escriba la ubicacioacuten de la revisioacuten de la aplicacioacuten personalizada almacenada en Amazon S320 Deje Deployment description (Descripcioacuten de implementacioacuten) en blanco21 Expanda Advanced (Avanzadas)22 Elija Create deployment (Crear implementacioacuten)
Note
Si aparece Failed (Error) en lugar de Succeeded (Correcto) puede ser convenienteprobar alguna de las teacutecnicas descritas en Monitorizacioacuten y solucioacuten de problemas de laimplementacioacuten (p 80) (utilizando SimpleDemoApp como nombre de la aplicacioacuten ySimpleDemoDG como nombre del grupo de implementaciones)
Paso 3 Compruebe sus resultadosEn este paso comprobaraacute queCodeDeployinstaloacute elSimpleDemoApprevisioacuten de la uacutenica instancia deAmazon EC2 en el grupo de Auto Scaling
Temasbull Para comprobar los resultados (CLI) (p 121)bull Para comprobar los resultados (consola) (p 122)
Para comprobar los resultados (CLI)En primer lugar necesitaraacute el DNS puacuteblico de la instancia de Amazon EC2
UsarAWS CLIPara obtener el DNS puacuteblico de la instancia de Amazon EC2 en el grupo de Auto Scalingejecutando eldescribe-instancescomando
Antes de ejecutar este comando necesitaraacute el ID de la instancia de Amazon EC2 Para obtener el IDejecute el comando describe-auto-scaling-groups con CodeDeployDemo-AS-Group igual que hizoanteriormente
Versioacuten de API 2014-10-06121
AWS CodeDeploy Guiacutea del usuarioPaso 4 Aumente el nuacutemero de instancias
de Amazon EC2 en el grupo de Auto Scaling
aws autoscaling describe-auto-scaling-groups --auto-scaling-group-names CodeDeployDemo-AS-Group --query AutoScalingGroups[0]Instances[]InstanceId --output text
Llame ahora al comando describe-instances
aws ec2 describe-instances --instance-id instance-id --query Reservations[0]Instances[0]PublicDnsName --output text
El valor devuelto es el DNS puacuteblico de la instancia de Amazon EC2
Al usar un navegador web muestre elSimpleDemoRevisioacuten de la aplicacioacuten implementada en la instanciade Amazon EC2 utilizando una URL como la siguiente
httpec2-01-234-567-890compute-1amazonawscom
Si aparece la paacutegina de felicitacioacuten habraacute utilizado correctamenteCodeDeploypara implementar unarevisioacuten en una uacutenica instancia de Amazon EC2 en un grupo de Auto Scaling
A continuacioacuten antildeadiraacute una instancia de Amazon EC2 al grupo de Auto Scaling Despueacutes de que AmazonEC2 Auto Scaling haya antildeadido la instancia de Amazon EC2CodeDeployimplementaraacute la revisioacuten en lanueva instancia
Para comprobar los resultados (consola)En primer lugar necesitaraacute el DNS puacuteblico de la instancia de Amazon EC2
Abra la consola de Amazon EC2 en httpsconsoleawsamazoncomec2
En el panel de navegacioacuten de Amazon EC2 enAuto Scaling eligeGrupos de Auto Scalingy luegoseleccioneCodeDeployDemo-AS-Groupentrada
En la paacuteginaInstancias elija el ID de la instancia de Amazon EC2 en la lista
En la paacutegina Instances en la pestantildea Description tome nota del valor de Public DNS Debe tener unaspecto similar al siguiente ec2-01-234-567-890compute-1amazonawscom
Al usar un navegador web muestre elSimpleDemoRevisioacuten de la aplicacioacuten implementada en la instanciade Amazon EC2 utilizando una URL como la siguiente
httpec2-01-234-567-890compute-1amazonawscom
Si aparece la paacutegina de felicitacioacuten habraacute utilizado correctamenteCodeDeploypara implementar unarevisioacuten en una uacutenica instancia de Amazon EC2 en un grupo de Auto Scaling
A continuacioacuten antildeadiraacute una instancia de Amazon EC2 al grupo de Auto Scaling Despueacutes de que AmazonEC2 Auto Scaling haya antildeadido la instancia de Amazon EC2CodeDeployimplementaraacute la revisioacuten en lanueva instancia de Amazon EC2
Paso 4 Aumente el nuacutemero de instancias de AmazonEC2 en el grupo de Auto ScalingEn este paso indica al grupo de Auto Scaling que cree una instancia adicional de Amazon EC2 Despueacutesde que Amazon EC2 Auto Scaling cree la instanciaCodeDeployimplementa la revisioacuten en eacutel
Versioacuten de API 2014-10-06122
AWS CodeDeploy Guiacutea del usuarioPaso 5 Vuelve a comprobar los resultados
Temasbull Para reducir el nuacutemero de instancias de Amazon EC2 en el grupo de Auto Scaling (CLI) (p 123)bull Para reducir el nuacutemero de instancias de Amazon EC2 en el grupo de implementaciones
(consola) (p 123)
Para reducir el nuacutemero de instancias de Amazon EC2 en el grupode Auto Scaling (CLI)1 Llame a laupdate-auto-scaling-grouppara aumentar las instancias de Amazon EC2 en el grupo de
Auto Scaling denominadoCodeDeployDemo-AS-Groupde uno a dos
En maacutequinas Linux macOS o Unix locales
aws autoscaling update-auto-scaling-group --auto-scaling-group-name CodeDeployDemo-AS-Group --min-size 2 --max-size 2 --desired-capacity 2
En los equipos locales con Windows
aws autoscaling update-auto-scaling-group --auto-scaling-group-name CodeDeployDemo-AS-Group --min-size 2 --max-size 2 --desired-capacity 2
2 Aseguacuterese de que el grupo de Auto Scaling ahora tenga dos instancias de Amazon EC2 Ejecute elcomando describe-auto-scaling-groups con CodeDeployDemo-AS-Group
aws autoscaling describe-auto-scaling-groups --auto-scaling-group-names CodeDeployDemo-AS-Group --query AutoScalingGroups[0]Instances[][HealthStatus LifecycleState] --output text
No continuacutee hasta que los dos valores devueltos indiquen Healthy y InService
Para reducir el nuacutemero de instancias de Amazon EC2 en el grupode implementaciones (consola)1 En la barra de navegacioacuten de Amazon EC2 enAuto Scaling eligeGrupos de Auto Scalingy luego
seleccioneCodeDeployDemo-AS-Group2 Seleccione Actions y luego Edit3 En la pestantildea Details (Detalles) en los cuadros Desired (Objetivos) Min (Miacutenimo) y Max (Maacuteximo)
escriba 2 y luego elija Save (Guardar)4 Seleccione la pestantildea Instances La nueva instancia de Amazon EC2 debe aparecer en la lista (Si la
instancia no aparece puede que tenga que pulsar el botoacuten Refresh varias veces) No continuacutee hastaque el valor deInServiceaparece en elCiclo de vidacolumna y el valor deSaludableaparece en elEstadode mantenimiento decolumn
Paso 5 Vuelve a comprobar los resultadosEn este paso comprobaraacute siCodeDeployinstaloacute elSimpleDemoRevisioacuten de la aplicacioacuten de la instancianueva del grupo de Auto Scaling
Versioacuten de API 2014-10-06123
AWS CodeDeploy Guiacutea del usuarioPaso 5 Vuelve a comprobar los resultados
Temasbull Para comprobar los resultados de la implementacioacuten automaacutetica (CLI) (p 124)bull Para comprobar los resultados de la implementacioacuten automaacutetica (consola) (p 124)
Para comprobar los resultados de la implementacioacuten automaacutetica(CLI)1 Antes de ejecutar el comando get-deployment necesitaraacute el ID de la implementacioacuten automaacutetica Para
obtener el ID ejecute el comando list-deployments con la aplicacioacuten SimpleDemoApp y el grupo deimplementaciones SimpleDemoDG
aws deploy list-deployments --application-name SimpleDemoApp --deployment-group-name SimpleDemoDG --query deployments --output text
Debe haber dos ID de implementacioacuten Utilice el que auacuten no haya empleado en una llamada alcomando get-deployment
aws deploy get-deployment --deployment-id deployment-id --query deploymentInfo[status creator] --output text
Ademaacutes del estado de la implementacioacuten debe verautoScalingen la salida del comando(autoScalingsignifica que Amazon EC2 Auto Scaling creoacute la implementacioacuten)
No continuacutee hasta que el estado de la implementacioacuten aparezca como Succeeded2 Antes de llamar aldescribe-instances necesitaraacute el ID de la nueva instancia de Amazon EC2 Para
obtener este ID ejecute de nuevo el comando describe-auto-scaling-groups con CodeDeployDemo-AS-Group
aws autoscaling describe-auto-scaling-groups --auto-scaling-group-names CodeDeployDemo-AS-Group --query AutoScalingGroups[0]Instances[]InstanceId --output text
Ahora ejecute el comando describe-instances
aws ec2 describe-instances --instance-id instance-id --query Reservations[0]Instances[0]PublicDnsName --output text
En la salida dedescribe-instances observe el DNS puacuteblico de la nueva instancia de Amazon EC23 Al usar un navegador web muestre elSimpleDemoApprevisioacuten implementada en la instancia de
Amazon EC2 utilizando una URL como la siguiente
httpec2-01-234-567-890compute-1amazonawscom
Si aparece la paacutegina de felicitaciones has usadoCodeDeployPara implementar una revisioacuten en unainstancia de Amazon EC2 adicional en un grupo de Auto Scaling
Para comprobar los resultados de la implementacioacuten automaacutetica(consola)1 Inicie sesioacuten en laAWS Management Consoley abra elCodeDeployConsola de enhttps
consoleawsamazoncomcodedeployVersioacuten de API 2014-10-06
124
AWS CodeDeploy Guiacutea del usuarioPaso 6 Eliminar recursos
Note
Inicie sesioacuten con la misma cuenta o informacioacuten de usuario de IAM que utilizoacute enIntroduccioacutena CodeDeploy (p 35)
2 En el panel de navegacioacuten expandaDesplegary luego seleccioneImplementaciones
3 Elija el ID de la implementacioacuten que ha creado Amazon EC2 Auto Scaling
4 La paacutegina Deployment (Implementacioacuten) muestra informacioacuten sobre la implementacioacuten Normalmente
deberiacutea crear una implementacioacuten por su cuenta pero Amazon EC2 Auto Scaling ya ha creado unapor usted para implementar la revisioacuten en la nueva instancia de Amazon EC2
5 Cuando aparezca Succeeded (Correcto) en la parte superior de la paacutegina compruebe los resultadosen la instancia Primero debe obtener el DNS puacuteblico de la instancia
6 En el panel de navegacioacuten de Amazon EC2 enAuto Scaling eligeGrupos de Auto Scalingy luegoseleccioneCodeDeployDemo-AS-Groupentrada
7 En la paacuteginaInstancias elija el ID de la nueva instancia Amazon EC28 En la paacutegina Instances en la pestantildea Description tome nota del valor de Public DNS Debe tener un
aspecto similar al siguiente ec2-01-234-567-890compute-1amazonawscom
Muestre la SimpleDemoApp revisioacuten implementada en la instancia utilizando una URL como la siguiente
httpec2-01-234-567-890compute-1amazonawscom
Si aparece la paacutegina de felicitaciones has usadoCodeDeployPara implementar una revisioacuten en unainstancia de Amazon EC2 adicional en un grupo de Auto Scaling
Paso 6 Eliminar recursosEn este paso eliminaraacute el grupo de Auto Scaling para evitar cargos recurrentes por los recursosutilizados durante este tutorial Opcionalmente puede eliminar la configuracioacuten de Auto ScalingyCodeDeployregistros de componentes de implementacioacuten de
Temasbull Para limpiar los recursos (CLI) (p 125)bull Para limpiar los recursos (consola) (p 126)
Para limpiar los recursos (CLI)1 Eliminar el grupo de Auto Scaling llamando aldelete-auto-scaling-groupcomando
contraCodeDeployDemo-AS-Group Esto tambieacuten terminaraacute las instancias de Amazon EC2
aws autoscaling delete-auto-scaling-group --auto-scaling-group-name CodeDeployDemo-AS-Group --force-delete
2 Si lo desea elimine la plantilla de lanzamiento de Auto Scaling llamando aldelete-launch-templatecomando contra la configuracioacuten de lanzamiento denominadaCodeDeployDemo-AS-Launch-Template
aws ec2 delete-launch-template --launch-template-name CodeDeployDemo-AS-Launch-Template
Versioacuten de API 2014-10-06125
AWS CodeDeploy Guiacutea del usuarioPaso 6 Eliminar recursos
3 Si lo desea puede eliminar la aplicacioacuten de CodeDeploy ejecutando el comando delete-applicationcon la aplicacioacuten SimpleDemoApp Esto tambieacuten eliminaraacute los registros de implementacioacuten grupo deimplementaciones y revisioacuten asociados
aws deploy delete-application --application-name SimpleDemoApp
4 Para eliminar la asociacioacuten del Administrador de estado de Systems Manager ejecute ladelete-associationcomando
aws ssm delete-association --assocation-id association-id
Para obtener el valor de id-asociacioacuten llame al comando describe-association
aws ssm describe-association --name AWS-ConfigureAWSPackage --targets Key=tagNameValues=CodeDeployDemo
Para limpiar los recursos (consola)Para eliminar el grupo de Auto Scaling que tambieacuten termina las instancias de Amazon EC2
1Inicie sesioacuten en la AWS Management Console y abra la consola de Amazon EC2 en httpsconsoleawsamazoncomec2
2 En el panel de navegacioacuten de Amazon EC2 enAuto Scaling eligeGrupos de Auto Scalingy luego elijalaCodeDeployDemo-AS-Groupentrada
3 Elija Actions seleccione Delete y luego seleccione Yes Delete
(Opcional) Para eliminar la plantilla de lanzamiento
1 En la barra de navegacioacuten enAuto Scaling eligeConfiguraciones de lanzamientoy luegoseleccioneCodeDeployDemo-AS-Launch-Template
2 Elija Actions seleccione Delete launch configuration y luego seleccione Yes Delete
1 Opcionalmente puede eliminar la aplicacioacuten de CodeDeploy Esto tambieacuten eliminaraacute los registros deimplementacioacuten grupo de implementaciones y revisioacuten asociados Abra el iconoCodeDeployConsolade enhttpsconsoleawsamazoncomcodedeploy
2 Inicie sesioacuten en laAWS Management Consoley abra elCodeDeployConsola de enhttpsconsoleawsamazoncomcodedeploy
Note
Inicie sesioacuten con la misma cuenta o informacioacuten de usuario de IAM que utilizoacute enIntroduccioacutena CodeDeploy (p 35)
En el panel de navegacioacuten expandaDesplegary luego seleccioneAplicaciones
3 En la lista de aplicaciones elijaSimpleDemoApp4 En la paacutegina Application details (Detalles de la aplicacioacuten) elija Delete application (Eliminar
aplicacioacuten)5 Cuando se le pregunte escriba Delete y a continuacioacuten elija Delete (Eliminar)
Para eliminar la asociacioacuten del Administrador de estado de Systems Manager
Versioacuten de API 2014-10-06126
AWS CodeDeploy Guiacutea del usuarioTutorial Implementar una aplicacioacuten desde GitHub
1 Abra el iconoAWS Systems Managerconsola en httpsconsoleawsamazoncomsystems-manager2 En el panel de navegacioacuten elija Administrador de estados3 Elija la asociacioacuten que ha creado y despueacutes elija Eliminar
Tutorial Usa CodeDeploy para desplegar unaaplicacioacuten desde GitHub
En este tutorial usaraacute CodeDeploy para implementar una revisioacuten de aplicacioacuten de ejemplo desde GitHuba una sola instancia Amazon EC2 con Amazon Linux en una sola instancia de Red Hat Enterprise Linux(RHEL) o en una sola instancia de Windows Server Para obtener informacioacuten sobre la integracioacuten deGitHub con CodeDeploy consulteIntegracioacuten de CodeDeploy con GitHub (p 63)
Note
Tambieacuten puede utilizar CodeDeploy para implementar una revisioacuten de una aplicacioacuten desdeGitHub en una instancia de Ubuntu Server Puede utilizar la revisioacuten de ejemplo descritaenPaso 2 Creacioacuten de una revisioacuten de aplicacioacuten de muestra (p 104)enTutorial Implementaruna aplicacioacuten en una instancia local con CodeDeploy (Windows Server Ubuntu Server oRed Hat Enterprise Linux) (p 103)o bien crear una revisioacuten compatible con una instancia deUbuntu Server y CodeDeploy Para crear su propia revisioacuten consulte Planear una revisioacuten paraCodeDeploy (p 307) y Agregar un archivo de especificacioacuten de aplicacioacuten a una revisioacuten deCodeDeploy (p 308)
Temasbull Requisitos previos (p 127)bull Paso 1 Configure una cuenta de GitHub (p 127)bull Paso 2 Creacioacuten de un repositorio de GitHub (p 128)bull Paso 3 Cargue una aplicacioacuten de ejemplo en el repositorio GitHub (p 129)bull Paso 4 Aprovisionar una instancia (p 132)bull Paso 5 Crear una aplicacioacuten y un grupo de implementaciones (p 133)bull Paso 6 Implementacioacuten de la aplicacioacuten en la instancia (p 134)bull Paso 7 Supervisar y verificar la implementacioacuten (p 137)bull Paso 8 Eliminar recursos (p 138)
Requisitos previosAntes de empezar este tutorial haga lo siguiente
bull Instale Git en su equipo local Para instalar Git consulteGit (descargas)bull Complete los pasos indicados en Introduccioacuten a CodeDeploy (p 35) incluida la instalacioacuten y
configuracioacuten de la AWS CLI Esto es especialmente importante si desea utilizar la AWS CLI paraimplementar una revisioacuten desde GitHub en la instancia
Paso 1 Configure una cuenta de GitHubNecesitaraacute una cuenta de GitHub para crear un repositorio de GitHub en el que almacenar la revisioacuten Si yatiene una cuenta de GitHub continuacutee en Paso 2 Creacioacuten de un repositorio de GitHub (p 128)
Versioacuten de API 2014-10-06127
AWS CodeDeploy Guiacutea del usuarioPaso 2 Creacioacuten de un repositorio de GitHub
1 Vaya a httpsgithubcomjoin2 Escriba un nombre de usuario su direccioacuten de correo electroacutenico y una contrasentildea3 Elija Sign up for GitHub y siga las instrucciones
Paso 2 Creacioacuten de un repositorio de GitHubNecesitaraacute un repositorio de GitHub para almacenar la revisioacuten
Si ya tiene un repositorio de GitHub aseguacuterese de indicar su nombre donde aparezcaCodeDeployGitHubDemo en este tutorial y continuacutee en el Paso 3 Cargue una aplicacioacuten de ejemplo en elrepositorio GitHub (p 129)
1 En la paacutegina de inicio de GitHub lleve a cabo alguna de las siguientes operaciones
bull En Your repositories elija New repositorybull En la barra de navegacioacuten seleccione Create new (+) y luego elija New repository
2 En la paacutegina Create a new repository haga lo siguiente
bull En el cuadro Repository name (Nombre del repositorio) indique CodeDeployGitHubDemobull Seleccione Public
Note
La opcioacuten predeterminada Public implica que cualquiera puede ver el repositorio Puedeseleccionar la opcioacuten Private (Privado) para limitar quieacuten puede ver el repositorio yconfirmarlo
bull Desactive la casilla Initialize this repository with a README En su lugar crearaacute un archivoREADMEmd manualmente en el siguiente paso
bull Elija Create repository3 Siga las instrucciones correspondientes al tipo de su equipo local para crear el repositorio con la liacutenea
de comandos
Note
Si ha activado la autenticacioacuten de dos factores en GitHub y se le solicita una contrasentildeaaseguacuterese de introducir su token de acceso personal en lugar de su contrasentildea de inicio desesioacuten de GitHub Para obtener informacioacuten consulteProporcionar el coacutedigo de autenticacioacuten2FA
En los equipos locales con Linux macOS o Unix
1 Desde el terminal ejecute sucesivamente los comandos siguientes donde user-name es su nombrede usuario de GitHub
mkdir tmpCodeDeployGitHubDemo
cd tmpCodeDeployGitHubDemo
touch READMEmd
git init Versioacuten de API 2014-10-06128
AWS CodeDeploy Guiacutea del usuarioPaso 3 Cargue una aplicacioacuten deejemplo en el repositorio GitHub
git add READMEmd
git commit -m My first commit
git remote add origin httpsgithubcomuser-nameCodeDeployGitHubDemogit
git push -u origin master
2 Deje el terminal abierto en la ubicacioacuten tmpCodeDeployGitHubDemo
En los equipos locales con Windows
1 Desde el siacutembolo del sistema abierto como administrador ejecute sucesivamente los comandossiguientes
mkdir ctempCodeDeployGitHubDemo
cd ctempCodeDeployGitHubDemo
notepad READMEmd
2 En el Bloc de notas guarde el archivo READMEmd Cierre el Bloc de notas Ejecute sucesivamente loscomandos siguientes donde user-name es su nombre de usuario de GitHub
git init
git add READMEmd
git commit -m My first commit
git remote add origin httpsgithubcomuser-nameCodeDeployGitHubDemogit
git push -u origin master
3 Deje el siacutembolo del sistema abierto en la ubicacioacuten ctempCodeDeployGitHubDemo
Paso 3 Cargue una aplicacioacuten de ejemplo en elrepositorio GitHubEn este paso copiaraacute una revisioacuten de ejemplo de un bucket de Amazon S3 puacuteblico en el repositorioGitHub (Para simplificar las revisiones de ejemplo incluidas para este tutorial son paacuteginas webindividuales)
Note
Si en lugar de nuestro ejemplo utiliza una revisioacuten propia esta deberaacute
Versioacuten de API 2014-10-06129
AWS CodeDeploy Guiacutea del usuarioPaso 3 Cargue una aplicacioacuten deejemplo en el repositorio GitHub
bull Seguir las directrices de Planear una revisioacuten para CodeDeploy (p 307) y Agregar un archivode especificacioacuten de aplicacioacuten a una revisioacuten de CodeDeploy (p 308)
bull Funcionar con el tipo de instancia correspondientebull Ser accesible desde el panel de GitHub
Si su revisioacuten cumple estos requisitos continuacutee en Paso 5 Crear una aplicacioacuten y un grupo deimplementaciones (p 133)Si va a implementar en una instancia de Ubuntu Server tendraacute que cargar en el repositorioGitHub una revisioacuten compatible con una instancia de Ubuntu Server y CodeDeploy Para obtenermaacutes informacioacuten consulte Planear una revisioacuten para CodeDeploy (p 307) y Agregar un archivode especificacioacuten de aplicacioacuten a una revisioacuten de CodeDeploy (p 308)
Temasbull Enviacuteo de una revisioacuten de ejemplo desde un equipo local con Linux macOS o Unix (p 130)bull Enviacuteo de una revisioacuten de ejemplo desde un equipo local con Windows (p 131)
Enviacuteo de una revisioacuten de ejemplo desde un equipo local conLinux macOS o UnixCon el terminal auacuten abierto por ejemplo en la ubicacioacuten tmpCodeDeployGitHubDemo ejecutesucesivamente los comandos siguientes
Note
Si tiene previsto implementar en una instancia de Windows ServersustituyaSampleApp_WindowszipparaSampleApp_Linuxzipen los comandos
(Amazon S3 copy command)
unzip SampleApp_Linuxzip
rm SampleApp_Linuxzip
git add
git commit -m Added sample app
git push
Donde(comando de copia de Amazon S3)es una de las siguientes opciones
bull aws s3 cp s3aws-codedeploy-us-east-2sampleslatestSampleApp_Linuxzip --region us-east-2para la regioacuten EE UU Este (Ohio)
bull aws s3 cp s3aws-codedeploy-us-east-1sampleslatestSampleApp_Linuxzip --region us-east-1para la regioacuten EE UU Este (Norte de Virginia)
bull aws s3 cp s3aws-codedeploy-us-west-1sampleslatestSampleApp_Linuxzip --region us-west-1para la regioacuten EE UU Oeste (Norte de California)
bull aws s3 cp s3aws-codedeploy-us-west-2sampleslatestSampleApp_Linuxzip --region us-west-2para la regioacuten EE UU Oeste (Oregoacuten)
Versioacuten de API 2014-10-06130
AWS CodeDeploy Guiacutea del usuarioPaso 3 Cargue una aplicacioacuten deejemplo en el repositorio GitHub
bull aws s3 cp s3aws-codedeploy-ca-central-1sampleslatestSampleApp_Linuxzip --region ca-central-1para la regioacuten Canadaacute (Central)
bull aws s3 cp s3aws-codedeploy-eu-west-1sampleslatestSampleApp_Linuxzip --region eu-west-1para la regioacuten de Europa (Irlanda)
bull aws s3 cp s3aws-codedeploy-eu-west-2sampleslatestSampleApp_Linuxzip --region eu-west-2para la regioacuten de Europa (Londres)
bull aws s3 cp s3aws-codedeploy-eu-west-3sampleslatestSampleApp_Linuxzip --region eu-west-3para la regioacuten de Europa (Pariacutes)
bull aws s3 cp s3aws-codedeploy-eu-central-1sampleslatestSampleApp_Linuxzip --region eu-central-1para la regioacuten de Europa (Fraacutencfort)
bull aws s3 cp s3aws-codedeploy-ap-east-1sampleslatestSampleApp_Linuxzip --region ap-east-1para la regioacuten Asia Paciacutefico (Hong Kong)
bull aws s3 cp s3aws-codedeploy-ap-northeast-1sampleslatestSampleApp_Linuxzip --region ap-northeast-1para la regioacuten Asia Paciacutefico (Tokio)
bull aws s3 cp s3aws-codedeploy-ap-northeast-2sampleslatestSampleApp_Linuxzip --region ap-northeast-2para la regioacuten Asia Paciacutefico (Seuacutel)
bull aws s3 cp s3aws-codedeploy-ap-southeast-1sampleslatestSampleApp_Linuxzip --region ap-southeast-1para la regioacuten Asia Paciacutefico (Singapur)
bull aws s3 cp s3aws-codedeploy-ap-southeast-2sampleslatestSampleApp_Linuxzip --region ap-southeast-2para la regioacuten Asia Paciacutefico (Siacutedney)
bull aws s3 cp s3aws-codedeploy-ap-south-1sampleslatestSampleApp_Linuxzip --region ap-south-1para la regioacuten Asia Paciacutefico (Mumbai)
bull aws s3 cp s3aws-codedeploy-sa-east-1sampleslatestSampleApp_Linuxzip --region sa-east-1para la regioacuten Ameacuterica del Sur (Satildeo Paulo)
Enviacuteo de una revisioacuten de ejemplo desde un equipo local conWindowsCon el siacutembolo del sistema auacuten abierto por ejemplo en la ubicacioacuten ctempCodeDeployGitHubDemoejecute sucesivamente los comandos siguientes
Note
Si tiene previsto implementar en una instancia Amazon Linux o RHELsustituyaSampleApp_LinuxzipparaSampleApp_Windowszipen los comandos
(Amazon S3 copy command)
Descomprima el contenido the del archivo ZIP directamente en el directorio local (por ejemplo ctempCodeDeployGitHubDemo) no en un nuevo subdirectorio
git add
git commit -m Added sample app
git push
Donde(comando de copia de Amazon S3)es una de las siguientes opciones
bull aws s3 cp s3aws-codedeploy-us-east-2sampleslatestSampleApp_Windowszip --region us-east-2para la regioacuten EE UU Este (Ohio)
Versioacuten de API 2014-10-06131
AWS CodeDeploy Guiacutea del usuarioPaso 4 Aprovisionar una instancia
bull aws s3 cp s3aws-codedeploy-us-east-1sampleslatestSampleApp_Windowszip --region us-east-1para la regioacuten US East (N Virginia)
bull aws s3 cp s3aws-codedeploy-us-west-1sampleslatestSampleApp_Windowszip --region us-west-1para la regioacuten EE UU Oeste (Norte deCalifornia)
bull aws s3 cp s3aws-codedeploy-us-west-2sampleslatestSampleApp_Windowszip --region us-west-2para la regioacuten EE UU Oeste (Oregoacuten)
bull aws s3 cp s3aws-codedeploy-ca-central-1sampleslatestSampleApp_Windowszip --region ca-central-1para la regioacuten Canadaacute (Central)
bull aws s3 cp s3aws-codedeploy-eu-west-1sampleslatestSampleApp_Windowszip --region eu-west-1para la regioacuten de Europa (Irlanda)
bull aws s3 cp s3aws-codedeploy-eu-west-2sampleslatestSampleApp_Windowszip --region eu-west-2para la regioacuten de Europa (Londres)
bull aws s3 cp s3aws-codedeploy-eu-west-3sampleslatestSampleApp_Windowszip --region eu-west-3para la regioacuten de Europa (Pariacutes)
bull aws s3 cp s3aws-codedeploy-eu-central-1sampleslatestSampleApp_Windowszip --region eu-central-1para la regioacuten de Europa (Fraacutencfort)
bull aws s3 cp s3aws-codedeploy-ap-east-1sampleslatestSampleApp_Windowszip --region ap-east-1para la regioacuten Asia Paciacutefico (Hong Kong)
bull aws s3 cp s3aws-codedeploy-ap-northeast-1sampleslatestSampleApp_Windowszip --region ap-northeast-1para la regioacuten Asia Paciacutefico (Tokio)
bull aws s3 cp s3aws-codedeploy-ap-northeast-2sampleslatestSampleApp_Windowszip --region ap-northeast-2para la regioacuten Asia Paciacutefico (Seuacutel)
bull aws s3 cp s3aws-codedeploy-ap-southeast-1sampleslatestSampleApp_Windowszip --region ap-southeast-1para la regioacuten Asia Paciacutefico (Singapur)
bull aws s3 cp s3aws-codedeploy-ap-southeast-2sampleslatestSampleApp_Windowszip --region ap-southeast-2para la regioacuten Asia Paciacutefico (Siacutedney)
bull aws s3 cp s3aws-codedeploy-ap-south-1sampleslatestSampleApp_Windowszip --region ap-south-1para la regioacuten Asia Paciacutefico (Mumbai)
bull aws s3 cp s3aws-codedeploy-sa-east-1sampleslatestSampleApp_Windowszip --region sa-east-1para la regioacuten Ameacuterica del Sur (Satildeo Paulo)
Para enviar su propia revisioacuten a una instancia de Ubuntu Server copie la revisioacuten en el repositorio local ya continuacioacuten ejecute lo siguiente
git add git commit -m Added Ubuntu appgit push
Paso 4 Aprovisionar una instanciaEn este paso crearaacute o configuraraacute la instancia en la que va a implementar la aplicacioacuten de ejemploPuede implementar en una instancia Amazon EC2 o en una instancia on-premises basada en uno de lossistemas operativos compatibles con CodeDeploy Para obtener informacioacuten consulte Sistemas operativoscompatibles con el agente de CodeDeploy (p 175) (Si ya tiene una instancia configuradas para su usoen implementaciones de CodeDeploy continuacutee en el paso siguiente)
Para aprovisionar una instancia
1 Siga las instrucciones enLance una instancia de Amazon EC2 (consola) (p 217)para aprovisionaruna instancia
Versioacuten de API 2014-10-06132
AWS CodeDeploy Guiacutea del usuarioPaso 5 Crear una aplicacioacuten yun grupo de implementaciones
2 Al iniciar la instancia no se olvide de especificar una etiqueta en elAgregue etiquetas(Se ha creadoel certificado) Para obtener maacutes informacioacuten sobre coacutemo especificar la etiqueta consulteLance unainstancia de Amazon EC2 (consola) (p 217)
Para comprobar que el agente de CodeDeploy se estaacute ejecutando en la instancia
bull Siga las instrucciones enVerifique que el agente de CodeDeploy esteacute en ejecucioacuten (p 186)paracomprobar que el agente se estaacute ejecutando
Una vez abastecida la instancia y comprobado que el agente de CodeDeploy se estaacute ejecutando vaya alsiguiente paso
Paso 5 Crear una aplicacioacuten y un grupo deimplementacionesEn este paso utilizaraacute la consola de CodeDeploy o laAWS CLIPara crear una aplicacioacuten y un grupo deimplementaciones que despueacutes usaraacute para implementar la revisioacuten de ejemplo desde el repositorio GitHub
Creacioacuten de una aplicacioacuten y un grupo de implementaciones(consola)1 Inicie sesioacuten en laAWS Management Consoley abra la consola de CodeDeploy enhttps
consoleawsamazoncomcodedeploy
Note
Inicie sesioacuten con la misma cuenta o informacioacuten de usuario de IAM que utilizoacute enIntroduccioacutena CodeDeploy (p 35)
2 En el panel de navegacioacuten expandaDesplegary luego elijaAplicaciones
3 Seleccione Create application (Crear aplicacioacuten) y a continuacioacuten seleccione Custom application(Aplicacioacuten personalizada)
4 En Application name (Nombre de aplicacioacuten) escriba CodeDeployGitHubDemo-App5 En Compute platform (Plataforma de computacioacuten) elija EC2On-Premises6 Elija Create application7 En la pestantildea Deployment groups (Grupos de implementaciones) elija Create deployment group
(Crear grupo de implementaciones)8 En Deployment group name (Nombre de grupo de implementacioacuten) escriba
CodeDeployGitHubDemo-DepGrp9 EnRol de servicio elija el nombre del rol de servicio CodeDeploy que creoacute enCrear un rol de servicio
para CodeDeploy (p 36)10 En Deployment type (Tipo de implementacioacuten) elija In-place (In situ)11 EnConfiguracioacuten del entorno en funcioacuten del tipo de instancia que utilice elijaInstancias de Amazon
EC2oInstancias on-premises En Key (Clave) y Value (Valor) escriba la clave y el valor de la etiquetade instancia que se aplicoacute a la instancia como parte de Paso 4 Aprovisionar una instancia (p 132)
12 En Deployment configuration (Configuracioacuten de implementacioacuten) elija CodeDeployDefaultAllatOnce13 En Load Balancer (Balanceador de carga) anule la seleccioacuten de Enable load balancing (Habilitar
balanceo de carga)14 Expanda Advanced (Avanzadas)
Versioacuten de API 2014-10-06133
AWS CodeDeploy Guiacutea del usuarioPaso 6 Implementacioacuten de la aplicacioacuten en la instancia
15 En Alarms (Alarmas) seleccione Ignore alarm configuration (Ignorar las alarmas)16 Elija Create deployment group (Crear grupo de implementaciones) y vaya al paso siguiente
Creacioacuten de una aplicacioacuten y un grupo de implementaciones(CLI)1 Llame acreate-applicationpara crear una aplicacioacuten en CodeDeploy
denominadaCodeDeployGitHubDemo-App
aws deploy create-application --application-name CodeDeployGitHubDemo-App
2 Ejecute el comando create-deployment-group para crear un grupo de implementaciones denominadoCodeDeployGitHubDemo-DepGrp
bull Si la implementacioacuten es en una instancia Amazon EC2ec2-clave-etiquetaes la clave de laetiqueta de instancia Amazon EC2 que se aplicoacute a la instancia Amazon EC2 como parte dePaso 4Aprovisionar una instancia (p 132)
bull Si la implementacioacuten es en una instancia Amazon EC2ec2-tag-valuees el valor de la etiqueta deinstancia Amazon EC2 que se aplicoacute a la instancia Amazon EC2 como parte dePaso 4 Aprovisionaruna instancia (p 132)
bull Si va a implementar en una instancia on-premises on-premises-tag-key es la clave de etiquetade instancia on-premises que se aplicoacute a la instancia on-premises en Paso 4 Aprovisionar unainstancia (p 132)
bull Si va a implementar en una instancia on-premises on-premises-tag-value es el valor deetiqueta de instancia on-premises que se aplicoacute a la instancia on-premises en Paso 4 Aprovisionaruna instancia (p 132)
bull service-role-arnes el ARN de rol de servicio para el rol de servicio que creoacute enCrear un rolde servicio para CodeDeploy (p 36) (Siga las instrucciones de Obtenga el ARN del rol de servicio(CLI) (p 41) para determinar el ARN del rol de servicio)
aws deploy create-deployment-group --application-name CodeDeployGitHubDemo-App --ec2-tag-filters Key=ec2-tag-keyType=KEY_AND_VALUEValue=ec2-tag-value --on-premises-tag-filters Key=on-premises-tag-keyType=KEY_AND_VALUEValue=on-premises-tag-value --deployment-group-name CodeDeployGitHubDemo-DepGrp --service-role-arn service-role-arn
Note
Lacreate-deployment-groupproporciona soporte para crear activadores que dan comoresultado el enviacuteo de notificaciones de Amazon SNS a los suscriptores de temas sobreeventos especiacuteficos en implementaciones e instancias El comando tambieacuten admite opcionespara revertir automaacuteticamente implementaciones y configurar alarmas para detener lasimplementaciones cuando se cumplen los umbrales de supervisioacuten en alarmas de AmazonCloudWatch Los comandos para estas acciones no se incluyen en este tutorial
Paso 6 Implementacioacuten de la aplicacioacuten en lainstanciaEn este paso debe utilizar la consola de CodeDeploy o laAWS CLIpara implementar la revisioacuten de ejemplodesde el repositorio GitHub en la instancia
Versioacuten de API 2014-10-06134
AWS CodeDeploy Guiacutea del usuarioPaso 6 Implementacioacuten de la aplicacioacuten en la instancia
Para implementar la revisioacuten (consola)1 En la paacutegina Deployment group details (Detalles del grupo de implementaciones) elija Create
deployment (Crear implementacioacuten)2 En Deployment group (Grupo de implementacioacuten) elija CodeDeployGitHubDemo-DepGrp3 En Revision type (Tipo de revisioacuten) elija GitHub4 En Connect to GitHub realice una de las siguientes acciones
bull Para crear una conexioacuten entre aplicaciones de CodeDeploy y una cuenta de GitHub cierre la sesioacutende GitHub en otra pestantildea del navegador web En GitHub account (Cuenta de GitHub) introduzcaun nombre para identificar esta conexioacuten y luego elija Connect to GitHub (Conectar a GitHub) Lapaacutegina web le pediraacute que autorice a CodeDeploy para interactuar con GitHub para la aplicacioacutendenominadaCodeDeployGitHubDemo-App Continuacutee en el paso 5
bull Para utilizar una conexioacuten que haya creado previamente seleccione su nombre en GitHub accounty a continuacioacuten elija Connect to GitHub Continuacutee en el paso 7
bull Para crear una conexioacuten con una cuenta de GitHub distinta cierre la sesioacuten de GitHub en otrapestantildea del navegador web Elija Connect to a different GitHub account y a continuacioacuten elijaConnect to GitHub Continuacutee en el paso 5
5 Siga las instrucciones de la paacutegina Sign in para iniciar sesioacuten con su cuenta de GitHub6 En la paacutegina Authorize application elija Authorize application7 En CodeDeployCrear implementacioacutenpaacutegina enNombre del repositorio introduce el nombre de
usuario de GitHub que utilizaste para iniciar sesioacuten seguido de una barra diagonal () seguido delnombre del repositorio en el que se insertoacute la revisioacuten de la aplicacioacuten (por ejemplomy-github-user-nameCodeDeployGitHubDemo)
Si no estaacute seguro del valor que debe introducir o si desea especificar un repositorio diferente
a En otra pestantildea del navegador web abra el Panel de GitHubb En Your repositories pase el cursor sobre el nombre del repositorio de destino Apareceraacute un
mensaje informativo con el nombre de usuario de GitHub o el nombre de la organizacioacuten seguidode una barra inclinada () y del nombre del repositorio Escriba este valor en Repository name(Nombre del repositorio)
Note
Si el nombre de repositorio de destino no se muestra en Your repositories (Susrepositorios) use el cuadro Search GitHub (Buscar GitHub) para buscar el repositorio deGitHub de destino y el nombre de usuario o nombre de organizacioacuten de GitHub
8 En el cuadro Commit ID (ID de confirmacioacuten) introduzca el ID de la confirmacioacuten asociada alalmacenamiento de la revisioacuten de la aplicacioacuten en GitHub
Si no estaacute seguro del valor que debe introducir
a En otra pestantildea del navegador web abra el Panel de GitHubb EnTus repositorios eligeDemo de GitHub de implementacioacuten de coacutedigoc En la lista de confirmaciones encuentre y copie el ID de la confirmacioacuten asociada al
almacenamiento de la revisioacuten de la aplicacioacuten en GitHub Este ID suele tener 40 caracteres y secompone de letras y nuacutemeros (No utilice la versioacuten corta del ID de confirmacioacuten que suele ser losprimeros 10 caracteres de la versioacuten larga)
d Pegue el ID de confirmacioacuten en el cuadro Commit ID9 Elija Deploy y continuacutee con el paso siguiente
Versioacuten de API 2014-10-06135
AWS CodeDeploy Guiacutea del usuarioPaso 6 Implementacioacuten de la aplicacioacuten en la instancia
Para implementar la revisioacuten (CLI)Antes de que puedas llamar a cualquierAWS CLIcomandos que interactuacutean con GitHub (como elcreate-deployment que ejecutaraacute a continuacioacuten) antes debe conceder a CodeDeploy permiso para utilizar sucuenta de usuario de GitHub para interactuar con GitHub para laCodeDeployGitHubDemo-Apprevisionesde Actualmente esto debe hacerse en la consola de CodeDeploy
1 Inicie sesioacuten en laAWS Management Consoley abra la consola de CodeDeploy enhttpsconsoleawsamazoncomcodedeploy
Note
Inicie sesioacuten con la misma cuenta o informacioacuten de usuario de IAM que utilizoacute enIntroduccioacutena CodeDeploy (p 35)
2 En el panel de navegacioacuten expandaDesplegary luego elijaAplicaciones
3 ElegirAplicacioacuten de CodeDeployGitHub4 En la pestantildea Deployments (Implementaciones) elija Create deployment (Crear implementacioacuten)
Note
No va a crear una nueva implementacioacuten Actualmente esta es la uacutenica manera de concedera CodeDeploy el permiso para interactuar con GitHub en nombre de su cuenta de usuario deGitHub
5 DesdeGrupo de implementaciones eligeImplementacioacuten de coacutedigo GitHub Demo - DepGRP6 En Revision type (Tipo de revisioacuten) elija GitHub7 En Connect to GitHub realice una de las siguientes acciones
bull Para crear una conexioacuten entre aplicaciones de CodeDeploy y una cuenta de GitHub cierre lasesioacuten de GitHub en otra pestantildea del navegador web En GitHub account escriba el nombre paraidentificar esta conexioacuten y luego elija Connect to GitHub La paacutegina web le pediraacute que autorice aCodeDeploy para interactuar con GitHub para la aplicacioacuten denominadaCodeDeployGitHubDemo-App Continuacutee en el paso 8
bull Para utilizar una conexioacuten que haya creado previamente seleccione su nombre en GitHub accounty a continuacioacuten elija Connect to GitHub Continuacutee en el paso 10
bull Para crear una conexioacuten con una cuenta de GitHub distinta cierre la sesioacuten de GitHub en otrapestantildea del navegador web Elija Connect to a different GitHub account y a continuacioacuten elijaConnect to GitHub Continuacutee en el paso 8
8 Siga las instrucciones de la paacutegina Sign in para iniciar sesioacuten con su nombre de usuario de GitHub osu direccioacuten de correo electroacutenico y la contrasentildea correspondiente
9 En la paacutegina Authorize application elija Authorize application10 En CodeDeployCrear implementacioacutenpaacutegina elijaCancelar11 Ejecute el comando create-deployment para implementar la revisioacuten en la instancia desde el
repositorio de GitHub donde
bull repository es el nombre de cuenta de GitHub seguido de una barra inclinada () y delnombre del repositorio (CodeDeployGitHubDemo) por ejemplo MyGitHubUserNameCodeDeployGitHubDemo
Si no estaacute seguro del valor que debe indicar o si desea especificar un repositorio diferente
1 En otra pestantildea del navegador web abra el Panel de GitHub2 En Your repositories pase el cursor sobre el nombre del repositorio de destino Apareceraacute
un mensaje informativo con el nombre de usuario de GitHub o el nombre de la organizacioacutenseguido de una barra inclinada () y del nombre del repositorio Este es el valor que debe usar
Versioacuten de API 2014-10-06136
AWS CodeDeploy Guiacutea del usuarioPaso 7 Supervisar y verificar la implementacioacuten
Note
Si el nombre de repositorio de destino no aparece en Your repositories use el cuadroSearch GitHub para buscar repositorio de GitHub de destino y el nombre de usuario onombre de organizacioacuten de GitHub correspondiente
bull commit-id es la confirmacioacuten asociada al almacenamiento de la versioacuten de la revisioacuten de laaplicacioacuten en el repositorio (por ejemplo f835159a528eb76f)
Si no estaacute seguro del valor que debe usar
1 En otra pestantildea del navegador web abra el Panel de GitHub2 EnTus repositorios eligeDemo de GitHub de implementacioacuten de coacutedigo3 En la lista de confirmaciones busque el ID de la confirmacioacuten asociada al almacenamiento de
la revisioacuten de la aplicacioacuten en GitHub Este ID suele tener 40 caracteres y se compone de letrasy nuacutemeros (No utilice la versioacuten corta del ID de confirmacioacuten que suele ser los primeros 10caracteres de la versioacuten larga) Utilice este valor
Si se encuentra en un equipo local con Linux macOS o Unix
aws deploy create-deployment --application-name CodeDeployGitHubDemo-App --deployment-config-name CodeDeployDefaultOneAtATime --deployment-group-name CodeDeployGitHubDemo-DepGrp --description My GitHub deployment demo --github-location repository=repositorycommitId=commit-id
Si se encuentra en un equipo local con Windows
aws deploy create-deployment --application-name CodeDeployGitHubDemo-App --deployment-config-name CodeDeployDefaultOneAtATime --deployment-group-name CodeDeployGitHubDemo-DepGrp --description My GitHub deployment demo --github-location repository=repositorycommitId=commit-id
Paso 7 Supervisar y verificar la implementacioacutenEn este paso utilizaraacute la consola de CodeDeploy o laAWS CLIpara comprobar el eacutexito de laimplementacioacuten Utilizaraacute el navegador web para ver la paacutegina implementada en la instancia que ha creadoo configurado
Note
Si se trata de una implementacioacuten en una instancia de Ubuntu Server utilice su propia estrategiade pruebas para determinar si la revisioacuten implementada funciona seguacuten lo previsto en la instanciay a continuacioacuten continuacutee en el paso siguiente
Para monitorizar y comprobar la implementacioacuten (consola)
1 En el panel de navegacioacuten expandaDesplegary despueacutesImplementaciones
2 En la lista de implementaciones busque la fila cuyoAplicacioacutenValor deAplicacioacuten deCodeDeployGitHuby unGrupo de implementacionesValor deImplementacioacuten de coacutedigo GitHubDemo - DepGRP Si no aparece Succeeded o Failed en la columna Status pulse el botoacuten Refreshperioacutedicamente
3 Si aparece Failed en la columna Status siga las instrucciones de Ver los detalles de la instancia(consola) (p 258) para resolver los problemas de la implementacioacuten
Versioacuten de API 2014-10-06137
AWS CodeDeploy Guiacutea del usuarioPaso 8 Eliminar recursos
4 Si aparece Succeeded en la columna Status ya puede comprobar la implementacioacuten en elnavegador web Nuestra revisioacuten de ejemplo implementa una uacutenica paacutegina web en la instancia Si laimplementacioacuten es en una instancia Amazon EC2 en el navegador web vaya ahttppublic-dnspor ejemplo (por ejemplohttpec2-01-234-567-890compute-1amazonawscom)
5 Si puede ver la paacutegina web iexclenhorabuena Ahora que ha conseguido implementar una revisioacuten desdeGitHub con AWS CodeDeploy puede ir directamente al Paso 8 Eliminar recursos (p 138)
Para monitorizar y comprobar la implementacioacuten (CLI)
1 Para obtener el ID de implementacioacuten ejecute el comando list-deployments con la aplicacioacutenCodeDeployGitHubDemo-App y el grupo de implementaciones CodeDeployGitHubDemo-DepGrp
aws deploy list-deployments --application-name CodeDeployGitHubDemo-App --deployment-group-name CodeDeployGitHubDemo-DepGrp --query deployments --output text
2 Ejecute el comando get-deployment indicando el ID de la implementacioacuten obtenido en la salida delcomando list-deployments
aws deploy get-deployment --deployment-id deployment-id --query deploymentInfo[status creator] --output text
3 Si el resultado es Failed siga las instrucciones de Ver los detalles de la instancia (consola) (p 258)para resolver los problemas de la implementacioacuten
4 Si el resultado es Succeeded ya puede comprobar la implementacioacuten en el navegadorweb Nuestra revisioacuten de ejemplo implementa una uacutenica paacutegina web en la instancia Si laimplementacioacuten es en una instancia Amazon EC2 puede ver la paacutegina en el navegadorweb enhttppublic-dnspara la instancia Amazon EC2 (por ejemplohttpec2-01-234-567-890compute-1amazonawscom)
5 Si puede ver la paacutegina web iexclenhorabuena Ha conseguido implementar con AWS CodeDeploy desdeun repositorio de GitHub
Paso 8 Eliminar recursosPara evitar cargos adicionales por los recursos que ha utilizado en este tutorial debe terminar lainstancia Amazon EC2 y sus recursos asociados De forma opcional puede eliminar los registros de loscomponentes de implementacioacuten de CodeDeploy asociados a este tutorial Si el repositorio de GitHub erasolo para este tutorial puede eliminarlo ahora tambieacuten
Para eliminar unAWS CloudFormationstack (si utilizaste elAWSCloudFormationplantilla para crear una instancia Amazon EC2)1 Inicie sesioacuten en la AWS Management Console y abra la consola de AWS CloudFormation en https
consoleawsamazoncomcloudformation2 En la columna Stacks (Pilas) elija la pila que comience por CodeDeploySampleStack3 Elija Delete (Eliminar)4 Cuando se le solicite elija Delete stack (Eliminar pila) Se eliminaraacute la instancia Amazon EC2 y el perfil
de instancia de IAM y el rol de servicio asociados
Versioacuten de API 2014-10-06138
AWS CodeDeploy Guiacutea del usuarioTutorial Implementar un servicio de Amazon ECS
Para anular el registro y limpiar manualmente una instancia on-premises (si ha aprovisionado una instancia on-premises)1 UsarAWS CLIpara llamar aAnular registropara la instancia on-premises representada aquiacute porsu
nombre de instanciay la regioacuten asociada porsu regioacuten
aws deploy deregister --instance-name your-instance-name --no-delete-iam-user --region your-region
2 Desde la instancia on-premises ejecute eldesinstalarcomando
aws deploy uninstall
Para terminar manualmente una instancia Amazon EC2 (si hainiciado manualmente una instancia Amazon EC2)1 Inicie sesioacuten en la AWS Management Console y abra la consola de Amazon EC2 en https
consoleawsamazoncomec22 En el panel de navegacioacuten bajo Instances elija Instances3 Seleccione la casilla junto a la instancia Amazon EC2 que desea terminar En el menuacute Actions
seleccione Instance State y elija Terminate4 Cuando se le pregunte elija Yes Terminate
Para eliminar los registros de los componentes deimplementacioacuten de CodeDeploy1 Inicie sesioacuten en laAWS Management Consoley abra la consola de CodeDeploy enhttps
consoleawsamazoncomcodedeploy
Note
Inicie sesioacuten con la misma cuenta o informacioacuten de usuario de IAM que utilizoacute enIntroduccioacutena CodeDeploy (p 35)
2 En el panel de navegacioacuten expandaDesplegary luego elijaAplicaciones
3 ElegirAplicacioacuten de CodeDeployGitHub4 Seleccione Delete application (Eliminar aplicacioacuten)5 Cuando se le pregunte escriba Delete y a continuacioacuten elija Delete (Eliminar)
Para eliminar el repositorio de GitHubConsulteEliminacioacuten de un repositorioenAyuda de GitHub
Tutorial Implementar un servicio de Amazon ECSEn este tutorial aprenderaacute a implementar una aplicacioacuten de Amazon ECS Comience con una aplicacioacutende Amazon ECS que ya creoacute El primer paso consiste en actualizar la aplicacioacuten modificando su archivo
Versioacuten de API 2014-10-06139
AWS CodeDeploy Guiacutea del usuarioTutorial Implementar un servicio de Amazon ECS
de definicioacuten de tareas con una nueva etiqueta A continuacioacuten utilice CodeDeploy para implementar laactualizacioacuten Durante la implementacioacuten CodeDeploy instala la actualizacioacuten en un nuevo conjunto detareas de sustitucioacuten A continuacioacuten desviacutea el traacutefico de produccioacuten de la versioacuten original del servicio deAmazon ECS que se encuentra en su conjunto de tareas original a la versioacuten actualizada del conjunto detareas de sustitucioacuten
Durante una implementacioacuten de Amazon ECS CodeDeploy utiliza un balanceador de carga configuradocon dos grupos de destino y un agente de escucha de traacutefico de produccioacuten En el siguiente diagramase muestra coacutemo estaacuten relacionados el balanceador de carga el agente de escucha de produccioacuten losgrupos de destino y la aplicacioacuten de Amazon ECS antes de que comience la implementacioacuten En estetutorial se utiliza un balanceador de carga de aplicaciones Tambieacuten puede utilizar un Network LoadBalancer
Despueacutes de una implementacioacuten correcta el agente de escucha de traacutefico de produccioacuten ofrece el traacuteficoal nuevo conjunto de tareas de sustitucioacuten y se termina el conjunto de tareas original En el siguientediagrama se muestra coacutemo estaacuten relacionados los recursos despueacutes de una implementacioacuten correctaPara obtener maacutes informacioacuten consulte Queacute ocurre durante una implementacioacuten de Amazon ECS (p 22)
Para obtener informacioacuten acerca de coacutemo utilizar laAWS CLIPara implementar un servicio de AmazonECS consulteTutorial Creacioacuten de un servicio mediante una implementacioacuten laquobluegreenraquo Para obtener
Versioacuten de API 2014-10-06140
AWS CodeDeploy Guiacutea del usuarioRequisitos previos
informacioacuten acerca de coacutemo utilizar CodePipeline para detectar e implementar automaacuteticamente cambiosen un servicio de Amazon ECS con CodeDeploy consulteTutorial Creacioacuten de una canalizacioacuten con unorigen de Amazon ECR y la implementacioacuten de ECS-to-CodeDeploy
Despueacutes de completar este tutorial puede utilizar la aplicacioacuten de CodeDeploy y el grupo deimplementaciones que creoacute para antildeadir una prueba de validacioacuten de implementacioacuten enTutorialImplementacioacuten de un servicio Amazon ECS con una prueba de validacioacuten (p 147)
Temasbull Requisitos previos (p 141)bull Paso 1 Actualice la aplicacioacuten de Amazon ECS (p 141)bull Paso 2 Creacioacuten del archivo AppSpec (p 142)bull Paso 3 Utilice la consola de CodeDeploy para implementar su servicio Amazon ECS (p 143)bull Paso 4 Eliminar recursos (p 146)
Requisitos previosPara completar este tutorial primero debe realizar el siguiente procedimiento
bull Realice los pasos 2 y 3 de Introduccioacuten a CodeDeploy (p 35)bull Cree un Application Load Balancer configurado con dos grupos de destino y un agente de escucha Para
obtener informacioacuten sobre la creacioacuten un balanceador de carga mediante la consola consulte Configurarun equilibrador de carga grupos de destino y listeners para implementaciones de CodeDeploy AmazonECS (p 296) Para obtener informacioacuten acerca de la creacioacuten de un balanceador de carga mediantelaAWS CLI consultePaso 1 Creacioacuten de un Application Load Balanceren laGuiacutea del usuario AmazonElastic Container Cuando cree el balanceador de carga anote lo siguiente para este tutorialbull Nombre del balanceador de cargabull Los nombres de los grupos de destinobull El puerto utilizado por el agente de escucha del balanceador de carga
bull Cree un servicio y cluacutester de Amazon ECS Para obtener maacutes informacioacuten consulte los pasos 2 3 y 4enTutorial Creacioacuten de un servicio mediante una implementacioacuten laquobluegreenraquoen laGuiacutea del usuarioAmazon Elastic Container Anote lo siguiente para este tutorialbull El nombre del cluacutester de Amazon ECSbull El ARN de la definicioacuten de tarea utilizada por el servicio de Amazon ECSbull El nombre del contenedor utilizado por el servicio de Amazon ECS
bull Cree un bucket de Amazon S3 para su archivo AppSpec
Paso 1 Actualice la aplicacioacuten de Amazon ECSEn esta seccioacuten actualizaraacute la aplicacioacuten de Amazon ECS con una nueva revisioacuten de su definicioacuten detarea La revisioacuten actualizada antildeade un nuevo par de claves y etiquetas En Paso 3 Utilice la consola deCodeDeploy para implementar su servicio Amazon ECS (p 143) implemente la versioacuten actualizada de laaplicacioacuten de Amazon ECS
Para actualizar la definicioacuten de tarea realice el siguiente procedimiento
1 Abra la consola de Amazon ECS en httpsconsoleawsamazoncomecs2 En el panel de navegacioacuten elija Task Definitions3 Seleccione la casilla de verificacioacuten de la definicioacuten de tarea utilizada por el servicio de Amazon ECS4 Elija Create new revision (Crear nueva revisioacuten)
Versioacuten de API 2014-10-06141
AWS CodeDeploy Guiacutea del usuarioPaso 2 Creacioacuten del archivo AppSpec
5 En este tutorial realice una pequentildea actualizacioacuten de la definicioacuten de la tarea antildeadiendo una etiquetaEn la parte inferior de la paacutegina en Tags (Etiquetas) cree una nueva etiqueta escribiendo un nuevopar de clave y valor
6 Elija Create (Crear) Deberiacutea ver que el nuacutemero de revisioacuten de la definicioacuten de la tarea se haincrementado en uno
7 Seleccione la pestantildea JSON Anote lo siguiente ya que necesitaraacute esa informacioacuten en el siguientepaso
bull El valor de taskDefinitionArn Su formato es el siguiente arnawsecsaws-regionaccount-idtask-definitiontask-definition-familytask-definition-revision Este es el ARN de la definicioacuten de tarea actualizada
bull En el elemento containerDefinitions el valor de name Este es el nombre del contenedorbull En el elemento portMappings el valor de containerPort Este es el puerto del contenedor
Paso 2 Creacioacuten del archivo AppSpecEn esta seccioacuten crearaacute su archivo AppSpec y lo cargaraacute en el bucket de Amazon S3 que creoacute enlaRequisitos previos (p 141)seccioacuten El archivo AppSpec de una implementacioacuten de Amazon ECSespecifica la definicioacuten de tarea de el nombre del contenedor y el puerto del contenedor Para obtener maacutesinformacioacuten consulte Ejemplo de archivo AppSpec para una implementacioacuten de Amazon ECS (p 436) ySeccioacuten laquoresourcesraquo de AppSpec para implementaciones de Amazon ECS (p 416)
Para crear su archivo AppSpec
1 Si desea crear su archivo AppSpec mediante YAML cree un archivo denominadoappspecyml Sidesea crear su archivo AppSpec mediante JSON cree un archivo denominadoappspecjson
2 Elija la pestantildea adecuada en funcioacuten de si utiliza YAML o JSON para su archivo AppSpec y copie sucontenido en el archivo AppSpec que acaba de crear Para la propiedad TaskDefinition utiliceel ARN de definicioacuten de tarea que anotoacute en la seccioacuten Paso 1 Actualice la aplicacioacuten de AmazonECS (p 141)
JSON AppSpec
version 00 Resources [ TargetService Type AWSECSService Properties TaskDefinition arnawsecsaws-region-idaws-account-idtask-definitionecs-demo-task-definitionrevision-number LoadBalancerInfo ContainerName your-container-name ContainerPort your-container-port ]
YAML AppSpec
version 00Resources - TargetService
Versioacuten de API 2014-10-06142
AWS CodeDeploy Guiacutea del usuarioPaso 3 Utilice la consola de CodeDeploy
para implementar su servicio Amazon ECS
Type AWSECSService Properties TaskDefinition arnawsecsaws-region-idaws-account-idtask-definitionecs-demo-task-definitionrevision-number LoadBalancerInfo ContainerName your-container-name ContainerPort your-container-port
Note
El conjunto de tareas de sustitucioacuten hereda la subred el grupo de seguridad la versioacutende la plataforma y los valores de IP puacuteblicas asignados del conjunto de tareas originalPuede anular estos valores para el conjunto de tareas de sustitucioacuten estableciendo suspropiedades opcionales en el archivo AppSpec Para obtener maacutes informacioacuten consulte Seccioacuten laquoresourcesraquo de AppSpec para implementaciones de Amazon ECS (p 416) y Ejemplo de archivo AppSpec para una implementacioacuten de Amazon ECS (p 436)
3 Cargue su archivo AppSpec en el bucket de S3 que ha creado como requisito previo para este tutorial
Paso 3 Utilice la consola de CodeDeploy paraimplementar su servicio Amazon ECSEn esta seccioacuten crearaacute una aplicacioacuten de CodeDeploy y un grupo de implementaciones para implementarla aplicacioacuten de Amazon ECS actualizada Durante la implementacioacuten CodeDeploy desviacutea el traacuteficode produccioacuten de la aplicacioacuten de Amazon ECS a su nueva versioacuten en un nuevo conjunto de tareas desustitucioacuten Para completar este ejemplo necesita lo siguiente
bull El nombre del cluacutester de Amazon ECSbull El nombre del servicio de Amazon ECSbull El nombre del Application Load Balancerbull El puerto del agente de escucha de produccioacutenbull Los nombres de grupo de destinobull El nombre del bucket de S3 que creoacute
Para crear una aplicacioacuten CodeDeploy
1 Inicie sesioacuten enAWS Management Consoley abra la consola de CodeDeploy enhttpsconsoleawsamazoncomcodedeploy
2 Elija Create application3 En Application name (Nombre de aplicacioacuten) escriba ecs-demo-codedeploy-app4 En Compute platform (Plataforma de computacioacuten) elija Amazon ECS5 Elija Create application
Para crear un grupo de implementaciones de CodeDeploy
1 En la pestantildea Deployment groups (Grupos de implementaciones) de la paacutegina de la aplicacioacuten elijaCreate deployment group (Crear grupo de implementaciones)
2 En Deployment group name (Nombre de grupo de implementacioacuten) escriba ecs-demo-dg3 EnRol de servicio elija un rol de servicio que conceda a CodeDeploy acceso a Amazon ECS Para
obtener maacutes informacioacuten consulte Identity and Access Management en AWS CodeDeploy (p 378)4 EnConfiguracioacuten del entorno elija el nombre del cluacutester de Amazon ECS y el nombre del servicio
Versioacuten de API 2014-10-06143
AWS CodeDeploy Guiacutea del usuarioPaso 3 Utilice la consola de CodeDeploy
para implementar su servicio Amazon ECS
5 DesdeBalanceadores de carga elija el nombre del balanceador de carga que sirve el traacutefico a suservicio de Amazon ECS
6 DesdePuerto del agente de escucha de produccioacuten elija el puerto y el protocolo del agente deescucha que sirve el traacutefico de produccioacuten a su servicio de Amazon ECS (por ejemploHTTP 80) Estetutorial no incluye un agente de escucha de prueba opcional por lo que no elija un puerto en Testlistener port (Puerto de agente de escucha de prueba)
7 En Target group 1 name (Nombre de grupo de destino 1) y Target group 2 name (Nombre de grupode destino 2) elija dos grupos de destino diferentes para dirigir el traacutefico durante su implementacioacutenAseguacuterese de que se trata de los grupos de destino que ha creado para el balanceador de carga Noimporta el que se utilice para el grupo de destino 1 y el que se utilice para el grupo de destino 2
8 Elija Reroute traffic immediately (Redirigir el traacutefico de forma inmediata)9 En Original revision termination (Terminacioacuten de revisioacuten original) elija 0 days (0 diacuteas) 0 hours (0
horas) y 5 minutes (5 minutos) Esto le permite ver que la implementacioacuten se completa maacutes raacutepido quesi utiliza el valor predeterminado (1 hora)
Versioacuten de API 2014-10-06144
AWS CodeDeploy Guiacutea del usuarioPaso 3 Utilice la consola de CodeDeploy
para implementar su servicio Amazon ECS
Versioacuten de API 2014-10-06145
AWS CodeDeploy Guiacutea del usuarioPaso 4 Eliminar recursos
10 Elija Create deployment group
Para implementar la aplicacioacuten de Amazon ECS
1 En la paacutegina de la consola del grupo de implementaciones elija Create deployment (Crearimplementacioacuten)
2 En Deployment group (Grupo de implementaciones) elija ecs-demo-dg3 En Revision type (Tipo de revisioacuten) elija My application is stored in Amazon S3 (Mi aplicacioacuten estaacute
almacenada en Amazon S3) En Revision location (Ubicacioacuten de la revisioacuten) escriba el nombre de subucket de S3
4 En Revision file type (Tipo de archivo de revisioacuten) elija json o yaml seguacuten corresponda5 En el cuadro Deployment description (Descripcioacuten de la implementacioacuten) especifique una descripcioacuten
para la implementacioacuten (opcional)6 Elija Create deployment (Crear implementacioacuten)7 En Deployment status (Estado de implementacioacuten) puede monitorizar la implementacioacuten Despueacutes
de que el 100 del traacutefico de produccioacuten se dirija al conjunto de tareas de sustitucioacuten y antes deque transcurra el tiempo de espera de cinco minutos puede elegirFinalizar conjunto de tareasoriginalPara terminar inmediatamente el conjunto de tareas original Si no elige Terminate originaltask set (Terminar conjunto de tareas original) el conjunto de tareas original termina despueacutes de quetranscurra el tiempo de espera de cinco minutos especificado
Paso 4 Eliminar recursosEl proacuteximo tutorialTutorial Implementacioacuten de un servicio Amazon ECS con una prueba devalidacioacuten (p 147) se basa en este tutorial y utiliza la aplicacioacuten de CodeDeploy y el grupo deimplementaciones de que ha creado Si desea seguir los pasos de ese tutorial omita este paso y noelimine los recursos que ha creado
Versioacuten de API 2014-10-06146
AWS CodeDeploy Guiacutea del usuarioTutorial Implementacioacuten de un servicio
Amazon ECS con una prueba de validacioacuten
Note
SusAWSLa cuenta de no genera gastos por los recursos de CodeDeploy que ha creado
Los nombres de recursos de estos pasos son los nombres sugeridos en este tutorial (por ejemploecs-demo-codedeploy-apppara obtener el nombre de la aplicacioacuten de CodeDeploy) Si utilizoacute nombresdiferentes aseguacuterese de usarlos en el borrado
1 Utilice el comando delete-deployment-group para eliminar el grupo de implementacioacuten deCodeDeploy
aws deploy delete-deployment-group --application-name ecs-demo-codedeploy-app --deployment-group-name ecs-demo-dg --region aws-region-id
2 Utilice el comando delete-application para eliminar la aplicacioacuten de CodeDeploy
aws deploy delete-application --application-name ecs-demo-codedeploy-app --region aws-region-id
Tutorial Implementacioacuten de un servicio AmazonECS con una prueba de validacioacuten
En este tutorial aprenderaacute a utilizar una funcioacuten de Lambda para validar parte de la implementacioacuten deuna aplicacioacuten de Amazon ECS de actualizada En este tutorial se utiliza la aplicacioacuten de CodeDeployel grupo de implementaciones de CodeDeploy y la aplicacioacuten de Amazon ECS de que utilizoacute enTutorialImplementar un servicio de Amazon ECS (p 139) Complete ese tutorial antes de comenzar este
Para antildeadir una prueba de validacioacuten primero debe implementar la prueba en una funcioacuten LambdaA continuacioacuten en el archivo AppSpec de implementacioacuten debe especificar la funcioacuten Lambda parael enlace de ciclo de vida que desee probar Si se produce un error en una prueba de validacioacuten laimplementacioacuten se detiene se revisa y se marca como erroacutenea Si la prueba se realiza correctamente laimplementacioacuten continuacutea con el siguiente evento o enlace del ciclo de vida de la implementacioacuten
Durante una implementacioacuten de Amazon ECS con pruebas de validacioacuten CodeDeploy utiliza unbalanceador de carga configurado con dos grupos de destino un agente de escucha de traacutefico deproduccioacuten y un agente de escucha de traacutefico de prueba En el siguiente diagrama se muestra coacutemo estaacutenrelacionados el balanceador de carga los agentes de escucha de produccioacuten y prueba los grupos dedestino y la aplicacioacuten de Amazon ECS antes de que comience la implementacioacuten En este tutorial seutiliza un balanceador de carga de aplicaciones Tambieacuten puede utilizar un Network Load Balancer
Versioacuten de API 2014-10-06147
AWS CodeDeploy Guiacutea del usuarioTutorial Implementacioacuten de un servicio
Amazon ECS con una prueba de validacioacuten
Durante una implementacioacuten de Amazon ECS existen cinco enlaces de ciclo de vida para pruebas Eneste tutorial se implementa una prueba durante el tercer enlace de implementacioacuten de ciclo de vidaAfterAllowTestTraffic Para obtener maacutes informacioacuten consulte Lista de ganchos de eventos delciclo de vida de una implementacioacuten de Amazon ECS (p 423) Despueacutes de una implementacioacuten correctael agente de escucha de traacutefico de produccioacuten ofrece el traacutefico al nuevo conjunto de tareas de sustitucioacuteny se termina el conjunto de tareas original En el siguiente diagrama se muestra coacutemo estaacuten relacionadoslos recursos despueacutes de una implementacioacuten correcta Para obtener maacutes informacioacuten consulte Queacute ocurredurante una implementacioacuten de Amazon ECS (p 22)
Note
El uso de este tutorial puede producir cargos en su cuenta de AWS Entre ellos se incluyenposibles cargos por CodeDeployAWS Lambday CloudWatch Para obtener maacutes informacioacutenconsulteAWS CodeDeployde IPAMAWS Lambdade IPAM yPrecios de Amazon CloudWatch
Temasbull Requisitos previos (p 149)bull Paso 1 Crear un agente de escucha de prueba (p 149)bull Paso 2 Actualice la aplicacioacuten de Amazon ECS (p 149)
Versioacuten de API 2014-10-06148
AWS CodeDeploy Guiacutea del usuarioRequisitos previos
bull Paso 3 Crear una funcioacuten Lambda de enlace de ciclo de vida (p 150)bull Paso 4 Actualice el archivo AppSpec (p 151)bull Paso 5 Utilice la consola de CodeDeploy para implementar su servicio Amazon ECS (p 153)bull Paso 6 Visualice la salida de la funcioacuten de enlace de Lambda en CloudWatch Logs (p 154)bull Paso 7 Eliminar recursos (p 155)
Requisitos previosPara completar correctamente este tutorial primero debe realizar el siguiente procedimiento
bull Cumpla los requisitos previos de Requisitos previos (p 141) para Tutorial Implementar un servicio deAmazon ECS (p 139)
bull Realice los pasos que se indican en Tutorial Implementar un servicio de Amazon ECS (p 139) Anotelo siguientebull Nombre del balanceador de cargabull Los nombres de los grupos de destinobull El puerto utilizado por el agente de escucha del balanceador de cargabull El ARN del balanceador de carga Puede utilizarlo para crear un nuevo agente de escuchabull El ARN de uno de los grupos de destino Puede utilizarlo para crear un nuevo agente de escuchabull La aplicacioacuten CodeDeploy y el grupo de implementacioacuten que creebull El archivo de AppSpec que crea que utiliza la implementacioacuten de CodeDeploy Puede editar este
archivo en este tutorial
Paso 1 Crear un agente de escucha de pruebaUna implementacioacuten de Amazon ECS con pruebas de validacioacuten requiere un segundo agente deescucha Este agente de escucha se utiliza para servir traacutefico de prueba en la aplicacioacuten de Amazon ECSactualizada en un conjunto de tareas de sustitucioacuten Las pruebas de validacioacuten se ejecutan en el traacutefico deprueba
El agente de escucha del traacutefico de prueba puede utilizar cualquiera de los grupos de destino Usarcreate-agente de escucha AWS CLIpara crear un segundo agente de escucha con una regla predeterminada quereenviacutee el traacutefico de prueba al puerto 8080 Utilice el ARN del balanceador de carga y el ARN de uno de losgrupos de destino
aws elbv2 create-listener --load-balancer-arn your-load-balancer-arn --protocol HTTP --port 8080 --default-actions Type=forwardTargetGroupArn=your-target-group-arn --region your-aws-region
Paso 2 Actualice la aplicacioacuten de Amazon ECSEn esta seccioacuten actualizaraacute la aplicacioacuten de Amazon ECS para que utilice una nueva revisioacuten de sudefinicioacuten de tarea Puede crear la nueva revisioacuten y antildeadirle una actualizacioacuten secundaria antildeadiendo unaetiqueta
Para actualizar la definicioacuten de tarea realice el siguiente procedimiento
1 Abra la consola de Amazon ECS en httpsconsoleawsamazoncomecs2 En el panel de navegacioacuten elija Task Definitions
Versioacuten de API 2014-10-06149
AWS CodeDeploy Guiacutea del usuarioPaso 3 Crear una funcioacuten
Lambda de enlace de ciclo de vida
3 Seleccione la casilla de verificacioacuten de la definicioacuten de tarea utilizada por el servicio de Amazon ECS4 Elija Create new revision (Crear nueva revisioacuten)5 Realice una pequentildea actualizacioacuten de la definicioacuten de la tarea antildeadiendo una etiqueta En la parte
inferior de la paacutegina en Tags (Etiquetas) cree una nueva etiqueta escribiendo un nuevo par de clave yvalor
6 Elija Create (Crear) Deberiacutea ver que el nuacutemero de revisioacuten de la definicioacuten de la tarea se haincrementado en uno
7 Seleccione la pestantildea JSON Anote el valor de taskDefinitionArn Su formato es el siguientearnawsecsaws-region account-idtask-definitiontask-definition-familytask-definition-revision Este es el ARN de la definicioacuten de tarea actualizada
Paso 3 Crear una funcioacuten Lambda de enlace de ciclode vidaEn esta seccioacuten implementaraacute una funcioacuten Lambda para la implementacioacuten de AmazonECSAfterAllowTestTrafficenlace La funcioacuten Lambda ejecuta una prueba de validacioacutenantes de instalar la aplicacioacuten de Amazon ECS actualizada En este tutorial la funcioacuten LambdadevuelveSucceeded Durante una implementacioacuten real las pruebas de validacioacuten devuelvenSucceeded o Failed en funcioacuten del resultado de la prueba de validacioacuten Tambieacuten durante unaimplementacioacuten real puede implementar una funcioacuten de prueba de Lambda para uno o variosde los demaacutes enlaces de eventos del ciclo de vida de la implementacioacuten de Amazon ECS de(BeforeInstallAfterInstallBeforeAllowTraffic yAfterAllowTraffic) Para obtener maacutesinformacioacuten consulte Lista de ganchos de eventos del ciclo de vida de una implementacioacuten de AmazonECS (p 423)
Se requiere un rol de IAM para crear la funcioacuten de Lambda El rol concede a la funcioacuten de Lambda permisopara escribir en CloudWatch Logs y establecer el estado de un enlace de ciclo de vida de CodeDeploy
Para crear un rol de IAM
1 Abra la consola de IAM en httpsconsoleawsamazoncomiam2 En el panel de navegacioacuten seleccione Roles y a continuacioacuten Create role (Crear rol)3 Cree un rol con las propiedades siguientes
bull Trusted entity (Entidad de confianza) AWS Lambdabull Permisos AWSLambdaBasicExecutionRole Esto concede a la funcioacuten de Lambda permiso para
escribir en CloudWatch Logsbull Role name (Nombre de rol) lambda-cli-hook-role
Para obtener maacutes informacioacuten consulteCreacioacuten de unAWS LambdaRol de ejecucioacuten de4 Asocie el permiso codedeployPutLifecycleEventHookExecutionStatus al rol que ha
creado Esto concede a las funciones de Lambda permiso para establecer el estado de un enlacede ciclo de vida de CodeDeploy durante una implementacioacuten Para obtener maacutes informacioacutenconsulteAdicioacuten de permisos de identidad de IAMen laAWS Identity and Access ManagementGuiacutea delusuario deyPutLifecycleEventHookExecutionStatusen laReferencia de la API CodeDeploy
Para crear unAfterAllowTestTrafficFuncioacuten de enlace Lambda
1 Cree un archivo denominado AfterAllowTestTrafficjs con el siguiente contenido
use strict
Versioacuten de API 2014-10-06150
AWS CodeDeploy Guiacutea del usuarioPaso 4 Actualice el archivo AppSpec
const AWS = require(aws-sdk) const codedeploy = new AWSCodeDeploy(apiVersion 2014-10-06) exportshandler = (event context callback) =gt consolelog(Entering AfterAllowTestTraffic hook) Read the DeploymentId and LifecycleEventHookExecutionId from the event payload var deploymentId = eventDeploymentId var lifecycleEventHookExecutionId = eventLifecycleEventHookExecutionId var validationTestResult = Failed Perform AfterAllowTestTraffic validation tests here Set the test result to Succeeded for this tutorial consolelog(This is where AfterAllowTestTraffic validation tests happen) validationTestResult = Succeeded Complete the AfterAllowTestTraffic hook by sending CodeDeploy the validation status var params = deploymentId deploymentId lifecycleEventHookExecutionId lifecycleEventHookExecutionId status validationTestResult status can be Succeeded or Failed Pass CodeDeploy the prepared validation test results codedeployputLifecycleEventHookExecutionStatus(params function(err data) if (err) Validation failed consolelog(AfterAllowTestTraffic validation tests failed) consolelog(err errstack) callback(CodeDeploy Status update failed) else Validation succeeded consolelog(AfterAllowTestTraffic validation tests succeeded) callback(null AfterAllowTestTraffic validation tests succeeded) )
2 Cree un paquete de implementacioacuten de Lambda
zip AfterAllowTestTrafficzip AfterAllowTestTrafficjs
3 Usarcreate-functionpara crear una funcioacuten Lambda para suAfterAllowTestTrafficenlace
aws lambda create-function --function-name AfterAllowTestTraffic --zip-file filebAfterAllowTestTrafficzip --handler AfterAllowTestTraffichandler --runtime nodejs10x --role arnawsiamaws-account-idrolelambda-cli-hook-role
4 Anote el ARN de la funcioacuten de Lambda en lacreate-functionrespuesta Utilice este ARN cuandoactualice en el archivo AppSpec de la implementacioacuten de CodeDeploy en el siguiente paso
Paso 4 Actualice el archivo AppSpecEn esta seccioacuten actualizaraacute el archivo AppSpec con unHooksseccioacuten En el navegadorHooks debeespecificar una funcioacuten Lambda para laAfterAllowTestTrafficenlace de ciclo de vida
Versioacuten de API 2014-10-06151
AWS CodeDeploy Guiacutea del usuarioPaso 4 Actualice el archivo AppSpec
Para actualizar el archivo AppSpec
1 Abra el archivo de archivo AppSpec que creoacute en Paso 2 Creacioacuten del archivo AppSpec (p 142)delTutorial Implementar un servicio de Amazon ECS (p 139)
2 Actualice la propiedad TaskDefinition con el ARN de definicioacuten de tarea que anotoacute en Paso 2Actualice la aplicacioacuten de Amazon ECS (p 149)
3 Copie y pegue elHooksen el archivo de archivo de AppSpec Actualizar el ARNdespueacutesAfterAllowTestTrafficcon el ARN de la funcioacuten Lambda que anotoacute enPaso 3 Crear unafuncioacuten Lambda de enlace de ciclo de vida (p 150)
JSON AppSpec
version 00 Resources [ TargetService Type AWSECSService Properties TaskDefinition arnawsecsaws-region-idaws-account-idtask-definitionecs-demo-task-definitionrevision-number LoadBalancerInfo ContainerName sample-website ContainerPort 80 ] Hooks [ AfterAllowTestTraffic arnawslambdaaws-region-idaws-account-idfunctionAfterAllowTestTraffic ]
YAML AppSpec
version 00Resources - TargetService Type AWSECSService Properties TaskDefinition arnawsecsaws-region-idaws-account-idtask-definitionecs-demo-task-definitionrevision-number LoadBalancerInfo ContainerName sample-website ContainerPort 80Hooks - AfterAllowTestTraffic arnawslambdaaws-region-idaws-account-idfunctionAfterAllowTestTraffic
4 Guarde el archivo AppSpec y caacuterguelo en su bucket de S3
Versioacuten de API 2014-10-06152
AWS CodeDeploy Guiacutea del usuarioPaso 5 Utilice la consola de CodeDeploy
para implementar su servicio Amazon ECS
Paso 5 Utilice la consola de CodeDeploy paraimplementar su servicio Amazon ECSEn esta seccioacuten debe actualizar el grupo de implementaciones especificando el puerto para el agentede escucha de prueba Este es el agente de escucha que creoacute en Paso 1 Crear un agente de escuchade prueba (p 149) Durante la implementacioacuten CodeDeploy ejecuta la prueba de validacioacuten duranteelAfterAllowTestTrafficenlace de ciclo de vida de la implementacioacuten mediante el traacutefico de pruebaservido al conjunto de tareas de sustitucioacuten mediante el agente de escucha de prueba La prueba devalidacioacuten devuelve el resultado Succeeded por lo que la implementacioacuten avanza con el siguiente eventodel ciclo de vida de la implementacioacuten En un escenario real la funcioacuten de prueba devuelve Succeeded oFailed
Para antildeadir un agente de escucha de prueba a su grupo de implementaciones realice el siguienteprocedimiento
1 Inicie sesioacuten en laAWS Management Consoley abra la consola de CodeDeploy enhttpsconsoleawsamazoncomcodedeploy
2 En el panel de navegacioacuten elija Applications (Aplicaciones)3 Elija la aplicacioacuten que ha creado en Tutorial Implementar un servicio de Amazon ECS (p 139) Si
utilizoacute el nombre sugerido es ecs-demo-codedeploy-app4 En Deployment groups (Grupos de implementaciones) elija el grupo de implementaciones que creoacute
en Tutorial Implementar un servicio de Amazon ECS (p 139) Si utilizoacute el nombre recomendado esecs-demo-dg
5 Elija Edit (Editar)6 En Test listener port (Puerto de agente de escucha de prueba) elija el puerto y el protocolo del agente
de escucha de prueba que creoacute anteriormente en este tutorial Esto deberiacutea serHTTP 80807 Elija Save changes (Guardar cambios)
Para implementar la aplicacioacuten de Amazon ECS
1 En la paacutegina de la consola del grupo de implementaciones elija Create deployment (Crearimplementacioacuten)
2 En Deployment group (Grupo de implementaciones) elija ecs-demo-dg3 En Revision type (Tipo de revisioacuten) elija My application is stored in Amazon S3 (Mi aplicacioacuten estaacute
almacenada en Amazon S3) EnUbicacioacuten de la revisioacutenEspecifique el nombre de su bucket de S3 ydel archivo AppSpec (por ejemplos3my-s3-bucketappspecjson)
4 En Revision file type (Tipo de archivo de revisioacuten) elija json o yaml seguacuten corresponda5 En el cuadro Deployment description (Descripcioacuten de la implementacioacuten) especifique una descripcioacuten
para la implementacioacuten (opcional)6 Elija Create deployment (Crear implementacioacuten)
Puede monitorizar la implementacioacuten en Deployment status (Estado de implementacioacuten) Despueacutes deque el 100 del traacutefico de produccioacuten se dirija al conjunto de tareas de sustitucioacuten puede elegirFinalizarconjunto de tareas originalPara terminar inmediatamente el conjunto de tareas original Si no eligeTerminate original task set (Terminar conjunto de tareas original) el conjunto de tareas original terminadespueacutes de la duracioacuten especificada al crear el grupo de implementaciones
Versioacuten de API 2014-10-06153
AWS CodeDeploy Guiacutea del usuarioPaso 6 Visualice la salida de la funcioacuten de
enlace de Lambda en CloudWatch Logs
Paso 6 Visualice la salida de la funcioacuten de enlace deLambda en CloudWatch LogsSi la implementacioacuten de CodeDeploy se realiza correctamente las pruebas de validacioacuten de las funcionesde enlace de Lambda tambieacuten se realizan correctamente Puede confirmarlo consultando el registro de lafuncioacuten de enlace de en CloudWatch Logs
1 Abra la consola de CloudWatch en httpsconsoleawsamazoncomcloudwatch2 En el panel de navegacioacuten elija Logs (Registros) Deberiacutea ver un nuevo grupo de registros para la
funcioacuten de enlace de Lambda que especificoacute en el archivo AppSpec
3 Elija el nuevo grupo de registros Debe ser awslambdaAfterAllowTestTrafficHook4 Elija el flujo de registros Si ve maacutes de un flujo de registros elija el que tenga la fecha y la hora maacutes
recientes en Last Event Time (Hora del uacuteltimo evento)5 Expanda los eventos de la secuencia de registros para confirmar que la funcioacuten de enlace de Lambda
escribioacute mensajes de eacutexito en el registro El ejemplo siguiente muestra laAfterAllowTrafficLafuncioacuten de enlace de Lambda fue exitosa
Versioacuten de API 2014-10-06154
AWS CodeDeploy Guiacutea del usuarioPaso 7 Eliminar recursos
Paso 7 Eliminar recursosCuando termine este tutorial debe limpiar los recursos asociados para evitar incurrir en cargos porrecursos que no estaacute utilizando Los nombres de recursos de este paso son los nombres sugeridos en estetutorial (por ejemploecs-demo-codedeploy-apppara el nombre de la aplicacioacuten CodeDeploy) Si utilizoacutenombres diferentes aseguacuterese de usarlos en el borrado
Para borrar los recursos del tutorial realice el siguiente procedimiento
1 Utilice el comando delete-deployment-group para eliminar el grupo de implementacioacuten deCodeDeploy
aws deploy delete-deployment-group --application-name ecs-demo-deployment-group --deployment-group-name ecs-demo-dg --region aws-region-id
2 Utilice el comando delete-application para eliminar la aplicacioacuten de CodeDeploy
aws deploy delete-application --application-name ecs-demo-deployment-group --region aws-region-id
3 Usardelete-functionpara eliminar la funcioacuten de enlace de Lambda
aws lambda delete-function --function-name AfterAllowTestTraffic
4 Usardelete-log-grouppara eliminar el grupo de registros de CloudWatch
aws logs delete-log-group --log-group-name awslambdaAfterAllowTestTraffic
Versioacuten de API 2014-10-06155
AWS CodeDeploy Guiacutea del usuarioTutorial Implemente una funcioacuten
Lambda medianteAWSSAM
Tutorial Implementar una funcioacuten Lambdaactualizada con CodeDeploy y laAWSModelo deaplicacioacuten sin servidor de
AWSSAM es un marco de coacutedigo abierto para crear aplicaciones sin servidor Transforma y ampliacutea lasintaxis YAML en unAWS SAMplantilla enAWS CloudFormationpara crear aplicaciones sin servidor comouna funcioacuten Lambda Para obtener maacutes informacioacuten consulteiquestQueacute es AWSiquestModelo de aplicacioacuten sinservidor de
En este tutorial utilizaraacuteAWSSAM para crear una solucioacuten que realizaraacute los siguientes procedimientos
bull Crea la funcioacuten de Lambdabull Crea la aplicacioacuten CodeDeploy y el grupo de implementacionesbull Crea dos funciones Lambda que ejecutan pruebas de validacioacuten de la implementacioacuten durante los
enlaces de ciclo de vida de CodeDeploybull Detecta cuaacutendo se actualiza la funcioacuten Lambda La actualizacioacuten de la funcioacuten Lambda activa una
implementacioacuten de CodeDeploy que desviacutea de forma incremental el traacutefico de produccioacuten de la versioacutenoriginal de la funcioacuten de Lambda a la versioacuten actualizada
Note
Este tutorial requiere que cree recursos de que podriacutean dar lugar a cargos en su cuenta de AWSEstos incluyen posibles cargos por CodeDeploy Amazon CloudWatch yAWS Lambda Paraobtener maacutes informacioacuten consultePrecios de CodeDeployPrecios de Amazon CloudWatchyAWS Lambdade IPAM
Temasbull Requisitos previos (p 156)bull Paso 1 Configurar la infraestructura (p 156)bull Paso 2 Actualizacioacuten de la funcioacuten Lambda (p 167)bull Paso 3 Implemente la funcioacuten de Lambda actualizada (p 168)bull Paso 4 Consulte los resultados de la implementacioacuten (p 171)bull Paso 5 Eliminar recursos (p 173)
Requisitos previosPara completar este tutorial primero debe realizar el siguiente procedimiento
bull Realice los pasos que se indican en Introduccioacuten a CodeDeploy (p 35)bull Instale la CLI de AWS Serverless Application Model Para obtener informacioacuten consulteInstalacioacuten
delAWSCLIP DE SAMbull Cree un bucket de S3AWS SAM carga los artefactos a los que se hace referencia en suAWSSAM
template (Plantilla de SAM)en este cubo
Paso 1 Configurar la infraestructuraEn este tema se muestra coacutemo utilizarAWS SAMpara crear archivos para suAWS SAMplantilla yfunciones Lambda A continuacioacuten utilice los comandos AWS SAM package y deploy para generar
Versioacuten de API 2014-10-06156
AWS CodeDeploy Guiacutea del usuarioPaso 1 Configurar la infraestructura
los componentes en su infraestructura Cuando la infraestructura esteacute lista dispondraacute de una aplicacioacutenCodeDeploy y un grupo de implementaciones la funcioacuten Lambda que se va a actualizar e implementary dos funciones Lambda que contienen pruebas de validacioacuten que se ejecutan al implementar la funcioacutenLambda Cuando haya terminado puede utilizarAWS CloudFormationpara ver los componentes y laconsola Lambda o laAWS CLIPara probar la funcioacuten de Lambda
Temasbull Creacioacuten de archivos (p 157)bull Empaque elAWSAplicacioacuten SAM (p 164)bull Implementar elAWSAplicacioacuten SAM (p 165)bull (Opcional) inspeccionar y probar su infraestructura (p 165)
Creacioacuten de archivosPara crear su infraestructura debe crear los siguientes archivos
bull templateyml
bull myDateTimeFunctionjs
bull beforeAllowTrafficjs
bull afterAllowTrafficjs
Temasbull Cree suAWSSAM template (Plantilla de SAM) (p 157)bull Creacioacuten de un archivo para la funcioacuten de Lambda (p 160)bull Cree un archivo para su funcioacuten BeforeAllowTraffic Lambda (p 162)bull Cree un archivo para la funcioacuten AfterAllowTraffic Lambda (p 163)
Cree suAWSSAM template (Plantilla de SAM)Creacioacuten de unAWSArchivo de plantilla SAM que especifica los componentes de la infraestructura
Para crear su realice el siguiente procedimientoAWSSAM template (Plantilla de SAM)
1 Cree un directorio llamado SAM-Tutorial2 En el directorio SAM-Tutorial cree un archivo denominado templateyml3 Copie el coacutedigo YAML siguiente en templateyml Esta es la plantilla de AWS SAM
AWSTemplateFormatVersion 2010-09-09Transform AWSServerless-2016-10-31Description A sample SAM template for deploying Lambda functions
Resources Details about the myDateTimeFunction Lambda function myDateTimeFunction Type AWSServerlessFunction Properties Handler myDateTimeFunctionhandler Runtime nodejs10x Instructs your myDateTimeFunction is published to an alias named live AutoPublishAlias live Grants this function permission to call lambdaInvokeFunction Policies - Version 2012-10-17 Statement
Versioacuten de API 2014-10-06157
AWS CodeDeploy Guiacutea del usuarioPaso 1 Configurar la infraestructura
- Effect Allow Action - lambdaInvokeFunction Resource DeploymentPreference Specifies the deployment configuration Type Linear10PercentEvery1Minute Specifies Lambda functions for deployment lifecycle hooks Hooks PreTraffic Ref beforeAllowTraffic PostTraffic Ref afterAllowTraffic Specifies the BeforeAllowTraffic lifecycle hook Lambda function beforeAllowTraffic Type AWSServerlessFunction Properties Handler beforeAllowTraffichandler Policies - Version 2012-10-17 Grants this function permission to call codedeployPutLifecycleEventHookExecutionStatus Statement - Effect Allow Action - codedeployPutLifecycleEventHookExecutionStatus Resource Sub arnawscodedeploy$AWSRegion$AWSAccountIddeploymentgroup$ServerlessDeploymentApplication - Version 2012-10-17 Grants this function permission to call lambdaInvokeFunction Statement - Effect Allow Action - lambdaInvokeFunction Resource Ref myDateTimeFunctionVersion Runtime nodejs10x Specifies the name of the Lambda hook function FunctionName CodeDeployHook_beforeAllowTraffic DeploymentPreference Enabled false Timeout 5 Environment Variables NewVersion Ref myDateTimeFunctionVersion Specifies the AfterAllowTraffic lifecycle hook Lambda function afterAllowTraffic Type AWSServerlessFunction Properties Handler afterAllowTraffichandler Policies - Version 2012-10-17 Statement Grants this function permission to call codedeployPutLifecycleEventHookExecutionStatus - Effect Allow Action - codedeployPutLifecycleEventHookExecutionStatus Resource Sub arnawscodedeploy$AWSRegion$AWSAccountIddeploymentgroup$ServerlessDeploymentApplication - Version 2012-10-17 Statement Grants this function permission to call lambdaInvokeFunction - Effect Allow Action
Versioacuten de API 2014-10-06158
AWS CodeDeploy Guiacutea del usuarioPaso 1 Configurar la infraestructura
- lambdaInvokeFunction Resource Ref myDateTimeFunctionVersion Runtime nodejs10x Specifies the name of the Lambda hook function FunctionName CodeDeployHook_afterAllowTraffic DeploymentPreference Enabled false Timeout 5 Environment Variables NewVersion Ref myDateTimeFunctionVersion
Esta plantilla especifica lo siguiente Para obtener maacutes informacioacuten consulteAWS SAMconceptos deplantilla
Una funcioacuten Lambda llamadamyDateTimeFunction
Cuando se publica esta funcioacuten Lambda elAutoPublishAliasliacutenea de la plantilla la vincula a unalias denominadolive Maacutes adelante en este tutorial una actualizacioacuten de esta funcioacuten desencadenauna implementacioacuten de AWS CodeDeploy que desviacutea gradualmente el traacutefico de produccioacuten de laversioacuten original a la versioacuten actualizada
Dos funciones de validacioacuten de implementacioacuten Lambda
Las siguientes funciones Lambda se ejecutan durante los enlaces de ciclo de vida de CodeDeployLas funciones contienen coacutedigo que valida la implementacioacuten de myDateTimeFunctionactualizado El resultado de las pruebas de validacioacuten se transfiere a CodeDeploy utilizandosuPutLifecycleEventHookExecutionStatusMeacutetodo de API Si la prueba de validacioacuten falla seproduce un error en la implementacioacuten y se revisabull CodeDeployHook_beforeAllowTraffic se ejecuta durante el enlace deBeforeAllowTraffic
bull CodeDeployHook_afterAllowTraffic se ejecuta durante el enlace de AfterAllowTraffic
El nombre de ambas funciones comienza por CodeDeployHook_LaCodeDeployRoleForLambdapermite llamadas al Lambdainvokemeacutetodo de soloen funciones Lambda con nombres que comienzan con este prefijo Para obtener maacutesinformacioacuten consulteSeccioacuten hooks de AppSpec para unAWSImplementacioacuten deLambda (p 426)yPutLifecycleEventHookExecutionStatusen laReferencia de la API CodeDeploy
Deteccioacuten automaacutetica de una funcioacuten de Lambda actualizada
El teacutermino AutoPublishAlias indica al marco de trabajo que detecte cuaacutendo cambia la funcioacuten demyDateTimeFunction y a continuacioacuten la implementa con el alias live
Una configuracioacuten de implementacioacuten
La configuracioacuten de implementacioacuten determina la velocidad a la que la aplicacioacuten CodeDeploy cambiael traacutefico de la versioacuten original de la funcioacuten de Lambda a la nueva versioacuten Esta plantilla especifica laconfiguracioacuten de implementacioacuten predefinida Linear10PercentEvery1Minute
Note
No puede especificar una configuracioacuten de implementacioacuten personalizada enunAWSPlantilla de SAM Para obtener maacutes informacioacuten consulte Create a DeploymentConfiguration (p 269)
Funciones de enlace de ciclo de vida de implementacioacuten
La seccioacuten Hooks especifica las funciones que se van a ejecutar durante los enlaces deeventos del ciclo de vida PreTraffic especifica la funcioacuten que se ejecuta durante el enlaceBeforeAllowTraffic PostTraffic especifica la funcioacuten que se ejecuta durante el enlaceAfterAllowTraffic
Versioacuten de API 2014-10-06159
AWS CodeDeploy Guiacutea del usuarioPaso 1 Configurar la infraestructura
Permisos para que Lambda invoque otra funcioacuten Lambda
El especificadolambdaInvokeFunctionel permiso concede al rol utilizado porelAWSPermiso de aplicacioacuten SAM para invocar una funcioacuten Lambda Esto es obligatorio cuandolaCodeDeployHook_beforeAllowTrafficyCodeDeployHook_afterAllowTrafficinvocan lafuncioacuten Lambda implementada durante las pruebas de validacioacuten
Creacioacuten de un archivo para la funcioacuten de LambdaCree el archivo para la funcioacuten que actualizaraacute e implementaraacute maacutes adelante en este tutorial
Note
Una funcioacuten Lambda puede utilizar cualquier tiempo de ejecucioacuten admitido porAWS Lambda Paraobtener maacutes informacioacuten consulte Tiempos de ejecucioacuten de AWS Lambda
Para crear la funcioacuten de Lambda
1 Cree un archivo de texto y guaacuterdelo como myDateTimeFunctionjs en el directorio SAM-Tutorial
2 Copie el siguiente coacutedigo Nodejs en myDateTimeFunctionjs
use strict exportshandler = function(event context callback) if (eventbody) event = JSONparse(eventbody) var sc Status code var result = Response payload switch(eventoption) case date switch(eventperiod) case yesterday result = setDateResult(yesterday) sc = 200 break case today result = setDateResult() sc = 200 break case tomorrow result = setDateResult(tomorrow) sc = 200 break default result = error Must specify yesterday today or tomorrow sc = 400 break break Later in this tutorial you update this function by uncommenting this section The framework created by AWS SAM detects the update and triggers a deployment by CodeDeploy The deployment shifts production traffic to the updated version of this function
Versioacuten de API 2014-10-06160
AWS CodeDeploy Guiacutea del usuarioPaso 1 Configurar la infraestructura
case time var d = new Date() var h = dgetHours() var mi = dgetMinutes() var s = dgetSeconds() result = hour h minute mi second s sc = 200 break default result = error Must specify date or time sc = 400 break const response = statusCode sc headers Content-type applicationjson body JSONstringify( result ) callback(null response) function setDateResult(option) var d = new Date() Today var mo Month var da Day var y Year switch(option) case yesterday dsetDate(dgetDate() - 1) break case tomorrow dsetDate(dgetDate() + 1) default break mo = dgetMonth() + 1 Months are zero offset (0-11) da = dgetDate() y = dgetFullYear() result = month mo day da year y return result
La funcioacuten Lambda devuelve el diacutea el mes y el antildeo de ayer hoy o mantildeana Maacutes adelante en este tutorialquite el comentario del coacutedigo que actualiza la funcioacuten para devolver informacioacuten sobre el diacutea o la hora que
Versioacuten de API 2014-10-06161
AWS CodeDeploy Guiacutea del usuarioPaso 1 Configurar la infraestructura
especifique (por ejemplo el diacutea el mes y el antildeo o la hora minuto y segundo actuales) El marco de trabajocreado por AWS SAM detecta e implementa la versioacuten actualizada de la funcioacuten
Note
Esta funcioacuten Lambda tambieacuten se utiliza en unAWS Cloud9Hello WorldAWS Cloud9es unentorno de desarrollo integrado basado en la nube Para obtener informacioacuten sobre coacutemo crearejecutar actualizar y depurar esta funcioacuten enAWS Cloud9consulteAWS Lambdatutorial paraAWSCloud9
Cree un archivo para su funcioacuten BeforeAllowTraffic Lambda
Cree el archivo para subeforeAllowTrafficgancho funcioacuten Lambda
1 Cree un archivo de texto y guaacuterdelo como beforeAllowTrafficjs en el directorio SAM-Tutorial
2 Copie el siguiente coacutedigo Nodejs en beforeAllowTrafficjs Esta funcioacuten se ejecuta durante elenlace BeforeAllowTraffic de la implementacioacuten
use strict const AWS = require(aws-sdk) const codedeploy = new AWSCodeDeploy(apiVersion 2014-10-06) var lambda = new AWSLambda() exportshandler = (event context callback) =gt consolelog(Entering PreTraffic Hook) Read the DeploymentId and LifecycleEventHookExecutionId from the event payload var deploymentId = eventDeploymentId var lifecycleEventHookExecutionId = eventLifecycleEventHookExecutionId var functionToTest = processenvNewVersion consolelog(BeforeAllowTraffic hook tests started) consolelog(Testing new function version + functionToTest) Create parameters to pass to the updated Lambda function that include the newly added time option If the function did not update then the time option is invalid and function returns a statusCode of 400 indicating it failed var lambdaParams = FunctionName functionToTest Payload option time InvocationType RequestResponse var lambdaResult = Failed Invoke the updated Lambda function lambdainvoke(lambdaParams function(err data) if (err) an error occurred consolelog(err errstack) lambdaResult = Failed else successful response var result = JSONparse(dataPayload) consolelog(Result + JSONstringify(result)) consolelog(statusCode + resultstatusCode) Check if the status code returned by the updated function is 400 If it is then it failed If is not then it succeeded if (resultstatusCode = 400)
Versioacuten de API 2014-10-06162
AWS CodeDeploy Guiacutea del usuarioPaso 1 Configurar la infraestructura
consolelog(Validation succeeded) lambdaResult = Succeeded else consolelog(Validation failed) Complete the PreTraffic Hook by sending CodeDeploy the validation status var params = deploymentId deploymentId lifecycleEventHookExecutionId lifecycleEventHookExecutionId status lambdaResult status can be Succeeded or Failed Pass CodeDeploy the prepared validation test results codedeployputLifecycleEventHookExecutionStatus(params function(err data) if (err) Validation failed consolelog(CodeDeploy Status update failed) consolelog(err errstack) callback(CodeDeploy Status update failed) else Validation succeeded consolelog(CodeDeploy status updated successfully) callback(null CodeDeploy status updated successfully) ) )
Cree un archivo para la funcioacuten AfterAllowTraffic Lambda
Cree el archivo para suafterAllowTrafficgancho funcioacuten Lambda
1 Cree un archivo de texto y guaacuterdelo como afterAllowTrafficjs en el directorio SAM-Tutorial2 Copie el siguiente coacutedigo Nodejs en afterAllowTrafficjs Esta funcioacuten se ejecuta durante el
enlace AfterAllowTraffic de la implementacioacuten
use strict const AWS = require(aws-sdk) const codedeploy = new AWSCodeDeploy(apiVersion 2014-10-06) var lambda = new AWSLambda() exportshandler = (event context callback) =gt consolelog(Entering PostTraffic Hook) Read the DeploymentId and LifecycleEventHookExecutionId from the event payload var deploymentId = eventDeploymentId var lifecycleEventHookExecutionId = eventLifecycleEventHookExecutionId var functionToTest = processenvNewVersion consolelog(AfterAllowTraffic hook tests started) consolelog(Testing new function version + functionToTest) Create parameters to pass to the updated Lambda function that include the original date parameter If the function did not update as expected then the date option might be invalid If the parameter is invalid the function returns a statusCode of 400 indicating it failed
Versioacuten de API 2014-10-06163
AWS CodeDeploy Guiacutea del usuarioPaso 1 Configurar la infraestructura
var lambdaParams = FunctionName functionToTest Payload option date period today InvocationType RequestResponse var lambdaResult = Failed Invoke the updated Lambda function lambdainvoke(lambdaParams function(err data) if (err) an error occurred consolelog(err errstack) lambdaResult = Failed else successful response var result = JSONparse(dataPayload) consolelog(Result + JSONstringify(result)) consolelog(statusCode + resultstatusCode) Check if the status code returned by the updated function is 400 If it is then it failed If is not then it succeeded if (resultstatusCode = 400) consolelog(Validation of time parameter succeeded) lambdaResult = Succeeded else consolelog(Validation failed) Complete the PostTraffic Hook by sending CodeDeploy the validation status var params = deploymentId deploymentId lifecycleEventHookExecutionId lifecycleEventHookExecutionId status lambdaResult status can be Succeeded or Failed Pass CodeDeploy the prepared validation test results codedeployputLifecycleEventHookExecutionStatus(params function(err data) if (err) Validation failed consolelog(CodeDeploy Status update failed) consolelog(err errstack) callback(CodeDeploy Status update failed) else Validation succeeded consolelog(CodeDeploy status updated successfully) callback(null CodeDeploy status updated successfully) ) )
Empaque elAWSAplicacioacuten SAMAhora deberiacutea tener cuatro archivos en su directorio SAM-Tutorial
bull beforeAllowTrafficjs
bull afterAllowTrafficjs
bull myDateTimeFunctionjs
bull templateyml
Versioacuten de API 2014-10-06164
AWS CodeDeploy Guiacutea del usuarioPaso 1 Configurar la infraestructura
Ahora estaacute preparado para utilizar elAWSSAMsam packagepara crear y empaquetar artefactos para lasfunciones Lambda y la aplicacioacuten CodeDeploy Los artefactos se cargan en un bucket de S3 El resultadodel comando es un nuevo archivo llamado packageyml Este archivo lo utiliza elAWSSAMsam deployenel paso siguiente
Note
Para obtener maacutes informacioacuten sobre lasam packagecomando consulteAWS SAMReferencia decomandos de la CLIen laAWS Serverless Application ModelGuiacutea para desarrolladores
En el directorio SAM-Tutorial ejecute el siguiente elemento
sam package --template-file templateyml --output-template-file packageyml --s3-bucket your-S3-bucket
Para el registros3-bucketespecifique el bucket de Amazon S3 que ha creado como requisito previopara este tutorial Laoutput-template-fileespecifica el nombre del nuevo archivo que utilizaelAWSSAMsam deploycomando
Implementar elAWSAplicacioacuten SAMUsarAWSSAMsam deploycomando con elpackageymlpara crear las funciones Lambda y la aplicacioacutenCodeDeploy y el grupo de implementaciones medianteAWS CloudFormation
Note
Para obtener maacutes informacioacuten sobre lasam deploycomando consulteAWS SAMReferencia decomandos de la CLIen laAWS Serverless Application ModelGuiacutea para desarrolladores
En el directorio SAM-Tutorial ejecute el siguiente comando
sam deploy --template-file packageyml --stack-name my-date-time-app --capabilities CAPABILITY_IAM
La--capabilities CAPABILITY_IAMpara autorizar realice el siguiente procedimientoAWSCloudFormationPara crear roles de IAM
(Opcional) inspeccionar y probar su infraestructuraEn este tema se muestra coacutemo ver los componentes de la infraestructura y probar la funcioacuten Lambda
Para ver el resultado de la pila despueacutes de ejecutar sam deploy realice el siguienteprocedimiento
1 Abra la consola de AWS CloudFormation en httpsconsoleawsamazoncomcloudformation2 En el panel de navegacioacuten seleccione Stacks (Pilas) La pila my-date-time-app aparece en la
parte superior3 Elija la pestantildea Events (Eventos) para ver queacute eventos se han completado Puede ver los eventos
mientras la creacioacuten de la pila estaacute en curso Cuando se haya completado la creacioacuten de la pila podraacutever todos los eventos de creacioacuten esta
4 Con la pila seleccionada elija Resources (Recursos) En el navegadorTipo puede ver lasfunciones LambdamyDateTimeFunctionCodeDeployHook_beforeAllowTraffic
Versioacuten de API 2014-10-06165
AWS CodeDeploy Guiacutea del usuarioPaso 1 Configurar la infraestructura
yCodeDeployHook_afterAllowTraffic LaID fiacutesicosde cada una de las funciones Lambdacontiene un enlace para ver las funciones en la consola de Lambda
Note
El nombre delmyDateTimeFunctionLa funcioacuten Lambda va antepuesta al nombre de laAWSCloudFormationpila y tiene un identificador antildeadido por lo que parecemy-date-time-app-myDateTimeFunction-123456ABCDEF
5 Abra la consola de CodeDeploy en httpsconsoleawsamazoncomcodedeploy6 En el panel de navegacioacuten expanda Deploy (Implementar) y despueacutes elija Applications (Aplicaciones)7 Deberiacutea ver una nueva aplicacioacuten CodeDeploy creada porAWS CloudFormationcon un nombre que
empieza pormy-date-time-app-ServerlessDeploymentApplication Elija esta aplicacioacuten8 Deberiacutea ver un grupo de implementaciones con un nombre que comienza por my-date-time-app-
myDateTimeFunctionDeploymentGroup Elija este grupo de implementaciones
En Deployment configuration (Configuracioacuten de implementacioacuten) deberiacutea verCodeDeployDefaultLambdaLinear10PercentEvery1Minute
Para probar la funcioacuten (consola) (opcional) realice el siguiente procedimiento
1 Abra la consola de AWS Lambda en httpsconsoleawsamazoncomlambda2 En el panel de navegacioacuten elija la funcioacuten my-date-time-app-myDateTimeFunction En la
consola su nombre contiene un identificador por lo que tendraacute un aspecto similar a my-date-time-app-myDateTimeFunction-123456ABCDEF
3 Seleccione Test (Probar)4 En Event name (Nombre del evento) escriba un nombre para el evento de prueba5 Escriba lo siguiente para el evento de prueba y a continuacioacuten elija Create (Crear)
option date period today
6 Seleccione Test (Probar) Solo deberiacutea ver el evento de prueba en la lista de eventos de prueba
En Execution result (Resultado de ejecucioacuten) deberiacutea ver succeeded (correcto)7 En Execution result (Resultado de ejecucioacuten) expanda Details (Detalles) para ver los resultados
Deberiacutea ver el mes diacutea y antildeo actuales
Para probar la funcioacuten (opcional) realice el siguiente procedimientoAWS CLI)
1 Localice el ARN de la funcioacuten de Lambda Aparece en la parte superior de la consola Lambda cuandose visualiza la funcioacuten de
2 Ejecute el siguiente comando de Sustituya your-function-arn por el ARN de la funcioacuten
aws lambda invoke --function your-function-arn --cli-binary-format raw-in-base64-out --payload option date period today outtxt
3 Abra outtxt para confirmar que el resultado contiene el mes el diacutea y el antildeo actuales
Versioacuten de API 2014-10-06166
AWS CodeDeploy Guiacutea del usuarioPaso 2 Actualizacioacuten de la funcioacuten Lambda
Paso 2 Actualizacioacuten de la funcioacuten LambdaEn este tema actualizaraacute el archivo myDateTimeFunctionjs En el siguiente paso utilizaraacute el archivopara implementar la funcioacuten actualizada Esto activa CodeDeploy para que lo implemente cambiando eltraacutefico de produccioacuten de la versioacuten actual de la funcioacuten Lambda a la versioacuten actualizada
Para actualizar la funcioacuten Lambda
1 Abrir myDateTimeFunctionjs2 Elimine los dos marcadores de comentario ( y ) y el texto explicativo al principio y al final del
case denominado time en el bloque switch
El coacutedigo sin comentarios le permite transferir un nuevo paraacutemetro time a la funcioacuten Si pasa time ala funcioacuten actualizada devuelve el valor actual hour minute y second
3 Guarde myDateTimeFunctionjs Debe parecerse a lo siguiente
use strict
exportshandler = function(event context callback)
if (eventbody) event = JSONparse(eventbody)
var sc Status code var result = Response payload
switch(eventoption) case date switch(eventperiod) case yesterday result = setDateResult(yesterday) sc = 200 break case today result = setDateResult() sc = 200 break case tomorrow result = setDateResult(tomorrow) sc = 200 break default result = error Must specify yesterday today or tomorrow sc = 400 break break case time var d = new Date() var h = dgetHours() var mi = dgetMinutes() var s = dgetSeconds()
result = hour h minute mi second s sc = 200
Versioacuten de API 2014-10-06167
AWS CodeDeploy Guiacutea del usuarioPaso 3 Implemente la funcioacuten de Lambda actualizada
break
default result = error Must specify date or time sc = 400 break
const response = statusCode sc headers Content-type applicationjson body JSONstringify( result )
callback(null response)
function setDateResult(option)
var d = new Date() Today var mo Month var da Day var y Year
switch(option) case yesterday dsetDate(dgetDate() - 1) break case tomorrow dsetDate(dgetDate() + 1) default break
mo = dgetMonth() + 1 Months are zero offset (0-11) da = dgetDate() y = dgetFullYear()
result = month mo day da year y
return result
Paso 3 Implemente la funcioacuten de Lambda actualizadaEn este paso utilizaraacute el actualizadomyDateTimeFunctionjspara actualizar e iniciar la implementacioacutende la funcioacuten Lambda Puede monitorizar el progreso de la implementacioacuten en CodeDeploy oAWSLambdaconsola de
La liacutenea de AutoPublishAlias live de la plantilla de AWS SAM hace que la infraestructuradetecte actualizaciones en funciones que utilizan el alias live La actualizacioacuten de la funcioacuten activa unaimplementacioacuten de CodeDeploy que desviacutea el traacutefico de produccioacuten de la versioacuten original de la funcioacuten de ala versioacuten actualizada
Versioacuten de API 2014-10-06168
AWS CodeDeploy Guiacutea del usuarioPaso 3 Implemente la funcioacuten de Lambda actualizada
Lasam packageysam deployse utilizan para actualizar y activar la implementacioacuten de la funcioacutenLambda Ha ejecutado estos comandos en Empaque elAWSAplicacioacuten SAM (p 164) y ImplementarelAWSAplicacioacuten SAM (p 165)
Para implementar la funcioacuten Lambda actualizada realice el siguiente procedimiento
1 En el directorio SAM-Tutorial ejecute el siguiente comando
sam package --template-file templateyml --output-template-file packageyml --s3-bucket your-S3-bucket
Esto crea un nuevo conjunto de artefactos que hacen referencia a la funcioacuten de Lambda actualizadaen el bucket de S3
2 En el directorio SAM-Tutorial ejecute el siguiente comando
sam deploy --template-file packageyml --stack-name my-date-time-app --capabilities CAPABILITY_IAM
Dado que el nombre de la pila sigue siendo my-date-time-app AWS CloudFormation reconoceque se trata de una actualizacioacuten de la pila Para ver la pila actualizada devuelva la consola de AWSCloudFormation y en el panel de navegacioacuten elija Stacks (Pilas)
Para ver el traacutefico durante una implementacioacuten (consola CodeDeploy) (opcional) realice elsiguiente procedimiento
1 Abra la consola de CodeDeploy en httpsconsoleawsamazoncomcodedeploy2 En el panel de navegacioacuten expanda Applications (Aplicaciones) y a continuacioacuten elija la aplicacioacuten
my-date-time-app-ServerlessDeploymentApplication3 En Deployment groups (Grupos de implementaciones) elija el grupo de implementaciones de la
aplicacioacuten Su estado debe ser In progress (En curso)4 En Deployment group history (Historial de grupos de implementaciones) elija la implementacioacuten que
estaacute en curso
La barra de progreso Traffic shifting (Desviacuteo de traacutefico) y los porcentajes de los cuadros Original yReplacement (Sustitucioacuten) de esta paacutegina muestran su progreso
Versioacuten de API 2014-10-06169
AWS CodeDeploy Guiacutea del usuarioPaso 3 Implemente la funcioacuten de Lambda actualizada
Para ver el traacutefico durante una implementacioacuten (consola Lambda) (opcional) realice el siguienteprocedimiento
1 Abra la consola de AWS Lambda en httpsconsoleawsamazoncomlambda2 En el panel de navegacioacuten elija la funcioacuten my-date-time-app-myDateTimeFunction En la
consola su nombre contiene un identificador por lo que tendraacute un aspecto similar a my-date-time-app-myDateTimeFunction-123456ABCDEF
3 ElegirAlias dey luego seleccionevivir
Las ponderaciones situadas junto a la versioacuten original de la funcioacuten (versioacuten 1) y la versioacuten actualizadade la funcioacuten (versioacuten 2) muestran la cantidad de traacutefico que se ofrece a cada versioacuten en el momento enque se cargoacute esta paacutegina de la consola de AWS Lambda La paacutegina no actualiza las ponderaciones con elpaso del tiempo Si actualiza la paacutegina una vez al minuto la ponderacioacuten de la versioacuten 1 disminuye en un10 por ciento y la ponderacioacuten de la versioacuten 2 aumenta en un 10 por ciento hasta que la ponderacioacuten de laversioacuten 2 es 100
Versioacuten de API 2014-10-06170
AWS CodeDeploy Guiacutea del usuarioPaso 4 Consulte los resultados de la implementacioacuten
Paso 4 Consulte los resultados de la implementacioacutenEn este paso podraacute ver los resultados de la implementacioacuten Si la implementacioacuten se realizacorrectamente puede confirmar que la funcioacuten de Lambda actualizada recibe traacutefico de produccioacuten Si laimplementacioacuten falla puede utilizar CloudWatch Logs para ver el resultado de las pruebas de validacioacuten enla funcioacuten Lambda que se ejecutan durante los enlaces de ciclo de vida de la implementacioacuten
Temasbull Comprobacioacuten de la funcioacuten de implementada (p 171)bull Ver eventos de enlace en CloudWatch Logs (p 172)
Comprobacioacuten de la funcioacuten de implementadaLasam deployactualiza el comandomy-date-time-app-myDateTimeFunctionFuncioacuten Lambda Laversioacuten de la funcioacuten se actualiza a 2 y se antildeade al alias live
Para ver la actualizacioacuten en la consola de Lambda
1 Abra la consola de AWS Lambda en httpsconsoleawsamazoncomlambda2 En el panel de navegacioacuten elija la funcioacuten my-date-time-app-myDateTimeFunction En la
consola su nombre contiene un identificador por lo que tendraacute un aspecto similar a my-date-time-app-myDateTimeFunction-123456ABCDEF
3 Elija Qualifiers (Cualificadores) y a continuacioacuten Aliases (Alias) Una vez completada laimplementacioacuten (aproximadamente 10 minutos) para ellivealias deberiacuteas verVersioacuten 2
Versioacuten de API 2014-10-06171
AWS CodeDeploy Guiacutea del usuarioPaso 4 Consulte los resultados de la implementacioacuten
4 En Function code (Coacutedigo de funcioacuten) consulte el coacutedigo fuente de la funcioacuten Deben aparecer loscambios
5 Puede utilizar las instrucciones de prueba de Paso 2 Actualizacioacuten de la funcioacuten Lambda (p 167)para probar la funcioacuten actualizada (opcional) Cree un nuevo evento de prueba con la siguiente cargay a continuacioacuten confirme que el resultado contiene la hora el minuto y el segundo actuales
option time
Para utilizar la AWS CLI para probar la funcioacuten actualizada ejecute el siguiente comando y acontinuacioacuten abra outtxt para confirmar que el resultado contiene la hora el minuto y el segundoactuales
aws lambda invoke --function your-function-arn --payload option time outtxt
Note
Si utiliza la AWS CLI para probar la funcioacuten antes de que se complete la implementacioacutenes posible que reciba resultados inesperados Esto se debe a que CodeDeploy desviacuteade forma incremental el 10 por ciento del traacutefico a la versioacuten actualizada cada minutoDurante la implementacioacuten parte del traacutefico sigue apuntando a la versioacuten original por loque aws lambda invoke podriacutea utilizar la versioacuten original Despueacutes de 10 minutos laimplementacioacuten se ha completado y todo el traacutefico apunta a la nueva versioacuten de la funcioacuten
Ver eventos de enlace en CloudWatch LogsDurante elBeforeAllowTraffichook CodeDeploy ejecutasuCodeDeployHook_beforeAllowTrafficFuncioacuten Lambda Durante elAfterAllowTraffichookCodeDeploy ejecuta suCodeDeployHook_afterAllowTrafficFuncioacuten Lambda Cada funcioacutenejecuta una prueba de validacioacuten que invoca la versioacuten actualizada de la funcioacuten mediante el nuevoparaacutemetro time Si la actualizacioacuten de la funcioacuten Lambda se realiza correctamente eltimeno provocaun error y la validacioacuten se realiza correctamente Si la funcioacuten no se ha actualizado el paraacutemetro noreconocido provoca un error y la validacioacuten falla Estas pruebas de validacioacuten son solo para fines dedemostracioacuten Puede escribir sus propias pruebas para validar la implementacioacuten Puede utilizar la consolade CloudWatch Logs para ver las pruebas de validacioacuten
Para ver los eventos de enlace de CodeDeploy
1 Abra la consola de CloudWatch en httpsconsoleawsamazoncomcloudwatch2 En el panel de navegacioacuten elija Logs (Registros)
Versioacuten de API 2014-10-06172
AWS CodeDeploy Guiacutea del usuarioPaso 5 Eliminar recursos
3 En la lista de grupos de registros elija awslambdaCodeDeployHook_beforeAllowTraffic o awslambdaCodeDeployHook_afterAllowTraffic
4 Elija el flujo de registros Debe ver solo uno5 Expanda los eventos para ver sus detalles
Paso 5 Eliminar recursosPara evitar cargos adicionales por los recursos que ha utilizado en este tutorial elimine los recursoscreados por elAWS SAMla plantilla y los registros de CloudWatch creados por las funciones de validacioacutende Lambda
Para eliminar la pila de AWS CloudFormation
1 Inicie sesioacuten en la AWS Management Console y abra la consola de AWS CloudFormation en httpsconsoleawsamazoncomcloudformation
2 En la columna Stacks (Pilas) elija la pila de my-date-time-app y a continuacioacuten elija Delete(Eliminar)
3 Cuando se le solicite elija Delete stack (Eliminar pila) Las funciones Lambda la aplicacioacutenCodeDeploy y los roles de IAM creados porAWS SAMse eliminan
Para eliminar los registros en CloudWatch Logs
1 Abra la consola de CloudWatch en httpsconsoleawsamazoncomcloudwatch2 En el panel de navegacioacuten elija Logs (Registros)
Versioacuten de API 2014-10-06173
AWS CodeDeploy Guiacutea del usuarioPaso 5 Eliminar recursos
3 En la lista de grupos de registros elija el botoacuten situado junto a awslambdaCodeDeployHook_beforeAllowTraffic
4 En Actions (Acciones) elija Delete log group (Eliminar grupo de registros) y a continuacioacuten YesDelete (Siacute eliminar)
5 En la lista de grupos de registros elija el botoacuten situado junto a awslambdaCodeDeployHook_afterAllowTraffic
6 En Actions (Acciones) elija Delete log group (Eliminar grupo de registros) y a continuacioacuten YesDelete (Siacute eliminar)
Versioacuten de API 2014-10-06174
AWS CodeDeploy Guiacutea del usuarioSistemas operativos compatibles
con el agente de CodeDeploy
Trabajar con el agente deCodeDeploy
El agente de CodeDeploy es un paquete de software que una vez instalado y configurado en unainstancia permite utilizar dicha instancia en implementaciones de CodeDeploy
Important
La versioacuten miacutenima admitida del agente de CodeDeploy es la 110 El uso de un agente deCodeDeploy anterior podriacutea producir un error en las implementacionesNote
El agente de CodeDeploy solo es necesario si se realiza la implementacioacuten en una plataforma decomputacioacuten EC2On-Premises El agente no es necesario para las implementaciones que utilizanAmazon ECS oAWSPlataforma informaacutetica de Lambda
Un archivo de configuracioacuten se coloca en la instancia cuando se instala el agente Este archivo se utilizapara especificar coacutemo funciona el agente Este archivo de configuracioacuten especifica las rutas de directorioy otros ajustes que AWS CodeDeploy usa cuando interactuacutea con la instancia Puede cambiar algunasde las opciones de configuracioacuten en el archivo Para obtener informacioacuten sobre coacutemo trabajar con elarchivo de configuracioacuten del agente de CodeDeploy consulteReferencia de configuracioacuten del agenteCodeDeploy (p 441)
Para obtener maacutes informacioacuten sobre coacutemo usar el agente de CodeDeploy (por ejemplo los pasospara instalar actualizar y verificar versiones) consulteAdministracioacuten de operaciones del agente deCodeDeploy (p 186)
Temasbull Sistemas operativos compatibles con el agente de CodeDeploy (p 175)bull Protocolo de comunicacioacuten y puerto para el agente de CodeDeploy (p 176)bull Historial de versiones del agente de CodeDeploy (p 176)bull Revisioacuten de aplicaciones y limpieza de archivos de registro (p 183)bull Archivos instalados por el agente de CodeDeploy (p 183)bull Administracioacuten de operaciones del agente de CodeDeploy (p 186)
Sistemas operativos compatibles con el agente deCodeDeploy
Sistemas operativos AMI de Amazon EC2 compatiblesEl agente de CodeDeploy se ha probado en los siguientes sistemas operativos de AMI de Amazon EC2
bull Amazon Linux 201803x 201703x 201609x 201603x y 201409xbull Amazon Linux 2 (ARM x86)bull Ubuntu Server 2010 2004 LTS 1804 LTS 1604 LTS y 1404 LTSbull Microsoft Windows Server 2019 2016 2012 R2 y 2008 R2bull Red Hat Enterprise Linux (RHEL) 7x
Versioacuten de API 2014-10-06175
AWS CodeDeploy Guiacutea del usuarioSistemas operativos locales compatibles
El agente de CodeDeploy estaacute disponible como coacutedigo abierto para que pueda adaptarlo a susnecesidades Se puede utilizar con otros sistemas operativos de AMI de Amazon EC2 Para obtener maacutesinformacioacuten consulte laAgente de CodeDeployrepositorio en GitHub
Sistemas operativos locales compatiblesEl agente de CodeDeploy se ha probado en los siguientes sistemas operativos on-premises
bull Ubuntu Server 2010 2004 LTS 1804 LTS 1604 LTS y 1404 LTSbull Microsoft Windows Server 2019 2016 2012 R2 y 2008 R2bull Red Hat Enterprise Linux (RHEL) 7x
El agente de CodeDeploy estaacute disponible como coacutedigo abierto para que pueda adaptarlo a susnecesidades Se puede utilizar con otros sistemas operativos de instancias on-premises Para obtener maacutesinformacioacuten consulte laAgente de CodeDeployrepositorio en GitHub
Protocolo de comunicacioacuten y puerto para el agentede CodeDeploy
El agente de CodeDeploy se comunica con el exterior a traveacutes de HTTPS sobre el puerto 443
Cuando el agente de CodeDeploy se ejecuta en una instancia de EC2 utilizaraacute elMetadatos deEC2endpoint para recuperar informacioacuten relacionada con las instancias Obtenga maacutes informacioacuten sobre lalimitacioacuten y la concesioacuten de acceso al servicio de metadatos de instancia
Historial de versiones del agente de CodeDeploySus instancias se deben ejecutar en una versioacuten compatible del agente de CodeDeploy La versioacuten maacutesantigua compatible es la 110 Si ejecuta una versioacuten anterior las implementaciones en las instanciaspodriacutean producir un error
En la siguiente tabla se muestran todas las versiones del agente de CodeDeploy y las caracteriacutesticas ymejoras incluidas con cada versioacuten
Versioacuten Fecha delanzamiento de lanueva versioacuten
Detalles
132 6 de mayo de 2021 Important
CodeDeploy agent 132direccionesCVE-2018-1000201que afecta a los hostsde Windows que ejecutan el agente El CVE cita ruby-ffi que es una dependencia del agente de CodeDeploySi su agente se instaloacute con Amazon EC2 SystemsManager (SSM) y estaacute configurado para actualizarseautomaacuteticamente no se requiere ninguna accioacuten Delo contrario se requiere una accioacuten para actualizarmanualmente el agente Para actualizar el agente sigalas instrucciones que se describen enActualizar el agentede CodeDeploy en Windows Server
Versioacuten de API 2014-10-06176
AWS CodeDeploy Guiacutea del usuarioHistorial de versiones del agente de CodeDeploy
Versioacuten Fecha delanzamiento de lanueva versioacuten
Detalles
Fixed Problema al instalar el agente CodeDeploy en Ubuntu 2004y versiones posteriores
Fixed Problema intermitente que se produjo al extraer archivoscomprimidos porque las rutas relativas no se manejabancorrectamente
Se ha antildeadido Compatibilidad conAWS PrivateLinky los puntosde enlace de la VPCpara instancias de Windows
Se ha antildeadido Support Ubuntu 2010
Se ha antildeadido Mejoras en los archivos de AppSpec como sedescribe a continuacioacuten
bull Ahora puede especificar un nombre de archivo personalizadopara el archivo AppSpec al crear una implementacioacutenlocal Para obtener maacutes informacioacuten consulte Crear unaimplementacioacuten local (p 354)
bull El archivo de AppSpec ahora puede tener unyamlextensioacuten dearchivo
bull Ahora puede sobrescribir los archivos desplegados utilizandoun nuevo opcionalfile_exists_behaviorconfiguracioacuten enel archivo AppSpec Para obtener maacutes informacioacuten consulteSeccioacuten files de AppSpec (solo para implementaciones EC2On-Premises) (p 411)
Actualizado CodeDeploy utiliza ahora elAWSSDK for Ruby 30
131 22 de diciembre de2020
Fixed 130 que impidioacute que se iniciaran instancias locales
130 10 de noviembre de2020
Important
Esta versioacuten estaacute obsoleta
Fixed Se ha eliminado un certificado caducado que ya no seutilizoacute
Fixed Se ha eliminado el mensaje de solicitud del script dedesinstalacioacuten del agente utilizado porAWS Systems Manager loque facilita la degradacioacuten de un host o flota a una versioacuten anteriordel agente
Versioacuten de API 2014-10-06177
AWS CodeDeploy Guiacutea del usuarioHistorial de versiones del agente de CodeDeploy
Versioacuten Fecha delanzamiento de lanueva versioacuten
Detalles
121 23 de septiembre de2020
de modificacioacuten ActualizadoAWS SDK for Rubydependencia dev2 a v3
Se ha antildeadido Support para IMDSv2 Incluye un respaldosilencioso a IMDSv1 si las solicitudes http de IMDSv2 fallan
de modificacioacuten Se han actualizado las dependencias de Rake yRubyzip para los parches de seguridad
Fixed Aseguacuterese de que un archivo PID vaciacuteo devuelva el estadodeNo CodeDeploy Agent Runningy limpie el archivo PID aliniciar el agente
112 4 de agosto de 2020 Se ha antildeadido Support Ubuntu Server 1910 y 2004
Nota La versioacuten 1910 llegoacute a su fecha de fin de vida uacutetil y ya noes compatible con Ubuntu ni CodeDeploy
Se ha antildeadido Mejoras en la eficiencia de la memoria para Linuxy Ubuntu para liberar la memoria reservada maacutes oportunamente
Se ha antildeadido Compatibilidad con la laquolimpieza silenciosaraquo deWindows Server que provocaba que el agente no respondiera enalgunos casos
Se ha antildeadido Ignorar los directorios no vaciacuteos durante lalimpieza para evitar errores en la implementacioacuten
Se ha antildeadido Compatibilidad conAWSZona local en Los Aacutengeles(LA)
Se ha antildeadido Extraer AZ de metadatos de instancia paraproporcionar compatibilidad paraAWSLocal Zones
Se ha antildeadido Los usuarios ahora pueden proporcionar suarchivo en subdirectorios y no estaacuten obligados a almacenarlo en eldirectorio raiacutez
Se ha antildeadido Se ha detectado un problema con Rubyzip quepodriacutea provocar fugas de memoria Se ha actualizado el comandounzip para intentar utilizar primero una utilidad de descompresioacuteninstalada en el sistema antes de utilizar Rubyzip
Se ha antildeadidoenable_auth_policycomo configuracioacuten deagente
de modificacioacuten Las advertencias de descompresioacuten ahora seignoran para que las implementaciones continuacuteen
Versioacuten de API 2014-10-06178
AWS CodeDeploy Guiacutea del usuarioHistorial de versiones del agente de CodeDeploy
Versioacuten Fecha delanzamiento de lanueva versioacuten
Detalles
110 30 de junio de 2020 de modificacioacuten El control de versiones del agente deCodeDeploy sigue ahora la convencioacuten de control de versionesestaacutendar de Ruby
Se ha antildeadido Nuevo paraacutemetro del comando de instalacioacuten yactualizacioacuten para permitir la instalacioacuten de una versioacuten especiacuteficadel agente desde la liacutenea de comandos
Eliminaciones Se ha eliminado el actualizador automaacutetico delagente de CodeDeploy para Linux y Ubuntu Para configurarlas actualizaciones automaacuteticas del agente de CodeDeployconsulteInstale el agente de CodeDeploy medianteAWS SystemsManager
1011597 15 de noviembre de2018
Important
La versioacuten miacutenima admitida del agente de CodeDeployes la 110 El uso de un agente de CodeDeploy anteriorpodriacutea producir un error en las implementaciones
Mejora CodeDeploy admite Ubuntu 1804
Mejora CodeDeploy admite Ruby 25
Mejora CodeDeploy admite puntos de enlace de FIPS Paraobtener maacutes informacioacuten sobre los puntos de enlace de FIPSconsulte Informacioacuten general sobre FIPS 140-2 Para obtenerinformacioacuten sobre los puntos de enlace que se pueden utilizar conCodeBuild consulteRegiones y puntos de enlace de CodeDeploy
1011518 12 de junio de 2018 Mejora Se ha corregido un problema que provocada un error alcerrar el agente de CodeDeploy mientras aceptaba solicitudes desondeo
Mejora Se antildeadioacute una caracteriacutestica de seguimiento deimplementacioacuten que evita que el agente de CodeDeploy se cierrecuando una implementacioacuten estaacute en curso
Mejora Se mejoroacute el desempentildeo al eliminar archivos
1011458 6 de marzo de 2018 Nota esta versioacuten ya no se admite Si utiliza esta versioacuten lasimplementaciones podriacutea producir un error
Mejora Se han mejorado las validaciones certificado para admitirmaacutes autoridades de confianza
Mejora Se corrigioacute un problema que provocaba que lainterfaz de comandos (CLI) local devolviera un error duranteuna implementacioacuten que incluiacutea un evento de ciclo de vidaBeforeInstall
Mejora Se ha corregido un problema que podriacutea provocar el errorde una implementacioacuten activa cuando se actualiza el agente deCodeDeploy
Versioacuten de API 2014-10-06179
AWS CodeDeploy Guiacutea del usuarioHistorial de versiones del agente de CodeDeploy
Versioacuten Fecha delanzamiento de lanueva versioacuten
Detalles
1011352 16 de noviembre de2017
Nota esta versioacuten ya no se admite Si utiliza esta versioacuten lasimplementaciones podriacutea producir un error
Caracteriacutestica Se ha incluido una nueva funcioacuten para probar ydepurar una implementacioacuten de EC2local en una instancia oequipo local en el que esteacute instalado el agente de CodeDeploy
1011106 16 de mayo de 2017 Nota esta versioacuten ya no se admite Si utiliza esta versioacuten lasimplementaciones podriacutea producir un error
Caracteriacutestica Se ha incluido nueva compatibilidad para eltratamiento de contenido en una ubicacioacuten de destino que noformaba parte de la revisioacuten de la aplicacioacuten de la implementacioacutencorrecta maacutes reciente Las opciones de implementacioacuten parael contenido existente incluyen ahora conservar el contenidosobrescribir el contenido o hacer fracasar la implementacioacuten
Mejora El agente de CodeDeploy ahora es compatible con laversioacuten 292 delAWS SDK for Ruby(aws-sdk-core 292)
1011095 29 de marzo de 2017 Nota esta versioacuten ya no se admite Si utiliza esta versioacuten lasimplementaciones podriacutea producir un error
Mejora Se ha introducido compatibilidad para el agente deCodeDeploy en la regioacuten China (Pekiacuten)
Mejora Se puede ejecutar Puppet en instancias de WindowsServer cuando las invoca un enlace de evento de ciclo de vida
Mejora Se ha mejorado el tratamiento deuntaroperaciones
1011067 6 de enero de 2017 Nota esta versioacuten ya no se admite Si utiliza esta versioacuten lasimplementaciones podriacutea producir un error
Mejora Se han revisado muchos mensajes de error para incluirmaacutes causas especiacuteficas para los errores de implementacioacuten
Mejora Se ha resuelto un problema que impediacutea al agente deCodeDeploy identificar la revisioacuten de la aplicacioacuten correcta que sedebe implementar durante algunas implementaciones
Mejora Se ha revertido el uso depushdypopdantes y despueacutesdeluntar
1011045 21 de noviembre de2016
Nota esta versioacuten ya no se admite Si utiliza esta versioacuten lasimplementaciones podriacutea producir un error
Mejora El agente de CodeDeploy ahora es compatible con laversioacuten 2611 delAWS SDK for Ruby(aws-sdk-core 2611)
Versioacuten de API 2014-10-06180
AWS CodeDeploy Guiacutea del usuarioHistorial de versiones del agente de CodeDeploy
Versioacuten Fecha delanzamiento de lanueva versioacuten
Detalles
1011037 19 de octubre de2016
Nota esta versioacuten ya no se admite Si utiliza esta versioacuten lasimplementaciones podriacutea producir un error
El agente de CodeDeploy para las instancias de Amazon LinuxRHEL y Ubuntu Server se ha actualizado con el siguiente cambioPara las instancias de Windows Server la uacuteltima versioacuten siguesiendo 101998
Mejora El agente puede determinar ahora queacute versioacuten deRuby estaacute instalada en una instancia para que pueda invocarelcodedeploy-agentscript utilizando esa versioacuten
10110111 17 de agosto de2016
Nota esta versioacuten ya no se admite Si utiliza esta versioacuten lasimplementaciones podriacutea producir un error
Mejora Se han eliminado los cambios introducidos por la versioacuten1011011 debido a problemas de compatibilidad con el shellEsta versioacuten del agente es funcionalmente equivalente a la versioacuten101998 publicada el 11 de julio de 2016
1011011 15 de agosto de2016
Nota esta versioacuten ya no se admite Si utiliza esta versioacuten lasimplementaciones podriacutea producir un error
El agente de CodeDeploy para las instancias de Amazon LinuxRHEL y Ubuntu Server se ha actualizado con los siguientescambios Para las instancias de Windows Server la uacuteltima versioacutensigue siendo 101998
Caracteriacutestica Se ha antildeadido compatibilidad para invocar elagente de CodeDeploy mediante el shell bash en sistemasoperativos en los que se usa el sistema systemd initMejora Admite compatibilidad para todas las versiones de Ruby2x en el agente de CodeDeploy y en el actualizador del agentede CodeDeploy Los agentes de CodeDeploy actualizados ya nodependen solo de Ruby 20 (Ruby 20 sigue siendo necesariopara las versiones deb y rpm del instalador del agente deCodeDeploy)
101998 11 de julio de 2016 Nota esta versioacuten ya no se admite Si utiliza esta versioacuten lasimplementaciones podriacutea producir un error
Mejora Se ha corregido la compatibilidad para ejecutar elagente de CodeDeploy con perfiles de usuario distintosdenodo raiacutez La variable denominada USER se ha sustituidopor CODEDEPLOY_USER para evitar conflictos con variables delentorno
Versioacuten de API 2014-10-06181
AWS CodeDeploy Guiacutea del usuarioHistorial de versiones del agente de CodeDeploy
Versioacuten Fecha delanzamiento de lanueva versioacuten
Detalles
101966 16 de junio de 2016 Nota esta versioacuten ya no se admite Si utiliza esta versioacuten lasimplementaciones podriacutea producir un error
Caracteriacutestica Se ha introducido compatibilidad para ejecutar elagente de CodeDeploy con perfiles de usuario distintos denodoraiacutez
Mejora Se ha corregido la compatibilidad para especificar elnuacutemero de revisiones de aplicacioacuten que desea que el agente deCodeDeploy archive para un grupo de implementaciones
Mejora El agente de CodeDeploy ahora es compatible con laversioacuten 23 delAWS SDK for Ruby(aws-sdk-core 23)
Mejora Se han corregido los problemas con la codificacioacuten UTF-8durante las implementaciones
Mejora Se ha mejorado la precisioacuten al identificar nombres deproceso
101950 24 de marzo de 2016 Nota esta versioacuten ya no se admite Si utiliza esta versioacuten lasimplementaciones podriacutea producir un error
Caracteriacutestica Se ha antildeadido compatibilidad con el proxy deinstalacioacuten
Mejora Se ha actualizado el script de instalacioacuten para que nodescargue el agente de CodeDeploy si la uacuteltima versioacuten ya estaacuteinstalada
101934 11 de febrero de2016
Nota esta versioacuten ya no se admite Si utiliza esta versioacuten lasimplementaciones podriacutea producir un error
Caracteriacutestica Se ha antildeadido compatibilidad para especificar elnuacutemero de revisiones de aplicacioacuten que desea que el agente deCodeDeploy archive para un grupo de implementaciones
101880 11 de enero de 2016 Nota Esta versioacuten ya no se admite y podriacutea producir un error enlas implementaciones
Mejora El agente de CodeDeploy ahora es compatible con laversioacuten 22 delAWS SDK for Ruby(aws-sdk-core 22) La versioacuten212 sigue siendo compatible
Versioacuten de API 2014-10-06182
AWS CodeDeploy Guiacutea del usuarioRevisioacuten de aplicaciones y limpieza de archivos de registro
Versioacuten Fecha delanzamiento de lanueva versioacuten
Detalles
101854 17 de noviembre de2015
Nota esta versioacuten ya no se admite Si utiliza esta versioacuten lasimplementaciones podriacutea producir un error
Caracteriacutestica Se ha introducido compatibilidad con el algoritmohash SHA-256
Caracteriacutestica Se presentoacute compatibilidad con el seguimiento deversiones enversionarchivos
Caracteriacutestica El ID del grupo de implementaciones ahora estaacutedisponible mediante el uso de una variable de entorno
Mejora Se ha antildeadido compatibilidad para supervisar los registrosdel agente de CodeDeploy medianteAmazon CloudWatch Logs
Para obtener informacioacuten relacionada consulte los siguientes temas
bull Determinar la versioacuten del agente de CodeDeploy (p 188)bull Instalacioacuten del agente de CodeDeploy (p 189)
Para ver un historial de versiones del agente de CodeDeploy consulte laRelease repository on GitHub
Revisioacuten de aplicaciones y limpieza de archivos deregistro
El agente de CodeDeploy archiva las revisiones y los archivos log en instancias El agente de CodeDeploylimpia estos artefactos para ahorrar espacio en disco
Registros de implementacioacuten de revisiones de Puede utilizar elmax_revisionsen el archivo deconfiguracioacuten del agente para especificar el nuacutemero de revisiones de aplicacioacuten que se deben archivarintroduciendo un nuacutemero entero positivo CodeDeploy archiva tambieacuten los archivos log de esas revisionesEl resto se elimina a excepcioacuten del archivo log de la uacuteltima implementacioacuten correcta Este archivo logse conserva siempre aunque el nuacutemero de implementaciones que han producido un error sea superioral nuacutemero de revisiones conservadas Si no se especifica ninguacuten valor CodeDeploy conserva las cincorevisiones maacutes recientes ademaacutes de la revisioacuten implementada en la actualidad
Registros CodeDeploy Para las instancias de Amazon Linux Ubuntu Server y RHEL el agente deCodeDeploy rota los archivos log en elvarlogawscodedeploy-agentfolder El archivo log rota alas 000000 (hora de la instancia) cada diacutea Los archivos log se eliminan al cabo de siete diacuteas El patroacutende nomenclatura para los archivos log movidos es codedeploy-agentYYYYMMDDlog
Archivos instalados por el agente de CodeDeployEl agente de CodeDeploy almacena las revisiones el historial de implementacioacuten y los scripts deimplementacioacuten en su directorio raiacutez en una instancia El nombre predeterminado y la ubicacioacuten de estedirectorio es
Versioacuten de API 2014-10-06183
AWS CodeDeploy Guiacutea del usuarioArchivos instalados por el agente de CodeDeploy
optcodedeploy-agentdeployment-rootpara instancias de Amazon Linux Ubuntu Server yRHEL
CProgramDataAmazonCodeDeploypara instancias de Windows Server
Puede utilizar elroot_diren el archivo de configuracioacuten del agente de CodeDeploy para configurar el nombrey la ubicacioacuten del directorio Para obtener maacutes informacioacuten consulte Referencia de configuracioacuten delagente CodeDeploy (p 441)
A continuacioacuten se muestra un ejemplo del archivo y de la estructura de directorios bajo el directorio raiacutezLa estructura supone que hay un nuacutemero N de grupos de implementacioacuten y cada grupo de implementacioacutencontiene un nuacutemero N de implementaciones
|--deployment-root|-- deployment group 1 ID | |-- deployment 1 ID | | |-- Contents and logs of the deployments revision| |-- deployment 2 ID| | |-- Contents and logs of the deployments revision| |-- deployment N ID| | |-- Contents and logs of the deployments revision|-- deployment group 2 ID| |-- deployment 1 ID| | |-- bundletar| | |-- deployment-archive| | | | -- contents of the deployments revision| | |-- logs| | | | -- scriptslog | |-- deployment 2 ID| | |-- bundletar| | |-- deployment-archive| | | | -- contents of the deployments revision| | |-- logs| | | | -- scriptslog | |-- deployment N ID| | |-- bundletar| | |-- deployment-archive| | | | -- contents of the deployments revision| | |-- logs| | | | -- scriptslog |-- deployment group N ID| |-- deployment 1 ID| | |-- Contents and logs of the deployments revision| |-- deployment 2 ID| | |-- Contents and logs of the deployments revision| |-- deployment N ID| | |-- Contents and logs of the deployments revision|-- deployment-instructions| |-- [deployment group 1 ID]_cleanup| |-- [deployment group 2 ID]_cleanup| |-- [deployment group N ID]_cleanup| |-- [deployment group 1 ID]_installjson| |-- [deployment group 2 ID]_installjson| |-- [deployment group N ID]_installjson| |-- [deployment group 1 ID]_last_successful_install| |-- [deployment group 2 ID]_last_successful_install| |-- [deployment group N ID]_last_successful_install| |-- [deployment group 1 ID]_most_recent_install| |-- [deployment group 2 ID]_most_recent_install| |-- [deployment group N ID]_most_recent_install|-- deployment-logs| |-- codedeploy-agent-deploymentslog
Versioacuten de API 2014-10-06184
AWS CodeDeploy Guiacutea del usuarioArchivos instalados por el agente de CodeDeploy
bull Las carpetas Deployment Group ID (ID de grupo de implementaciones) representan cada uno desus grupos de implementaciones El nombre de un directorio de grupo de implementaciones es suID (por ejemplo acde1916-9099-7caf-fd21-012345abcdef) Cada directorio de grupo deimplementaciones contiene un subdirectorio para cada implementacioacuten que se ha intentado en dichogrupo de implementaciones
Puede utilizar elbatch-get-Deploymentspara buscar un ID de grupo de implementacionesbull Las carpetas Deployment ID (ID de implementacioacuten) representan cada implementacioacuten en un grupo de
implementaciones El nombre de cada directorio de implementacioacuten es su ID Cada carpeta contienebull bundletar un archivo comprimido con el contenido de la revisioacuten de la implementacioacuten Utilice una
utilidad de descompresioacuten zip si desea ver la revisioacutenbull deployment-archive un directorio que contiene el contenido de la revisioacuten de la implementacioacutenbull logs un directorio que contiene un archivo scriptslog Este archivo indica el resultado de todos
los scripts especificados en el archivo AppSpec de la implementacioacuten
Si desea buscar la carpeta para una implementacioacuten pero no conoce su ID de implementacioacuten o IDde grupo de implementaciones puede utilizar la consola de AWS CodeDeploy o la AWS CLI parabuscarlas Para obtener maacutes informacioacuten consulte Ver detalles de implementacioacuten de CodeDeploy (p 340)
El nuacutemero maacuteximo predeterminado de las implementaciones que se pueden archivar en un grupo deimplementaciones es de cinco Cuando se alcanza ese nuacutemero se archivan las implementacionesfuturas y se elimina el archivo maacutes antiguo Puede utilizar elmax_revisionsen el archivo de configuracioacutendel agente de CodeDeploy para cambiar el valor predeterminado Para obtener maacutes informacioacutenconsulte Referencia de configuracioacuten del agente CodeDeploy (p 441)
Note
Si desea recuperar el espacio en disco duro utilizado por las implementaciones archivadasactualice el valor max_revisions a un nuacutemero bajo como por ejemplo 1 o 2 La siguienteimplementacioacuten elimina las implementaciones archivadas de modo que el nuacutemero sea igual alespecificado
bull deployment-instructions contiene cuatro archivos de texto para cada grupo de implementacionesbull [ID grupo de implementaciones]-cleanup un archivo de texto con una versioacuten deshacer de cada
comando que se ejecuta durante una implementacioacuten Un nombre de archivo de ejemplo esacde1916-9099-7caf-fd21-012345abcdef-cleanup
bull [ID de grupo de implementaciones]-installjson un archivo JSON creado durante la implementacioacutenmaacutes reciente Contiene los comandos que se ejecutan durante la implementacioacuten Un nombre dearchivo de ejemplo es acde1916-9099-7caf-fd21-012345abcdef-installjson
bull [ID de grupo de implementaciones]_last_successfull_install un archivo de texto que muestrael directorio de archivos de la uacuteltima implementacioacuten correcta Este archivo se crea cuando elagente de CodeDeploy ha copiado todos los archivos en la aplicacioacuten de implementacioacuten a lainstancia Lo utiliza el agente de CodeDeploy durante la siguiente implementacioacuten para determinarqueacuteApplicationStopyBeforeInstallscripts que se ejecutaraacuten Un nombre de archivo de ejemploes acde1916-9099-7caf-fd21-012345abcdef_last_successfull_install
bull [ID de grupo de implementaciones]_most_recent_install un archivo de texto que muestra elnombre del directorio de archivos de la implementacioacuten maacutes reciente Este archivo se creacuando los archivos de la implementacioacuten se han descargado correctamente El archivo [ID degrupo de implementaciones]_last_successfull_install se crea despueacutes de este archivo cuandolos archivos descargados se copian en su destino final Un nombre de archivo de ejemplo esacde1916-9099-7caf-fd21-012345abcdef_most_recent_install
bull deployment-logs contiene los archivos de registro siguientesbull Los archivos codedeploy-agentaaaammddlog se crean para cada diacutea que hay una implementacioacuten
Cada archivo de registro contiene informacioacuten acerca de las implementaciones del diacutea Estos archivosde registro podriacutean ser uacutetiles para depurar problemas como un problema de permisos El archivo deVersioacuten de API 2014-10-06
185
AWS CodeDeploy Guiacutea del usuarioAdministracioacuten de operaciones del agente de CodeDeploy
registro se denomina inicialmente codedeploy-agentlog Al diacutea siguiente se inserta la fechade sus implementaciones en el nombre del archivo Por ejemplo si hoy es 3 de enero de 2018puede ver informacioacuten acerca de todas las implementaciones de hoy en codedeploy-agentlogMantildeana 4 de enero de 2018 se cambia el nombre del archivo de registro a codedeploy-agent20180103log
bull codedeploy-agent-deploymentslog compila el contenido de los archivos scriptslog paracada implementacioacuten Los archivos scriptslog se encuentran en la subcarpeta logs debajode cada carpeta Deployment ID Las entradas de este archivo van precedidas de un ID deimplementacioacuten Por ejemplo [d-ABCDEF123]LifecycleEvent - BeforeInstall podriacuteahaberse escrito durante una implementacioacuten con un ID de d-ABCDEF123 Cuandocodedeploy-agent-deploymentslogalcanza el tamantildeo maacuteximo el agente de CodeDeploy sigue escribiendoen eacutel mientras elimina el contenido antiguo
Administracioacuten de operaciones del agente deCodeDeploy
Las instrucciones de esta seccioacuten indican coacutemo instalar desinstalar reinstalar o actualizar el agente deCodeDeploy y coacutemo comprobar que el agente de CodeDeploy se estaacute ejecutando
Important
La versioacuten miacutenima admitida del agente de CodeDeploy es la 110 El uso de un agente deCodeDeploy anterior podriacutea producir un error en las implementaciones
Temasbull Verifique que el agente de CodeDeploy esteacute en ejecucioacuten (p 186)bull Determinar la versioacuten del agente de CodeDeploy (p 188)bull Instalacioacuten del agente de CodeDeploy (p 189)bull Actualizacioacuten del agente de CodeDeploy (p 198)bull Desinstalacioacuten del agente de CodeDeploy (p 203)bull SendCodeDeployRegistros de agentes de aCloudWatch (p 204)
Verifique que el agente de CodeDeploy esteacute enejecucioacutenEsta seccioacuten describe los comandos que pueden ejecutarse cuando se sospecha que el agente deCodeDeploy ha dejado de ejecutarse en una instancia
Temasbull Verifique que el agente de CodeDeploy para Amazon Linux o RHEL se esteacute ejecutando (p 186)bull Verifique que el agente de CodeDeploy para Ubuntu Server se esteacute ejecutando (p 187)bull Verifique que el agente de CodeDeploy para Windows Server se estaacute ejecutando (p 187)
Verifique que el agente de CodeDeploy para Amazon Linux oRHEL se esteacute ejecutandoPara saber si el agente de CodeDeploy estaacute instalado y se estaacute ejecutando inicie sesioacuten en la instancia yejecute el comando siguiente
Versioacuten de API 2014-10-06186
AWS CodeDeploy Guiacutea del usuarioVerifique que el agente de CodeDeploy esteacute en ejecucioacuten
sudo service codedeploy-agent status
Si el comando devuelve un error el agente de CodeDeploy no estaacute instalado Instaacutelelo como se describeen Instale el agente CodeDeploy para Amazon Linux o RHEL (p 191)
Si el agente de CodeDeploy estaacute instalado y se estaacute ejecutando veraacute el mensajeThe AWS CodeDeployagent is running
Si ve el mensaje error No AWS CodeDeploy agent running inicie el servicio y ejecute uno poruno los dos comandos siguientes
sudo service codedeploy-agent start
sudo service codedeploy-agent status
Verifique que el agente de CodeDeploy para Ubuntu Server seesteacute ejecutandoPara saber si el agente de CodeDeploy estaacute instalado y se estaacute ejecutando inicie sesioacuten en la instancia yejecute el comando siguiente
sudo service codedeploy-agent status
Si el comando devuelve un error el agente de CodeDeploy no estaacute instalado Instaacutelelo como se describeen Instale el agente de CodeDeploy para Ubuntu Server (p 192)
Si el agente de CodeDeploy estaacute instalado y se estaacute ejecutando veraacute el mensajeThe AWS CodeDeployagent is running
Si ve el mensaje error No AWS CodeDeploy agent running inicie el servicio y ejecute uno poruno los dos comandos siguientes
sudo service codedeploy-agent start
sudo service codedeploy-agent status
Verifique que el agente de CodeDeploy para Windows Server seestaacute ejecutandoPara saber si el agente de CodeDeploy estaacute instalado y se estaacute ejecutando inicie sesioacuten en la instancia yejecute el comando siguiente
powershellexe -Command Get-Service -Name codedeployagent
Deberiacutea ver un resultado similar a este
Status Name DisplayName------ ---- -----------Running codedeployagent CodeDeploy Host Agent Service
Si el comando devuelve un error el agente de CodeDeploy no estaacute instalado Instaacutelelo como se describeen Instale el agente de CodeDeploy para Windows Server (p 193)
Versioacuten de API 2014-10-06187
AWS CodeDeploy Guiacutea del usuarioDeterminar la versioacuten del agente de CodeDeploy
Si Status muestra algo distinto de Running inicie el servicio con el comando siguiente
powershellexe -Command Start-Service -Name codedeployagent
Puede reiniciar el servicio con el comando siguiente
powershellexe -Command Restart-Service -Name codedeployagent
Puede detener el servicio con el comando siguiente
powershellexe -Command Stop-Service -Name codedeployagent
Determinar la versioacuten del agente de CodeDeployPara determinar la versioacuten del agente de CodeDeploy que se estaacute ejecutando en una instancia puedeproceder de dos maneras
Important
La versioacuten miacutenima admitida del agente de CodeDeploy es la 110 El uso de un agente deCodeDeploy anterior podriacutea producir un error en las implementaciones
La primera posible a partir de la versioacuten 101854 del agente de CodeDeploy consiste en observar elnuacutemero de versioacuten en unversionen la instancia La tabla siguiente muestra la ubicacioacuten y un ejemplo decadena de versioacuten para los distintos sistemas operativos compatibles
Sistema operativo Ubicacioacuten del archivo Ejemplo de cadenaagent_version
Amazon Linux y Red HatEnterprise Linux (RHEL)
optcodedeploy-agentversion
OFFICIAL_101854_rpm
Servidor Ubuntu optcodedeploy-agentversion
OFFICIAL_101854_deb
Windows Server CProgramDataAmazonCodeDeployversion
OFFICIAL_101854_msi
En segundo lugar puede ejecutar un comando en una instancia para determinar la versioacuten del agente deCodeDeploy
Temasbull Determinar la versioacuten en Amazon Linux o RHEL (p 188)bull Determinacioacuten de la versioacuten en Ubuntu Server (p 189)bull Determinar la versioacuten en Windows Server (p 189)
Determinar la versioacuten en Amazon Linux o RHELInicie sesioacuten en la instancia y ejecute el comando siguiente
sudo yum info codedeploy-agent
Versioacuten de API 2014-10-06188
AWS CodeDeploy Guiacutea del usuarioInstalacioacuten del agente de CodeDeploy
Determinacioacuten de la versioacuten en Ubuntu ServerInicie sesioacuten en la instancia y ejecute el comando siguiente
sudo dpkg -s codedeploy-agent
Determinar la versioacuten en Windows ServerInicie sesioacuten en la instancia y ejecute el comando siguiente
sc qdescription codedeployagent
Instalacioacuten del agente de CodeDeployPara utilizar CodeDeploy en las instancias EC2 o los servidores en las instalaciones primero debeinstalarse el agente de CodeDeploy Recomendamos instalar y actualizar el agente de CodeDeployconAWS Systems Manager para obtener maacutes informacioacuten acerca de Systems Manager consulteiquestQueacutees AWS Systems Manager Puede configurar la instalacioacuten y las actualizaciones programadas del agentede CodeDeploy con Systems Manager en la consola al crear los grupos de implementacioacuten
Tambieacuten puede instalar el agente de CodeDeploy directamente desde un bucket de S3 con la liacutenea decomandos
Temasbull Instale el agente de CodeDeploy medianteAWS Systems Manager (p 189)bull Instalacioacuten del agente de CodeDeploy con la liacutenea de comandos (p 190)
Instale el agente de CodeDeploy medianteAWS SystemsManagerPuede utilizar elAWS Management Consoleo elAWS CLIPara instalar el agente de CodeDeploy en susinstancias de Amazon EC2 o en las instalaciones conAWS Systems Manager Puede elegir entre instalaruna versioacuten especiacutefica o instalar siempre la uacuteltima versioacuten del agente Para obtener maacutes informacioacutenacerca de AWS Systems Manager consulte iquestQueacute es AWS Systems Manager
Uso deAWS Systems Manageres el meacutetodo recomendado para instalar y actualizar el agente deCodeDeploy Tambieacuten puede instalar el agente de CodeDeploy desde un bucket de Amazon S3 Paraobtener maacutes informacioacuten acerca del uso del enlace de descarga de Amazon S3 consulte Instalacioacuten delagente de CodeDeploy con la liacutenea de comandos (p 190)
Temasbull Requisitos previos (p 189)bull Instalacioacuten del agente de CodeDeploy (p 190)
Requisitos previosSiga los pasos deIntroduccioacuten a CodeDeploy (p 35)para configurar los permisos de IAM y elAWS CLI
Si instala el agente de CodeDeploy en un servidor en las instalaciones con Systems Managerdebe registrar el servidor local en Amazon EC2 Systems Manager Para obtener maacutes informacioacutenconsulteConfiguracioacuten de Systems Manager en entornos hiacutebridosen laAWS Systems ManagerGuiacutea delusuario de
Versioacuten de API 2014-10-06189
AWS CodeDeploy Guiacutea del usuarioInstalacioacuten del agente de CodeDeploy
Instalacioacuten del agente de CodeDeploy
Antes de utilizar Systems Manager para instalar el agente de CodeDeploy debe asegurarse de que lainstancia esteacute configurada correctamente para Systems Manager
Instalacioacuten o actualizacioacuten del agente de SSM
En una instancia de Amazon EC2 el agente de CodeDeploy requiere que la instancia ejecute la versioacuten232740 o posterior Antes de instalar el agente de CodeDeploy actualice o instale el agente de SSM enla instancia si auacuten no lo ha hecho
Las AMI de Amazon EC2 siguientes vienen con el agente de SSM preinstalado
bull AMI de Windows Server 2008-2012 R2 publicadas en noviembre de 2016 o posteriormentebull Windows Server 2016 y 2019bull Amazon Linux y Amazon Linux 2bull Ubuntu Server 1604 y 1804bull Optimizado para Amazon ECS
Para obtener informacioacuten sobre coacutemo instalar o actualizar el agente de SSM en una instancia conLinux consulteInstalacioacuten y configuracioacuten del agente de SSM en instancias de Linuxen laAWS SystemsManagerGuiacutea del usuario de
Para obtener informacioacuten acerca de la instalacioacuten o actualizacioacuten del agente de SSM en una instancia conWindows Server consulteInstalacioacuten y configuracioacuten del agente SSM en instancias de Windowsen laAWSSystems ManagerGuiacutea del usuario de
(Opcional) Verifique los prerrequisitos de Systems Manager
Antes de utilizar Run Command de Systems Manager para instalar el agente de CodeDeploy verifiqueque las instancias cumplen los requisitos miacutenimos de Systems Manager Para obtener maacutes informacioacutenconsulteConfiguracioacuten deAWS Systems Manageren laAWS Systems ManagerGuiacutea del usuario de
Instalacioacuten del agente de CodeDeploy
Con SSM puede instalar CodeDeploy una vez o configurar una programacioacuten para instalar nuevasversiones
Para instalar el agente de CodeDeploy elija laAWSCodeDeployAgentpaquete mientras sigues los pasosdeInstalacioacuten o actualizacioacuten de paquetes conAWS Systems Managerdistribuidor
Instalacioacuten del agente de CodeDeploy con la liacutenea de comandosNote
Le recomendamos que instale el agente de CodeDeploy conAWS Systems Managerpara poderconfigurar las actualizaciones programadas del agente Para obtener maacutes informacioacuten consulteInstale el agente de CodeDeploy medianteAWS Systems Manager (p 189)
Utilice los siguientes temas para instalar y ejecutar el agente de CodeDeploy mediante la liacutenea decomandos
Temasbull Instale el agente CodeDeploy para Amazon Linux o RHEL (p 191)bull Instale el agente de CodeDeploy para Ubuntu Server (p 192)bull Instale el agente de CodeDeploy para Windows Server (p 193)
Versioacuten de API 2014-10-06190
AWS CodeDeploy Guiacutea del usuarioInstalacioacuten del agente de CodeDeploy
Instale el agente CodeDeploy para Amazon Linux o RHELInicie sesioacuten en la instancia y ejecute uno a uno los comandos siguientes Ejecucioacuten del comandosudoyum updateprimero se considera una praacutectica recomendada cuando se utilizayumPara instalar paquetespero puede omitirlo si no desea actualizar todos sus paquetes
Note
En el cuarto comandohomeec2-userrepresenta el nombre de usuario predeterminadopara una instancia de Amazon Linux o RHEL Amazon EC2 Si la instancia se creoacute con unaAMI personalizada el propietario de la AMI puede haber especificado otro nombre de usuariopredeterminado
sudo yum update
sudo yum install ruby
sudo yum install wget
Para limpiar la AMI de cualquier informacioacuten de almacenamiento en cacheacute del agente anterior ejecute elsiguiente script
binbashCODEDEPLOY_BIN=optcodedeploy-agentbincodedeploy-agent$CODEDEPLOY_BIN stopyum erase codedeploy-agent -y
cd homeec2-user
wget httpsbucket-names3region-identifieramazonawscomlatestinstall
nombre-bucketes el nombre del bucket de Amazon S3 que contiene los archivos del kit de recursosde CodeDeploy de su regioacutenIdentificador de la regioacutenes el identificador de tu regioacuten Porejemplo para la regioacuten EE UU Este (Ohio) sustituyanombre-bucketconaws-codedeploy-us-east-2y sustituirIdentificador de la regioacutenconus-east-2 Para obtener una lista de losnombres de los buckets y los identificadores de regioacuten consulteNombres de buckets del kit de recursos porregioacuten (p 449)
chmod +x install
Para instalar la uacuteltima versioacuten del agente de CodeDeploy
bullsudo install auto
Para instalar una versioacuten especiacutefica del agente de CodeDeploy
bullsudo install auto -v releasescodedeploy-agent-rpm
Para comprobar que el servicio se estaacute ejecutando ejecute el siguiente comando
sudo service codedeploy-agent status
Versioacuten de API 2014-10-06191
AWS CodeDeploy Guiacutea del usuarioInstalacioacuten del agente de CodeDeploy
Si el agente de CodeDeploy estaacute instalado y se estaacute ejecutando veraacute el mensajeThe AWS CodeDeployagent is running
Si ve el mensaje error No AWS CodeDeploy agent running inicie el servicio y ejecute uno poruno los dos comandos siguientes
sudo service codedeploy-agent start
sudo service codedeploy-agent status
Instale el agente de CodeDeploy para Ubuntu ServerNote
Le recomendamos que instale el agente de CodeDeploy conAWS Systems Managerpara poderconfigurar las actualizaciones programadas del agente Para obtener maacutes informacioacuten consulteInstale el agente de CodeDeploy medianteAWS Systems Manager (p 189)
Para instalar el agente de CodeDeploy en Ubuntu Server
1 Inicie sesioacuten en la instancia2 Lleve a cabo una de las siguientes acciones en funcioacuten de la versioacuten de Ubuntu Server
bull En Ubuntu Server 1404 introduzca los siguientes comandos uno tras otro
sudo apt-get update
sudo apt-get install ruby20
sudo apt-get install wget
bull En Ubuntu Server 1604 y versiones posteriores introduzca los siguientes comandos uno tras otro
sudo apt update
sudo apt install ruby-full
sudo apt install wget
3 Escriba el siguiente comando
cd homeubuntu
homeubunturepresenta el nombre de usuario predeterminado para una instancia de UbuntuServer Si la instancia se creoacute con una AMI personalizada el propietario de la AMI puede haberespecificado otro nombre de usuario predeterminado
4 Escriba el siguiente comando
wget httpsbucket-names3region-identifieramazonawscomlatestinstall
nombre-bucketes el nombre del bucket de Amazon S3 que contiene los archivos del kit de recursosde CodeDeploy de su regioacutenIdentificador de la regioacutenes el identificador de tu regioacuten Porejemplo para la regioacuten EE UU Este (Ohio) sustituyanombre-bucketconaws-codedeploy-
Versioacuten de API 2014-10-06192
AWS CodeDeploy Guiacutea del usuarioInstalacioacuten del agente de CodeDeploy
us-east-2y sustituirIdentificador de la regioacutenconus-east-2 Para obtener una lista delos nombres de los buckets y los identificadores de regioacuten consulteNombres de buckets del kit derecursos por regioacuten (p 449)
5 Escriba el siguiente comando
chmod +x install
6 Realice alguna de las siguientes acciones
bull Para instalar la uacuteltima versioacuten del agente de CodeDeploy en Ubuntu 1404 1604 y 1804
sudo install auto
bull Para instalar la uacuteltima versioacuten del agente de CodeDeploy en Ubuntu 2004Note
Escribir la salida en un archivo de registro temporal es una solucioacuten alternativa que debeutilizarse mientras abordamos un error conocido con elinstallscript en Ubuntu 2004
sudo install auto gt tmplogfile
bull Para instalar una versioacuten especiacutefica del agente de CodeDeploy en Ubuntu 1404 1604 y 1804
sudo install auto -v releasescodedeploy-agent-deb
bull Para instalar una versioacuten especiacutefica del agente de CodeDeploy en Ubuntu 2004Note
Escribir la salida en un archivo de registro temporal es una solucioacuten alternativa que debeutilizarse mientras abordamos un error conocido con elinstallscript en Ubuntu 2004
sudo install auto -v releasescodedeploy-agent-deb gt tmplogfile
Para comprobar que el servicio se estaacute ejecutando
1 Escriba el siguiente comando
sudo service codedeploy-agent status
Si el agente de CodeDeploy estaacute instalado y se estaacute ejecutando veraacute el mensajeThe AWSCodeDeploy agent is running
2 Si ve el mensaje error No AWS CodeDeploy agent running inicie el servicio y ejecute unopor uno los dos comandos siguientes
sudo service codedeploy-agent start
sudo service codedeploy-agent status
Instale el agente de CodeDeploy para Windows ServerEn las instancias de Windows Server puede utilizar uno de estos meacutetodos para descargar e instalar elagente de CodeDeploy
Versioacuten de API 2014-10-06193
AWS CodeDeploy Guiacutea del usuarioInstalacioacuten del agente de CodeDeploy
bull UsarAWS Systems Manager(recomendado)bull Ejecutar una serie de comandos de Windows PowerShellbull Elegir un enlace de descarga directabull Ejecute un comando de copia de Amazon S3
Note
La carpeta en la que estaacute instalado el agente de CodeDeploy esCProgram DataAmazonCodeDeploy Aseguacuterese de que no haya cruces de directorios ni enlaces simboacutelicos en estaruta
Temasbull Utilizar Systems Manager (p 194)bull Usar Windows PowerShell (p 194)bull Usar un enlace directo (p 195)bull Utilizar un comando de copia de Amazon S3 (p 196)
Utilizar Systems Manager
Siga las instrucciones enInstale el agente de CodeDeploy medianteAWS Systems Manager (p 189)parainstalar el agente de CodeDeploy
Usar Windows PowerShell
Inicie sesioacuten en la instancia y ejecute los comandos siguientes en Windows PowerShell
1 Es necesario que todos los scripts y archivos de configuracioacuten que se hayan descargado de Internetesteacuten firmados por un editor de confianza Si se le pide que cambie la poliacutetica de ejecucioacuten escribaY
Set-ExecutionPolicy RemoteSigned
2 Cargue AWS Tools for Windows PowerShell
Import-Module AWSPowerShell
3 Cree un directorio donde se pueda descargar el archivo de instalacioacuten del agente de CodeDeploy
New-Item -Path ctemp -ItemType directory -Force
4 ConfigurarAWScredenciales que utilizan laSet-AWSCredentialyInitialize-AWSDefaultConfigurationcommands Para obtener maacutes informacioacuten consulteUsodeAWScredencialesen laAWSherramientas para la Guiacutea del usuario de PowerShell
5 Descargue el archivo de instalacioacuten del agente de CodeDeploy
Para instalar la uacuteltima versioacuten del agente de CodeDeploy
bullpowershellexe -Command Read-S3Object -BucketName bucket-name -Key latestcodedeploy-agentmsi -File ctempcodedeploy-agentmsi
Para instalar una versioacuten especiacutefica del agente de CodeDeploy
Versioacuten de API 2014-10-06194
AWS CodeDeploy Guiacutea del usuarioInstalacioacuten del agente de CodeDeploy
bullpowershellexe -Command Read-S3Object -BucketName bucket-name -Key releasescodedeploy-agent-msi -File ctempcodedeploy-agentmsi
nombre-bucketes el nombre del bucket de Amazon S3 que contiene los archivos del kit de recursosde CodeDeploy para su regioacuten Por ejemplo para la regioacuten EE UU Este (Ohio) sustituyanombre-bucketconaws-codedeploy-us-east-2 Para obtener una lista de los nombres de los bucketsconsulteNombres de buckets del kit de recursos por regioacuten (p 449)
6 Ejecute el archivo de instalacioacuten del agente de CodeDeploy
ctempcodedeploy-agentmsi quiet l ctemphost-agent-install-logtxt
Para comprobar que el servicio se estaacute ejecutando ejecute el siguiente comando
powershellexe -Command Get-Service -Name codedeployagent
Si el agente de CodeDeploy se acaba de instalar y no se ha iniciado despueacutes de ejecutar laGet-Servicecomando enEstado deberiacuteas verStart
Status Name DisplayName------ ---- -----------Start codedeployagent CodeDeploy Host Agent Service
Si el agente de CodeDeploy ya se estaacute ejecutando despueacutes de ejecutar laGet-Servicecomando enEstadodeberiacuteas verRunning
Status Name DisplayName------ ---- -----------Running codedeployagent CodeDeploy Host Agent Service
Usar un enlace directo
Si la configuracioacuten de seguridad del navegador en la instancia de Windows Server proporciona lospermisos (por ejemplo parahttps3amazonawscom) puede utilizar un enlace directo de suregioacuten para descargar el agente de CodeDeploy y luego ejecutar el instalador manualmente
Nombre de la regioacuten de Enlace de descarga
EE UU Este (Ohio) httpsaws-codedeploy-us-east-2s3amazonawscomlatestcodedeploy-agentmsi
EEUU Este (Norte de Virginia) httpsaws-codedeploy-us-east-1s3amazonawscomlatestcodedeploy-agentmsi
EEUU Oeste (Norte de California) httpsaws-codedeploy-us-west-1s3amazonawscomlatestcodedeploy-agentmsi
Versioacuten de API 2014-10-06195
AWS CodeDeploy Guiacutea del usuarioInstalacioacuten del agente de CodeDeploy
Nombre de la regioacuten de Enlace de descarga
EE UU Oeste (Oregoacuten) httpsaws-codedeploy-us-west-2s3amazonawscomlatestcodedeploy-agentmsi
Canadaacute (Central) httpsaws-codedeploy-ca-central-1s3amazonawscomlatestcodedeploy-agentmsi
Europa (Irlanda) httpsaws-codedeploy-eu-west-1s3amazonawscomlatestcodedeploy-agentmsi
Europe (London) httpsaws-codedeploy-eu-west-2s3amazonawscomlatestcodedeploy-agentmsi
Europa (Pariacutes) httpsaws-codedeploy-eu-west-3s3amazonawscomlatestcodedeploy-agentmsi
Europa (Fraacutencfort) httpsaws-codedeploy-eu-central-1s3amazonawscomlatestcodedeploy-agentmsi
Asia-Paciacutefico (Hong Kong) httpsaws-codedeploy-ap-east-1s3ap-east-1amazonawscomlatestcodedeploy-agentmsi
Asia-Paciacutefico (Tokio) httpsaws-codedeploy-ap-northeast-1s3amazonawscomlatestcodedeploy-agentmsi
Asia-Paciacutefico (Seuacutel) httpsaws-codedeploy-ap-northeast-2s3amazonawscomlatestcodedeploy-agentmsi
Asia Paciacutefico (Singapur) httpsaws-codedeploy-ap-southeast-1s3amazonawscomlatestcodedeploy-agentmsi
Asia-Paciacutefico (Siacutedney) httpsaws-codedeploy-ap-southeast-2s3amazonawscomlatestcodedeploy-agentmsi
Asia-Paciacutefico (Mumbai) httpsaws-codedeploy-ap-south-1s3amazonawscomlatestcodedeploy-agentmsi
Ameacuterica del Sur (Satildeo Paulo) httpsaws-codedeploy-sa-east-1s3amazonawscomlatestcodedeploy-agentmsi
Utilizar un comando de copia de Amazon S3
Si el archivo deAWS CLIestaacute instalado en la instancia puede utilizar Amazon S3CPPara descargar elagente de CodeDeploy y luego ejecutar el instalador manualmente Para obtener informacioacuten consulteInstalacioacuten de la AWS Command Line Interface en Microsoft Windows
Versioacuten de API 2014-10-06196
AWS CodeDeploy Guiacutea del usuarioInstalacioacuten del agente de CodeDeploy
Nombre de la regioacuten de Comando de copia de Amazon S3
EE UU Este (Ohio)aws s3 cp s3aws-codedeploy-us-east-2latestcodedeploy-agentmsi codedeploy-agentmsi
EEUU Este (Norte de Virginia)aws s3 cp s3aws-codedeploy-us-east-1latestcodedeploy-agentmsi codedeploy-agentmsi
EEUU Oeste (Norte de California)aws s3 cp s3aws-codedeploy-us-west-1latestcodedeploy-agentmsi codedeploy-agentmsi
EE UU Oeste (Oregoacuten)aws s3 cp s3aws-codedeploy-us-west-2latestcodedeploy-agentmsi codedeploy-agentmsi
Canadaacute (Central)aws s3 cp s3aws-codedeploy-ca-central-1latestcodedeploy-agentmsi codedeploy-agentmsi
Europa (Irlanda)aws s3 cp s3aws-codedeploy-eu-west-1latestcodedeploy-agentmsi codedeploy-agentmsi
Europe (London)aws s3 cp s3aws-codedeploy-eu-west-2latestcodedeploy-agentmsi codedeploy-agentmsi
Europa (Pariacutes)aws s3 cp s3aws-codedeploy-eu-west-3latestcodedeploy-agentmsi codedeploy-agentmsi
Europa (Fraacutencfort)aws s3 cp s3aws-codedeploy-eu-central-1latestcodedeploy-agentmsi codedeploy-agentmsi
Asia-Paciacutefico (Hong Kong)aws s3 cp s3aws-codedeploy-ap-east-1latestcodedeploy-agentmsi codedeploy-agentmsi
Asia-Paciacutefico (Tokio)aws s3 cp s3aws-codedeploy-ap-northeast-1latestcodedeploy-agentmsi codedeploy-agentmsi
Asia-Paciacutefico (Seuacutel)aws s3 cp s3aws-codedeploy-ap-northeast-2latestcodedeploy-agentmsi codedeploy-agentmsi
Versioacuten de API 2014-10-06197
AWS CodeDeploy Guiacutea del usuarioActualizacioacuten del agente de CodeDeploy
Nombre de la regioacuten de Comando de copia de Amazon S3
Asia Paciacutefico (Singapur)aws s3 cp s3aws-codedeploy-ap-southeast-1latestcodedeploy-agentmsi codedeploy-agentmsi
Asia-Paciacutefico (Siacutedney)aws s3 cp s3aws-codedeploy-ap-southeast-2latestcodedeploy-agentmsi codedeploy-agentmsi
Asia-Paciacutefico (Mumbai)aws s3 cp s3aws-codedeploy-ap-south-1latestcodedeploy-agentmsi codedeploy-agentmsi
Ameacuterica del Sur (Satildeo Paulo)aws s3 cp s3aws-codedeploy-sa-east-1latestcodedeploy-agentmsi codedeploy-agentmsi
Actualizacioacuten del agente de CodeDeployPuede configurar actualizaciones automaacuteticas programadas del agente de CodeDeploy en todoslos sistemas operativos compatibles medianteAWS Systems Manager Tambieacuten puede forzar lasactualizaciones en todos los sistemas operativos compatibles ejecutando un comando en una instancia
Temasbull Actualizar el agente de CodeDeploy en Amazon Linux o RHEL (p 198)bull Actualizar el agente de CodeDeploy en Ubuntu Server (p 198)bull Actualizar el agente de CodeDeploy en Windows Server (p 199)
Actualizar el agente de CodeDeploy en Amazon Linux o RHELPara configurar actualizaciones automaacuteticas programadas del agente de CodeDeploy medianteAWSSystems Manager siga los pasos que se indican enInstale el agente de CodeDeploy conAWS SystemsManager
Si desea forzar una actualizacioacuten del agente de CodeDeploy inicie sesioacuten en la instancia y ejecute elcomando siguiente
sudo optcodedeploy-agentbininstall auto
Actualizar el agente de CodeDeploy en Ubuntu ServerPara configurar actualizaciones automaacuteticas programadas del agente de CodeDeploy medianteAWSSystems Manager siga los pasos que se indican enInstale el agente de CodeDeploy conAWS SystemsManager
Si desea forzar una actualizacioacuten del agente de CodeDeploy inicie sesioacuten en la instancia y ejecute elcomando siguiente
sudo optcodedeploy-agentbininstall auto
Versioacuten de API 2014-10-06198
AWS CodeDeploy Guiacutea del usuarioActualizacioacuten del agente de CodeDeploy
Actualizar el agente de CodeDeploy en Windows ServerPuede habilitar las actualizaciones automaacuteticas del agente de CodeDeploy conAWS Systems ManagerCon Systems Manager puede configurar una programacioacuten de actualizacioacuten de sus instancias de AmazonEC2 o en las instalaciones mediante la creacioacuten de una asociacioacuten con Systems Manager State ManagerTambieacuten puede actualizar el agente de CodeDeploy mediante la desinstalacioacuten de la versioacuten actual einstala una maacutes reciente
Temasbull Configuracioacuten de la actualizacioacuten automaacutetica del agente de CodeDeploy conAWS Systems
Manager (p 199)bull Actualizar manualmente el agente de CodeDeploy (p 199)bull (Obsolado) Actualizacioacuten del agente de CodeDeploy con Windows Server Updater (p 199)
Configuracioacuten de la actualizacioacuten automaacutetica del agente de CodeDeploy conAWSSystems Manager
Para configurar Systems Manager y habilitar las actualizaciones automaacuteticas del agente de CodeDeploysiga las instrucciones deInstale el agente de CodeDeploy medianteAWS Systems Manager
Actualizar manualmente el agente de CodeDeploy
Para actualizar el agente de CodeDeploy manualmente puede instalar la versioacuten maacutes reciente desdela CLI o utilizar Systems Manager Siga las instrucciones enInstalacioacuten del agente de CodeDeploy Serecomienda desinstalar las versiones anteriores del agente de CodeDeploy siguiendo las instruccionesdeDesinstalacioacuten del agente de CodeDeploy
(Obsolado) Actualizacioacuten del agente de CodeDeploy con Windows Server UpdaterNote
El actualizador del agente de CodeDeploy para Windows Server estaacute obsoleto y no se actualizaraacutea ninguna versioacuten posterior a la 10111597
Para habilitar la actualizacioacuten automaacutetica del agente de CodeDeploy instale el actualizador del agente deCodeDeploy para Windows Server en las instancias nuevas o ya existentes El actualizador compruebaperioacutedicamente si existen versiones nuevas Cuando detecta una versioacuten nueva del agente el actualizadordesinstala la versioacuten actual si la hay antes de instalar la uacuteltima versioacuten
Si una implementacioacuten ya estaacute en curso cuando el actualizador detecta una nueva versioacuten continuaraacutehasta su finalizacioacuten Si se intenta iniciar una implementacioacuten durante el proceso de actualizacioacuten laimplementacioacuten falla
Si desea forzar una actualizacioacuten del agente de CodeDeploy siga las instrucciones deInstale el agente deCodeDeploy para Windows Server (p 193)
En las instancias de Windows Server puede descargar e instalar el actualizador del agente deCodeDeploy mediante la ejecucioacuten de comandos de Windows PowerShell utilizando un enlace dedescarga directa o ejecutando un comando copy de Amazon S3
Temasbull Usar Windows PowerShell (p 200)bull Usar un enlace directo (p 200)bull Utilizar un comando de copia de Amazon S3 (p 201)
Versioacuten de API 2014-10-06199
AWS CodeDeploy Guiacutea del usuarioActualizacioacuten del agente de CodeDeploy
Usar Windows PowerShell
Inicie sesioacuten en la instancia y ejecute uno por uno los comandos siguientes en Windows PowerShell
Set-ExecutionPolicy RemoteSigned
Si se le pide que cambie la poliacutetica de ejecucioacuten elija Y para que Windows PowerShell requiera que todoslos scripts y archivos de configuracioacuten descargados de Internet esteacuten firmados por un editor de confianza
Import-Module AWSPowerShell
New-Item -Path ctemp -ItemType directory -Force
powershellexe -Command Read-S3Object -BucketName bucket-name -Key latestcodedeploy-agent-updatermsi -File ctempcodedeploy-agent-updatermsi
ctempcodedeploy-agent-updatermsi quiet l ctemphost-agent-updater-logtxt
powershellexe -Command Get-Service -Name codedeployagent
nombre-bucketes el nombre del bucket de Amazon S3 que contiene los archivos del kit de recursosde CodeDeploy de su regioacuten Por ejemplo para la regioacuten EE UU Este (Ohio) sustituyanombre-bucketconaws-codedeploy-us-east-2 Para obtener una lista de los nombres de los bucketsconsulteNombres de buckets del kit de recursos por regioacuten (p 449)
Si desea averiguar un error en el proceso de actualizacioacuten escriba el comando siguiente para abrir elarchivo de registro del actualizador del agente de CodeDeploy
notepad CProgramDataAmazonCodeDeployUpdaterlogcodedeploy-agentupdaterlog
Usar un enlace directo
Si la configuracioacuten de seguridad del navegador en la instancia de Windows Server proporciona lospermisos necesarios (por ejemplo para https3amazonawscom ) puede utilizar un enlacedirecto para descargar el actualizador del agente de CodeDeploy Escriba la siguiente informacioacuten en labarra de direcciones del navegador y a continuacioacuten descargue y ejecute el instalador manualmente
Nombre de la regioacuten de Enlace de descarga
EE UU Este (Ohio) httpsaws-codedeploy-us-east-2s3amazonawscomlatestcodedeploy-agent-updatermsi
EEUU Este (Norte de Virginia) httpsaws-codedeploy-us-east-1s3amazonawscomlatestcodedeploy-agent-updatermsi
EEUU Oeste (Norte de California) httpsaws-codedeploy-us-west-1s3amazonawscomlatestcodedeploy-agent-updatermsi
EE UU Oeste (Oregoacuten) httpsaws-codedeploy-us-west-2s3amazonawscomlatestcodedeploy-agent-updatermsi
Versioacuten de API 2014-10-06200
AWS CodeDeploy Guiacutea del usuarioActualizacioacuten del agente de CodeDeploy
Nombre de la regioacuten de Enlace de descarga
Canadaacute (Central) httpsaws-codedeploy-ca-central-1s3amazonawscomlatestcodedeploy-agent-updatermsi
Europa (Irlanda) httpsaws-codedeploy-eu-west-1s3amazonawscomlatestcodedeploy-agent-updatermsi
Europe (London) httpsaws-codedeploy-eu-west-2s3amazonawscomlatestcodedeploy-agent-updatermsi
Europa (Pariacutes) httpsaws-codedeploy-eu-west-3s3amazonawscomlatestcodedeploy-agent-updatermsi
Europa (Fraacutencfort) httpsaws-codedeploy-eu-central-1s3amazonawscomlatestcodedeploy-agent-updatermsi
Asia-Paciacutefico (Hong Kong) httpsaws-codedeploy-ap-east-1s3amazonawscomlatestcodedeploy-agent-updatermsi
Asia-Paciacutefico (Tokio) httpsaws-codedeploy-ap-northeast-1s3amazonawscomlatestcodedeploy-agent-updatermsi
Asia-Paciacutefico (Seuacutel) httpsaws-codedeploy-ap-northeast-2s3amazonawscomlatestcodedeploy-agent-updatermsi
Asia Paciacutefico (Singapur) httpsaws-codedeploy-ap-southeast-1s3amazonawscomlatestcodedeploy-agent-updatermsi
Asia-Paciacutefico (Siacutedney) httpsaws-codedeploy-ap-southeast-2s3amazonawscomlatestcodedeploy-agent-updatermsi
Asia-Paciacutefico (Mumbai) httpsaws-codedeploy-ap-south-1s3amazonawscomlatestcodedeploy-agent-updatermsi
Ameacuterica del Sur (Satildeo Paulo) httpsaws-codedeploy-sa-east-1s3amazonawscomlatestcodedeploy-agent-updatermsi
Utilizar un comando de copia de Amazon S3
Si el archivo deAWS CLIestaacute instalado en la instancia puede utilizar Amazon S3CPPara descargarel actualizador del agente de CodeDeploy y luego ejecutar el instalador manualmente Para obtenerinformacioacuten consulte Instalacioacuten de la AWS Command Line Interface en Microsoft Windows
Versioacuten de API 2014-10-06201
AWS CodeDeploy Guiacutea del usuarioActualizacioacuten del agente de CodeDeploy
Nombre de la regioacuten de Comando de copia de Amazon S3
EE UU Este (Ohio)aws s3 cp s3aws-codedeploy-us-east-2latestcodedeploy-agent-updatermsi codedeploy-agent-updatermsi
EEUU Este (Norte de Virginia)aws s3 cp s3aws-codedeploy-us-east-1latestcodedeploy-agent-updatermsi codedeploy-agent-updatermsi
EEUU Oeste (Norte de California)aws s3 cp s3aws-codedeploy-us-west-1latestcodedeploy-agent-updatermsi codedeploy-agent-updatermsi
EE UU Oeste (Oregoacuten)aws s3 cp s3aws-codedeploy-us-west-2latestcodedeploy-agent-updatermsi codedeploy-agent-updatermsi
Canadaacute (Central)aws s3 cp s3aws-codedeploy-ca-central-1latestcodedeploy-agent-updatermsi codedeploy-agent-updatermsi
Europa (Irlanda)aws s3 cp s3aws-codedeploy-eu-west-1latestcodedeploy-agent-updatermsi codedeploy-agent-updatermsi
Europe (London)aws s3 cp s3aws-codedeploy-eu-west-2latestcodedeploy-agent-updatermsi codedeploy-agent-updatermsi
Europa (Pariacutes)aws s3 cp s3aws-codedeploy-eu-west-3latestcodedeploy-agent-updatermsi codedeploy-agent-updatermsi
Europa (Fraacutencfort)aws s3 cp s3aws-codedeploy-eu-central-1latestcodedeploy-agent-updatermsi codedeploy-agent-updatermsi
Asia-Paciacutefico (Hong Kong)aws s3 cp s3aws-codedeploy-ap-east-1latestcodedeploy-agent-updatermsi codedeploy-agent-updatermsi
Asia-Paciacutefico (Tokio)aws s3 cp s3aws-codedeploy-ap-northeast-1latestcodedeploy-agent-updatermsi codedeploy-agent-updatermsi
Asia-Paciacutefico (Seuacutel)aws s3 cp s3aws-codedeploy-ap-northeast-2latestcodedeploy-agent-updatermsi codedeploy-agent-updatermsi
Versioacuten de API 2014-10-06202
AWS CodeDeploy Guiacutea del usuarioDesinstalacioacuten del agente de CodeDeploy
Nombre de la regioacuten de Comando de copia de Amazon S3
Asia Paciacutefico (Singapur)aws s3 cp s3aws-codedeploy-ap-southeast-1latestcodedeploy-agent-updatermsi codedeploy-agent-updatermsi
Asia-Paciacutefico (Siacutedney)aws s3 cp s3aws-codedeploy-ap-southeast-2latestcodedeploy-agent-updatermsi codedeploy-agent-updatermsi
Asia-Paciacutefico (Mumbai)aws s3 cp s3aws-codedeploy-ap-south-1latestcodedeploy-agent-updatermsi codedeploy-agent-updatermsi
Ameacuterica del Sur (Satildeo Paulo)aws s3 cp s3aws-codedeploy-sa-east-1latestcodedeploy-agent-updatermsi codedeploy-agent-updatermsi
Desinstalacioacuten del agente de CodeDeployPuede eliminar el agente de CodeDeploy de las instancias en las que ya no sea necesario o cuandodesee realizar una instalacioacuten desde cero
Desinstale el agente CodeDeploy de Amazon Linux o RHELPara desinstalar el agente de CodeDeploy inicie sesioacuten en la instancia y ejecute el comando siguiente
sudo yum erase codedeploy-agent
Desinstalacioacuten del agente de CodeDeploy de Ubuntu ServerPara desinstalar el agente de CodeDeploy inicie sesioacuten en la instancia y ejecute el comando siguiente
sudo dpkg --purge codedeploy-agent
Desinstalar el agente de CodeDeploy de Windows ServerPara desinstalar el agente de CodeDeploy inicie sesioacuten en la instancia y ejecute uno por uno los trescomandos siguientes
wmic
product where name=CodeDeploy Host Agent call uninstall nointeractive
exit
Tambieacuten puede iniciar sesioacuten en la instancia y en el Panel de control abra Programas y caracteriacutesticaselija CodeDeploy Host Agent y seleccione Desinstalar
Versioacuten de API 2014-10-06203
AWS CodeDeploy Guiacutea del usuarioSendCodeDeployRegistros de agentes de aCloudWatch
SendCodeDeployRegistros de agentes deaCloudWatchPuede enviarCodeDeploymeacutetrica de agente y datos de registro enCloudWatchUtilizandoelunificadoCloudWatchagente o maacutes sencillamente elCloudWatchagente
Utilice las siguientes instrucciones para instalar elCloudWatchagente y configurarlo para usarloconCodeDeployagentes
Requisitos previosAntes de empezar complete las siguientes tareas
bull Instalacioacuten delCodeDeployagente y aseguacuterate de que se esteacute ejecutando Para obtener maacutesinformacioacuten consulte Instalacioacuten del agente de CodeDeploy (p 189) y Verifique que el agente deCodeDeploy esteacute en ejecucioacuten (p 186)
bull Instalacioacuten delCloudWatchagente Para obtener maacutes informacioacuten consulteInstalacioacutendeCloudWatchagente
bull Antildeada los siguientes permisos a laCodeDeployPerfil de instancia IAMbull CloudWatchLogsFullAccesobull CloudWatchAgentServerPoliacutetica de
Para obtener maacutes informacioacuten sobre elCodeDeployperfil de instancia consultePaso 4 Crear un perfil deinstancias de IAM para sus instancias Amazon EC2 (p 43)deIntroduccioacuten a CodeDeploy (p 35)
Configuracioacuten delCloudWatchagente pararecopilarCodeDeployRegistros dePuede configurar elCloudWatchagente mediante un paso a paso por un asistente o creando o editandomanualmente un archivo de configuracioacuten
Para configurar laCloudWatchagente mediante el asistente (Linux)
1 Ejecute el asistente tal y como se describe enEjecute laCloudWatchasistente de configuracioacuten delagente de
2 En el asistente cuando se le preguntaDo you want to monitor any log filesentrar13 Especifique laCodeDeployarchivo de registro de agente seguacuten se indica a continuacioacuten
1 ParaLog file pathintroduzca la ruta de acceso para elCodeDeployarchivo de registro porejemplovarlogawscodedeploy-agentcodedeploy-agentlog
2 ParaLog group nameEscriba un nombre de grupo de registros por ejemplocodedeploy-agent-log
3 ParaLog stream nameEscriba un nombre de secuencia de registros porejemploinstance_id-codedeploy-agent-log
4 Cuando se le preguntoacuteDo you want to specify any additional log files introduzca15 Especifique laCodeDeployregistros de despliegue de agentes seguacuten se indica a continuacioacuten
1 ParaLog file pathintroduzca la ruta de acceso para elCodeDeployarchivo de registro dedespliegue por ejemplooptcodedeploy-agentdeployment-rootdeployment-logscodedeploy-agent-deploymentslog
2 ParaLog group nameEscriba un nombre de grupo de registros por ejemplocodedeploy-agent-deployment-log
Versioacuten de API 2014-10-06204
AWS CodeDeploy Guiacutea del usuarioSendCodeDeployRegistros de agentes de aCloudWatch
3 ParaLog stream nameEscriba un nombre de secuencia de registros porejemploinstance_id-codedeploy-agent-deployment-log
6 Cuando se le preguntoacuteDo you want to specify any additional log files introduzca17 Especifique laCodeDeployregistros de agente actualizador de la siguiente manera
1 ParaLog file pathintroduzca la ruta de acceso para elCodeDeployarchivo de registro delactualizador por ejemplotmpcodedeploy-agentupdatelog
2 ParaLog group nameEscriba un nombre de grupo de registros por ejemplocodedeploy-agent-updater-log
3 ParaLog stream nameEscriba un nombre de secuencia de registros porejemploinstance_id-codedeploy-agent-updater-log
Para configurar laCloudWatchagente mediante el asistente (Windows)
1 Ejecute el asistente tal y como se describe enEjecute laCloudWatchasistente de configuracioacuten delagente de
2 En el asistente cuando se le preguntaDo you want to monitor any customized logfilesentrar1
3 Especifique laCodeDeployarchivo de registro de la siguiente manera
1 ParaLog file pathintroduzca la ruta o elCodeDeployarchivo de registro de agente porejemploCProgramDataAmazonCodeDeploylogcodedeploy-agent-windows-logtxt
2 ParaLog group nameEscriba un nombre de grupo de registros por ejemplocodedeploy-agent-windows-log
3 ParaLog stream nameEscriba un nombre de secuencia de registros porejemploinstance_id-codedeploy-agent-windows-log
4 Cuando se le preguntoacuteDo you want to specify any additional log files introduzca15 Especifique laCodeDeployregistros de despliegue de agentes seguacuten se indica a continuacioacuten
1 ParaLog file pathintroduzca la ruta de accesoCodeDeployarchivo de registro de desplieguepor ejemploCProgramDataAmazonCodeDeploydeployment-logscodedeploy-agent-windows-deploymentslog
2 ParaLog group nameEscriba un nombre de grupo de registros por ejemplocodedeploy-agent-windows-deployment-log
3 ParaLog stream nameEscriba un nombre de secuencia de registros porejemploinstance_id-codedeploy-agent-windows-deployment-log
Para configurar laCloudWatchagente creando o editando manualmente un archivo deconfiguracioacuten (Linux)
1 Cree o edite elCloudWatcharchivo de configuracioacuten del agente tal como se describe enCree o edite deforma manual elCloudWatcharchivo de configuracioacuten del agente de
2 Aseguacuterese de que el archivo se llamaoptawsamazon-cloudwatch-agentetcamazon-cloudwatch-agentjsony que contiene el coacutedigo siguiente
logs logs_collected files collect_list [ file_path varlogawscodedeploy-agentcodedeploy-agentlog
Versioacuten de API 2014-10-06205
AWS CodeDeploy Guiacutea del usuarioSendCodeDeployRegistros de agentes de aCloudWatch
log_group_name codedeploy-agent-log log_stream_name instance_id-agent-log file_path optcodedeploy-agentdeployment-rootdeployment-logscodedeploy-agent-deploymentslog log_group_name codedeploy-agent-deployment-log log_stream_name instance_id-codedeploy-agent-deployment-log file_path tmpcodedeploy-agentupdatelog log_group_name codedeploy-agent-updater-log log_stream_name instance_id-codedeploy-agent-updater-log ]
Para configurar laCloudWatchagente creando o editando manualmente un archivo deconfiguracioacuten (Windows)
1 Cree o edite elCloudWatcharchivo de configuracioacuten del agente tal como se describe enCree o edite deforma manual elCloudWatcharchivo de configuracioacuten del agente de
2 Aseguacuterese de que el archivo se llamaCProgramDataAmazonAmazonCloudWatchAgentamazon-cloudwatch-agentjsony que contiene el coacutedigo siguiente
logs logs_collected files collect_list [ file_path CProgramDataAmazonCodeDeploylogcodedeploy-agent-windows-logtxt log_group_name codedeploy-agent-windows-log log_stream_name instance_id-codedeploy-agent-windows-log file_path CProgramDataAmazonCodeDeploydeployment-logscodedeploy-agent-windows-deploymentslog log_group_name codedeploy-agent-windows-deployment-log log_stream_name instance_id-codedeploy-agent-windows-deployment-log ]
Restablecer elCloudWatchagenteDespueacutes de realizar los cambios reinicie laCloudWatchagente tal y como se describe enComenzarelCloudWatchagente
Versioacuten de API 2014-10-06206
AWS CodeDeploy Guiacutea del usuarioComparacioacuten de instancias de
Amazon EC2 con instancias locales
Trabajo con instancias paraCodeDeploy
CodeDeploy admite implementaciones en instancias que ejecutan Amazon Linux Ubuntu Server Red HatEnterprise Linux (RHEL) y Windows Server
Puede utilizar CodeDeploy para implementar tanto instancias Amazon EC2 y como instancias on-premisesUna instancia on-premises es cualquier dispositivo fiacutesico que no es una instancia Amazon EC2 y quepuede ejecutar el agente de CodeDeploy y conectarse al servicio de puacuteblicosAWSPuntos de enlace deservicio de Puede utilizar CodeDeploy para implementar simultaacuteneamente una aplicacioacuten en instanciasAmazon EC2 en la nube y en equipos de sobremesa en su oficina o en servidores de su propio centro dedatos
Comparacioacuten de instancias de Amazon EC2 coninstancias locales
La siguiente tabla compara las instancias Amazon EC2 y las instancias on-premises
Asunto Instancias de Amazon EC2 Instancias on-premises
Es necesario instalar y ejecutaruna versioacuten del agente deCodeDeploy que sea compatiblecon el sistema operativo que seejecuta en la instancia
Siacute Siacute
La instancia debe poderconectarse a CodeDeploy
Siacute Siacute
Es necesario adjuntar un perfil deinstancias de IAM a la instanciaEl perfil de instancia de IAM debetener permisos para participaren las implementaciones deCodeDeploy Para obtenerinformacioacuten consulte Paso 4Crear un perfil de instancias deIAM para sus instancias AmazonEC2 (p 43)
Siacute No
Es necesario realizar uno delos siguientes procedimientospara autenticar y registrar lasinstancias
bull Crear un usuario de IAM paracada instancia y almacenar
No Siacute
Versioacuten de API 2014-10-06207
AWS CodeDeploy Guiacutea del usuarioTareas de instancia para CodeDeploy
Asunto Instancias de Amazon EC2 Instancias on-premiseslas credenciales de la cuentade usuario de IAM en texto sinformato en la instancia
bull Crear un rol de IAM quepueda asumir un usuario deIAM en cada instancia pararecuperar las credencialestemporales que se actualizanperioacutedicamente generadas atraveacutes deAWS Security TokenService
Es necesario registrar cadainstancia en CodeDeploy parapoder implementarla
No Siacute
Es necesario etiquetar cadainstancia para que CodeDeploypueda implementarla
Siacute Siacute
Puede participar en escenariosde Amazon EC2 Auto Scalingy Elastic Load Balancing comoparte de las implementaciones deCodeDeploy
Siacute No
Se pueden implementar a partirde buckets de Amazon S3 yrepositorios de GitHub
Siacute Siacute
Admiten disparadoresque solicitan el enviacuteo denotificaciones de correoelectroacutenico o SMS cuando seproducen eventos especificadosen las implementaciones oinstancias
Siacute Siacute
Se pueden facturar paraimplementaciones asociadas
No Siacute
Tareas de instancia para CodeDeployPara lanzar o configurar instancias para su uso en implementaciones elija entre las siguientesinstrucciones
Quiero lanzar una nueva instancia Amazon EC2para Amazon Linux o Windows Server
Para lanzar la instancia Amazon EC2 conel miacutenimo esfuerzo consulteCrear unainstancia Amazon EC2 para CodeDeploy (AWSCloudFormationplantilla) (p 221)
Para lanzar la instancia Amazon EC2 por sucuenta consulteCreacioacuten de una instancia de
Versioacuten de API 2014-10-06208
AWS CodeDeploy Guiacutea del usuarioEtiquetado de instancias para
implementaciones de CodeDeploy
Amazon EC2 para CodeDeploy (AWS CLIoconsola de Amazon EC2) (p 217)
Quiero lanzar una nueva instancia de UbuntuServer o RHEL Amazon EC2
Consulte Creacioacuten de una instancia de AmazonEC2 para CodeDeploy (AWS CLIo consola deAmazon EC2) (p 217)
Quiero configurar una instancia de Amazon LinuxWindows Server Ubuntu Server o RHEL AmazonEC2
Consulte Configurar una instancia de Amazon EC2para que funcione con CodeDeploy (p 228)
Quiero configurar una instancia on-premises(dispositivos fiacutesicos que no son instancias AmazonEC2) para Windows Server Ubuntu Server oRHEL
Consulte Working with On-PremisesInstances (p 230)
Quiero que CodeDeploy aprovisione unaflota de instancias de sustitucioacuten durante unaimplementacioacuten bluegreen
Consulte Uso de las implementaciones enCodeDeploy (p 323)
Para preparar instancias Amazon EC2 en grupos de Amazon EC2 Auto Scaling debe seguir algunospasos adicionales Para obtener maacutes informacioacuten consulte Integracioacuten de CodeDeploy con Amazon EC2Auto Scaling (p 53)
Temas
bull Tagging Instances for Deployments (p 209)bull Working with Amazon EC2 Instances (p 216)bull Working with On-Premises Instances (p 230)bull View Instance Details (p 258)bull Instance Health (p 259)
Etiquetado de instancias para grupos deimplementacioacuten en CodeDeploy
Para ayudar a administrar las instancias de Amazon EC2 y las instancias on-premises puede usaretiquetas para asignar sus propios metadatos a cada recurso Las etiquetas le permiten clasificar lasinstancias de diversas maneras por ejemplo seguacuten su finalidad propietario o entorno Esto es uacutetil cuandodispone de muchas instancias Puede identificar raacutepidamente una instancia o grupo de instancias enfuncioacuten de las etiquetas que haya asignado a ellos Cada etiqueta estaacute formada por una clave y un valoropcional ambos definidos por el usuario Para obtener maacutes informacioacuten consulteEtiquetado de losrecursos de Amazon EC2
Para especificar queacute instancias se incluyen en un grupo de implementaciones de CodeDeploy debeespecificar etiquetas en uno o variosgrupos de etiquetas Las instancias que cumplan sus criterios deetiqueta son las instancias en las que estaacute instalada la uacuteltima versioacuten de la aplicacioacuten en el momento decreacioacuten de la implementacioacuten de ese grupo de implementaciones
Note
Tambieacuten puede incluir grupos de Amazon EC2 Auto Scaling en grupos de implementaciones peroestos se identifican por sus nombres y no por las etiquetas que se aplican a las instancias Paraobtener informacioacuten consulte Integracioacuten de CodeDeploy con Amazon EC2 Auto Scaling (p 53)
Versioacuten de API 2014-10-06209
AWS CodeDeploy Guiacutea del usuarioEjemplo 1 Grupo de etiquetas individuales etiqueta uacutenica
Los criterios de las instancias en un grupo de implementaciones pueden ser tan sencillos como una uacutenicaetiqueta en un solo grupo de etiquetas Puede ser tan complejo como 10 etiquetas cada una en un maacuteximode tres grupos de etiquetas
Si utiliza un uacutenico grupo de etiquetas cualquier instancia que se identifique mediante al menos unaetiqueta del grupo se incluye en el grupo de implementaciones Si utiliza varios grupos de etiquetas solose incluyen las instancias que se identifican por al menos una etiqueta en cada uno de los grupos deetiquetas
En los siguientes ejemplos se muestra coacutemo las etiquetas y los grupos de etiquetas se pueden utilizar paraseleccionar las instancias de un grupo de implementaciones
Temasbull Ejemplo 1 Grupo de etiquetas individuales etiqueta uacutenica (p 210)bull Ejemplo 2 Grupo de etiquetas individuales etiquetas muacuteltiples (p 211)bull Ejemplo 3 Varios grupos de etiquetas etiquetas individuales (p 212)bull Ejemplo 4 Varios grupos de etiquetas varias etiquetas (p 214)
Ejemplo 1 Grupo de etiquetas individuales etiquetauacutenicaPuede especificar una uacutenica etiqueta en un uacutenico grupo de etiquetas
Grupo de etiquetas 1
Clave Valor
Nombre AppVersion-ABC
Cada instancia que se etiqueta con Name=AppVersion-ABC forma parte del grupo de implementacionesincluso si tiene otras etiquetas aplicadas
Vista de configuracioacuten de la consola de CodeDeploy
Estructura JSON
ec2TagSet ec2TagSetList [ [
Versioacuten de API 2014-10-06210
AWS CodeDeploy Guiacutea del usuarioEjemplo 2 Grupo de etiquetas
individuales etiquetas muacuteltiples
Type KEY_AND_VALUE Key Name Value AppVersion-ABC ] ]
Ejemplo 2 Grupo de etiquetas individuales etiquetasmuacuteltiplesTambieacuten puede especificar varias etiquetas en un uacutenico grupo de etiquetas
Grupo de etiquetas 1
Clave Valor
Regioacuten North
Regioacuten South
Regioacuten East
Una instancia que se etiqueta con cualquiera de estas tres etiquetas forma parte del grupo deimplementaciones incluso si tiene otras etiquetas aplicadas Si por ejemplo teniacutea otras instanciasetiquetadas Region=West estas no se incluiriacutean en el grupo de implementaciones
Vista de configuracioacuten de la consola de CodeDeploy
Estructura JSON
ec2TagSet ec2TagSetList [ [ Type KEY_AND_VALUE Key Region Value North
Versioacuten de API 2014-10-06211
AWS CodeDeploy Guiacutea del usuarioEjemplo 3 Varios grupos de etiquetas etiquetas individuales
Type KEY_AND_VALUE Key Region Value South Type KEY_AND_VALUE Key Region Value East ] ]
Ejemplo 3 Varios grupos de etiquetas etiquetasindividualesTambieacuten puede utilizar varios conjuntos de grupos de etiquetas con un uacutenico par de clave-valor en cadauno para especificar los criterios de las instancias de un grupo de implementaciones Cuando utiliza variosgrupos de etiquetas en un grupo de implementaciones solo las instancias identificadas por todos losgrupos de etiquetas se incluyen en el grupo de implementaciones
Grupo de etiquetas 1
Clave Valor
Nombre AppVersion-ABC
Grupo de etiquetas 2
Clave Valor
Regioacuten North
Grupo de etiquetas 3
Clave Valor
Tipo t2medium
Puede tener instancias en varias regiones y distintos tipos de instancia etiquetados conName=AppVersion-ABC En este ejemplo solo las instancias tambieacuten etiquetadas con Region=North yType=t2medium forman parte del grupo de implementaciones
Vista de configuracioacuten de la consola de CodeDeploy
Versioacuten de API 2014-10-06212
AWS CodeDeploy Guiacutea del usuarioEjemplo 3 Varios grupos de etiquetas etiquetas individuales
Estructura JSON
ec2TagSet ec2TagSetList [ [ Type KEY_AND_VALUE Key Name Value AppVersion-ABC ] [ Type KEY_AND_VALUE Key Region Value North ] [ Type KEY_AND_VALUE Key Type Value t2medium ] ]
Versioacuten de API 2014-10-06213
AWS CodeDeploy Guiacutea del usuarioEjemplo 4 Varios grupos de etiquetas varias etiquetas
Ejemplo 4 Varios grupos de etiquetas variasetiquetasAl utilizar varios grupos de etiquetas con varias etiquetas en uno o maacutes grupos una instancia debecoincidir con al menos una de las etiquetas de cada uno de los grupos
Grupo de etiquetas 1
Clave Valor
Entorno Beta
Entorno Staging
Grupo de etiquetas 2
Clave Valor
Regioacuten North
Regioacuten South
Regioacuten East
Grupo de etiquetas 3
Clave Valor
Tipo t2medium
Tipo t2large
En este ejemplo para que se incluya en el grupo de implementaciones una instancia debe ser etiquetadacon (1) Environment=Beta o Environment=Staging (2) Region=North Region=SouthoRegion=East y (3) Type=t2medium o Type=t2large
En modo de ilustracioacuten las instancias con los siguientes grupos de etiquetas estariacutean entre las que seincluyen en el grupo de implementaciones
bull Environment=Beta Region=NorthType=t2mediumbull Environment=StagingRegion=EastType=t2largebull Environment=StagingRegion=SouthType=t2large
Las instancias con los siguientes grupos de etiquetas no estariacutean entre las que se incluyen en el grupo deimplementaciones Los valores de clave resaltados hacen que las instancias que se excluyan
bull Environment=Beta Region=WestType=t2mediumbull Environment=StagingRegion=EastType=t2microbull Environment=ProductionRegion=SouthType=t2large
Vista de configuracioacuten de la consola de CodeDeploy
Versioacuten de API 2014-10-06214
AWS CodeDeploy Guiacutea del usuarioEjemplo 4 Varios grupos de etiquetas varias etiquetas
Estructura JSON
ec2TagSet ec2TagSetList [ [ Type KEY_AND_VALUE Key Environment Value Beta Type KEY_AND_VALUE Key Environment Value Staging
Versioacuten de API 2014-10-06215
AWS CodeDeploy Guiacutea del usuarioTrabajar con instancias Amazon EC2
] [ Type KEY_AND_VALUE Key Region Value North Type KEY_AND_VALUE Key Region Value South Type KEY_AND_VALUE Key Region Value East ] [ Type KEY_AND_VALUE Key Type Value t2medium Type KEY_AND_VALUE Key Type Value t2large ] ]
Trabajar con instancias Amazon EC2 paraCodeDeploy
Una instancia Amazon EC2 es un entorno de informaacutetica virtual que se crea y configura medianteAmazon Elastic Compute Cloud Amazon EC2 proporciona capacidad informaacutetica escalable en la nubede AWS Puede utilizar Amazon EC2 para lanzar tantos servidores virtuales como necesite para susimplementaciones de CodeDeploy de
Para obtener maacutes informacioacuten acerca de Amazon EC2 consulteGuiacutea de introduccioacuten a Amazon EC2
Las instrucciones de esta seccioacuten explican coacutemo crear y configurar instancias Amazon EC2 para utilizarlasen sus implementaciones de CodeDeploy de
Temasbull Creacioacuten de una instancia de Amazon EC2 para CodeDeploy (AWS CLIo consola de Amazon
EC2) (p 217)bull Crear una instancia Amazon EC2 para CodeDeploy (AWS CloudFormationplantilla) (p 221)bull Configurar una instancia de Amazon EC2 para que funcione con CodeDeploy (p 228)
Versioacuten de API 2014-10-06216
AWS CodeDeploy Guiacutea del usuarioCreacioacuten de una instancia de
Amazon EC2 para CodeDeploy
Creacioacuten de una instancia de Amazon EC2 paraCodeDeploy (AWS CLIo consola de Amazon EC2)Estas instrucciones explican coacutemo lanzar una nueva instancia Amazon EC2 configurada para su uso enimplementaciones de CodeDeploy
Puedes utilizar nuestraAWS CloudFormationplantilla para lanzar una instancia Amazon EC2 queejecuta Amazon Linux o Windows Server que ya estaacute configurada para su uso en implementacionesde CodeDeploy No proporcionamos unAWS CloudFormationplantilla para instancias Amazon EC2 queejecutan Ubuntu Server o Red Hat Enterprise Linux (RHEL) Si desea conocer otras alternativas al uso dela plantilla consulte Trabajo con instancias para CodeDeploy (p 207)
Puede utilizar la consola de Amazon EC2AWS CLIo API de Amazon EC2 para lanzar una instancia deAmazon EC2
Lance una instancia de Amazon EC2 (consola)Requisitos previos
Si auacuten no lo ha hecho siga las instrucciones que figuran enIntroduccioacuten a CodeDeploy (p 35)para instalary configurar laAWS CLIy cree un perfil de instancia de IAM
Lance una instancia de Amazon EC2
1 Inicie sesioacuten en la AWS Management Console y abra la consola de Amazon EC2 en httpsconsoleawsamazoncomec2
2 En el panel de navegacioacuten elija Instances (Instancias) y seleccione Launch Instance (Lanzarinstancia)
3 En la paacuteginaPaso 1 Elegir una imagen de maacutequina de Amazon (AMI)paacutegina desde laQuickStart (Inicio raacutepido) busque el sistema operativo y la versioacuten que quiera utilizar y a continuacioacutenelijaSelect Debe elegir un sistema operativo de AMI de Amazon EC2 compatible con CodeDeployPara obtener maacutes informacioacuten consulte Sistemas operativos compatibles con el agente deCodeDeploy (p 175)
4 En la paacuteginaPaso 2 Paacutegina Choose an Instance Type elija cualquier tipo de instancia Amazon EC2disponible y a continuacioacuten elijaSiguiente Paacutegina Configure Instance Details (Configurar los detallesde la instancia)
5 En la paacuteginaPaso 3 Paacutegina Configure Instance Details (Configurar los detalles de la instancia)EnlaRol de IAMlista elija el rol de instancia de IAM que creoacute enPaso 4 Crear un perfil de instanciasde IAM para sus instancias Amazon EC2 (p 43) Si ha utilizado el nombre de rol sugerido elijaCodeDeployDemo-EC2-Instance-Profile Si ha creado su propio nombre de rol seleccioacutenelo
Note
SiLanzamiento a EC2-Classico una nube virtual privada (VPC) predeterminada no semuestra en laRedy no puede elegir un tipo de instancia Amazon EC2 distinto que admita ellanzamiento en EC2-Classic debe elegir o crear una VPC de Amazon y subred Elija Createnew VPC (Crear nueva VPC) o Create new subnet (Crear nueva subred) o ambas opcionesPara obtener maacutes informacioacuten consulteSu VPC y subredes
6 Seleccione Next (Siguiente) Add Storage (Agregar almacenamiento)7 Salir delPaso 4 Adicioacuten de almacenamientosin cambios y elijaSiguiente Antildeadir etiquetas8 En la paacuteginaPaso 5 Antildeadir etiquetaspaacutegina elijaAgregue etiqueta9 En el cuadro Key (Clave) escriba Name En el cuadro Value (Valor) escriba CodeDeployDemo
Versioacuten de API 2014-10-06217
AWS CodeDeploy Guiacutea del usuarioCreacioacuten de una instancia de
Amazon EC2 para CodeDeploy
Important
El contenido de los cuadros Key (Clave) y Value (Valor) distingue entre mayuacutesculas yminuacutesculas
10 Seleccione Next (Siguiente) Configure Security Group (Configurar grupo de seguridad)11 En la paacuteginaPaso 6 Paacutegina Configure Security Group (Configurar grupo de seguridad) salga de
laCrear un nuevo grupo de seguridadopcioacuten seleccionada
Se configura un rol de SSH predeterminado para instancias Amazon EC2 que ejecutan Amazon LinuxUbuntu Server o RHEL Se configura un rol de RDP predeterminado para instancias de Amazon EC2que ejecutan Windows Server
12 Si desea abrir el puerto HTTP elija el botoacuten Add Rule (Antildeadir regla) y en la lista desplegableType (Tipo) elija HTTP Acepte el valor Source (Origen) predeterminado de Custom 00000(Personalizado 00000) y luego elija Review and Launch (Revisar y lanzar)
Note
En un entorno de produccioacuten recomendamos restringir el acceso a los puertos SSHRDP y HTTP en lugar de especificarEn cualquier lugar 0000 CodeDeploy no requiereacceso ilimitado a los puertos y no requiere acceso HTTP Para obtener maacutes informacioacutenconsulteSugerencias para proteger la instancia de Amazon EC2
Si aparece el cuadro de diaacutelogo Boot from General Purpose (SSD) (Arrancar desde uso general[SSD]) siga las instrucciones y luego seleccione Next (Siguiente)
13 Salir delPaso 7 Paacutegina Review Instance Launch (Revisar lanzamiento de instancia)sin cambios yelijaLanzamiento
14 En el cuadro de diaacutelogo Select an existing key pair or create a new key pair (Seleccionar par de clavesexistentes o crear nuevo par de claves) elija Choose an existing key pair (Elegir un par de clavesexistente) o Create a new key pair (Crear un nuevo par de claves) Si ya ha configurado un par declaves de la instancia de Amazon EC2 puede elegirlo aquiacute
Si auacuten no tiene un par de claves de instancia de Amazon EC2 elija Create a new key pair (Crear unnuevo par de claves) y asiacutegnele un nombre faacutecil de reconocer ElegirDescargar Par de clavesparadescargar el key pair de la instancia de Amazon EC2 en su equipo
Important
Debe disponer de un key pair si desea obtener acceso a su instancia Amazon EC2 con SSHo RDP
15 Elija Launch Instances16 Seleccione el ID de la instancia de Amazon EC2 No continuacutee hasta que la instancia se haya lanzado y
haya superado todas las comprobaciones
Instalacioacuten del agente de CodeDeploy
El agente de CodeDeploy debe instalarse en la instancia Amazon EC2 antes de usarlo enimplementaciones de CodeDeploy Para obtener maacutes informacioacuten consulte Instalacioacuten del agente deCodeDeploy (p 189)
Note
Puede configurar la instalacioacuten y las actualizaciones automaacuteticas del agente de CodeDeploy alcrear el grupo de implementacioacuten en la consola
Versioacuten de API 2014-10-06218
AWS CodeDeploy Guiacutea del usuarioCreacioacuten de una instancia de
Amazon EC2 para CodeDeploy
Lance una instancia de Amazon EC2 (CLI)
Requisitos previos
Si auacuten no lo ha hecho siga las instrucciones que figuran enIntroduccioacuten a CodeDeploy (p 35)para instalary configurar laAWS CLIy cree un perfil de instancia de IAM
Lance una instancia de Amazon EC2
1 Solo para Windows ServerSi va a crear una instancia Amazon EC2 que ejecuta Windows Serverllame alcreate-security-groupyauthorize-security-group-ingresscomandos para crear un grupo deseguridad que permita el acceso RDP (que no se permite de forma predeterminada) y en su casoel acceso HTTP Por ejemplo para crear un grupo de seguridad denominadoDemostracioacuten deCodeDeploy-Windows-Security-Group ejecute los siguientes comandos uno a la vez
aws ec2 create-security-group --group-name CodeDeployDemo-Windows-Security-Group --description For launching Windows Server images for use with CodeDeploy
aws ec2 authorize-security-group-ingress --group-name CodeDeployDemo-Windows-Security-Group --to-port 3389 --ip-protocol tcp --cidr-ip 00000 --from-port 3389
aws ec2 authorize-security-group-ingress --group-name CodeDeployDemo-Windows-Security-Group --to-port 80 --ip-protocol tcp --cidr-ip 00000 --from-port 80
Note
Para fines de demostracioacuten estos comandos crean un grupo de seguridad que permiteacceso ilimitado a RDP a traveacutes del puerto 3389 y en su caso a HTTP a traveacutes del puerto80 Es recomendable que restrinja el acceso a los puertos HTTP y RDP CodeDeploy norequiere acceso ilimitado a los puertos y no requiere acceso HTTP Para obtener maacutesinformacioacuten consulteSugerencias para proteger la instancia de Amazon EC2
2 Llame arun-instancespara crear y lanzar la instancia de Amazon EC2
Antes de llamar a este comando debe recopilar lo siguiente
bull El ID de una imagen de maacutequina de Amazon (AMI) (id-ami) que utiliza para la instancia Paraobtener el ID consulteBuacutesqueda de una AMI de Linux
bull El nombre del tipo de instancia de Amazon EC2 (tipo de instancia) que creescomot1micro Para ver una lista consulteTipos de instancias de Amazon EC2
bull El nombre de un perfil de instancia de IAM con permiso para acceder al bucket de Amazon S3 en elque se almacenan los archivos de instalacioacuten del agente de CodeDeploy para la regioacuten
Para obtener informacioacuten sobre la creacioacuten de un perfil de instancia de IAM consultePaso 4 Crearun perfil de instancias de IAM para sus instancias Amazon EC2 (p 43)
bull El nombre de un key pair de instancia de Amazon EC2 (nombre-clave) para permitir el accesoSSH a una instancia Amazon EC2 que ejecuta Amazon Linux Ubuntu Server RHEL o RDP a unainstancia de Amazon EC2 que ejecuta Windows Server
Important
Escriba solo el nombre del par de claves no la extensioacuten de archivo del par de claves Porejemplo my-keypair no my-keypairpem
Versioacuten de API 2014-10-06219
AWS CodeDeploy Guiacutea del usuarioCreacioacuten de una instancia de
Amazon EC2 para CodeDeploy
Para encontrar el nombre de un key pair abra la consola de Amazon EC2 enhttpsconsoleawsamazoncomec2 En el panel de navegacioacuten en Network amp Security (Red yseguridad) elija Key Pairs (Pares de claves) y anote el nombre del par de claves de la lista
Para generar un key pair consulteCreacioacuten de un key pair con Amazon EC2 Compruebe quecrea el key pair en una de las regiones que se encuentran en la lista deRegiones y puntos deenlaceenAWSReferencia general de De lo contrario no podraacute utilizar el key pair de la instanciaAmazon EC2 con CodeDeploy
Para Amazon Linux RHEL y Ubuntu Server
Para llamar arun-instancespara lanzar una instancia Amazon EC2 que ejecute Amazon Linux UbuntuServer o RHEL y adjuntar el perfil de instancia de IAM que creoacute enPaso 4 Crear un perfil de instanciasde IAM para sus instancias Amazon EC2 (p 43) Por ejemplo
aws ec2 run-instances --image-id ami-id --key-name key-name --count 1 --instance-type instance-type --iam-instance-profile Name=iam-instance-profile
Note
Este comando crea un grupo de seguridad predeterminado para la instancia Amazon EC2que permite el acceso a varios puertos incluido acceso ilimitado a SSH a traveacutes del puerto 22y en su caso a HTTP a traveacutes del puerto 80 Es recomendable que restrinja el acceso a lospuertos HTTP y SSH uacutenicamente CodeDeploy no requiere acceso ilimitado a los puertos yno requiere acceso a los puertos HTTP Para obtener maacutes informacioacuten consulteSugerenciaspara proteger la instancia de Amazon EC2
Para Windows Server
Para llamar arun-instancespara lanzar una instancia Amazon EC2 que ejecuta Windows Server yadjuntar el perfil de instancia de IAM que creoacute enPaso 4 Crear un perfil de instancias de IAM para susinstancias Amazon EC2 (p 43)y especifique el nombre del grupo de seguridad que creoacute en el Paso 1Por ejemplo
aws ec2 run-instances --image-id ami-id --key-name key-name --count 1 --instance-type instance-type --iam-instance-profile Name=iam-instance-profile --security-groups CodeDeploy-Windows-Security-Group
Estos comandos lanzan una sola instancia Amazon EC2 con la AMI el key pair y el tipo de instanciaespecificados con el perfil de instancia de IAM indicado y ejecutan el script especificado durante ellanzamiento
3 Anote el valor de InstanceID en la salida Si olvida este valor puede obtenerlo maacutes tarde si llamaadescribe-instancescontra el key pair de instancia de Amazon EC2
aws ec2 describe-instances --filters Name=key-nameValues=keyName --query Reservations[]Instances[][InstanceId] --output text
Utilice el ID de instancia para llamar alcreate-tags que etiqueta la instancia Amazon EC2 para queCodeDeploy pueda encontrarla maacutes adelante durante una implementacioacuten En el ejemplo siguientela etiqueta se denominaCodeDeployDemo pero puede especificar cualquier etiqueta de instancia deAmazon EC2 que desee
Versioacuten de API 2014-10-06220
AWS CodeDeploy Guiacutea del usuarioCrear una instancia Amazon EC2
(AWS CloudFormationplantilla)
aws ec2 create-tags --resources instance-id --tags Key=NameValue=CodeDeployDemo
Puede aplicar varias etiquetas a una instancia al mismo tiempo Por ejemplo
aws ec2 create-tags --resources instance-id --tags Key=NameValue=testInstance Key=RegionValue=West Key=EnvironmentValue=Beta
Para verificar que la instancia Amazon EC2 se ha lanzado y ha superado todas las comprobacionesutilice el ID de instancia para llamar aldescribe-instance-statuscomando
aws ec2 describe-instance-status --instance-ids instance-id --query InstanceStatuses[]InstanceStatus[Status] --output text
Si la instancia se ha lanzado y ha superado todas las comprobaciones aparece ok en la salida
Instalacioacuten del agente de CodeDeploy
El agente de CodeDeploy debe instalarse en la instancia Amazon EC2 antes de usarlo enimplementaciones de CodeDeploy Para obtener maacutes informacioacuten consulte Instalacioacuten del agente deCodeDeploy (p 189)
Note
Puede configurar la instalacioacuten y las actualizaciones automaacuteticas del agente de CodeDeploy alcrear el grupo de implementacioacuten en la consola
Crear una instancia Amazon EC2 para CodeDeploy(AWS CloudFormationplantilla)Puedes utilizar nuestraAWS CloudFormationplantilla para lanzar raacutepidamente una instancia AmazonEC2 que ejecute Amazon Linux o Windows Server Puede utilizar elAWS CLI la consola de CodeDeployo laAWSAPI para lanzar la instancia con la plantilla Ademaacutes de lanzar la instancia la plantilla hace losiguiente
bull Indica aAWS CloudFormationPara conceder permiso a la instancia para participar en lasimplementaciones de CodeDeploy
bull Etiqueta la instancia para que CodeDeploy pueda encontrarla durante una implementacioacutenbull Instala y ejecuta el agente de CodeDeploy en la instancia
No tiene que usar nuestroAWS CloudFormationpara configurar una instancia Amazon EC2 Si deseaconocer otras alternativas consulte Trabajo con instancias para CodeDeploy (p 207)
No proporcionamos unAWS CloudFormationplantilla para instancias Amazon EC2 que ejecutan UbuntuServer o Red Hat Enterprise Linux (RHEL)
Temasbull Antes de empezar (p 222)bull Lance una instancia Amazon EC2 con elAWS CloudFormationtemplate (consola) (p 222)bull Lance una instancia Amazon EC2 con elAWS CloudFormationplantilla (AWS CLI) (p 225)
Versioacuten de API 2014-10-06221
AWS CodeDeploy Guiacutea del usuarioCrear una instancia Amazon EC2
(AWS CloudFormationplantilla)
Antes de empezarAntes de poder utilizar elAWS CloudFormationplantilla para lanzar instancias Amazon EC2 aseguacuterese dehaber seguido los pasos siguientes
1 Aseguacuterese de realizar los pasos que se indican en Paso 3 Provisionar un usuario de IAM (p 41)Compruebe que la poliacutetica asignada al usuario de IAM tiene los siguientes permisos miacutenimos yagregue cualquiera que no esteacute presente
bull nube de formacioacuten bull codedeploybull ec2bull Iam Antildeadir rol al perfil de instanciabull IAM Crear perfil de instanciabull iamCreateRolebull IAM eliminar perfil de instanciabull iamDeleteRolebull iamDeleteRolePolicybull iamGetRolebull iamDeleteRolePolicybull iamPutRolePolicybull IAM Eliminar rol del perfil de instancia
2 Aseguacuterese de disponer de un key pair de instancia para permitir el acceso SSH a la instancia AmazonEC2 que ejecuta Amazon Linux o el acceso RDP a la instancia que ejecuta Windows Server
Para encontrar el nombre de un key pair abra la consola Amazon EC2 enhttpsconsoleawsamazoncomec2 En el panel de navegacioacuten en Network amp Security (Red y seguridad)elija Key Pairs (Pares de claves) y anote el nombre del par de claves de la lista
Para generar un key pair nuevo consulteCreacioacuten del key pair mediante Amazon EC2 Aseguacuteresede que crea el key pair en una de las regiones que se encuentran en la lista deRegiones y puntos deenlaceenAWSReferencia general de De lo contrario no puede utilizar el key pair de instancia conCodeDeploy
Lance una instancia Amazon EC2 con elAWSCloudFormationtemplate (consola)1 Inicie sesioacuten en la AWS Management Console y abra la consola de AWS CloudFormation en https
consoleawsamazoncomcloudformation
Important
Inicie sesioacuten en la AWS Management Console con la misma cuenta que utilizoacute enIntroduccioacuten a CodeDeploy (p 35) En la barra de navegacioacuten en el selector de regioneselija una de las regiones enumeradas enRegiones y puntos de enlaceenAWSReferenciageneral de CodeDeploy solo es compatible con estas regiones
2 Elija Create Stack3 EnChoose a template (Elegir una plantilla) eligeEspecificacioacuten de una URL de plantilla de Amazon
S3 En el cuadro escriba la ubicacioacuten de la plantilla de AWS CloudFormation para su regioacuten y acontinuacioacuten elija Next (Siguiente)
Versioacuten de API 2014-10-06222
AWS CodeDeploy Guiacutea del usuarioCrear una instancia Amazon EC2
(AWS CloudFormationplantilla)
Regioacuten Location ofAWS CloudFormationplantilla
Regioacuten del este de EE UU (Ohio) https3-us-east-2amazonawscomaws-codedeploy-us-east-2templateslatestCodeDeploy_SampleCF_Templatejson
Regioacuten del este de EE UU (N Virginia) https3amazonawscomaws-codedeploy-us-east-1templateslatestCodeDeploy_SampleCF_Templatejson
Regioacuten del oeste de EE UU (N California) https3-us-west-1amazonawscomaws-codedeploy-us-west-1templateslatestCodeDeploy_SampleCF_Templatejson
Regioacuten del oeste de EE UU (Oregon) https3-us-west-2amazonawscomaws-codedeploy-us-west-2templateslatestCodeDeploy_SampleCF_Templatejson
Canada (Central) Region https3-ca-central-1amazonawscomaws-codedeploy-ca-central-1templateslatestCodeDeploy_SampleCF_Templatejson
Europe (Ireland) Region https3-eu-west-1amazonawscomaws-codedeploy-eu-west-1templateslatestCodeDeploy_SampleCF_Templatejson
Europe (London) Region https3-eu-west-2amazonawscomaws-codedeploy-eu-west-2templateslatestCodeDeploy_SampleCF_Templatejson
Regioacuten de Europa (Pariacutes) https3-eu-west-3amazonawscomaws-codedeploy-eu-west-3templateslatestCodeDeploy_SampleCF_Templatejson
Europe (Frankfurt) Region https3-eu-central-1amazonawscomaws-codedeploy-eu-central-1templateslatestCodeDeploy_SampleCF_Templatejson
Regioacuten Asia Paciacutefico (Hong Kong) https3-ap-east-1amazonawscomaws-codedeploy-ap-east-1templateslatestCodeDeploy_SampleCF_Templatejson
Versioacuten de API 2014-10-06223
AWS CodeDeploy Guiacutea del usuarioCrear una instancia Amazon EC2
(AWS CloudFormationplantilla)
Regioacuten Location ofAWS CloudFormationplantilla
Asia Pacific (Tokyo) Region https3-ap-northeast-1amazonawscomaws-codedeploy-ap-northeast-1templateslatestCodeDeploy_SampleCF_Templatejson
Asia Pacific (Seoul) Region https3-ap-northeast-2amazonawscomaws-codedeploy-ap-northeast-2templateslatestCodeDeploy_SampleCF_Templatejson
Asia Pacific (Singapore) Region https3-ap-southeast-1amazonawscomaws-codedeploy-ap-southeast-1templateslatestCodeDeploy_SampleCF_Templatejson
Asia Pacific (Sydney) Region https3-ap-southeast-2amazonawscomaws-codedeploy-ap-southeast-2templateslatestCodeDeploy_SampleCF_Templatejson
Regioacuten Asia-Paciacutefico (Mumbai) https3-ap-south-1amazonawscomaws-codedeploy-ap-south-1templateslatestCodeDeploy_SampleCF_Templatejson
South America (Satildeo Paulo) Region aws-codedeploy-ap-northeast-1s3ap-east-1amazonawscomtemplateslatestCodeDeploy_SampleCF_Templatejson
4 En el cuadro Stack name (Nombre de la pila) escriba un nombre para la pila (por ejemploCodeDeployDemoStack)
5 En Parameters (Paraacutemetros) escriba lo siguiente y seleccione Next (Siguiente)
bull En InstanceCount escriba el nuacutemero de instancias que desea lanzar (Le recomendamos que dejeel valor predeterminado 1)
bull En InstanceType escriba el tipo de instancia que desea lanzar (o deje el valor predeterminadot1micro)
bull ParaKeyPairName escriba el nombre del key pair de instancia Escriba solo el nombre del par declaves no la extensioacuten de archivo del par de claves
bull ParaOperatingSystemcaja escribaWindowspara lanzar instancias que ejecutan Windows Server (odeje el valor predeterminado) deLinux)
bull En SSHLocation escriba el rango de direcciones IP que desea utilizar para conectarse a la instanciacon SSH o RDP (o deje el valor predeterminado 00000)
Important
El valor predeterminado es00000se proporciona uacutenicamente con fines ilustrativosCodeDeployno requiere instancias Amazon EC2 para tener acceso ilimitado a los puertosEs recomendable que restrinja el acceso a los puertos SSH (y HTTP) Para obtener maacutesinformacioacuten consulteConsejos para proteger la instancia Amazon EC2
Versioacuten de API 2014-10-06224
AWS CodeDeploy Guiacutea del usuarioCrear una instancia Amazon EC2
(AWS CloudFormationplantilla)
bull ParaTagKey escriba la clave de etiqueta de instancia que CodeDeploya utilizaraacute para identificar lasinstancias durante la implementacioacuten (o deje el valor predeterminadoNombre)
bull ParaTagValue escriba el valor de etiqueta de instancia que CodeDeploya utilizaraacute para identificarlas instancias durante la implementacioacuten (o deje el valor predeterminadoCodeDeployDemo)
6 En la paacutegina Options (Opciones) deje las casillas de opcioacuten vaciacuteas y elija Next (Siguiente)
Important
AWS CloudFormationlas etiquetas de son distintas de las etiquetas de CodeDeployAWSCloudFormationutiliza etiquetas para simplificar la administracioacuten de la infraestructuraCodeDeploy utiliza etiquetas para identificar instancias Amazon EC2 Ha especificadoetiquetas de CodeDeploy en elEspecificacioacuten de paraacutemetros(Se ha creado el certificado)
7 En la paacuteginaReview (Revisar) enCapacidades seleccione elReconozco queAWSCloudFormationpodriacutea crear recursos de IAMy a continuacioacuten elijaCrear
DespueacutesAWS CloudFormationha creado la pila y lanzado las instancias Amazon EC2 en elAWSCloudFormationconsolaCREATE_COMPLETEse mostraraacute en elEstadocolumn Este proceso puedetardar varios minutos
Para verificar que el agente de CodeDeployse estaacute ejecutando en las instancias Amazon EC2consulteAdministracioacuten de operaciones del agente de CodeDeploy (p 186)y a continuacioacuten vaya aCrearuna aplicacioacuten con CodeDeploy (p 273)
Lance una instancia Amazon EC2 con elAWSCloudFormationplantilla (AWS CLI)1 Utilice nuestra plantilla de AWS CloudFormation en una llamada al comando create-stack Esta pila
lanzaraacute en una nueva instancia Amazon EC2 con el agente de CodeDeploy instalado
Para lanzar una instancia Amazon EC2 que ejecute Amazon Linux
aws cloudformation create-stack --stack-name CodeDeployDemoStack --template-url templateURL --parameters ParameterKey=InstanceCountParameterValue=1 ParameterKey=InstanceTypeParameterValue=t1micro ParameterKey=KeyPairNameParameterValue=keyName ParameterKey=OperatingSystemParameterValue=Linux ParameterKey=SSHLocationParameterValue=00000 ParameterKey=TagKeyParameterValue=Name ParameterKey=TagValueParameterValue=CodeDeployDemo --capabilities CAPABILITY_IAM
Para lanzar una instancia Amazon EC2 que ejecute Windows Server
aws cloudformation create-stack --stack-name CodeDeployDemoStack --template-url template-url --parameters ParameterKey=InstanceCountParameterValue=1 ParameterKey=InstanceTypeParameterValue=t1micro ParameterKey=KeyPairNameParameterValue=keyName ParameterKey=OperatingSystemParameterValue=Windows ParameterKey=SSHLocationParameterValue=00000 ParameterKey=TagKeyParameterValue=Name ParameterKey=TagValueParameterValue=CodeDeployDemo --capabilities CAPABILITY_IAM
claveName (Nombre)es el nombre del key pair de instancia Escriba solo el nombre del par declaves no la extensioacuten de archivo del par de claves
Versioacuten de API 2014-10-06225
AWS CodeDeploy Guiacutea del usuarioCrear una instancia Amazon EC2
(AWS CloudFormationplantilla)
template-url es la ubicacioacuten de la plantilla de AWS CloudFormation para su regioacuten
Regioacuten Location ofAWS CloudFormationplantilla
Regioacuten del este de EE UU (Ohio) https3-us-east-2amazonawscomaws-codedeploy-us-east-2templateslatestCodeDeploy_SampleCF_Templatejson
Regioacuten del este de EE UU (N Virginia) https3amazonawscomaws-codedeploy-us-east-1templateslatestCodeDeploy_SampleCF_Templatejson
Regioacuten del oeste de EE UU (N California) https3-us-west-1amazonawscomaws-codedeploy-us-west-1templateslatestCodeDeploy_SampleCF_Templatejson
Regioacuten del oeste de EE UU (Oregon) https3-us-west-2amazonawscomaws-codedeploy-us-west-2templateslatestCodeDeploy_SampleCF_Templatejson
Canada (Central) Region https3-ca-central-1amazonawscomaws-codedeploy-ca-central-1templateslatestCodeDeploy_SampleCF_Templatejson
Europe (Ireland) Region https3-eu-west-1amazonawscomaws-codedeploy-eu-west-1templateslatestCodeDeploy_SampleCF_Templatejson
Europe (London) Region https3-eu-west-2amazonawscomaws-codedeploy-eu-west-2templateslatestCodeDeploy_SampleCF_Templatejson
Regioacuten de Europa (Pariacutes) https3-eu-west-3amazonawscomaws-codedeploy-eu-west-3templateslatestCodeDeploy_SampleCF_Templatejson
Europe (Frankfurt) Region https3-eu-central-1amazonawscomaws-codedeploy-eu-central-1templateslatestCodeDeploy_SampleCF_Templatejson
Regioacuten Asia Paciacutefico (Hong Kong) https3-ap-east-1amazonawscomaws-codedeploy-ap-east-1templateslatestCodeDeploy_SampleCF_Templatejson
Versioacuten de API 2014-10-06226
AWS CodeDeploy Guiacutea del usuarioCrear una instancia Amazon EC2
(AWS CloudFormationplantilla)
Regioacuten Location ofAWS CloudFormationplantilla
Asia Pacific (Tokyo) Region https3-ap-northeast-1amazonawscomaws-codedeploy-ap-northeast-1templateslatestCodeDeploy_SampleCF_Templatejson
Asia Pacific (Seoul) Region https3-ap-northeast-2amazonawscomaws-codedeploy-ap-northeast-2templateslatestCodeDeploy_SampleCF_Templatejson
Asia Pacific (Singapore) Region https3-ap-southeast-1amazonawscomaws-codedeploy-ap-southeast-1templateslatestCodeDeploy_SampleCF_Templatejson
Asia Pacific (Sydney) Region https3-ap-southeast-2amazonawscomaws-codedeploy-ap-southeast-2templateslatestCodeDeploy_SampleCF_Templatejson
Regioacuten Asia-Paciacutefico (Mumbai) https3-ap-south-1amazonawscomaws-codedeploy-ap-south-1templateslatestCodeDeploy_SampleCF_Templatejson
South America (Satildeo Paulo) Region aws-codedeploy-ap-northeast-1s3ap-east-1amazonawscomtemplateslatestCodeDeploy_SampleCF_Templatejson
Este comando crea unAWS CloudFormationpila llamadaCodeDeployDemoStack utilizandoelAWS CloudFormationen el bucket de Amazon S3 especificado La instancia Amazon EC2 sebasa en el tipo de instancia t1micro pero puede utilizar cualquier tipo Estaacute etiquetada con el valorCodeDeployDemo pero se puede etiquetar con cualquier valor Se le ha aplicado el par de claves deinstancia especificado
2 Ejecute el comando describe-stacks para comprobar que la pila de AWS CloudFormation denominadaCodeDeployDemoStack se ha creado correctamente
aws cloudformation describe-stacks --stack-name CodeDeployDemoStack --query Stacks[0]StackStatus --output text
No continuacutee hasta que se devuelva el valor CREATE_COMPLETE
Para comprobar que el agente de CodeDeploy se estaacute ejecutando en la instancia Amazon EC2consulteAdministracioacuten de operaciones del agente de CodeDeploy (p 186)y a continuacioacuten vaya aCrearuna aplicacioacuten con CodeDeploy (p 273)
Versioacuten de API 2014-10-06227
AWS CodeDeploy Guiacutea del usuarioConfigurar una instancia de Amazon EC2
Configurar una instancia de Amazon EC2 para quefuncione con CodeDeployEn estas instrucciones se muestra coacutemo configurar una instancia de Amazon EC2 que ejecutaAmazon Linux Ubuntu Server Red Hat Enterprise Linux (RHEL) o Windows Server para utilizarla enimplementaciones de CodeDeploy
Note
Si no tiene una instancia de Amazon EC2 puede utilizar elAWS CloudFormationplantilla paralanzar una que ejecute Amazon Linux o Windows Server No proporcionamos una plantilla paraUbuntu Server o RHEL
Paso 1 Verifique que el perfil de instancia de IAM esteacute adjuntadoa su instancia de Amazon EC21 Inicie sesioacuten en la AWS Management Console y abra la consola de Amazon EC2 en https
consoleawsamazoncomec22 En el panel de navegacioacuten bajo Instances elija Instances3 Busque su instancia de Amazon EC2 en la lista y seleccioacutenela4 En el panel de detalles en elDescripcioacuten observe el valor de en laRol de IAMy a continuacioacuten pase a
la siguiente seccioacuten
Si el campo estaacute vaciacuteo puede asociar a la instancia un perfil de instancia de IAM Para obtenerinformacioacuten consulteAsociar un rol de IAM a una instancia
Paso 2 Verifique que el perfil de instancia de IAM adjunto tengalos permisos de acceso correctos1 Abra la consola de IAM en httpsconsoleawsamazoncomiam2 Seleccione Roles (Roles) en el panel de navegacioacuten3 Busque y elija el nombre de rol de IAM que observoacute en el paso 4 de la seccioacuten anterior
Note
Si desea utilizar el rol de servicio generado por la plantilla de AWS CloudFormation en lugardel que creoacute siguiendo las instrucciones de Paso 2 Creacioacuten de un rol de servicio paraCodeDeploy (p 36) tenga en cuenta lo siguienteEn algunas versiones de nuestraAWS CloudFormation el nombre de visualizacioacuten delperfil de instancia de IAM generado y adjuntado a las instancias de Amazon EC2 no esel mismo que el nombre de visualizacioacuten en la consola de IAM Por ejemplo el perfil deinstancia de IAM podriacutea tener un nombre para mostrar deCodeDeploySampleStack-expnyi6-InstanceRoleInstanceProfile-IK8J8A9123EX mientras queel perfil de instancia de IAM en la consola de IAM podriacutea tener el nombre devisualizacioacutenCodeDeploySampleStack-expnyi6-InstanceRole-C5P33V1L64EXPara ayudarle a identificar el perfil de instancia en la consola de IAM veraacute el prefijodeCodeDeploySampleStack-expnyi6-InstanceRolees el mismo para ambos Paraobtener informacioacuten acerca de por queacute estos nombres de visualizacioacuten podriacutean ser diferentesconsultePerfiles de instancias
4 Seleccione la pestantildea Trust Relationships Si no hay entrada enLas entidades de confianzaque diceElproveedor (s) de identidad ec2amazonawscom no puede utilizar esta instancia de Amazon EC2
Versioacuten de API 2014-10-06228
AWS CodeDeploy Guiacutea del usuarioConfigurar una instancia de Amazon EC2
Deteacutengase y cree una instancia de Amazon EC2 con la informacioacuten deTrabajo con instancias paraCodeDeploy (p 207)
Si hay una entrada que digaEl proveedor (s) de identidad ec2amazonawscomy solamentealmacenaraacute sus aplicaciones en repositorios de GitHub y a continuacioacuten pase directamente aPaso 3Etiquetar la instancia de Amazon EC2 (p 230)
Si hay una entrada que digaEl proveedor (s) de identidad ec2amazonawscomy estaacute almacenandosus aplicaciones en buckets de Amazon S3 elija elPermisospestantildea
5 Si hay una poliacutetica en el aacuterea Permissions policies (Poliacuteticas de permisos) ampliacutee la poliacutetica y acontinuacioacuten elija Edit policy (Editar poliacutetica)
6 Seleccione la pestantildea JSON Si estaacute almacenando sus aplicaciones en buckets de Amazon S3aseguacuterese des3Getys3Listse encuentran en la lista de acciones especificadas
Puede tener un aspecto similar al siguiente
Statement[ResourceAction[ Some actions may already be listed here s3Gets3List Some more actions may already be listed here ]EffectAllow]
O puede tener un aspecto similar al siguiente
Version 2012-10-17 Statement [ Action [ Some actions may already be listed here s3Get s3List Some more actions may already be listed here ] ]
Si ni s3Get ni s3List figuran en la lista de acciones especificadas elija Edit (Editar)para antildeadirlas y a continuacioacuten elija Save (Guardar) (Si ni s3Get ni s3List es la uacuteltimaaccioacuten de la lista aseguacuterese de antildeadir una coma despueacutes de la accioacuten por lo tanto se valida eldocumento de la poliacutetica)
Note
Le recomendamos que restrinja esta poliacutetica uacutenicamente a los buckets de Amazon S3 a losque las instancias de Amazon EC2 deban tener acceso Aseguacuterese de conceder acceso alos buckets de Amazon S3 que contienen el agente de CodeDeploy De lo contrario podriacuteaproducirse un error cuando el agente de CodeDeploy se instale o actualice en las instanciasPara conceder al perfil de instancia de IAM acceso solo algunos buckets del kit de recursosde CodeDeploy en Amazon S3 utilice la poliacutetica siguiente pero elimine las liacuteneas de bucketsa los que no desee conceder acceso
Version 2012-10-17 Statement [ Effect AllowVersioacuten de API 2014-10-06
229
AWS CodeDeploy Guiacutea del usuarioTrabajar con instancias on-premises
Action [ s3Get s3List ] Resource [ arnawss3replace-with-your-s3-bucket-name arnawss3aws-codedeploy-us-east-2 arnawss3aws-codedeploy-us-east-1 arnawss3aws-codedeploy-us-west-1 arnawss3aws-codedeploy-us-west-2 arnawss3aws-codedeploy-ca-central-1 arnawss3aws-codedeploy-eu-west-1 arnawss3aws-codedeploy-eu-west-2 arnawss3aws-codedeploy-eu-west-3 arnawss3aws-codedeploy-eu-central-1 arnawss3aws-codedeploy-ap-east-1 arnawss3aws-codedeploy-ap-northeast-1 arnawss3aws-codedeploy-ap-northeast-2 arnawss3aws-codedeploy-ap-southeast-1 arnawss3aws-codedeploy-ap-southeast-2 arnawss3aws-codedeploy-ap-south-1 arnawss3aws-codedeploy-sa-east-1 ] ]
Paso 3 Etiquetar la instancia de Amazon EC2Para obtener instrucciones acerca de coacutemo etiquetar la instancia de Amazon EC2 para que CodeDeploypueda encontrarla durante una implementacioacuten consulteUso de etiquetas en la consolay a continuacioacutenvuelva a esta paacutegina
Note
Puede etiquetar la instancia de Amazon EC2 con la clave y el valor que desee Pero aseguacuterese deespecificar esta clave y valor cuando realice una implementacioacuten en ella
Paso 4 Instalacioacuten delAWS CodeDeployagente en la instanciade Amazon EC2Para obtener instrucciones acerca de coacutemo instalar el agente de CodeDeploy en la instancia deAmazon EC2 y verificar que se estaacute ejecutando consulteAdministracioacuten de operaciones del agente deCodeDeploy (p 186)y a continuacioacuten vaya aCrear una aplicacioacuten con CodeDeploy (p 273)
Trabajar con instancias on-premises paraCodeDeploy
Una instancia on-premises es cualquier dispositivo fiacutesico que no es una instancia Amazon EC2 y quepuede ejecutar el agente de CodeDeploy y conectarse a puacuteblicosAWSPuntos de enlace de servicio de
La implementacioacuten de una revisioacuten de la aplicacioacuten de CodeDeploy en una instancia on-premises implicados pasos principales
bull Paso 1 configurar cada instancia on-premises registrarla en CodeDeploy a continuacioacuten etiquetarla
Versioacuten de API 2014-10-06230
AWS CodeDeploy Guiacutea del usuarioRequisitos previos para configurar
una instancia on-premises
bull Paso 2 implementar revisiones de la aplicacioacuten de en la instancia on-premises
Note
Para experimentar con la creacioacuten e implementacioacuten de una revisioacuten de la aplicacioacuten demuestra en una instancia on-premises correctamente configurada y registrada consulteTutorial Implementar una aplicacioacuten en una instancia local con CodeDeploy (Windows ServerUbuntu Server o Red Hat Enterprise Linux) (p 103) Para obtener maacutes informacioacuten sobre lasinstancias on-premises y coacutemo funcionan con CodeDeploy consulteWorking with On-PremisesInstances (p 230)
Si ya no desea utilizar una instancia on-premises en las implementaciones puede eliminar las etiquetasde la instancia on-premises de los grupos de implementaciones Para utilizar un meacutetodo maacutes eficazelimine las etiquetas de la instancia on-premises de la instancia Tambieacuten puede anular el registro de unainstancia on-premises de forma expliacutecita para que ya no se pueda utilizar en ninguna implementacioacutenPara obtener maacutes informacioacuten consulte Administracioacuten de operaciones de instancias on-premises enCodeDeploy (p 253)
Las instrucciones de esta seccioacuten explican coacutemo configurar una instancia on-premises y a continuacioacutenregistrarla y etiquetarla en CodeDeploy para que se pueda utilizar en las implementaciones Esta seccioacutentambieacuten describe coacutemo utilizar CodeDeploy para obtener informacioacuten acerca de las instancias on-premisesy coacutemo anular el registro de una instancia on-premises si ya no piensa implementarla
Temasbull Requisitos previos para configurar una instancia on-premises (p 231)bull Registro de una instancia on-premises en CodeDeploy (p 232)bull Administracioacuten de operaciones de instancias on-premises en CodeDeploy (p 253)
Requisitos previos para configurar una instancia on-premisesSe deben cumplir los siguientes requisitos previos para poder registrar una instancia on-premise
Important
Si utiliza elinstancias de registro en localesy actualice perioacutedicamente las credenciales temporalesgeneradas con elAWS Security Token Service(AWS STS) existen otros requisitos previos Paraobtener informacioacuten consulte Requisitos previos de registro ARN de sesioacuten de IAM (p 247)
Requisitos de los dispositivos
El dispositivo que desea preparar registrar y etiquetar como una instancia on-premises con CodeDeploydebe ejecutarse en un sistema operativo compatible Para ver una lista consulte Sistemas operativoscompatibles con el agente de CodeDeploy (p 175)
Si su sistema operativo no es compatible el agente CodeDeploy estaacute disponible como coacutedigo abierto paraque pueda adaptarlo a sus necesidades Para obtener maacutes informacioacuten consulte laCodeDeployrepositorioen GitHub
Comunicacioacuten saliente
La instancia on-premises debe poder conectarse al puacuteblicoAWSendpoints de servicio para comunicarsecon CodeDeploy
El agente CodeDeploy se comunica con el exterior a traveacutes de HTTPS sobre el puerto 443
Versioacuten de API 2014-10-06231
AWS CodeDeploy Guiacutea del usuarioRegistro de una instancia on-premises
Control administrativo
La cuenta local o de red utilizada en la instancia on-premises para configurar dicha debe poder ejecutarsecomosudooroot(para Ubuntu Server) o como administrador (para Windows Server)
Permisos de IAM
La identidad de IAM que utiliza para registrar la instancia on-premises debe tener permisos para completarel registro (y para anular el registro de la instancia on-premise seguacuten sea necesario)
Ademaacutes de la poliacutetica descrita enIntroduccioacuten a CodeDeploy (p 35) aseguacuterese de que la identidad de IAMde llamada tambieacuten tiene adjunta la siguiente poliacutetica adicional Para obtener informacioacuten acerca de coacutemoadjuntar directivas de IAM consulte Administracioacuten de directivas de IAM
Version 2012-10-17 Statement [ Effect Allow Action [ iamCreateAccessKey iamCreateUser iamDeleteAccessKey iamDeleteUser iamDeleteUserPolicy iamListAccessKeys iamListUserPolicies iamPutUserPolicy iamGetUser ] Resource ]
Registro de una instancia on-premises en CodeDeployPara registrar una instancia on-premise debe utilizar una identidad de IAM para autenticar las solicitudesPuede elegir entre las siguientes opciones para la identidad de IAM y el meacutetodo de registro que utilice
bull Utilice un ARN de usuario de IAM para autenticar las solicitudesbull Usarregistradorpara el proceso de registro maacutes automatizado Es el maacutes adecuado para registrar una
instancia on-premises individual Para obtener informacioacuten consulte Utilice el comando register (ARNde usuario de IAM) para registrar una instancia on-premises (p 233)
bull Usarinstancias de registro en localespara configurar manualmente la mayoriacutea de las opciones deregistro Es adecuado para registrar un pequentildeo nuacutemero de instancias on-premises Para obtenerinformacioacuten consulte Utilice el comando register-on-premises-instance (ARN de usuario de IAM) pararegistrar una instancia on-premises (p 237)
bull Utilice un ARN de rol de IAM para autenticar las solicitudesbull Usarinstancias de registro en localescomando y actualice perioacutedicamente las credenciales temporales
generadas conAWS Security Token Service(AWS STS) para configurar manualmente la mayoriacuteade las opciones de registro Es el maacutes adecuado para registrar un gran nuacutemero de instancias on-premises Para obtener informacioacuten consulte Utilice el comando register-on-premises-instance (ARNde sesioacuten de IAM) para registrar una instancia on-premises (p 246)
Temasbull Utilice el comando register (ARN de usuario de IAM) para registrar una instancia on-
premises (p 233)
Versioacuten de API 2014-10-06232
AWS CodeDeploy Guiacutea del usuarioRegistro de una instancia on-premises
bull Utilice el comando register-on-premises-instance (ARN de usuario de IAM) para registrar una instanciaon-premises (p 237)
bull Utilice el comando register-on-premises-instance (ARN de sesioacuten de IAM) para registrar una instanciaon-premises (p 246)
Utilice el comando register (ARN de usuario de IAM) pararegistrar una instancia on-premisesEsta seccioacuten describe coacutemo configurar una instancia on-premises y coacutemo registrarla y etiquetarla enCodeDeploy con el miacutenimo esfuerzo El comando register resulta especialmente uacutetil cuando se trabaja conuna sola flota o con flotas pequentildeas de instancias on-premises Puede utilizar elregisterSoacutelo cuando utilizaun ARN de usuario de IAM para autenticar una instancia No puede utilizar elregistercon un ARN de sesioacutende IAM para la autenticacioacuten
Cuando utiliza elregister puede permitir que CodeDeploy haga lo siguiente
bull Crear un usuario de IAM enAWS Identity and Access Managementpara la instancia on-premises si noespecifica uno en particular con el comando
bull Guarde las credenciales del usuario de IAM en un archivo de configuracioacuten de la instancia on-premisesbull Registre la instancia on-premises en CodeDeploybull Antildeadir etiquetas a la instancia on-premises si las especifica como parte del comando
Note
Lainstancias de registro en localeses una alternativa alregistradorcomando Utiliza elregister-on-premises-instancesi desea configurar una instancia on-premises y registrarla y etiquetarla enCodeDeploy por su cuenta Laregister-on-premises-instanceTambieacuten le da la opcioacuten de utilizarun ARN de sesioacuten de IAM para registrar instancias en lugar de un ARN de usuario de IAMEste enfoque proporciona una gran ventaja si tiene grandes flotas de instancias on-premisesEspeciacuteficamente puede utilizar un solo ARN de sesioacuten de IAM para autenticar muacuteltiples instanciasen lugar de tener que crear un usuario de IAM para cada instancia on-premises a la vez Paraobtener maacutes informacioacuten consulte Utilice el comando register-on-premises-instance (ARNde usuario de IAM) para registrar una instancia on-premises (p 237) y Utilice el comandoregister-on-premises-instance (ARN de sesioacuten de IAM) para registrar una instancia on-premises (p 246)
Temasbull Paso 1 Instalacioacuten y configuracioacuten deAWS CLIen la instancia on-premises (p 233)bull Paso 2 Realice una llamada al comando register (p 235)bull Paso 3 Ejecute el comando de instalacioacuten (p 236)bull Paso 4 Implementar revisiones de la aplicacioacuten en la instancia on-premises (p 237)bull Paso 5 Seguimiento de las implementaciones en la instancia local (p 237)
Paso 1 Instalacioacuten y configuracioacuten deAWS CLIen la instancia on-premises
1 Instale la AWS CLI en la instancia on-premises Siga las instrucciones enConfiguracioacuten inicial delaAWS CLIen laAWS Command Line InterfaceGuiacutea del usuario de
Note
Los comandos de CodeDeploy para trabajar con instancias on-premises estaacuten disponiblesenAWS CLIversioacuten 1719 y posteriores Si ya tiene instalada la AWS CLI llame a aws --version para comprobar su versioacuten
Versioacuten de API 2014-10-06233
AWS CodeDeploy Guiacutea del usuarioRegistro de una instancia on-premises
2 Configure la AWS CLI en la instancia on-premises Siga las instrucciones enConfiguracioacuten deAWSCLIenAWS Command Line InterfaceGuiacutea del usuario de
Important
A medida que configura elAWS CLI(por ejemplo llamando alaws configurecomando)aseguacuterese de especificar el ID de clave secreta y la clave de acceso secreta de un usuario deIAM que tenga como miacutenimo lo siguienteAWSpermisos de acceso ademaacutes de los permisosespecificados enRequisitos previos para configurar una instancia on-premises (p 231) Estole permite descargar e instalar el agente de CodeDeploy en la instancia on-premises Lospermisos de acceso podriacutean tener un aspecto similar a este
Version 2012-10-17 Statement [ Effect Allow Action [ codedeploy iamCreateAccessKey iamCreateUser iamDeleteAccessKey iamDeleteUser iamDeleteUserPolicy iamListAccessKeys iamListUserPolicies iamPutUserPolicy iamGetUser taggetTagKeys taggetTagValues tagGetResources ] Resource Effect Allow Action [ s3Get s3List ] Resource [ arnawss3aws-codedeploy-us-east-2 arnawss3aws-codedeploy-us-east-1 arnawss3aws-codedeploy-us-west-1 arnawss3aws-codedeploy-us-west-2 arnawss3aws-codedeploy-ca-central-1 arnawss3aws-codedeploy-eu-west-1 arnawss3aws-codedeploy-eu-west-2 arnawss3aws-codedeploy-eu-west-3 arnawss3aws-codedeploy-eu-central-1 arnawss3aws-codedeploy-ap-east-1 arnawss3aws-codedeploy-ap-northeast-1 arnawss3aws-codedeploy-ap-northeast-2 arnawss3aws-codedeploy-ap-southeast-1 arnawss3aws-codedeploy-ap-southeast-2 arnawss3aws-codedeploy-ap-south-1 arnawss3aws-codedeploy-sa-east-1 ] ]
Versioacuten de API 2014-10-06234
AWS CodeDeploy Guiacutea del usuarioRegistro de una instancia on-premises
Paso 2 Realice una llamada al comando register
Para este paso se da por sentado que va a registrar la instancia on-premises desde la propia instancia on-premises Tambieacuten puede registrar una instancia on-premises desde un dispositivo o instancia diferenteque tenga la AWS CLI instalada y configurada como se describe en el paso anterior
UsarAWS CLIpara llamar aregistradorcomando especificando
bull Un nombre que identifique de manera uacutenica la instancia on-premises a CodeDeploy (con el--instance-nameopcioacuten)
Important
Para ayudarle a identificar la instancia on-premises en otro momento especialmente a efectosde depuracioacuten recomendamos encarecidamente que utilice un nombre que se asigne a algunascaracteriacutesticas exclusivas de la instancia on-premises (por ejemplo el nuacutemero de serie o alguacutenidentificador uacutenico de recurso interno si procede) Si especifica una direccioacuten MAC para unnombre debe tener en cuenta que las direcciones MAC contienen caracteres que CodeDeployno permite como los dos puntos () Para obtener una lista de los caracteres permitidosconsulte liacutemites de CodeDeploy (p 454)
bull Si lo desea el ARN de un usuario de IAM existente que desea asociar a esta instancia on-premises(con el--iam-user-arnopcioacuten) Para obtener el ARN de un usuario de IAM ejecute elget-usero elijael nombre de usuario de IAM en elUsuarios dede la consola de IAM y a continuacioacuten busque laARN deusuarioValor de laResumenseccioacuten Si no se especifica esta opcioacuten CodeDeploy crearaacute un usuario deIAM en su nombre en suAWSy asociarlo a la instancia on-premises
Important
Si especifica la opcioacuten --iam-user-arn ademaacutes debe crear manualmente el archivo deconfiguracioacuten de la instancia on-premises como se describe en Paso 4 Agregar un archivo deconfiguracioacuten a la instancia on-premises (p 242)Puede asociar un solo usuario de IAM a una sola instancia on-premises Intentar asociarun solo usuario de IAM a muacuteltiples instancias on-premises puede producir erroresimplementaciones fallidas en dichas instancias on-premises o implementaciones en dichasinstancias on-premises que permanecen en estado pendiente perpetuo
bull Si lo desea un conjunto de etiquetas de instancias on-premises (con el--tags) que CodeDeployutilizaraacute para identificar el conjunto de instancias Amazon EC2 en el que se implementaraacute Especifiquecada etiqueta con Key=tag-keyValue=tag-value (por ejemplo Key=NameValue=BetaKey=NameValue=WestRegion) Si no se especifica esta opcioacuten no se registraraacuten etiquetas Pararegistrar etiquetas en otro momento llame acomplementos de a instancias on-premisescomando
bull Opcionalmente elAWSregioacuten de en la que se registraraacute la instancia on-premises en CodeDeploy(con el--regionopcioacuten) Esta debe ser alguna de las regiones admitidas que se encuentran en lalista deRegiones y puntos de enlaceenAWSReferencia general de(por ejemplous-west-2) Si no seespecifica esta opcioacuten el valor predeterminadoAWSSe utilizaraacute la regioacuten asociada al usuario de IAM querealiza la llamada
Por ejemplo
aws deploy register --instance-name AssetTag12010298EX --iam-user-arn arnawsiam444455556666userCodeDeployUser-OnPrem --tags Key=NameValue=CodeDeployDemo-OnPrem --region us-west-2
El comando register hace lo siguiente
1 Si no se especifica un usuario de IAM existente lo crea le adjunta los permisos necesarios y generala clave secreta y la clave de acceso secreta correspondientes La instancia on-premises utilizaraacute esteusuario de IAM y sus permisos y credenciales para la autenticacioacuten e interaccioacuten con CodeDeploy
Versioacuten de API 2014-10-06235
AWS CodeDeploy Guiacutea del usuarioRegistro de una instancia on-premises
2 Registra la instancia on-premises en CodeDeploy3 Si se especifica asocia en CodeDeploy las etiquetas que se especifican en el--tagscon el nombre de
la instancia on-premises registrada4 Si el usuario de IAM se creoacute tambieacuten crea el archivo de configuracioacuten requerido en el mismo directorio
desde el cual elregisterse llamoacute al comando
Si este comando encuentra alguacuten error aparece un mensaje en el que se describe coacutemo realizarmanualmente los pasos faltantes En caso contrario aparece un mensaje de confirmacioacuten en el que sedescribe coacutemo ejecutar el comando install seguacuten se indica en el siguiente paso
Paso 3 Ejecute el comando de instalacioacuten
Utilice la en la instancia on-premisesAWS CLIpara llamar ainstalarcomando especificando
bull La ruta al archivo de configuracioacuten (con la opcioacuten --config-file)bull Si lo desea si se reemplazaraacute el archivo de configuracioacuten que ya existe en la instancia on-premises
(con la opcioacuten --override-config) Si no se especifica no se sustituiraacute el archivo de configuracioacutenexistente
bull Opcionalmente elAWSregioacuten de en la que se registraraacute la instancia on-premises en CodeDeploy(con el--regionopcioacuten) Esta debe ser alguna de las regiones admitidas que se encuentran en lalista deRegiones y puntos de enlaceenAWSReferencia general de(por ejemplous-west-2) Si no seespecifica esta opcioacuten el valor predeterminadoAWSSe utilizaraacute la regioacuten asociada al usuario de IAM querealiza la llamada
bull Si lo desea una ubicacioacuten personalizada desde la que se instalaraacute el agente de CodeDeploy (con el--agent-installeropcioacuten) Esta opcioacuten sirve para instalar una versioacuten personalizada del agente deCodeDeploy con el que CodeDeploy no es oficialmente compatible (como la versioacuten personalizadabasada en elAgente de CodeDeployrepositorio en GitHub) El valor debe ser la ruta a un bucket deAmazon S3 que contenga cualquiera de los siguientesbull Un script de instalacioacuten del agente de CodeDeploy (para sistemas operativos basados en Linux o en
Unix similar al archivo de instalacioacuten delAgente de CodeDeployrepositorio en GitHub)bull Un archivo del paquete de instalacioacuten (msi) del agente de CodeDeploy (para sistemas operativos
basados en Windows)
Si no se especifica esta opcioacuten CodeDeploy intentaraacute instalar desde su propia ubicacioacuten una versioacutenoficialmente compatible del agente de CodeDeploy que sea compatible con el sistema operativo de lainstancia on-premises
Por ejemplo
aws deploy install --override-config --config-file tmpcodedeployonpremisesyml --region us-west-2 --agent-installer s3aws-codedeploy-us-west-2latestcodedeploy-agentmsi
El comando install hace lo siguiente
1 Comprueba si la instancia on-premises es una instancia Amazon EC2 Si lo es aparece un mensaje deerror
2 Copia el archivo de configuracioacuten de las instancias on-premises desde la ubicacioacuten especificada en lainstancia a la ubicacioacuten donde el agente de CodeDeploy espera encontrarlo siempre que el archivo yano esteacute en esa ubicacioacuten
Para Ubuntu Server y Red Hat Enterprise Linux (RHEL)) esto esetccodedeploy-agentconfcodedeployonpremisesyml
Para Windows Server esto esCProgramDataAmazonCodeDeployconfonpremisesyml
Versioacuten de API 2014-10-06236
AWS CodeDeploy Guiacutea del usuarioRegistro de una instancia on-premises
Si se especificoacute la opcioacuten --override-config crea o sobrescribe el archivo3 Instala el agente de CodeDeploy en la instancia on-premises y a continuacioacuten lo inicia
Paso 4 Implementar revisiones de la aplicacioacuten en la instancia on-premises
Ahora estaacute listo para implementar revisiones de aplicaciones en la instancia on-premises registrada yetiquetada
La implementacioacuten de revisiones de aplicaciones en instancias on-premises es similar a la implementacioacutende revisiones de aplicaciones en instancias Amazon EC2 Para obtener instrucciones consulte Creeuna implementacioacuten con CodeDeploy (p 324) Estas instrucciones incluyen un enlace a los requisitosprevios incluida la creacioacuten de una aplicacioacuten la creacioacuten de un grupo de implementaciones y lapreparacioacuten de la revisioacuten de una aplicacioacuten Si necesita una revisioacuten de una aplicacioacuten sencilla paraimplementar puede crear la que se describe en Paso 2 Creacioacuten de una revisioacuten de aplicacioacuten demuestra (p 104) en el Tutorial Implementar una aplicacioacuten en una instancia local con CodeDeploy(Windows Server Ubuntu Server o Red Hat Enterprise Linux) (p 103)
Important
Si reutiliza un rol de servicio de CodeDeploy existente como parte de la creacioacuten deun grupo de implementaciones que tiene como destino instancias on-premises debeincluirTaggetalActionparte de la declaracioacuten de poliacutetica del rol de servicio Para obtener maacutesinformacioacuten consulte Paso 2 Creacioacuten de un rol de servicio para CodeDeploy (p 36)
Paso 5 Seguimiento de las implementaciones en la instancia local
Despueacutes de implementar una revisioacuten de una aplicacioacuten en instancias on-premises registradas yetiquetadas puede hacer un seguimiento del progreso de la implementacioacuten
El seguimiento de las implementaciones en instancias on-premises es similar al seguimiento de lasimplementaciones en instancias Amazon EC2 Para obtener instrucciones consulte Ver detalles deimplementacioacuten de CodeDeploy (p 340)
Para obtener maacutes opciones consulte Administracioacuten de operaciones de instancias on-premises enCodeDeploy (p 253)
Utilice el comando register-on-premises-instance (ARN deusuario de IAM) para registrar una instancia on-premisesSiga estas instrucciones para configurar una instancia on-premises registrarla y etiquetarla conCodeDeploy principalmente por su cuenta utilizando las credenciales estaacuteticas de un usuario de IAM parala autenticacioacuten
Temasbull Paso 1 Creacioacuten de un usuario de IAM para la instancia on-premises (p 238)bull Paso 2 Asignar permisos al usuario de IAM (p 238)bull Paso 3 Obtenga las credenciales de usuario de IAM (p 240)bull Paso 4 Agregar un archivo de configuracioacuten a la instancia on-premises (p 242)bull Paso 5 Instalacioacuten y configuracioacuten de AWS CLI (p 243)bull Paso 6 Establecer la variable de entorno AWS_REGION (solo Ubuntu Server y RHEL) (p 244)bull Paso 7 Instalacioacuten del agente de CodeDeploy (p 244)bull Paso 8 Registre la instancia on-premises en CodeDeploy (p 244)bull Paso 9 Etiquetado de la instancia on-premises (p 245)
Versioacuten de API 2014-10-06237
AWS CodeDeploy Guiacutea del usuarioRegistro de una instancia on-premises
bull Paso 10 Implementar revisiones de aplicaciones en la instancia on-premises (p 246)bull Paso 11 Seguimiento de las implementaciones en la instancia local (p 246)
Paso 1 Creacioacuten de un usuario de IAM para la instancia on-premises
Cree un usuario de IAM que la instancia on-premises utilizaraacute para la autenticacioacuten e interaccioacuten conCodeDeploy
Important
Debe crear un usuario de IAM diferente para cada instancia on-premises que emplee Si intentareutilizar un usuario individual de IAM para varias instancias on-premises es posible que nopueda registrar o etiquetar correctamente esas instancias on-premises con CodeDeploy Lasimplementaciones en esas instancias on-premises pueden quedarse bloqueadas en un estadopendiente perpetuo o producir errores
Le recomendamos que asigne al usuario de IAM un nombre que identifique su finalidad comoCodeDeployUser-OnPrem
Puede utilizar elAWS CLIo la consola de IAM para crear un usuario de IAM Para obtener informacioacutenconsulteCreacioacuten de un usuario de IAM en suAWScuenta
Important
Si utilizas elAWS CLIo la consola de IAM para crear un nuevo usuario de IAM anote el ARNproporcionado para el usuario Necesitaraacute esta informacioacuten maacutes tarde en Paso 4 Agregar unarchivo de configuracioacuten a la instancia on-premises (p 242) y Paso 8 Registre la instancia on-premises en CodeDeploy (p 244)
Paso 2 Asignar permisos al usuario de IAM
Si su instancia on-premises va a implementar revisiones de aplicaciones desde buckets de Amazon S3debe asignar al usuario de IAM los permisos necesarios para interactuar con esos buckets Puede utilizarelAWS CLIo la consola de IAM para asignar permisos
Note
Si va a implementar revisiones de aplicaciones uacutenicamente desde repositorios de GitHub omitaeste paso y vaya directamente a Paso 3 Obtenga las credenciales de usuario de IAM (p 240)(Tambieacuten necesitaraacute informacioacuten acerca del usuario de IAM que creoacute enPaso 1 Creacioacuten de unusuario de IAM para la instancia on-premises (p 238) Se utilizaraacute en pasos posteriores)
Para asignar permisos (CLI)
1 Cree un archivo con el siguiente contenido de poliacutetica en la instancia o el dispositivo de Amazon EC2que va a utilizar para llamar a laAWS CLI Asigne al archivo un nombre como CodeDeploy-OnPrem-Permissionsjson y a continuacioacuten guaacuterdelo
Version 2012-10-17 Statement [ Action [ s3Get s3List ] Effect Allow Resource ]
Versioacuten de API 2014-10-06238
AWS CodeDeploy Guiacutea del usuarioRegistro de una instancia on-premises
Note
Le recomendamos que restrinja esta poliacutetica uacutenicamente a los buckets de Amazon S3a los que su instancia on-premises necesite tener acceso Si restringe esta poliacuteticaaseguacuterese de conceder acceso tambieacuten a los buckets de Amazon S3 que contienen laAWSCodeDeployagente de De lo contrario podriacutea producirse un error siempre que el agente deCodeDeploy se instale o actualice en la instancia on-premises asociadaPor ejemplo
Version 2012-10-17 Statement [ Effect Allow Action [ s3Get s3List ] Resource [ arnawss3replace-with-your-s3-bucket-name arnawss3aws-codedeploy-us-east-2 arnawss3aws-codedeploy-us-east-1 arnawss3aws-codedeploy-us-west-1 arnawss3aws-codedeploy-us-west-2 arnawss3aws-codedeploy-ca-central-1 arnawss3aws-codedeploy-eu-west-1 arnawss3aws-codedeploy-eu-west-2 arnawss3aws-codedeploy-eu-west-3 arnawss3aws-codedeploy-eu-central-1 arnawss3aws-codedeploy-ap-east-1 arnawss3aws-codedeploy-ap-northeast-1 arnawss3aws-codedeploy-ap-northeast-2 arnawss3aws-codedeploy-ap-southeast-1 arnawss3aws-codedeploy-ap-southeast-2 arnawss3aws-codedeploy-ap-south-1 arnawss3aws-codedeploy-sa-east-1 ] ]
2 Llame a laput-user-policy especificando el nombre del usuario de IAM (con--user-name(opcioacuten)un nombre de la poliacutetica (con--policy-name) y la ruta al documento de poliacutetica recieacuten creado (conla--policy-documentopcioacuten) Por ejemplo suponiendo que el archivo CodeDeploy-OnPrem-Permissionsjson estaacute en el mismo directorio (carpeta) desde el que llama a este comando
Important
Aseguacuterese de incluir file antes del nombre de archivo Es obligatorio en este comando
aws iam put-user-policy --user-name CodeDeployUser-OnPrem --policy-name CodeDeploy-OnPrem-Permissions --policy-document fileCodeDeploy-OnPrem-Permissionsjson
Para asignar permisos (consola)
1 Abra la consola de IAM en httpsconsoleawsamazoncomiam2 En el panel de navegacioacuten seleccione Policies y a continuacioacuten seleccione Create Policy Si aparece
el botoacuten Get Started (Empezar) eliacutejalo y a continuacioacuten elija Create Policy (Crear poliacutetica)Versioacuten de API 2014-10-06
239