As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Como o AWS Proton provisiona a infraestrutura
O AWS Proton pode provisionar a infraestrutura de várias maneiras:
-
Provisionamento gerenciado pelo AWS – O AWS Proton chama o mecanismo de provisionamento em seu nome. Esse método oferece suporte somente a pacotes de modelos do AWS CloudFormation. Para obter mais informações, consulte AWS CloudFormation Arquivos IaC.
-
Provisionamento do CodeBuild – O AWS Proton usa o AWS CodeBuild para executar comandos de shell fornecidos por você. Seus comandos podem ler as entradas que o AWS Proton fornece e são responsáveis por provisionar ou desprovisionar a infraestrutura e gerar valores de saída. Um pacote de modelos para esse método inclui seus comandos em um arquivo de manifesto e quaisquer programas, scripts ou outros arquivos que esses comandos possam precisar.
Como exemplo do uso do provisionamento do CodeBuild, você pode incluir um código que usa o AWS Cloud Development Kit (AWS CDK) para provisionar recursos do AWS e um manifesto que instala o CDK e executa seu código do CDK.
Para obter mais informações, consulte CodeBuild pacote de modelos de provisionamento.
nota
Você pode usar o provisionamento do CodeBuild com ambientes e serviços. No momento, você não pode provisionar componentes dessa forma.
-
Provisionamento autogerenciado – O AWS Proton emite uma pull request (PR) para um repositório que você fornece, onde seu próprio sistema de implantação de infraestrutura executa o processo de provisionamento. Esse método oferece suporte somente a pacotes de modelos do Terraform. Para obter mais informações, consulte Arquivos Terraform IaC.
O AWS Proton determina e define o método de provisionamento para cada ambiente e serviço separadamente. Quando você cria ou atualiza um ambiente ou serviço, o AWS Proton examina o pacote de modelos que você fornece e determina o método de provisionamento indicado pelo pacote de modelos. No nível do ambiente, você fornece os parâmetros que o ambiente e seus possíveis serviços podem precisar para seus métodos de provisionamento — perfis do AWS Identity and Access Management (IAM), uma conexão de conta de ambiente ou um repositório de infraestrutura.
Os desenvolvedores que usam o AWS Proton para provisionar um serviço têm a mesma experiência, independentemente do método de provisionamento. Os desenvolvedores não precisam conhecer o método de provisionamento e não precisam alterar nada no processo de provisionamento de serviços. O modelo de serviço define o método de provisionamento, e cada ambiente no qual um desenvolvedor implanta o serviço fornece os parâmetros necessários para o provisionamento da instância de serviço.
O diagrama a seguir resume algumas características principais dos diferentes métodos de provisionamento. As seções que seguem a tabela fornecem detalhes sobre cada método.
Método de provisionamento | Modelos | Provisionado por | Status rastreado por |
---|---|---|---|
Gerenciado pelo AWS |
manifesto, esquema, arquivo IaC (CloudFormation) |
AWS Proton (por meio do CloudFormation) |
AWS Proton (por meio do CloudFormation) |
CodeBuild |
manifesto (com comandos), esquema, dependências de comando (por exemplo, código do AWS CDK) |
AWS Proton (por meio do CodeBuild) |
AWS Proton (seus comandos retornam o status por meio do CodeBuild) |
autogerenciado |
manifesto, esquema, arquivos IaC (Terraform) |
Seu código (por meio de ações do Git) |
Seu código (passado ao AWS por meio de uma chamada de API) |
Como funciona o provisionamento gerenciado pelo AWS
Quando um ambiente ou serviço usa provisionamento gerenciado pelo AWS, a infraestrutura é provisionada da seguinte forma:
-
Um cliente (administrador ou desenvolvedor) do AWS Proton cria o recurso (um ambiente ou um serviço) do AWS Proton. O cliente seleciona um modelo para o recurso e fornece os parâmetros necessários. Para obter mais informações, consulte a seção Considerações sobre o provisionamento gerenciado pelo AWS a seguir.
-
O AWS Proton renderiza um modelo completo do AWS CloudFormation para provisionar o recurso.
-
O AWS Proton chama o AWS CloudFormation para iniciar o provisionamento usando o modelo renderizado.
-
O AWS Proton monitora continuamente a implantação do AWS CloudFormation.
-
Quando o provisionamento é concluído, o AWS Proton reporta os erros em caso de falha e captura as saídas do provisionamento, como o Amazon VPC ID, em caso de sucesso.
O diagrama a seguir mostra que o AWS Proton cuida diretamente da maioria dessas etapas.
Considerações sobre o provisionamento gerenciado pelo AWS
-
Perfil de provisionamento de infraestrutura – Quando um ambiente ou qualquer uma das instâncias de serviço em execução nele pode usar o provisionamento gerenciado pelo AWS, um administrador precisa configurar um perfil do IAM (diretamente ou como parte de uma conexão de conta do ambiente do AWS Proton). O AWS Proton usa esse perfil para provisionar a infraestrutura desses recursos de provisionamento gerenciados pelo AWS. O perfil deve ter permissões para usar o AWS CloudFormation para criar todos os recursos que os modelos desses recursos incluem.
Para obter mais informações, consulte Funções do IAM e AWS Proton IAMexemplos de políticas de função de serviço.
-
Provisionamento de serviços – Quando um desenvolvedor implanta uma instância de serviço que usa provisionamento gerenciado pelo AWS no ambiente, o AWS Proton usa o perfil fornecido a esse ambiente para provisionar a infraestrutura para a instância de serviço. Os desenvolvedores não veem esse perfil e não podem alterá-lo.
-
Serviço com pipeline – Um modelo de serviço que usa provisionamento gerenciado pelo AWS pode incluir uma definição de pipeline escrita no esquema YAML do AWS CloudFormation. O AWS Proton também cria o pipeline chamando o AWS CloudFormation. O perfil que o AWS Proton usa para criar um pipeline é separado do perfil de cada ambiente individual. Esse perfil é fornecido ao AWS Proton separadamente, apenas uma vez no nível da conta do AWS, e é usado para provisionar e gerenciar todos os pipelines gerenciados pelo AWS. Esse perfil deve ter permissões para criar pipelines e outros recursos de que seus pipelines precisam.
Os procedimentos a seguir mostram como fornecer o perfil de pipeline para o AWS Proton.
Como funciona o provisionamento do CodeBuild
Quando um ambiente ou serviço usa provisionamento do CodeBuild, a infraestrutura é provisionada da seguinte forma:
-
Um cliente (administrador ou desenvolvedor) do AWS Proton cria o recurso (um ambiente ou um serviço) do AWS Proton. O cliente seleciona um modelo para o recurso e fornece os parâmetros necessários. Para obter mais informações, consulte a seção Considerações sobre o provisionamento do CodeBuild a seguir.
-
O AWS Proton renderiza um arquivo de entrada com valores de parâmetros de entrada para provisionar o recurso.
-
O AWS Proton chama o CodeBuild para iniciar um trabalho. O trabalho do CodeBuild executa os comandos do shell do cliente especificados no modelo. Esses comandos provisionam a infraestrutura desejada e, opcionalmente, leem os valores de entrada.
-
Quando o provisionamento é concluído, o comando final do cliente retorna o status do provisionamento para o CodeBuild e chama a ação da API do AWS Proton NotifyResourceDeploymentStatusChange para fornecer resultados, como Amazon VPC ID, se houver.
Importante
Certifique-se de que seus comandos retornem corretamente o status de provisionamento para o CodeBuild e forneçam as saídas. Caso contrário, o AWS Proton não conseguirá rastrear adequadamente o status do provisionamento e não poderá fornecer resultados corretos para as instâncias de serviço.
O diagrama a seguir ilustra as etapas que o AWS Proton executa e as etapas que seus comandos executam em uma tarefa do CodeBuild.
Considerações sobre o provisionamento do CodeBuild
-
Perfil de provisionamento de infraestrutura – Quando um ambiente ou qualquer uma das instâncias de serviço em execução nele pode usar o provisionamento baseado no CodeBuild, um administrador precisa configurar um perfil do IAM (diretamente ou como parte de uma conexão de conta do ambiente do AWS Proton). O AWS Proton usa esse perfil para provisionar a infraestrutura desses recursos de provisionamento do CodeBuild. O perfil deve ter permissões para usar o CodeBuild para criar todos os recursos que seus comandos nos modelos desses recursos provisionam.
Para obter mais informações, consulte Funções do IAM e AWS Proton IAMexemplos de políticas de função de serviço.
-
Provisionamento de serviços – Quando um desenvolvedor implanta uma instância de serviço que usa provisionamento do CodeBuild no ambiente, o AWS Proton usa o perfil fornecido a esse ambiente para provisionar a infraestrutura para a instância de serviço. Os desenvolvedores não veem esse perfil e não podem alterá-lo.
-
Serviço com pipeline – Um modelo de serviço que usa o provisionamento do CodeBuild pode incluir comandos para provisionar um pipeline. O AWS Proton também cria o pipeline chamando o CodeBuild. O perfil que o AWS Proton usa para criar um pipeline é separado do perfil de cada ambiente individual. Esse perfil é fornecida ao AWS Proton separadamente, apenas uma vez no nível da conta do AWS, e é usada para provisionar e gerenciar todos os pipelines baseados no CodeBuild. Esse perfil deve ter permissões para criar pipelines e outros recursos de que seus pipelines precisam.
Os procedimentos a seguir mostram como fornecer o perfil de pipeline para o AWS Proton.
Como funciona o provisionamento autogerenciado
Quando um ambiente é configurado para usar provisionamento autogerenciado, a infraestrutura é provisionada da seguinte forma:
-
Um cliente (administrador ou desenvolvedor) do AWS Proton cria o recurso (um ambiente ou um serviço) do AWS Proton. O cliente seleciona um modelo para o recurso e fornece os parâmetros necessários. Para um ambiente, o cliente também fornece um repositório de infraestrutura vinculado. Para obter mais informações, consulte a seção Considerações sobre o provisionamento autogerenciado a seguir.
-
O AWS Proton renderiza um modelo completo do Terraform. Ele consiste em um ou mais arquivos do Terraform, potencialmente em várias pastas, e um arquivo de variáveis do
.tfvars
. O AWS Proton grava os valores dos parâmetros fornecidos ao chamar a criação do recurso nesse arquivo de variáveis. -
O AWS Proton envia um PR para o repositório de infraestrutura com o modelo renderizado do Terraform.
-
Quando o cliente (administrador ou desenvolvedor) mescla o PR, a automação do cliente aciona o mecanismo de provisionamento para iniciar o provisionamento da infraestrutura usando o modelo mesclado.
nota
Se o cliente (administrador ou desenvolvedor) fechar o PR, o AWS Proton reconhecerá o PR como fechado e marcará a implantação como cancelada.
-
Quando o provisionamento for concluído, a automação do cliente chama a ação da API do AWS Proton NotifyResourceDeploymentStatusChange para indicar a conclusão, fornecer o status (sucesso ou falha) e fornecer saídas, como Amazon VPC ID, se houver.
Importante
Certifique-se de que seu código de automação retorne ao AWS Proton com o status e as saídas do provisionamento. Caso contrário, o AWS Proton pode considerar o provisionamento pendente por mais tempo do que deveria e continuar mostrando o status Em andamento.
O diagrama a seguir ilustra as etapas que o AWS Proton executa e as etapas que seu próprio sistema de provisionamento executa.
Considerações sobre o provisionamento autogerenciado
-
Repositório de infraestrutura – Quando um administrador configura um ambiente para provisionamento autogerenciado, ele precisa fornecer um repositório de infraestrutura vinculado. O AWS Proton envia PRs a esse repositório para provisionar a infraestrutura do ambiente e todas as instâncias de serviço que são implantadas nele. A ação de automação de propriedade do cliente no repositório deve assumir um perfil do IAM com permissões para criar todos os recursos que seus modelos de ambiente e serviço incluem e uma identidade que reflita a conta de destino do AWS. Para ver um exemplo de Ação do GitHub que assume um perfil, consulte Assumir um perfil
na documentação Ação “Configurar Credenciais do AWS” para o GitHub. -
Permissões – Seu código de provisionamento precisa ser autenticado com uma conta conforme necessário (por exemplo, autenticar-se em uma conta do AWS) e fornecer autorização de provisionamento de recursos (por exemplo, fornecer um perfil).
-
Provisionamento de serviços – Quando um desenvolvedor implanta uma instância de serviço que usa provisionamento autogerenciado no ambiente, o AWS Proton envia um PR para o repositório para provisionar a infraestrutura para a instância de serviço. Os desenvolvedores não veem o repositório e não podem alterá-lo.
nota
Os desenvolvedores que criam serviços usam o mesmo processo, independentemente do método de provisionamento, e a diferença é abstraída deles. No entanto, com o provisionamento autogerenciado, os desenvolvedores podem ter uma resposta mais lenta, porque precisam esperar até que alguém (que pode não ser eles mesmos) mescle o PR no repositório de infraestrutura antes que o provisionamento possa começar.
-
Serviço com pipeline – Um modelo de serviço para um ambiente com provisionamento autogerenciado pode incluir uma definição de pipeline (por exemplo, um pipeline do AWS CodePipeline), escrita em Terraform HCL. Para permitir que o AWS Proton faça o provisionamento desses pipelines, um administrador fornece um repositório de pipeline vinculado ao AWS Proton. Ao provisionar um pipeline, a ação de automação de propriedade do cliente no repositório deve assumir um perfil do IAM com permissões para provisionar o pipeline e uma identidade que reflita a conta de destino do AWS. O repositório e o perfil do pipeline são separados daqueles usados para cada ambiente individual. Esse repositório vinculado é fornecido ao AWS Proton separadamente, apenas uma vez no nível da conta do , e é usada para provisionar e gerenciar todos os pipelines. O perfil deve ter permissões para criar pipelines e outros recursos de que seus pipelines precisam.
Os procedimentos a seguir mostram como fornecer o repositório e o perfil de pipeline para o AWS Proton.
-
Exclusão de recursos provisionados autogerenciados – os módulos do Terraform podem incluir elementos de configuração necessários para a operação do Terraform, além das definições de recursos. Portanto, o AWS Proton não pode excluir todos os arquivos do Terraform de um ambiente ou instância de serviço. Em vez disso, o AWS Proton marca os arquivos para exclusão e atualiza um sinalizador nos metadados do PR. Sua automação pode ler essa bandeira e usá-la para acionar um comando terraform destroy.