Geral

P: O que é o AWS CodeDeploy?
O AWS CodeDeploy é um serviço que automatiza as implantações de código em qualquer instância, incluindo as do Amazon EC2 e as executadas no local. O AWS CodeDeploy facilita o lançamento rápido de novos recursos, ajuda a evitar tempo de inatividade durante a implantação e lida com a complexidade de atualizar seus aplicativos. Você pode usar o AWS CodeDeploy para automatizar implantações, eliminando a necessidade de operações manuais sujeitas a erro. O serviço é escalável juntamente com a infraestrutura, permitindo implantar facilmente em uma ou em milhares de instâncias.

P: Quem deve usar o AWS CodeDeploy?
O AWS CodeDeploy foi criado para desenvolvedores e administradores que precisam implantar aplicativos em qualquer instância, inclusive as instâncias do Amazon EC2 e as executadas localmente. Ele é flexível e também pode ser usado por qualquer pessoa para atualizar software ou executar scripts em instâncias.
 
P: Que tipos de aplicativos podem ser implantados com o AWS CodeDeploy?
O AWS CodeDeploy pode ser usado para implantar qualquer tipo de aplicativo. Para usar o AWS CodeDeploy, você especifica os arquivos a copiar e os scripts a executar em cada instância durante a implantação. O AWS CodeDeploy independe da linguagem de programação e da arquitetura. Portanto, você pode usar scripts para qualquer lógica de implantação personalizada.
 
P: Quais sistemas operacionais são suportados pelo AWS CodeDeploy?
O AWS CodeDeploy é compatível com uma grande variedade de sistemas operacionais. O AWS CodeDeploy oferece agentes testados no Amazon Linux, no Red Hat Enterprise Linux, no Ubuntu Server e no Microsoft Windows Server. Se quiser usar outros sistemas operacionais, o agente do AWS CodeDeploy está disponível como software de código aberto aqui. Para obter mais informações sobre a compatibilidade com sistemas operacionais, consulte a documentação do AWS CodeDeploy.
 
P: O AWS CodeDeploy funcionará com minha cadeia de ferramentas?
Sim. O AWS CodeDeploy funciona com diversos sistemas de gerenciamento de configuração, sistemas de integração e implantação contínuas e sistemas de controle de fonte. Para obter mais informações, consulte a página de integrações do produto.
 
P: Em que o AWS CodeDeploy difere de outros serviços de implantação e gerenciamento da AWS, como o AWS Elastic Beanstalk e o AWS OpsWorks?
O AWS CodeDeploy é um serviço de componentes básicos dedicado a ajudar desenvolvedores a implantar e a atualizar software em qualquer instância, inclusive as instâncias do Amazon EC2 e as executadas localmente. O AWS Elastic Beanstalk e o AWS OpsWorks são soluções completas de gerenciamento de aplicativos.

P: O AWS CodeDeploy oferece suporte a instâncias no local?
Sim. O AWS CodeDeploy é compatível com qualquer instância que possa instalar o agente do CodeDeploy e conectar-se a endpoints públicos da AWS.
 
 

Conceitos

P: O que é um aplicativo?
Um aplicativo é uma coleção de software e configuração para implantação em um grupo de instâncias. Normalmente, as instâncias no grupo executam o mesmo software. Por exemplo, se você tiver um grande sistema distribuído, a camada de web provavelmente constituirá um aplicativo e a camada de dados constituirá outro aplicativo.
 
P: O que é uma revisão?
Uma revisão é uma versão específica de conteúdo implantável, como um código-fonte, artefatos pós-compilação, páginas da web, arquivos executáveis e scripts de implantação, juntamente com um arquivo AppSpec. O AWS CodeDeploy Agent pode acessar uma revisão do GitHub ou de um bucket do Amazon S3.
 
