Un prodotto è un insieme di risorse cloud AWS che desideri rendere disponibili per l’implementazione su AWS. In esso possono essere inclusi una o più risorse AWS, come istanze EC2, volumi di storage, database, configurazioni di monitoraggio e componenti di rete, oppure prodotti di Marketplace AWS sotto forma di pacchetti. Un prodotto può essere costituito da una singola istanza di elaborazione che esegue AWS Linux, da un'applicazione Web multi-livello preconfigurata eseguita in un proprio ambiente o da qualunque configurazione intermedia. Utilizzando il Catalogo dei servizi AWS, puoi creare prodotti in diversi modi, inclusi modelli AWS CloudFormation o configurazioni Terraform. Tali modelli e configurazioni definiscono le risorse AWS necessarie per l'esecuzione del prodotto e le relazioni fra tali risorse, nonché i parametri che l'utente finale può indicare al momento dell'avvio per configurare gruppi di sicurezza, creare coppie di chiavi e personalizzare in altro modo la soluzione.
I prodotti del Catalogo dei servizi AWS sono prodotti di tipo AWS CloudFormation o prodotti di tipo open source Terraform o prodotti Terraform Cloud. Ogni prodotto del Catalogo dei servizi AWS viene avviato sotto forma di stack di AWS CloudFormation, un set di risorse allestite per l'istanza in questione del prodotto. Per i prodotti di tipo open source Terraform e di tipo Terraform Cloud, le risorse sottostanti sono archiviate e contrassegnate in gruppi di risorse AWS. Gli stack di AWS CloudFormation e di gruppi di risorse AWS agevolano la gestione del ciclo di vita dei prodotti, consentendo di allocare, contrassegnare con tag, aggiornare e terminare le relative istanze come singole unità.
Un portafoglio è un gruppo di prodotti corredato da informazioni di configurazione. I portafogli aiutano a gestire la configurazione dei prodotti, gli utenti autorizzati a utilizzare prodotti specifici e secondo quali condizioni. AWS Service Catalog permette di creare un portafoglio personalizzato per ciascun tipo di utente dell'organizzazione e di concedere in modo selettivo l'accesso al portafoglio appropriato. Quando una nuova versione di un prodotto viene aggiunta a un portafoglio, è disponibile automaticamente a tutti gli utenti a cui tale portafoglio è stato assegnato. È inoltre possibile condividere i portafogli con altri account AWS e permettere all'amministratore di tali account di distribuire i portafogli in questione applicando ulteriori condizioni. Per gli sviluppatori è possibile, ad esempio, definire un portafoglio di ambienti di sviluppo, come uno stack LAMP con versioni approvate che gli utenti possono utilizzare per lo sviluppo e i test del software. Per le organizzazioni di marketing potresti invece definire un portafoglio con siti Web di campagne e applicazioni per analisi di mercato. Un portafoglio può contenere un mix di prodotti di diversi tipi, inclusi prodotti di tipo AWS CloudFormation o prodotti di tipo open source Terraform e Terraform Cloud.
AWS Service Catalog permette di gestire più di una versione dei prodotti presenti nel catalogo. In questo modo è possibile aggiungere nuove versioni dei modelli e delle relative risorse in base agli aggiornamenti del software o alle modifiche alla configurazione. Quando viene creata una nuova versione di un prodotto, l'aggiornamento viene automaticamente distribuito a tutti gli utenti che hanno accesso a tale prodotto, consentendo loro di scegliere quale versione utilizzare. Gli utenti possono aggiornare in modo rapido e semplice alla nuova versione le istanze del prodotto in esecuzione.
Gli utenti autorizzati all'accesso a un portafoglio potranno sfogliarlo e lanciare i prodotti contenuti al suo interno. Per mantenere il controllo sulle autorizzazioni di lettura e di scrittura sui prodotti e i portfolio, è possibile impiegare AWS Identity and Access Management (IAM). È possibile assegnare autorizzazioni specifiche a utenti, gruppi e ruoli IAM. Quando un utente avvia un prodotto a cui è assegnato un ruolo IAM, Catalogo dei servizi AWS utilizza tale ruolo per avviare le risorse del prodotto nel cloud. Assegnando un ruolo IAM a ciascun prodotto, puoi evitare di concedere agli utenti il permesso di compiere operazioni non approvate e consentire loro di effettuare il provisioning delle risorse utilizzando il catalogo.
I vincoli limitano le modalità di distribuzione di risorse AWS specifiche per un prodotto. Possono essere impiegati per introdurre limitazioni a scopo di governance o di controllo dei costi. Esistono due tipi di vincoli: di modello e di avvio. I vincoli di modello impongono restrizioni ai parametri di configurazione a disposizione degli utenti all'avvio di un prodotto (ad esempio ai tipi di istanze EC2 o agli intervalli di indirizzi IP). I vincoli dei modelli consentono di riutilizzare modelli infrastruttura come codice (IaC) generici per i prodotti e applicare limitazioni ai modelli in base a prodotti o portafogli. I vincoli di avvio permettono di specificare il ruolo di un prodotto all'interno di un portafoglio. Tale ruolo viene utilizzato per effettuare il provisioning delle risorse al momento del lancio e permette quindi di limitare le autorizzazioni degli utenti senza impedire loro di avviare prodotti dal catalogo. Puoi ad esempio consentire agli utenti di marketing di creare siti Web per eventuali campagne, ma utilizzare i vincoli per limitare il loro accesso per scopi di provisioning dei database sottostanti. I vincoli di lancio sono supportati per i prodotti di tipo open source Terraform e Terraform Cloud. I vincoli del modello non sono ancora disponibili per i prodotti di tipo open source Terraform e Terraform Cloud.
Tramite le operazioni del servizio, puoi consentire agli utenti finali di eseguire attività operative, risolvere problemi, eseguire domandi approvati o richiedere le autorizzazioni in AWS Service Catalog relativamente ai prodotti forniti senza dover concedere agli utenti l’accesso completo ai servizi AWS. Per definire le operazioni del servizio, consulta la documentazione di AWS Systems Manager. Nella documentazione di AWS Systems Manager sono riportate le operazioni predefinite che implementano le best practice AWS, come arresto e riavvio di Amazon EC2, ed è descritto come definire le operazioni personalizzate. Le operazioni di servizio non sono ancora disponibili per i prodotti di tipo open source Terraform e Terraform Cloud.
I builder possono definire le loro applicazioni all’interno di AppRegistry di AWS Service Catalog fornendo un nome, una descrizione, le associazioni ai metadati dell’applicazione e le associazioni agli stack CloudFormation. I gruppi di attributi associati rappresentano i metadati creati e gestiti dall’azienda per l’applicazione. Gli stack CloudFormation associati rappresentano le risorse AWS associate all’applicazione. Questa potrebbe essere l'infrastruttura richiesta in un singolo ambiente o potrebbe anche includere i repository di codice e le pipeline che supportano l'applicazione in tutti gli ambienti. Alle applicazioni possono essere associati stack CloudFormation nuovi o già esistenti. Gli stack possono essere associati alle applicazioni all'interno del modello stesso, automatizzando l'associazione dell'applicazione durante il provisioning.
La tua azienda crea e gestisce attributi che catturano i metadati dell'applicazione che sono importanti. Gli attributi dell'applicazione supportano uno schema JSON aperto, offrendoti la flessibilità necessaria per catturare la complessità della tassonomia dei metadati della tua azienda. Gli attributi dell'applicazione possono includere elementi come la classificazione della sicurezza delle applicazioni, la proprietà dell'organizzazione, il tipo di applicazione, il centro costi e le informazioni di supporto. I builder associano gli attributi necessari alle loro applicazioni. Quando gli attributi vengono aggiornati, ciò si riflette automaticamente in tutte le applicazioni associate.