Crea un'istanza supportata dall'archivio AMI - Amazon Elastic Compute Cloud

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

Crea un'istanza supportata dall'archivio AMI

AMICiò che specifichi all'avvio dell'istanza determina il tipo di volume del dispositivo root.

Per creare un'istanza Linux supportata dall'archivio delle istanzeAMI, iniziate da un'istanza che avete avviato da un'istanza esistente basata su storage Linux. AMI Dopo aver personalizzato l'istanza in base alle tue esigenze, raggruppa il volume e registrane uno nuovoAMI, da utilizzare per avviare nuove istanze con queste personalizzazioni.

Non puoi creare un sistema Windows basato su Instance-Store AMI perché Windows AMIs non supporta l'Instance Store per il dispositivo root.

Importante

Solo i seguenti tipi di istanza supportano un volume di Instance Store come dispositivo root e richiedono un backup dell'istanzaAMI: C1, C3, D2, I2, M1, M2, M3, R3 e X1.

Il processo di AMI creazione è diverso per Amazon EBS -backedAMIs. Per ulteriori informazioni, consulta Crea un account supportato EBS da Amazon AMI.

Panoramica della creazione AMI

Il diagramma seguente riassume il processo di creazione di un'istanza memorizzata AMI da un'istanza.

Creazione di un'istanza supportata dall'archivio. AMI

Innanzitutto, avvia un'istanza da un'AMIistanza simile a AMI quella che desideri creare. Puoi connetterti alla tua istanza e personalizzarla. Una volta che è configurata come desideri puoi creare un bundle dell'istanza. Per il completamento di questo processo sono richiesti vari minuti. Al termine del processo avrai un bundle, composto da un manifest delle immagini (image.manifest.xml) e da file (image.part.xx) contenenti un modello per il volume root. Quindi carichi il pacchetto nel tuo bucket Amazon S3 e poi registri il tuo. AMI

Nota

Per caricare oggetti in un bucket S3 per la tua istanza Linux con supporto di archiviazioneAMI, ACLs devi essere abilitato per il bucket. In caso contrario, Amazon non EC2 sarà in grado di impostare ACLs gli oggetti da caricare. Se il bucket di destinazione utilizza l'impostazione imposta dal proprietario del bucket per S3 Object Ownership, questa impostazione non funzionerà perché sono disabilitati. ACLs Per maggiori informazioni, consultare Controllo della proprietà degli oggetti caricati tramite S3 Object Ownership.

Quando avvii un'istanza utilizzando la nuovaAMI, creiamo il volume root per l'istanza utilizzando il pacchetto che hai caricato su Amazon S3. Finché non lo elimini, lo spazio di archiviazione utilizzato dal bundle in Amazon S3 comporta dei costi che vengono addebitati sul tuo account. Per ulteriori informazioni, consulta Annullare la registrazione di un Amazon EC2 AMI.

Se aggiungi volumi di Instance Store alla tua istanza oltre al volume del dispositivo root, la mappatura dei dispositivi a blocchi per la nuova versione AMI contiene informazioni per questi volumi, mentre le mappature dei dispositivi a blocchi per le istanze che lanci dalla nuova versione contengono AMI automaticamente le informazioni per questi volumi. Per ulteriori informazioni, consulta Blocca le mappature dei dispositivi per i volumi sulle istanze Amazon EC2.

Prerequisiti

Prima di poter creare unAMI, è necessario completare le seguenti attività:

Crea un file AMI da un'istanza Amazon Linux

Le seguenti procedure descrivono come creare un'istanza supportata AMI dall'archivio da un'istanza che esegue Amazon Linux 1. Potrebbero non funzionare per le istanze che eseguono altre distribuzioni Linux.

Per prepararsi all'uso degli AMI strumenti (solo HVM istanze)
  1. Gli AMI strumenti richiedono GRUB Legacy per avviarsi correttamente. Utilizzate il seguente comando per l'installazioneGRUB:

    [ec2-user ~]$ sudo yum install -y grub
  2. Installare i pacchetti di gestione delle partizioni usando il seguente comando:

    [ec2-user ~]$ sudo yum install -y gdisk kpartx parted
Per creare un'istanza Amazon Linux basata sull'archivio AMI da un'istanza

Questa procedura presuppone che i prerequisiti indicati in Prerequisiti siano stati soddisfatti.