P: O que é um grupo de implantação?
Um grupo de implantação é a entidade do AWS CodeDeploy para agrupar instâncias do EC2 ou funções do AWS Lambda em uma implantação do CodeDeploy. Para implantações do EC2, é um conjunto de instâncias associado a uma aplicação que você pretende implantar. Você pode adicionar instâncias a um grupo de implantação especificando uma tag, um grupo de Auto Scaling ou ambos. Em uma implantação do AWS Lambda, um grupo de implantação define um conjunto de configurações do AWS CodeDeploy para implantação futura de Lambda sem servidor no grupo, como alarmes e reversões.
 
Você pode definir vários grupos de implantação para um aplicativo, como preparação e produção. Para obter informações sobre tags, consulte Trabalho com tags do Amazon EC2 na console. Para obter informações sobre a implantação em grupos de Auto Scaling, consulte Integrando o AWS CodeDeploy com a Auto Scaling.
 
P: O que é uma configuração de implantação?
Uma configuração de implantação especifica como a implantação deve proceder, incluindo como lidar com falhas de implantação, por meio de um grupo de implantação. Você pode usar uma configuração de implantação para realizar implantações sem tempo de inatividade em grupos de implantação de várias instâncias. Por exemplo, se o aplicativo precisar que pelo menos 50% das instâncias em um grupo de implantação estejam ativas e atendendo o tráfego, você pode especificar isso em sua configuração de implantação para que ela não cause tempo de inatividade. Se nenhuma configuração de implantação estiver associada com a implantação ou com o grupo de implantação, o AWS CodeDeploy implantará por padrão em uma instância por vez.  Para obter mais informações sobre a configuração de implantação, consulte Integridade da instância do AWS CodeDeploy.
 
P: Quais são os parâmetros que preciso especificar para uma implantação?
Há três parâmetros que você precisa especificar para uma implantação:
  1. Revisão − Especifica o que implantar.
  2. Grupo de implantação − Especifica onde implantar.
  3. Configuração de implantação − Um parâmetro opcional que especifica como implantar.

P: O que é um arquivo AppSpec?
Um arquivo AppSpec é um arquivo de configuração que especifica os arquivos a serem copiados e os scripts a serem executados. O arquivo AppSpec usa o formato YAML e você o inclui no diretório raiz da sua revisão. O arquivo AppSpec é usado pelo AWS CodeDeploy Agent e consiste em duas seções. A seção de arquivos especifica os arquivos de origem para cópia em sua revisão e a pasta de destino em cada instância. A seção de ganchos especifica o local (como caminhos relativos começando na raiz do pacote da revisão) dos scripts a executar durante cada fase da implantação. Cada fase de uma implantação é chamada de evento de ciclo de vida da implantação. A seguir, uma amostra de um arquivo AppSpec. Para obter mais informações sobre um arquivo AppSpec, incluindo todas as opções que podem ser especificadas, consulte Referência ao AppSpec File do AWS CodeDeploy.

version: 0.0

os: linux

files: 

# You can specify one or more mappings in the files section.

  - source: /

    destination: /var/www/html/WordPress

hooks:

 # The lifecycle hooks sections allows you to specify deployment scripts.

ApplicationStop: 

# Step 1: Stop Apache and MySQL if running.

    - location: helper_scripts/stop_server.sh

BeforeInstall: 

# Step 2: Install Apache and MySQL.

# You can specify one or more scripts per deployment lifecycle event.

    - location: deploy_hooks/puppet-apply-apache.sh

    - location: deploy_hooks/puppet-apply-mysql.sh 

 AfterInstall: 

# Step 3: Set permissions.

    - location: deploy_hooks /change_permissions.sh

      timeout: 30

      runas: root

# Step 4: Start the server.

    - location: helper_scripts/start_server.sh

      timeout: 30

      runas: root

P: O que são eventos de ciclo de vida de implantação?
Uma implantação passa por um conjunto de fases predefinidas chamado de eventos de ciclo de vida da implantação. Um evento de ciclo de vida da implantação permite que você execute código como parte da implantação. A seguinte tabela lista os diferentes eventos de ciclo de vida da implantação compatíveis no momento, na ordem de execução, juntamente com exemplos de quando você pode querer usá-los.

