Utilizzo di AMI personalizzate - AWS OpsWorks

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à.

Utilizzo di AMI personalizzate

Importante

Il AWS OpsWorks Stacks servizio ha raggiunto la fine del ciclo di vita il 26 maggio 2024 ed è stato disabilitato sia per i clienti nuovi che per quelli esistenti. Consigliamo vivamente ai clienti di migrare i propri carichi di lavoro verso altre soluzioni il prima possibile. Se hai domande sulla migrazione, contatta il AWS Support Team su AWS re:post o tramite Premium AWS Support.

AWS OpsWorks Stacks supporta due modi per personalizzare le istanze: Amazon Machine Images (AMI) personalizzate e ricette Chef. Entrambi gli approcci consentono di controllare quali pacchetti e versioni di pacchetti sono installati, come sono configurati e così via. Tuttavia, ogni approccio ha diversi vantaggi, perciò il migliore varia in base alle proprie esigenze.

Di seguito sono elencati i principali motivi per valutare l'utilizzo di un'AMI personalizzata:

  • Si desidera raggruppare pacchetti specifici invece di installarli dopo l'avvio dell'istanza.

  • È possibile controllare la tempistica degli aggiornamenti del pacchetto per fornire una immagine di base coerente per il livello.

  • È opportuno avere istanze, istanze basate sul carico in particolare, per eseguire l'avvio il più rapidamente possibile.

Di seguito sono elencati i principali motivi per valutare l'utilizzo di ricette Chef:

  • Sono più flessibili di AMI personalizzate.

  • Sono più facili da aggiornare.

  • Possono eseguire gli aggiornamenti sulle istanze in esecuzione.

In pratica, la soluzione ottimale potrebbe essere una combinazione di entrambi gli approcci. Per ulteriori informazioni sulle ricette, consulta Libri di ricette e ricette.

Come funzionano le AMI personalizzate con Stacks AWS OpsWorks

Per specificare un AMI personalizzato per le tue istanze, seleziona Usa AMI personalizzato come sistema operativo dell'istanza quando crei una nuova istanza. AWS OpsWorks Stacks visualizza quindi un elenco delle AMI personalizzate nella regione dello stack e seleziona quella appropriata dall'elenco. Per ulteriori informazioni, consulta Aggiunta di un'istanza a un livello.

Nota

Non è possibile specificare una determinata AMI personalizzata come sistema operativo predefinito dello stack. È possibile impostare Use custom AMI come sistema operativo predefinito dello stack, ma è possibile specificare una determinata AMI solo quando si aggiungono nuove istanze ai livelli. Per ulteriori informazioni, consulta Aggiunta di un'istanza a un livello e Creare un nuovo stack. Sebbene sia possibile creare istanze con altri sistemi operativi (come CentOS 6.x)) che sono stati creati da AMI personalizzate o generate dalla community, queste non sono supportate ufficialmente.

Questo argomento illustra alcune questioni generali che si devono considerare prima di creare o utilizzare un'AMI personalizzata.

Comportamento startup

All'avvio dell'istanza, AWS OpsWorks Stacks utilizza l'AMI personalizzata specificata per avviare una nuova istanza Amazon EC2. AWS OpsWorks Stacks utilizza quindi cloud-init per installare l'agente AWS OpsWorks Stacks sull'istanza e l'agente esegue le ricette di installazione dell'istanza seguite dalle ricette Deploy. Dopo che l'istanza è online, l'agente esegue le ricette di configurazione per ogni istanza nello stack, tra cui la nuova istanza aggiunta.

Scelta di un livello

L'agente AWS OpsWorks Stacks di solito non è in conflitto con i pacchetti installati. Tuttavia, l'istanza deve essere membro di almeno un livello. AWS OpsWorks Stacks esegue sempre le ricette di quel livello, il che potrebbe causare problemi. È necessario comprendere esattamente ciò che le ricette di un livello fanno a un'istanza prima di aggiungere un'istanza con un'AMI personalizzata a tale livello.

Per vedere quali ricette un determinato tipo di livello esegue su un'istanza, aprire uno stack che include tale livello. Fare clic su Layers (Livelli) nel riquadro di navigazione e fare clic su Recipes (Ricette) per il livello di interesse. Per visualizzare il codice effettivo, fare clic sul nome della ricetta.

