In che modo AWS Proton provvede l'infrastruttura - AWS Proton

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

In che modo AWS Proton provvede l'infrastruttura

AWS Proton può fornire l'infrastruttura in diversi modi:

  • AWS-managed provisioning: AWS Proton richiama il motore di provisioning per conto dell'utente. Questo metodo supporta solo AWS CloudFormation pacchetti di modelli. Per ulteriori informazioni, consulta AWS CloudFormation file IAc.

  • CodeBuild provisioning: AWS Proton viene utilizzato AWS CodeBuild per eseguire i comandi di shell forniti dall'utente. I comandi sono in grado di leggere gli input che AWS Proton forniscono e sono responsabili del provisioning o del deprovisioning dell'infrastruttura e della generazione di valori di output. Un pacchetto di modelli per questo metodo include i comandi in un file manifest e tutti i programmi, script o altri file necessari per questi comandi.

    Come esempio di utilizzo del CodeBuild provisioning, è possibile includere codice che utilizza AWS Cloud Development Kit (AWS CDK) per fornire AWS risorse e un manifesto che installa il CDK ed esegue il codice CDK.

    Per ulteriori informazioni, consulta CodeBuild pacchetto di modelli di provisioning.

    Nota

    È possibile utilizzare il CodeBuild provisioning con ambienti e servizi. Al momento non è possibile effettuare il provisioning dei componenti in questo modo.

  • Provisioning autogestito: AWS Proton invia una pull request (PR) a un repository fornito dall'utente, dove il sistema di implementazione dell'infrastruttura aziendale esegue il processo di provisioning. Questo metodo supporta solo i pacchetti di modelli Terraform. Per ulteriori informazioni, consulta file Terraform iAC.

AWS Proton determina e imposta separatamente il metodo di provisioning per ogni ambiente e servizio. Quando si crea o si aggiorna un ambiente o un servizio, AWS Proton esamina il pacchetto di modelli fornito e determina il metodo di provisioning indicato dal pacchetto di modelli. A livello di ambiente, fornisci i parametri di cui l'ambiente e i suoi potenziali servizi potrebbero aver bisogno per i relativi metodi di provisioning: ruoli AWS Identity and Access Management (IAM), una connessione all'account di ambiente o un repository di infrastruttura.

Gli sviluppatori che forniscono AWS Proton un servizio hanno la stessa esperienza indipendentemente dal metodo di provisioning. Gli sviluppatori non devono conoscere il metodo di fornitura e non devono modificare nulla nel processo di fornitura del servizio. Il modello di servizio imposta il metodo di provisioning e ogni ambiente in cui uno sviluppatore distribuisce il servizio fornisce i parametri necessari per il provisioning delle istanze di servizio.

Il diagramma seguente riassume alcune caratteristiche principali dei diversi metodi di provisioning. Le sezioni che seguono la tabella forniscono dettagli su ciascun metodo.

Metodo di provisioning Modelli Fornito da Stato monitorato da

AWS-gestito

manifesto, schema, file IAC () CloudFormation

AWS Proton (tramite CloudFormation)

AWS Proton (attraverso CloudFormation)

CodeBuild

manifest (con comandi), schema, dipendenze dei comandi (ad esempio AWS CDK codice)

AWS Proton (tramite CodeBuild)

AWS Proton (i tuoi comandi restituiscono lo stato tramite CodeBuild)

autogestito

manifest, schema, file IAc (Terraform)

Il tuo codice (tramite azioni Git)

Il tuo codice (passato AWS tramite chiamata API)

Come funziona il provisioning AWS gestito

Quando un ambiente o un servizio utilizza il provisioning AWS gestito, l'infrastruttura viene fornita come segue:

  1. Un AWS Proton cliente (un amministratore o uno sviluppatore) crea la AWS Proton risorsa (un ambiente o un servizio). Il cliente seleziona un modello per la risorsa e fornisce i parametri richiesti. Per ulteriori informazioni, vedere la sezione seguente,Considerazioni sul provisioning gestito AWS.

  2. AWS Proton rende un AWS CloudFormation modello completo per il provisioning della risorsa.

  3. AWS Proton chiamate AWS CloudFormation per avviare il provisioning utilizzando il modello renderizzato.

  4. AWS Proton monitora continuamente la distribuzione. AWS CloudFormation

  5. Una volta completato il provisioning, AWS Proton segnala gli errori in caso di guasto e acquisisce gli output del provisioning, come l'ID Amazon VPC, in caso di successo.