Evento de ciclo de vida da implantação Descrição
ApplicationStop

É o primeiro evento de ciclo de vida da implantação que ocorre mesmo antes do download da revisão. O arquivo AppSpec e os scripts usados para esse evento de ciclo de vida da implantação são da última revisão implantada com sucesso.  

Você pode usar o evento de ciclo de vida da implantação ApplicationStop se quiser interromper o aplicativo sem problemas ou remover pacotes atualmente instalados na preparação de uma implantação.

DownloadBundle Durante esse evento de ciclo de vida da implantação, o agente copia os arquivos de revisão para um local temporário na instância. Esse evento de ciclo de vida da implantação é reservado para o agente e não pode ser usado para executar scripts do usuário.
BeforeInstall Você pode usar o evento de ciclo de vida da implantação BeforeInstall para pré-instalar tarefas como descriptografia de arquivos e criação de um backup da versão atual.
Instalar Durante esse evento de ciclo de vida da implantação, o agente copia os arquivos de revisão de um local temporário para a pasta de destino final. Esse evento de ciclo de vida da implantação é reservado para o agente e não pode ser usado para executar scripts do usuário.
AfterInstall Você pode usar o evento de ciclo de vida da implantação AfterInstall para tarefas como configuração do aplicativo ou alteração de permissões de arquivo.
ApplicationStart Você normalmente usa o evento de ciclo de vida da implantação ApplicationStart para reiniciar os serviços que foram interrompidos durante o ApplicationStop.
ValidateService ValidateService é o último evento de ciclo de vida da implantação e é uma oportunidade de verificar se a implantação foi concluída com sucesso.

Conceitos básicos

P: Como faço para começar a usar o AWS CodeDeploy?
Você pode fazer login no Console de Gerenciamento da AWS e começar a usar o AWS CodeDeploy. Se estiver procurando uma breve visão geral do serviço, consulte Conceitos básicos, que inclui um tutorial detalhado.

Uso do AWS CodeDeploy

P: Há algum pré-requisito para usar uma instância do Amazon EC2 existente com o AWS CodeDeploy?
A instância do Amazon EC2 deve estar associada a um perfil de instância do IAM e deve estar executando um sistema operacional compatível. Para obter mais informações, consulte Configurar uma instância do Amazon EC2 para trabalhar com o AWS CodeDeploy.
 
P: Quais são as etapas típicas para implantar um aplicativo usando o AWS CodeDeploy?
O diagrama a seguir mostra as etapas típicas durante uma implantação. Criar um aplicativos e grupo de desenvolvimento (consulte a seção Conceitos para obter uma explicação desses termos) são normalmente tarefas de configuração únicas por aplicativo. As ações recorrentes são upload de um revisão e implantação dessa revisão. Para obter uma explicação detalhada, incluindo instruções passo a passo de cada uma dessas tarefas, consulte Implantações.
 
P: Como posso acessar o AWS CodeDeploy?
Você pode acessar o AWS CodeDeploy usando o Console de gerenciamento da AWS, a Interface de linhas de comando da AWS (CLI da AWS), os AWS SDKs e as APIs do AWS CodeDeploy.
 
P: Que alterações preciso fazer no meu código para implantar usando o AWS CodeDeploy?
Você não precisa fazer nenhuma alteração no seu código. Você simplesmente adiciona um arquivo de configuração (chamado arquivo AppSpec) no diretório raiz do seu pacote de revisão que especifica os arquivos a serem copiados e os scripts a serem executados.
 
P: Como posso implantar um aplicativo a partir do meu sistema de controle de fonte usando o AWS CodeDeploy?
Se estiver usando o GitHub, você poderá implantar uma revisão em formato .zip, .tar ou .tar.gz do seu repositório diretamente nas instâncias. Para outros sistemas de controle de fonte, você pode empacotar e carregar a revisão em um bucket do Amazon S3 em formato .zip, .tar ou .tar.gz e especificar a localização do Amazon S3 ao fazer uma implantação. Se o aplicativo precisar de uma etapa de compilação, certifique-se de que o repositório GitHub ou o bucket do Amazon S3 contém os artefatos pós-compilação. Para obter mais informações sobre como usar o GitHub com o AWS CodeDeploy, consulte nossa página de integrações de produtos. Para obter mais informações sobre como usar o Amazon S3 para armazenar revisões, consulte Enviar uma revisão do AWS CodeDeploy para o Amazon S3.
 