Nota

Per le AMI Linux, un modo per ridurre la possibilità di conflitti consiste nell'utilizzare AWS OpsWorks Stacks per effettuare il provisioning e configurare l'istanza che è alla base dell'AMI personalizzata. Per ulteriori informazioni, consulta Crea un'AMI Linux personalizzata da un' AWS OpsWorks istanza Stacks.

Gestione delle applicazioni

Oltre ai pacchetti, è possibile includere un'applicazione nell'AMI. Se si dispone di un'applicazione complessa di grandi dimensioni, l'inclusione nell'AMI può ridurre il tempo di avvio dell'istanza. Puoi includere piccole applicazioni nella tua AMI, ma di solito il vantaggio in termini di tempo rispetto alla distribuzione dell'applicazione da parte di AWS OpsWorks Stacks è minimo o nullo.

Un'opzione è di includere l'applicazione nell'AMI e anche creare un'applicazione che distribuisce l'applicazione per le istanze da un archivio. Grazie a questo approccio il tempo di avvio viene ridotto, ma fornisce anche un modo favorevole per aggiornare l'applicazione dopo che l'istanza è in esecuzione. Si noti che le configurazioni Chef sono idempotenti, perciò le ricette di distribuzione non modificheranno l'applicazione purché la versione nell'archivio sia la stessa di quella nell'istanza.

Creazione di un'AMI personalizzata per gli AWS OpsWorks stack

Per utilizzare un'AMI personalizzata con AWS OpsWorks Stacks, devi prima creare un'AMI da un'istanza personalizzata. Puoi scegliere tra due opzioni:

  • Utilizza la console o l'API Amazon EC2 per creare e personalizzare un'istanza, basata su una versione a 64 bit di una delle AMI supportate da AWS OpsWorks Stacks.

  • Per le AMI Linux, utilizza OpsWorks per creare un'istanza Amazon EC2, in base alla configurazione dei livelli associati.

Prima di creare un'AMI Linux personalizzata, disattivala noexec sulla /tmp partizione per consentire a AWS OpsWorks Stacks di installare il suo agente su istanze Linux personalizzate.

Nota

Si noti che un'AMI potrebbe non funzionare con tutti i tipi di istanze, quindi fare in modo che l'AMI di partenza sia compatibile con i tipi di istanza che si intende utilizzare. In particolare, i tipi di istanze R3 richiedono un'AMI di virtualizzazione basata su hardware (HVM).

Utilizza quindi la console o l'API Amazon EC2 per creare un'AMI personalizzata dall'istanza personalizzata. È possibile utilizzare AMI personalizzate in qualsiasi stack che si trova nella stessa regione aggiungendo un'istanza a un livello e specificando l'AMI personalizzata. Per ulteriori informazioni su come creare un'istanza che utilizza un'AMI personalizzata, consulta Aggiunta di un'istanza a un livello.

Nota

Per impostazione predefinita, AWS OpsWorks Stacks installa tutti gli aggiornamenti di Amazon Linux all'avvio, il che fornisce la versione più recente. Inoltre, Amazon Linux rilascia una nuova versione all'incirca ogni sei mesi, questo può comportare modifiche rilevanti. Per impostazione predefinita, le AMI personalizzate basate su Amazon Linux vengono automaticamente aggiornate alla nuova versione rilasciata. La pratica consigliata consiste nel bloccare l'AMI personalizzata a una specifica versione di Amazon Linux che permette di rimandare l'aggiornamento finché non è stata testata la nuova versione. Per ulteriori informazioni, consulta Come blocco l'AMI a una versione specifica?

Crea un'AMI personalizzata utilizzando Amazon EC2

Il modo più semplice per creare un'AMI personalizzata, nonché l'unica opzione per le AMI Windows, consiste nell'eseguire l'intera operazione utilizzando la console o l'API Amazon EC2. Per ulteriori informazioni sulle seguenti fasi, consulta Creazione delle proprie AMI.

