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à.
Converti la tua istanza store-backed in una -backed AMI EBS AMI
Puoi convertire un Linux supportato dall'archivio di istanze di tua proprietà in un Linux AMI supportato da AmazonEBS. AMI
Importante
Non puoi convertire un file AMI che non possiedi.
Per convertire un'istanza supportata da un archivio in un'istanza supportata AMI da Amazon EBS AMI
-
Avvia un'istanza Amazon Linux da un'istanza EBS supportata AMI da Amazon. Per ulteriori informazioni, consulta Avvia un'EC2istanza utilizzando la procedura guidata di avvio dell'istanza nella console. Le istanze Amazon Linux hanno gli AMI strumenti AWS CLI e preinstallati.
-
Carica la chiave privata X.509 che hai usato per raggruppare l'istanza archiviata nell'istanza. AMI Utilizziamo questa chiave per garantire che solo tu e Amazon EC2 possiate accedere al tuoAMI.
-
Creare una directory temporanea sull'istanza per la chiave privata X.509, come segue:
[ec2-user ~]$
mkdir /tmp/cert
-
Copiare la chiave privata X.509 dal proprio computer nella directory
/tmp/cert
sull'istanza utilizzando uno strumento di copia protetta come scp. Ilmy-private-key
il parametro nel comando seguente è la chiave privata che usi per connetterti alla tua istanza conSSH. Per esempio:you@your_computer:~ $
scp -i
pk-HKZYKTAIG2ECMXYIBH3HXV4ZBEXAMPLE.pem 100% 717 0.7KB/s 00:00my-private-key
.pem/path/to/pk-HKZYKTAIG2ECMXYIBH3HXV4ZBEXAMPLE.pem
ec2-user@ec2-203-0-113-25.compute-1.amazonaws.com
:/tmp/cert/
-
-
Configura le tue variabili ambiente per usare la AWS CLI. Per ulteriori informazioni, consulta Variabili di ambiente.
-
(Consigliato) Imposta le variabili di ambiente per la chiave di AWS accesso, la chiave segreta e il token di sessione.
[ec2-user ~]$
export AWS_ACCESS_KEY_ID=
your_access_key_id
[ec2-user ~]$
export AWS_SECRET_ACCESS_KEY=
your_secret_access_key
[ec2-user ~]$
export AWS_SESSION_TOKEN=
your_session_token
Imposta le variabili di ambiente per la chiave di AWS accesso e la chiave segreta.
[ec2-user ~]$
export AWS_ACCESS_KEY_ID=
your_access_key_id
[ec2-user ~]$
export AWS_SECRET_ACCESS_KEY=
your_secret_access_key
-
-
Prepara un volume Amazon Elastic Block Store (AmazonEBS) per il tuo nuovo volumeAMI.
-
Crea un EBS volume vuoto nella stessa zona di disponibilità dell'istanza utilizzando il comando create-volume. Prendere nota dell'ID del volume nell'output del comando.
Importante
Questo EBS volume deve avere le stesse dimensioni o essere più grande del volume root dell'instance store originale.
[ec2-user ~]$
aws ec2 create-volume --size 10 --region
us-west-2
--availability-zoneus-west-2b
-
Collega il volume alla tua istanza EBS supportata da Amazon utilizzando il comando attach-volume.
[ec2-user ~]$
aws ec2 attach-volume --volume-id
volume_id
--instance-idinstance_id
--device /dev/sdb --regionus-west-2
-
-
Creare una cartella per il bundle.
[ec2-user ~]$
mkdir /tmp/bundle
-
Scarica il pacchetto per utilizzare il comando per la tua istanza basata su storeAMI.
/tmp/bundle
ec2-download-bundle[ec2-user ~]$
ec2-download-bundle -b
amzn-s3-demo-bucket
/bundle_folder
/bundle_name
-m image.manifest.xml -a $AWS_ACCESS_KEY_ID -s $AWS_SECRET_ACCESS_KEY --privatekey/path/to/pk-HKZYKTAIG2ECMXYIBH3HXV4ZBEXAMPLE.pem
-d /tmp/bundle -
Ricostruire il file di immagine dal bundle utilizzando il comando ec2-unbundle.
-
Cambiare directory nella cartella del bundle.
[ec2-user ~]$
cd /tmp/bundle/
-
Esegui il comando ec2-unbundle.
[ec2-user bundle]$
ec2-unbundle -m image.manifest.xml --privatekey
/path/to/pk-HKZYKTAIG2ECMXYIBH3HXV4ZBEXAMPLE.pem
-
-
Copia i file dall'immagine disaggregata nel nuovo volume. EBS
[ec2-user bundle]$
sudo dd if=/tmp/bundle/image of=/dev/sdb bs=1M
-
Esaminare il volume cercando eventuali partizioni disaggregate.
[ec2-user bundle]$
sudo partprobe /dev/sdb1
-
Elencare i dispositivi a blocchi per individuare il nome del dispositivo da montare.
[ec2-user bundle]$
lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT /dev/sda 202:0 0 8G 0 disk └─/dev/sda1 202:1 0 8G 0 part / /dev/sdb 202:80 0 10G 0 disk └─/dev/sdb1 202:81 0 10G 0 partIn questo esempio, la partizione da montare è
/dev/sdb1
, ma il nome del dispositivo probabilmente sarà diverso. Se il volume non è partizionato, il dispositivo da montare sarà simile a/dev/sdb
(senza una cifra finale della partizione del dispositivo). -
Crea un punto di montaggio per il nuovo EBS volume e monta il volume.
[ec2-user bundle]$
sudo mkdir /mnt/ebs
[ec2-user bundle]$sudo mount
/dev/sdb1
/mnt/ebs -
Apri il
/etc/fstab
file sul EBS volume con il tuo editor di testo preferito (come vim onano) e rimuovi tutte le voci, ad esempio i volumi di archiviazione (temporanei). Poiché il EBS volume è montato su/mnt/ebs
, ilfstab
file si trova in./mnt/ebs/etc/fstab
[ec2-user bundle]$
sudo nano /mnt/ebs/etc/fstab
# LABEL=/ / ext4 defaults,noatime 1 1 tmpfs /dev/shm tmpfs defaults 0 0 devpts /dev/pts devpts gid=5,mode=620 0 0 sysfs /sys sysfs defaults 0 0 proc /proc proc defaults 0 0/dev/sdb /media/ephemeral0 auto defaults,comment=cloudconfig 0 2
In questo esempio, l'ultima riga deve essere rimossa.
-
Smontare il volume e distaccarlo dall'istanza.
[ec2-user bundle]$
sudo umount /mnt/ebs
[ec2-user bundle]$
aws ec2 detach-volume --volume-id
volume_id
--regionus-west-2
-
Crea un AMI file dal nuovo EBS volume come segue.
-
Crea un'istantanea del nuovo EBS volume.
[ec2-user bundle]$
aws ec2 create-snapshot --region
us-west-2
--description "your_snapshot_description
" --volume-idvolume_id
-
Controllare se la snapshot è completa.
[ec2-user bundle]$
aws ec2 describe-snapshots --region
us-west-2
--snapshot-idsnapshot_id
-
Identifica l'architettura del processore, il tipo di virtualizzazione e l'immagine del kernel (
aki
) utilizzata nell'originale AMI con il comando. describe-images Per questo passaggio è necessario memorizzare l'AMIID dell'istanza originale. AMI[ec2-user bundle]$
aws ec2 describe-images --region
IMAGES x86_64 amazon/amzn-ami-pv-2013.09.2.x86_64-s3
--image-idus-west-2
ami-id
--output textami-8ef297be
amazon available public machine aki-fc8f11cc instance-store paravirtual xenIn questo esempio, l'architettura è
x86_64
e l'ID dell'immagine del kernel èaki-fc8f11cc
. Utilizzare questi valori nella fase seguente. Se l'output del comando sopra include anche un IDari
, prenderne nota. -
Registra il nuovo volume AMI con l'ID snapshot del nuovo EBS volume e i valori del passaggio precedente. Se nell'output del comando precedente è incluso un ID
ari
, includerlo nel seguente comando con--ramdisk-id
.ari_id
[ec2-user bundle]$
aws ec2 register-image --region
us-west-2
--nameyour_new_ami_name
--block-device-mappings DeviceName=device-name
,Ebs={SnapshotId=snapshot_id
} --virtualization-type paravirtual --architecture x86_64 --kernel-idaki-fc8f11cc
--root-device-namedevice-name
-
-
(Facoltativo) Dopo aver verificato la possibilità di avviare un'istanza dal nuovoAMI, è possibile eliminare il EBS volume creato per questa procedura.
aws ec2 delete-volume --volume-id
volume_id