Il diagramma seguente mostra che AWS Proton si occupa direttamente della maggior parte di questi passaggi.

Diagramma che illustra AWS il provisioning gestito in AWS Proton

Considerazioni sul provisioning gestito AWS

  • Ruolo di provisioning dell'infrastruttura: quando un ambiente o una qualsiasi delle istanze di servizio in esso in esecuzione possono utilizzare il provisioning AWS gestito, un amministratore deve configurare un ruolo IAM (direttamente o come parte di una connessione all'account di ambiente). AWS Proton AWS Proton utilizza questo ruolo per fornire l'infrastruttura di queste AWS risorse di provisioning gestite. Il ruolo deve disporre delle autorizzazioni necessarie AWS CloudFormation per creare tutte le risorse incluse nei modelli di tali risorse.

    Per ulteriori informazioni, consultare Ruoli IAM e AWS Proton Esempi di policy relative ai ruoli di servizio IAM.

  • Fornitura del servizio: quando uno sviluppatore implementa un'istanza di servizio che utilizza il provisioning AWS gestito nell'ambiente, AWS Proton utilizza il ruolo assegnato a tale ambiente per fornire l'infrastruttura per l'istanza di servizio. Gli sviluppatori non vedono questo ruolo e non possono cambiarlo.

  • Servizio con pipeline: un modello di servizio che utilizza AWS-managed provisioning può includere una definizione di pipeline scritta nello schema YAML. AWS CloudFormation AWS Proton crea anche la pipeline chiamando. AWS CloudFormation Il ruolo AWS Proton utilizzato per creare una pipeline è separato dal ruolo per ogni singolo ambiente. Questo ruolo viene assegnato AWS Proton separatamente, una sola volta a livello di AWS account, e viene utilizzato per il provisioning e la gestione di tutte le pipeline AWS gestite. Questo ruolo dovrebbe avere le autorizzazioni per creare pipeline e altre risorse necessarie alle tue pipeline.

    Le seguenti procedure mostrano come fornire il ruolo della pipeline a. AWS Proton

    AWS Proton console
    Per fornire il ruolo della pipeline
    1. Nella AWS Proton console, nel riquadro di navigazione, scegli Impostazioni > Impostazioni account, quindi scegli Configura.

    2. Utilizza la sezione Pipeline AWS-managed role per configurare un ruolo pipeline nuovo o esistente per AWS il provisioning gestito.

    AWS Proton API
    Per fornire il ruolo della pipeline
    1. Usa l'azione UpdateAccountSettingsAPI.

    2. Fornisci l'Amazon Resource Name (ARN) del tuo ruolo di servizio di pipeline nel parametro. pipelineServiceRoleArn

    AWS CLI

    Per fornire il ruolo della pipeline

    Esegui il comando seguente:

    $ aws proton update-account-settings \ --pipeline-service-role-arn \ "arn:aws:iam::123456789012:role/my-pipeline-role"

Come funziona il CodeBuild provisioning

Quando un ambiente o un servizio utilizza il CodeBuild provisioning, l'infrastruttura viene fornita come segue:

  1. Un AWS Proton cliente (un amministratore o uno sviluppatore) crea la AWS Proton risorsa (un ambiente o un servizio). Il cliente seleziona un modello per la risorsa e fornisce i parametri richiesti. Per ulteriori informazioni, vedere la sezione seguente,Considerazioni per il provisioning CodeBuild .

  2. AWS Proton esegue il rendering di un file di input con i valori dei parametri di input per il provisioning della risorsa.

  3. AWS Proton chiamate CodeBuild per iniziare un lavoro. Il CodeBuild job esegue i comandi della shell del cliente specificati nel modello. Questi comandi forniscono l'infrastruttura desiderata, mentre opzionalmente leggono i valori di input.

  4. Al termine del provisioning, il comando del cliente finale restituisce lo stato di approvvigionamento CodeBuild e richiama l'azione dell'NotifyResourceDeploymentStatusChange AWS Proton API per fornire output, come l'ID Amazon VPC, se presenti.

    Importante

    Assicurati che i comandi restituiscano correttamente lo stato di provisioning e forniscano gli output. CodeBuild In caso contrario, non sono in AWS Proton grado di tracciare correttamente lo stato del provisioning e non possono fornire output corretti alle istanze di servizio.

Il diagramma seguente illustra i passaggi eseguiti e i passaggi AWS Proton eseguiti dai comandi all'interno di un processo. CodeBuild