Per creare un'AMI personalizzata utilizzando la console o l'API di Amazon EC2
  1. Creare un'istanza utilizzando una versione a 64 bit di una delle AMI supportate da AWS OpsWorks Stacks.

  2. Personalizzare l'istanza dalla Fase 1 mediante la configurazione, l'installazione di pacchetti e così via. Ricordarsi che tutto ciò che viene installato sarà riprodotto su ogni istanza in base all'AMI, perciò non includere le voci che devono essere specifiche per una determinata istanza.

  3. Arrestare l'istanza e creare un'AMI personalizzata.

Crea un'AMI Linux personalizzata da un' AWS OpsWorks istanza Stacks

Per utilizzare un'istanza AWS OpsWorks Stacks Linux personalizzata per creare un'AMI, tieni presente che ogni istanza Amazon EC2 creata OpsWorks da include un'identità unica. Se crei un'AMI personalizzata da tale istanza, include tale identità e tutte le istanze basate sull'AMI hanno la stessa identità. Per assicurarsi che le istanze basate sull'AMI personalizzata abbiano un'identità univoca, è necessario rimuovere l'identità dell'istanza personalizzata prima di creare l'AMI.

Per creare un'AMI personalizzata da un' AWS OpsWorks istanza Stacks
  1. Creare uno stack di Linux e aggiungere uno o più livelli per definire la configurazione dell'istanza personalizzata. È possibile utilizzare livelli integrati, personalizzati in base alle esigenze, nonché livelli personalizzati completi. Per ulteriori informazioni, consulta Personalizzazione AWS OpsWorks Stack.

  2. Modifica i livelli e disabilita AutoHealing.

  3. Aggiungere un'istanza con la distribuzione Linux preferita al livello o livelli e avviarla. Consigliamo di utilizzare un'istanza supportata da Amazon EBS. Apri la pagina dei dettagli dell'istanza e registra il relativo ID Amazon EC2 per utilizzarlo in un secondo momento.

  4. Quando l'istanza è online, accedere con SSH ed eseguire una delle quattro fasi riportate di seguito, a seconda del sistema operativo dell'istanza.

  5. Per un'istanza Amazon Linux in uno stack Chef 11 o Chef 12 o un'istanza Red Hat Enterprise Linux 7 in uno stack Chef 11, procedere come segue.

    1. sudo /etc/init.d/monit stop

    2. sudo /etc/init.d/opsworks-agent stop

    3. sudo rm -rf /etc/aws/opsworks/ /opt/aws/opsworks/ /var/log/aws/opsworks/ /var/lib/aws/opsworks/ /etc/monit.d/opsworks-agent.monitrc /etc/monit/conf.d/opsworks-agent.monitrc /var/lib/cloud/ /etc/chef

      Nota

      Per le istanze in uno stack Chef 12, aggiungere le seguenti due cartelle a questo comando:

      • /var/chef

      • /opt/chef

    4. sudo rpm -e opsworks-agent-ruby

    5. sudo rpm -e chef

  6. Per un'istanza Ubuntu 16.04 LTS o 18.04 LTS in uno stack Chef 12, procedere come segue.

    1. sudo systemctl stop opsworks-agent

    2. sudo rm -rf /etc/aws/opsworks/ /opt/aws/opsworks/ /var/log/aws/opsworks/ /var/lib/aws/opsworks/ /etc/monit.d/opsworks-agent.monitrc /etc/monit/conf.d/opsworks-agent.monitrc /var/lib/cloud/ /var/chef /opt/chef /etc/chef

    3. sudo apt-get -y remove chef

    4. sudo dpkg -r opsworks-agent-ruby

    5. systemctl stop apt-daily.timer

    6. systemctl stop apt-daily-upgrade.timer

    7. rm /var/lib/systemd/timers/stamp-apt-daily.timer

    8. rm /var/lib/systemd/timers/stamp-apt-daily-upgrade.timer

  7. Per altre versioni Ubuntu supportate in uno stack Chef 12, procedere come segue.

    1. sudo /etc/init.d/monit stop

    2. sudo /etc/init.d/opsworks-agent stop

    3. sudo rm -rf /etc/aws/opsworks/ /opt/aws/opsworks/ /var/log/aws/opsworks/ /var/lib/aws/opsworks/ /etc/monit.d/opsworks-agent.monitrc /etc/monit/conf.d/opsworks-agent.monitrc /var/lib/cloud/ /var/chef /opt/chef /etc/chef

    4. sudo apt-get -y remove chef

    5. sudo dpkg -r opsworks-agent-ruby

  8. Per un'istanza Red Hat Enterprise Linux 7 in uno stack Chef 12, procedere come segue.

    1. sudo systemctl stop opsworks-agent

    2. sudo rm -rf /etc/aws/opsworks/ /opt/aws/opsworks/ /var/log/aws/opsworks/ /var/lib/aws/opsworks/ /etc/monit.d/opsworks-agent.monitrc /etc/monit/conf.d/opsworks-agent.monitrc /var/lib/cloud/ /etc/chef /var/chef

    3. sudo rpm -e opsworks-agent-ruby

    4. sudo rpm -e chef

  9. Questa fase dipende dal tipo di istanza:

    • Per un'istanza supportata da Amazon EBS, usa la console AWS OpsWorks Stacks per arrestare l'istanza e creare l'AMI come descritto in Creazione di un'AMI Linux supportata da Amazon EBS.

    • Per un'istanza supportata dall'archivio di istanze, crea l'AMI come descritto in Creazione di un'AMI Linux supportata dall'archivio di istanze, quindi usa AWS OpsWorks la console Stacks per arrestare l'istanza.

      Quando si crea l'AMI, assicurarsi di includere i file del certificato. Ad esempio, è possibile chiamare il comando ec2-bundle-vol con l'argomento -i impostato su -i $(find /etc /usr /opt -name '*.pem' -o -name '*.crt' -o -name '*.gpg' | tr '\n' ','). Non rimuovere le chiavi pubbliche apt durante il raggruppamento Il comando ec2-bundle-vol predefinito gestisce questa attività.

  10. Pulisci lo stack tornando alla console AWS OpsWorks Stacks ed eliminando l'istanza dallo stack.

