Konversikan AMI yang didukung penyimpanan instans menjadi AMI yang didukung Amazon EBS - Amazon Elastic Compute Cloud

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Konversikan AMI yang didukung penyimpanan instans menjadi AMI yang didukung Amazon EBS

Anda dapat mengonversi AMI Linux yang didukung penyimpanan instans yang Anda miliki ke AMI Linux yang didukung Amazon EBS.

penting

Anda tidak dapat mengonversi AMI yang tidak Anda miliki.

Untuk mengonversi AMI yang didukung penyimpanan instans ke AMI yang didukung Amazon EBS
  1. Luncurkan instans Amazon Linux dari AMI yang didukung Amazon EBS. Untuk informasi selengkapnya, lihat Meluncurkan sebuah instans menggunakan wizard peluncuran instans baru. Instans Amazon Linux memiliki alat AWS CLI dan AMI yang sudah diinstal sebelumnya.

  2. Unggah kunci privat X.509 yang Anda gunakan untuk memaketkan AMI yang didukung penyimpanan instans ke instans Anda. Kami menggunakan kunci ini untuk memastikan hanya Anda dan Amazon EC2 yang dapat mengakses AMI.

    1. Buat direktori sementara pada instans Anda untuk kunci privat X.509 sebagai berikut:

      [ec2-user ~]$ mkdir /tmp/cert
    2. Salin kunci privat X.509 dari komputer Anda ke direktori /tmp/cert pada instans, menggunakan alat penyalin aman seperti scp. my-private-keyParameter dalam perintah berikut adalah kunci pribadi yang Anda gunakan untuk terhubung ke instance Anda dengan SSH. Sebagai contoh:

      you@your_computer:~ $ scp -i my-private-key.pem /path/to/pk-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
  3. Konfigurasikan variabel lingkungan Anda untuk menggunakan AWS CLI. Untuk informasi selengkapnya, lihat Membuat pasangan kunci.

    1. (Disarankan) Tetapkan variabel lingkungan untuk kunci AWS akses, kunci rahasia, dan token sesi Anda.

      [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
    2. Tetapkan variabel lingkungan untuk kunci AWS akses Anda, dan kunci rahasia.

      [ec2-user ~]$ export AWS_ACCESS_KEY_ID=your_access_key_id [ec2-user ~]$ export AWS_SECRET_ACCESS_KEY=your_secret_access_key
  4. Siapkan volume Amazon Elastic Block Store (Amazon EBS) untuk AMI baru Anda.

    1. Buat volume EBS kosong di Zona Ketersediaan yang sama dengan instans Anda menggunakan perintah create-volume. Perhatikan ID volume di output perintah.

      penting

      Volume EBS ini harus berukuran sama atau lebih besar dari volume root penyimpanan instans awal.

      [ec2-user ~]$ aws ec2 create-volume --size 10 --region us-west-2 --availability-zone us-west-2b
    2. Lampirkan volume ke instans yang didukung Amazon EBS menggunakan perintah attach-volume.

      [ec2-user ~]$ aws ec2 attach-volume --volume-id volume_id --instance-id instance_id --device /dev/sdb --region us-west-2
  5. Buat folder untuk paketan Anda.

    [ec2-user ~]$ mkdir /tmp/bundle
  6. Unduh paketan untuk AMI berbasis penyimpanan instans Anda ke /tmp/bundle menggunakan perintah ec2-download-bundle.

    [ec2-user ~]$ ec2-download-bundle -b DOC-EXAMPLE-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
  7. Susun kembali file gambar dari paketan menggunakan perintah ec2-unbundle.

    1. Ubah direktori ke folder paketan.

      [ec2-user ~]$ cd /tmp/bundle/
    2. Jalankan perintah ec2-unbundle.

      [ec2-user bundle]$ ec2-unbundle -m image.manifest.xml --privatekey /path/to/pk-HKZYKTAIG2ECMXYIBH3HXV4ZBEXAMPLE.pem
  8. Salin file dari gambar yang tidak dipaketkan ke volume EBS baru.

    [ec2-user bundle]$ sudo dd if=/tmp/bundle/image of=/dev/sdb bs=1M
  9. Periksa volume apakah ada partisi baru yang tidak dipaketkan.

    [ec2-user bundle]$ sudo partprobe /dev/sdb1
  10. Buat daftar perangkat blok untuk mencari nama perangkat yang akan dipasang.

    [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 part

    Dalam contoh ini, partisi yang akan dipasang adalah /dev/sdb1, tetapi nama perangkat Anda mungkin akan berbeda. Jika volume Anda tidak dipartisi, perangkat yang akan dipasang akan serupa dengan /dev/sdb (tanpa digit di bagian akhir partisi perangkat).

  11. Buat titik pemasangan untuk volume EBS yang baru dan pasang volume.

    [ec2-user bundle]$ sudo mkdir /mnt/ebs [ec2-user bundle]$ sudo mount /dev/sdb1 /mnt/ebs
  12. Buka file /etc/fstab pada volume EBS dengan editor teks favorit Anda (seperti vim atau nano) dan hapus entri apa pun untuk volume penyimpanan instans (ephemeral). Karena volume EBS dipasang di /mnt/ebs, file fstab berada di /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

    Dalam contoh ini, baris terakhir harus dihapus.

  13. Lepas volume dan pisahkan dari instans.

    [ec2-user bundle]$ sudo umount /mnt/ebs [ec2-user bundle]$ aws ec2 detach-volume --volume-id volume_id --region us-west-2
  14. Buat AMI dari volume EBS baru sebagai berikut.

    1. Buat snapshot volume EBS yang baru.

      [ec2-user bundle]$ aws ec2 create-snapshot --region us-west-2 --description "your_snapshot_description" --volume-id volume_id
    2. Periksa untuk memastikan kelengkapan snapshot Anda.

      [ec2-user bundle]$ aws ec2 describe-snapshots --region us-west-2 --snapshot-id snapshot_id
    3. Identifikasi arsitektur prosesor, tipe virtualisasi, dan gambar kernel (aki) yang digunakan pada AMI asli dengan perintah describe-images. Anda memerlukan ID AMI dari AMI yang didukung penyimpanan instans asli untuk langkah ini.

      [ec2-user bundle]$ aws ec2 describe-images --region us-west-2 --image-id ami-id --output text IMAGES x86_64 amazon/amzn-ami-pv-2013.09.2.x86_64-s3 ami-8ef297be amazon available public machine aki-fc8f11cc instance-store paravirtual xen

      Dalam contoh ini, arsitekturnya adalah x86_64 dan ID gambar kernel-nya adalah aki-fc8f11cc. Gunakan nilai-nilai ini di langkah berikut. Jika output perintah di atas juga mencantumkan ID ari, perhatikan juga hal tersebut.

    4. Daftarkan AMI baru Anda dengan ID snapshot volume EBS baru Anda dan nilai-nilai dari langkah sebelumnya. Jika output perintah sebelumnya mencantumkan ID ari, sertakan ID tersebut dalam perintah berikut ini dengan --ramdisk-id ari_id.

      [ec2-user bundle]$ aws ec2 register-image --region us-west-2 --name your_new_ami_name --block-device-mappings DeviceName=device-name,Ebs={SnapshotId=snapshot_id} --virtualization-type paravirtual --architecture x86_64 --kernel-id aki-fc8f11cc --root-device-name device-name
  15. (Opsional) Setelah Anda menguji bahwa Anda dapat meluncurkan instans dari AMI baru, Anda dapat menghapus volume EBS yang Anda buat untuk prosedur ini.

    aws ec2 delete-volume --volume-id volume_id