Diagramma che illustra CodeBuild il provisioning basato su AWS Proton

Considerazioni per il provisioning CodeBuild

  • Ruolo di provisioning dell'infrastruttura: quando un ambiente o una qualsiasi delle istanze di servizio in esso eseguite possono utilizzare il provisioning CodeBuild basato, un amministratore deve configurare un ruolo IAM (direttamente o come parte di una AWS Proton connessione all'account di ambiente). AWS Proton utilizza questo ruolo per fornire l'infrastruttura di queste CodeBuild risorse di provisioning. Il ruolo deve disporre delle autorizzazioni necessarie CodeBuild per creare tutte le risorse fornite dai comandi nei modelli di tali risorse.

    Per ulteriori informazioni, consultare Ruoli IAM e AWS Proton Esempi di policy relative ai ruoli di servizio IAM.

  • Fornitura del servizio: quando uno sviluppatore implementa un'istanza di servizio che utilizza il CodeBuild provisioning all'ambiente, AWS Proton utilizza il ruolo assegnato a tale ambiente per fornire l'infrastruttura per l'istanza di servizio. Gli sviluppatori non vedono questo ruolo e non possono cambiarlo.

  • Servizio con pipeline: un modello di servizio che utilizza il CodeBuild provisioning può includere comandi per il provisioning di una pipeline. AWS Proton crea anche la pipeline chiamando. CodeBuild Il ruolo AWS Proton utilizzato per creare una pipeline è separato dal ruolo per ogni singolo ambiente. Questo ruolo viene assegnato AWS Proton separatamente, una sola volta a livello di AWS account, e viene utilizzato per il provisioning e la gestione di tutte le pipeline CodeBuild basate. Questo ruolo dovrebbe avere le autorizzazioni per creare pipeline e altre risorse necessarie alle tue pipeline.

    Le seguenti procedure mostrano come fornire il ruolo della pipeline a. AWS Proton

    AWS Proton console
    Per fornire il ruolo della pipeline
    1. Nella AWS Proton console, nel riquadro di navigazione, scegli Impostazioni > Impostazioni account, quindi scegli Configura.

    2. Utilizza la sezione Codebuild pipeline provisioning role per configurare un ruolo pipeline nuovo o esistente per il provisioning. CodeBuild

    AWS Proton API
    Per fornire il ruolo della pipeline
    1. Usa l'azione UpdateAccountSettingsAPI.

    2. Fornisci l'Amazon Resource Name (ARN) del tuo ruolo di servizio di pipeline nel parametro. pipelineCodebuildRoleArn

    AWS CLI

    Per fornire il ruolo della pipeline

    Esegui il comando seguente:

    $ aws proton update-account-settings \ --pipeline-codebuild-role-arn \ "arn:aws:iam::123456789012:role/my-pipeline-role"

Come funziona il provisioning autogestito

Quando un ambiente è configurato per utilizzare il provisioning autogestito, l'infrastruttura viene fornita come segue:

  1. Un AWS Proton cliente (un amministratore o uno sviluppatore) crea la AWS Proton risorsa (un ambiente o un servizio). Il cliente seleziona un modello per la risorsa e fornisce i parametri richiesti. Per un ambiente, il cliente fornisce anche un repository di infrastruttura collegata. Per ulteriori informazioni, vedere la sezione seguente,Considerazioni per il provisioning autogestito.

  2. AWS Proton rende un modello Terraform completo. Consiste in uno o più file Terraform, potenzialmente in più cartelle, e un .tfvars file di variabili. AWS Proton scrive i valori dei parametri forniti durante la chiamata di creazione delle risorse in questo file di variabili.

  3. AWS Proton invia un PR al repository dell'infrastruttura con il modello Terraform renderizzato.

  4. Quando il cliente (amministratore o sviluppatore) unisce il PR, l'automazione del cliente attiva il motore di provisioning per avviare il provisioning dell'infrastruttura utilizzando il modello unito.

    Nota

    Se il cliente (amministratore o sviluppatore) chiude il PR, AWS Proton riconosce il PR come chiuso e contrassegna l'implementazione come annullata.

  5. Una volta completato il provisioning, l'automazione del cliente richiama l'azione dell'NotifyResourceDeploymentStatusChange AWS Proton API per indicare il completamento, fornire lo stato (successo o fallimento) e fornire output, come l'ID Amazon VPC, se presenti.

    Importante

    Assicurati che il codice di automazione richiami lo stato e AWS Proton gli output del provisioning. In caso contrario, AWS Proton potresti considerare il provisioning in sospeso più a lungo del dovuto e continuare a mostrare lo stato In corso.