Creare un'AMI di Windows personalizzata

Le seguenti procedure creano AMI personalizzate per Windows Server 2022 Base. Puoi scegliere altri sistemi operativi Windows Server nella console di gestione Amazon EC2.

Importante

Attualmente, l'agente AWS OpsWorks Stacks non può essere installato e AWS OpsWorks Stacks non può gestire istanze basate su Windows che utilizzano una lingua dell'interfaccia utente di sistema diversa dall'inglese - Stati Uniti (en-US).

Creazione di un'AMI di Windows personalizzata con Sysprep

La creazione di AMI Windows personalizzate utilizzando Sysprep rallenta l'avvio dell'istanza, ma è un processo migliore. Il primo avvio di un'istanza creata da un'immagine creata con Sysprep richiede più tempo a causa delle Sysprep attività, dei riavvii, del provisioning degli Stack e della prima esecuzione degli AWS OpsWorks Stack, incluse l'installazione e la configurazione. AWS OpsWorks Completa i passaggi per creare un'AMI Windows personalizzata nella console Amazon EC2.

Per creare un'AMI personalizzata di Windows con Sysprep
  1. Nella console Amazon EC2 scegli Avvia istanza.

  2. Trova Microsoft Windows Server 2022 Base, quindi scegli Seleziona.

  3. Selezionare il tipo di istanza e selezionare Configure Instance Details (Configura i dettagli dell'istanza). Apportare modifiche di configurazione all'AMI, tra cui il nome della macchina, lo storage e le impostazioni del gruppo di sicurezza. Scegli Avvia.

  4. Dopo che il processo di avvio dell'istanza è terminato, ottenere la password e connettersi all'istanza in una finestra Windows Remote Desktop Connection (Connessione desktop remota).

  5. Nella schermata Start di Windows, scegli Start, quindi inizia a digitare ec2configservice finché i risultati non mostrano la console EC2 ConfigServiceSettings. Apri la console.

  6. Nella scheda Generale, assicurati che la casella di controllo Abilita UserData esecuzione sia compilata (sebbene questa opzione non sia richiestaSysprep, è necessaria per AWS OpsWorks Stacks per installare il suo agente). Deselezionare la casella di controllo per l'opzione Set the computer name of the instance... (Imposta il nome del computer dell'istanza...), perché questa opzione può causare un ciclo di riavvio con AWS OpsWorks Stacks.

  7. Nella scheda Immagine, imposta la password dell'amministratore su Random per consentire ad Amazon EC2 di generare automaticamente una password che puoi recuperare con una chiave SSH o Specify per specificare la tua password. Sysprepsalva questa impostazione. Se si specifica la propria password, archiviare la password in una posizione favorevole. Raccomandiamo di non selezionare Keep Existing (Mantieni esistente).

  8. Selezionare Apply (Applica) e Shutdown with Sysprep (Arresta con Sysprep). Quando viene chiesto di confermare, selezionare Yes (Sì).

  9. Dopo l'arresto dell'istanza, nella console Amazon EC2, fai clic con il pulsante destro del mouse sull'istanza nell'elenco Istanze, scegli Immagine, quindi scegli Crea immagine.

  10. Nella pagina Create Image (Crea immagine), fornire un nome e una descrizione per l'immagine e specificare la configurazione del volume. Al termine, selezionare Create Image (Crea immagine).

  11. Aprire la pagina Images (Immagini) e aspettare che l'immagine passi dalla fase pending (in attesa) a available (disponibile). La nuova AMI è pronta per l'uso.