P: Como o AWS CodeDeploy funcionará com minha ferramenta de gerenciamento de configuração?
Você pode invocar sua ferramenta de gerenciamento de configuração de qualquer gancho de evento de ciclo de vida da implantação no arquivo AppSpec. Por exemplo, se você tiver um roteiro do Chef que queria executar como parte de uma implantação, é possível fazer isso especificando esse roteiro no gancho do evento de ciclo de vida da implantação apropriado no arquivo AppSpec. Além disso, você pode usar seu sistema de gerenciamento de configurações para instalar o agente do AWS CodeDeploy nas instâncias. Para amostras que ilustram o uso do AWS CodeDeploy com sistemas de gerenciamento de configuração como Chef, Puppet, Ansible e Saltstack, consulte nossa página de integrações de produtos.
 
P: Posso usar o AWS CodeDeploy com sistemas de integração e implantação contínuas?
Sim. Você pode integrar o AWS CodeDeploy com seus sistemas de integração e implantação contínuas chamando as APIs públicas usando a ILC da AWS ou os AWS SDKs. Você pode encontrar integrações e amostras pré-construídas em nossa página de integrações de produtos.
 
P: Como posso colocar um aplicativo nas instâncias que acabei de adicionar ao grupo de implantação?
Implante a última revisão no grupo de implantação para que as instâncias recentemente adicionadas obtenham o aplicativo. Exceto no caso de instâncias do Amazon EC2 lançadas como parte do grupo de Auto Scaling, o AWS CodeDeploy não implanta automaticamente a última revisão nas instâncias recentemente adicionadas.
 
P: Como o AWS CodeDeploy funciona com o Auto Scaling?
Você pode associar o grupo de Auto Scaling a um grupo de implantação para ter certeza de que as instâncias recentemente lançadas sempre tenham a última versão do seu aplicativo. Toda vez que uma nova instância do Amazon EC2 é lançada para o grupo de Auto Scaling, ela será primeiro colocada em estado Pending e uma implantação da última revisão bem-sucedida para o grupo de implantação será acionada nessa instância do Amazon EC2. Se a implantação for concluída com sucesso, o estado da instância do Amazon EC2 será alterado para InService. Se essa implantação falhar, a instância do Amazon EC2, uma nova instância do Amazon EC2 será lançada em estado Pending e uma implantação será acionada para a instância do EC2 recentemente lançada. Para obter mais informações sobre eventos de ciclo de vida da instância do grupo de Auto Scaling, consulte Ciclo de vida do Auto Scaling.
 
P: Como eu monitoro o status de uma implantação?
Você pode monitorar o status de uma implantação usando o Console de Gerenciamento da AWS, a Interface da Linha de Comando da AWS (ILC da AWS), os AWS SDKs e as APIs do AWS CodeDeploy. Você pode ver o status geral de uma implantação e obter mais detalhes para ver o status de cada instância e de cada evento de ciclo de vida da implantação para a instância. Você também pode ver as entradas de log correspondentes a qualquer falha, facilitando a depuração dos problemas de implantação sem ter que fazer login na instância.
 
P: Posso interromper uma implantação em andamento?
Sim. Se você interromper uma implantação em andamento, o serviço do AWS CodeDeploy instruirá o agente em cada instância para interromper a execução de scripts adicionais. Para retornar seu aplicativo para um estado consistente, você pode reimplantar a revisão ou implantar outra revisão.
 