Il diagramma seguente illustra i passaggi eseguiti e i passaggi AWS Proton eseguiti dal proprio sistema di provisioning.

Diagramma che illustra il provisioning autogestito in AWS Proton

Considerazioni per il provisioning autogestito

  • Archivio dell'infrastruttura: quando un amministratore configura un ambiente per il provisioning autogestito, deve fornire un repository di infrastruttura collegato. AWS Proton viene inviato PRs a questo repository per fornire l'infrastruttura dell'ambiente e tutte le istanze di servizio che vi vengono distribuite. L'azione di automazione di proprietà del cliente nel repository deve assumere un ruolo IAM con le autorizzazioni per creare tutte le risorse incluse nell'ambiente e nei modelli di servizio e un'identità che rifletta l'account di destinazione. AWS Per un esempio di GitHub azione che presuppone un ruolo, consulta Assumere un ruolo nella documentazione «Configure AWS Credentials» Action For Actions. GitHub

  • Autorizzazioni: il codice di provisioning deve autenticarsi con un account secondo necessità (ad esempio, autenticarsi su un AWS account) e fornire l'autorizzazione per l'approvvigionamento delle risorse (ad esempio, fornire un ruolo).

  • Fornitura del servizio: quando uno sviluppatore implementa un'istanza di servizio che utilizza il provisioning autogestito all'ambiente, AWS Proton invia un PR al repository associato all'ambiente per fornire l'infrastruttura per l'istanza del servizio. Gli sviluppatori non vedono il repository e non possono modificarlo.

    Nota

    Gli sviluppatori che creano servizi utilizzano lo stesso processo indipendentemente dal metodo di provisioning e la differenza viene astratta da essi. Tuttavia, con il provisioning autogestito, gli sviluppatori potrebbero riscontrare una risposta più lenta, poiché devono attendere che qualcuno (che potrebbe non essere loro stesso) unisca il PR nell'archivio dell'infrastruttura prima di iniziare il provisioning.

  • Servizio con pipeline: un modello di servizio per un ambiente con provisioning autogestito può includere una definizione di pipeline (ad esempio, una pipeline), scritta in Terraform HCL. AWS CodePipeline Per consentire il provisioning AWS Proton di queste pipeline, un amministratore fornisce un repository di pipeline collegato a. AWS Proton Quando si effettua il provisioning di una pipeline, l'azione di automazione di proprietà del cliente nell'archivio deve assumere un ruolo IAM con le autorizzazioni per il provisioning della pipeline e un'identità che rifletta l'account di destinazione. AWS L'archivio e il ruolo della pipeline sono separati da quelli utilizzati per ogni singolo ambiente. L'archivio collegato viene fornito AWS Proton separatamente, una sola volta a livello di AWS account, e viene utilizzato per il provisioning e la gestione di tutte le pipeline. Il ruolo deve avere le autorizzazioni per creare pipeline e altre risorse necessarie alle tue pipeline.

    Le seguenti procedure mostrano come fornire l'archivio e il ruolo della pipeline a. AWS Proton

    AWS Proton console
    Per fornire il ruolo della pipeline
    1. Nella AWS Proton console, nel riquadro di navigazione, scegli Impostazioni > Impostazioni account, quindi scegli Configura.

    2. Utilizza la sezione CI/CD pipeline repository per configurare un collegamento al repository nuovo o esistente.

    AWS Proton API
    Per fornire il ruolo della pipeline
    1. Usa l'azione UpdateAccountSettingsAPI.

    2. Fornisci il provider, il nome e il ramo del tuo repository di pipeline nel pipelineProvisioningRepository parametro.

    AWS CLI

    Per fornire il ruolo della pipeline

    Esegui il comando seguente:

    $ aws proton update-account-settings \ --pipeline-provisioning-repository \ "provider=GITHUB,name=my-pipeline-repo-name,branch=my-branch"
  • Eliminazione delle risorse fornite autogestite: i moduli Terraform possono includere elementi di configurazione necessari per il funzionamento di Terraform, oltre alle definizioni delle risorse. Pertanto, non è AWS Proton possibile eliminare tutti i file Terraform per un'istanza di ambiente o servizio. Invece, AWS Proton contrassegna i file per l'eliminazione e ha aggiornato un flag nei metadati PR. La tua automazione può leggere quel flag e usarlo per attivare un comando terraform destroy.