Creazione di un'AMI di Windows personalizzata senza Sysprep

Completa i passaggi per creare un'AMI Windows personalizzata nella console Amazon EC2.

Per creare un'AMI personalizzata di Windows senza Sysprep
  1. Nella console Amazon EC2 scegli Avvia istanza.

  2. Trova Microsoft Windows Server 2022 Base, quindi scegli Seleziona.

  3. Selezionare il tipo di istanza e selezionare Configure Instance Details (Configura i dettagli dell'istanza). Apportare modifiche di configurazione all'AMI, tra cui il nome della macchina, lo storage e le impostazioni del gruppo di sicurezza. Scegli Avvia.

  4. Dopo che il processo di avvio dell'istanza è terminato, ottenere la password e connettersi all'istanza in una finestra Windows Remote Desktop Connection (Connessione desktop remota).

  5. Nella istanza, aprire C:\Program Files\Amazon\Ec2ConfigService\Settings\config.xml, modificare le seguenti due impostazioni e quindi salvare e chiudere il file:

    • Ec2SetPassword Da a Enabled

    • Ec2HandleUserData Da a Enabled

  6. Disconnettiti dalla sessione di Desktop remoto e torna alla console Amazon EC2.

  7. Nell'elenco Instances (Istanze), arrestare l'istanza.

  8. Dopo l'arresto dell'istanza, nella console Amazon EC2, fai clic con il pulsante destro del mouse sull'istanza nell'elenco Istanze, scegli Immagine, quindi scegli Crea immagine.

  9. Nella pagina Create Image (Crea immagine), fornire un nome e una descrizione per l'immagine e specificare la configurazione del volume. Al termine, selezionare Create Image (Crea immagine).

  10. Aprire la pagina Images (Immagini) e aspettare che l'immagine passi dalla fase pending (in attesa) a available (disponibile). La nuova AMI è pronta per l'uso.

Aggiunta di una nuova istanza utilizzando un'AMI di Windows personalizzata

Dopo che l'immagine passa allo stato available (disponibile), è possibile creare nuove istanze che si basano sull'AMI di Windows personalizzata. Quando si seleziona Use custom Windows AMI (Utilizza AMI Windows personalizzata) dall'elenco Operating system (Sistema operativo), AWS OpsWorks Stacks visualizza un elenco di AMI personalizzate.

Per aggiungere una nuova istanza basata su un'AMI di Windows personalizzata
  1. Quando la tua nuova AMI è disponibile, vai alla console AWS OpsWorks Stacks, apri la pagina Istanze per uno stack di Windows e scegli + Istanza nella parte inferiore della pagina per aggiungere una nuova istanza.

  2. Nella scheda New (Nuovo), scegliere Advanced (Avanzate).

  3. Nell'elenco a discesa Operating system (Sistema operativo), selezionare Use custom Windows AMI (Usa AMI Windows personalizzata).

  4. Nell'elenco a discesa Custom AMI (AMI personalizzata), selezionare l'AMI creata e selezionare Add Instance (Aggiungi istanza).

È ora possibile avviare ed eseguire l'istanza.