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.
Indice
Panoramica della creazione AMI
Il diagramma seguente riassume il processo di creazione di un'istanza memorizzata AMI da un'istanza.
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à:
-
Installa gli AMI strumenti. Per ulteriori informazioni, consulta Configura gli EC2 AMI strumenti Amazon.
-
Installa il AWS CLI. Per ulteriori informazioni, consulta la sezione su come eseguire la configurazione con AWS Command Line Interface.
-
Assicurati di avere un bucket S3 per il pacchetto e che il bucket sia abilitato. ACLs Per ulteriori informazioni sulla configurazione, consulta ConfigurazioneACLs. ACLs
-
Per creare un bucket S3 utilizzando AWS Management Console, apri la console Amazon S3 all'https://console.aws.amazon.com/s3/
indirizzo e scegli Create Bucket. -
Per creare un bucket S3 con AWS CLI, puoi usare il comando mb. Se la versione installata degli AMI strumenti è la 1.5.18 o successiva, puoi anche usare il
ec2-upload-bundle
comando per creare il bucket S3. Per ulteriori informazioni, consulta ec2-upload-bundle.
-
-
Assicurati che i file del tuo pacchetto non siano crittografati nel bucket S3. Se hai bisogno della crittografia per il tuoAMI, puoi invece utilizzare un EBS -backed. AMI Per ulteriori informazioni, consulta Utilizzo della crittografia con le AMI EBS-backed.
-
Assicurati di avere l'ID del tuo AWS account. Per ulteriori informazioni, consulta Visualizza Account AWS gli identificatori nella Guida di riferimento per la gestione degli AWS account.
-
Assicurati di disporre delle credenziali per utilizzare la AWS CLI. Per ulteriori informazioni, consulta le migliori pratiche per AWS gli account nella Guida AWS Account Management di riferimento.
-
Verifica della disponibilità di un certificato X.509 e della chiave privata corrispondente.
-
Per creare un certificato X.509, consultare Gestione dei certificati di firma. Il certificato X.509 e la chiave privata vengono utilizzati per crittografare e decrittografare i file. AMI
-
[Cina (Pechino)] Utilizza il certificato
$EC2_AMITOOL_HOME/etc/ec2/amitools/cert-ec2-cn-north-1.pem
. -
[AWS GovCloud (US-West)] Usa il certificato.
$EC2_AMITOOL_HOME/etc/ec2/amitools/cert-ec2-gov.pem
-
-
Connessione all'istanza e relativa personalizzazione. Ad esempio, è possibile installare software e applicazioni, copiare i dati, eliminare i file temporanei e modificare la configurazione Linux.
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)
-
Gli AMI strumenti richiedono GRUB Legacy per avviarsi correttamente. Utilizzate il seguente comando per l'installazioneGRUB:
[ec2-user ~]$
sudo yum install -y grub
-
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.
-
Caricare le credenziali nell'istanza. Utilizziamo queste credenziali per garantire che solo tu e Amazon EC2 possiate accedere al tuoAMI.
-
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.
-
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
opzione nel scp comando seguente è la chiave privata che usi per connetterti alla tua istanzaSSH, non la chiave privata X.509. Per esempio:my-private-key
.pemyou@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
. -
-
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
. Alcune istanze hanno uno storage temporaneo montato su/path/to/bundle/storage
/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.-
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]#
-
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
-u123456789012
-r x86_64 -e /tmp/cert --partitiongpt
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). -
Uscire dalla shell root.
[root ec2-user]#
exit
-
-
(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.-
Creare un backup del file
image.manifest.xml
.[ec2-user ~]$
sudo cp /tmp/image.manifest.xml /tmp/image.manifest.xml.bak
-
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
-
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 storeephemeral1
.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> -
Salvare il file
image.manifest.xml
e uscire dall'editor di testo.
-
-
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 -ayour_access_key_id
-syour_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'
--region
opzione sia un bucket path già esistente nella regione di destinazione o un bucket path unico che può essere creato nella regione di destinazione. -
(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
in Passo 2, utilizzare quel percorso invece di/path/to/bundle/storage
/tmp
. -
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 --nameAMI_name
--virtualization-typehvm
Importante
Se precedentemente si è specificata una regione per il comando ec2-upload-bundle, specificarla nuovamente per questo comando.