Nei seguenti comandi, sostituisci ciascuno user input placeholder con le tue informazioni.

  1. Caricare le credenziali nell'istanza. Utilizziamo queste credenziali per garantire che solo tu e Amazon EC2 possiate accedere al tuoAMI.

    1. Creare una directory temporanea sull'istanza per le credenziali, come segue:

      [ec2-user ~]$ mkdir /tmp/cert

      In questo modo è possibile escludere le proprie credenziali dall'immagine creata.

    2. Copiare il certificato X.509 e la chiave privata corrispondente dal proprio computer nella directory /tmp/cert sull'istanza utilizzando uno strumento di copia protetta come scp. L'-i my-private-key.pemopzione nel scp comando seguente è la chiave privata che usi per connetterti alla tua istanzaSSH, non la chiave privata X.509. Per esempio:

      you@your_computer:~ $ scp -i my-private-key.pem /path/to/pk-HKZYKTAIG2ECMXYIBH3HXV4ZBEXAMPLE.pem /path/to/cert-HKZYKTAIG2ECMXYIBH3HXV4ZBEXAMPLE.pem ec2-user@ec2-203-0-113-25.compute-1.amazonaws.com:/tmp/cert/ pk-HKZYKTAIG2ECMXYIBH3HXV4ZBEXAMPLE.pem 100% 717 0.7KB/s 00:00 cert-HKZYKTAIG2ECMXYIBH3HXV4ZBEXAMPLE.pem 100% 685 0.7KB/s 00:00

    In alternativa, poiché questi sono file di testo normale, è possibile aprire il certificato e la chiave in un editor di testo e copiarne il contenuto in nuovi file in /tmp/cert.

  2. Preparare il bundle da caricare in Amazon S3 eseguendo il comando ec2-bundle-vol dall'istanza. Accertarsi di specificare l'opzione -e per escludere la directory in cui sono archiviate le proprie credenziali. Per impostazione predefinita, il processo di creazione di bundle esclude i file che possono contenere informazioni sensibili. Tali file includono *.sw, *.swo, *.swp, *.pem, *.priv, *id_rsa*, *id_dsa* *.gpg, *.jks, */.ssh/authorized_keys e */.bash_history. Per includere tutti questi file, utilizzare l'opzione --no-filter. Per includere alcuni di questi file, utilizzare l'opzione --include.

    Importante

    Per impostazione predefinita, il processo di AMI raggruppamento crea una raccolta di file compressi e crittografati nella /tmp directory che rappresenta il volume root. Se non è disponibile sufficiente spazio libero sul disco in /tmp per archiviare il bundle, occorre specificare una posizione diversa per il bundle da archiviare con l'opzione -d /path/to/bundle/storage. Alcune istanze hanno uno storage temporaneo montato su /mnt o /media/ephemeral0 che puoi utilizzare, oppure puoi anche creare, collegare e montare un nuovo volume EBS (Amazon) per archiviare il pacchetto. Per ulteriori informazioni, consulta Creare un EBS volume Amazon nella Amazon EBS User Guide.

    1. Il ec2-bundle-vol comando deve essere eseguito come root. Per la maggior parte dei comandi, è possibile utilizzare sudo per ottenere autorizzazioni elevate, ma in questo caso occorre eseguire sudo -E su per mantenere le variabili di ambiente.

      [ec2-user ~]$ sudo -E su

      Si noti che il prompt bash ora identifica l'utente come utente root e il simbolo del dollaro è stato sostituito da un tag hash, a segnalare che ci si trova in una shell root:

      [root ec2-user]#
    2. Per creare il AMI pacchetto, esegui il ec2-bundle-vol comando come segue:

      [root ec2-user]# ec2-bundle-vol -k /tmp/cert/pk-HKZYKTAIG2ECMXYIBH3HXV4ZBEXAMPLE.pem -c /tmp/cert/cert-HKZYKTAIG2ECMXYIBH3HXV4ZBEXAMPLE.pem -u 123456789012 -r x86_64 -e /tmp/cert --partition gpt

      Possono essere necessari alcuni minuti per creare l'immagine. Al termine di questo comando, la directory /tmp (o quella non predefinita) contiene il pacchetto (e più altri) image.manifest.xml image.part.xx file).

    3. Uscire dalla shell root.

      [root ec2-user]# exit
  3. (Facoltativo) Per aggiungere altri volumi di Instance Store, modifica le mappature dei dispositivi a blocchi nel image.manifest.xml file relativo al tuo. AMI Per ulteriori informazioni, consulta Blocca le mappature dei dispositivi per i volumi sulle istanze Amazon EC2.

    1. Creare un backup del file image.manifest.xml.

      [ec2-user ~]$ sudo cp /tmp/image.manifest.xml /tmp/image.manifest.xml.bak
    2. Riformattare il file image.manifest.xml per renderne più semplice la lettura e la modifica.

      [ec2-user ~]$ sudo xmllint --format /tmp/image.manifest.xml.bak > /tmp/image.manifest.xml
    3. Modificare le mappature dei dispositivi a blocchi in image.manifest.xml con un editor di testo. Il seguente esempio mostra una nuova voce del volume instance store ephemeral1.

      Nota

      Per un elenco dei file esclusi, consulta ec2-bundle-vol.

      <block_device_mapping> <mapping> <virtual>ami</virtual> <device>sda</device> </mapping> <mapping> <virtual>ephemeral0</virtual> <device>sdb</device> </mapping> <mapping> <virtual>ephemeral1</virtual> <device>sdc</device> </mapping> <mapping> <virtual>root</virtual> <device>/dev/sda1</device> </mapping> </block_device_mapping>
    4. Salvare il file image.manifest.xml e uscire dall'editor di testo.

  4. Per caricare il bundle su Amazon S3, eseguire il comando ec2-upload-bundle come segue.

    [ec2-user ~]$ ec2-upload-bundle -b amzn-s3-demo-bucket/bundle_folder/bundle_name -m /tmp/image.manifest.xml -a your_access_key_id -s your_secret_access_key
    Importante

    Per registrarti AMI in una regione diversa dagli Stati Uniti orientali (Virginia settentrionale), devi specificare sia la regione di destinazione con l'--regionopzione sia un bucket path già esistente nella regione di destinazione o un bucket path unico che può essere creato nella regione di destinazione.

  5. (Facoltativo) Una volta caricato il bundle su Amazon S3, è possibile rimuoverlo dalla directory /tmp sull'istanza utilizzando il seguente comando rm:

    [ec2-user ~]$ sudo rm /tmp/image.manifest.xml /tmp/image.part.* /tmp/image
    Importante

    Se si è specificato un percorso con l'opzione -d /path/to/bundle/storage in Passo 2, utilizzare quel percorso invece di /tmp.

  6. Per registrare il tuoAMI, esegui il comando register-image come segue.

    [ec2-user ~]$ aws ec2 register-image --image-location amzn-s3-demo-bucket/bundle_folder/bundle_name/image.manifest.xml --name AMI_name --virtualization-type hvm
    Importante

    Se precedentemente si è specificata una regione per il comando ec2-upload-bundle, specificarla nuovamente per questo comando.