P: Como eu reverto um aplicativo para a revisão anterior?
Para reverter um aplicativo para uma revisão anterior, você só precisa implantar aquela revisão. O AWS CodeDeploy monitora os arquivos que foram copiados para a revisão atual e os remove antes de começar uma nova implantação, então não há diferença entre reimplantar e reverter. No entanto, você precisa se certificar de que as revisões anteriores estão disponíveis para reversão.
 
P: Posso usar um bucket do Amazon S3 versionado para armazenar revisões?
Sim. Você pode usar um bucket do Amazon S3 versionado e especificar o ID da versão para identificar uma revisão com exclusividade.
 
P: Quais são os limites de serviço ao usar o AWS CodeDeploy?
Para obter informações sobre os limites de serviço, consulte Limites em AWS CodePipeline. Para aumentar seus limites de serviço, envie uma solicitação através do AWS Support Center.
 
P: Posso obter um histórico de todas as chamadas de API do AWS CodeDeploy realizadas na minha conta para fins de análise de segurança ou solução de problemas operacionais?
Sim. Para receber um histórico das chamadas de API do AWS CodeDeploy efetuadas na sua conta, basta ativar o AWS CloudTrail no Console de Gerenciamento da AWS.
 
P: Como recebo notificações ou alertas para qualquer evento no AWS CodeDeploy?
É possível criar notificações para eventos que afetem suas implantações. As notificações virão na forma de notificações do Amazon SNS. Cada notificação incluirá uma mensagem de status e um link para os recursos cujo evento gerou essa notificação. As notificações não geram custo adicional, mas você pode ser cobrado por outros produtos da AWS utilizados pelas notificações, como o Amazon SNS. Para saber como começar a receber as notificações, consulte o guia de notificações do usuário. Além disso, os clientes que usam o AWS Chatbot podem configurar para que as notificações sejam enviadas para suas salas de chat do Slack Channels ou do Amazon Chime. Para obter mais detalhes, clique aqui.

Segurança

P: Posso usar o AWS CodeDeploy para implantar um aplicativo em instâncias do Amazon EC2 em execução em uma Amazon Virtual Private Cloud (VPC)?
Sim, mas o agente do AWS CodeDeploy instalado nas instâncias do Amazon EC2 deve poder acessar os endpoints de serviços públicos do AWS CodeDeploy e do Amazon S3. Para obter mais informações, consulte os endpoints do AWS CodeDeploy e os endpoints do Amazon S3.

P: Posso usar o AWS Identity and Access Management (IAM) para gerenciar o acesso ao AWS CodeDeploy?
Sim. O AWS CodeDeploy é compatível com as permissões de nível de serviço. Para cada recurso do AWS CodeDeploy, você pode especificar qual usuário tem acesso e a quais ações. Por exemplo, você pode definir uma política do IAM para permitir que um usuário implante um aplicativo específico, mas apenas liste revisões para outros aplicativos. Você pode, portanto, evitar que usuários façam alterações indesejadas no aplicativo errado. Para obter mais informações sobre o uso do IAM com o AWS CodeDeploy, consulte a referência de permissões de acesso.

Regiões

P: Quais regiões são compatíveis com o AWS CodeDeploy?
Consulte os produtos e serviços regionais para obter detalhes sobre a disponibilidade do CodeDeploy por região.

P: Como faço para implantar um aplicativo do AWS CodeDeploy em várias regiões?
O AWS CodeDeploy realiza implantações com recursos da AWS localizados na mesma região. Para implantar um aplicativo em várias regiões, defina o aplicativo em suas regiões de destino, copie o pacote do aplicativo para um bucket do Amazon S3 em cada região e inicie as implantações usando uma distribuição serial ou paralela entre as regiões.

Faturamento

P: Quanto custa o AWS CodeDeploy?
Não há encargos adicionais para implantações de código em instâncias do Amazon EC2 usando o AWS CodeDeploy. Você paga 0,02 USD por atualização de instância no local usando o AWS CodeDeploy. Consulte a página de definição de preço para obter mais detalhes.

Explore as integrações de produtos do AWS CodeDeploy

Acesse a página de integrações de produtos