

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

# Buat AMI yang didukung Amazon S3
<a name="creating-an-ami-instance-store"></a>

AMI yang Anda tentukan saat meluncurkan instans menentukan jenis volume root.

Untuk membuat AMI Linux yang didukung Amazon S3, mulailah dari instance yang telah Anda luncurkan dari AMI Linux yang didukung Amazon S3 yang sudah ada. Setelah Anda mengustomisasi instans sesuai kebutuhan, paketkan dan daftarkan AMI baru tersebut, yang dapat Anda gunakan untuk meluncurkan instans baru dengan kustomisasi ini.

Anda tidak dapat membuat AMI Windows yang didukung Amazon S3 karena Windows AMIs tidak mendukung penyimpanan instance untuk volume root.

**penting**  
Hanya jenis instance berikut yang mendukung volume penyimpanan instans sebagai volume root dan memerlukan AMI yang didukung Amazon S3: C1, C3, D2, I2, M1, M2, M3, R3, dan X1.

Proses pembuatan AMI berbeda untuk Amazon EBS yang didukung AMIs. Untuk informasi selengkapnya, lihat [Buat AMI yang didukung Amazon EBS-Backed](creating-an-ami-ebs.md).

**Topics**
+ [Ikhtisar penciptaan AMI](#process-creating-an-ami-instance-store)
+ [Prasyarat](#bundle-ami-prerequisites)
+ [Buat AMI dari instans Amazon Linux](#amazon_linux_instructions)
+ [Siapkan alat Amazon EC2 AMI](set-up-ami-tools.md)
+ [Referensi alat Amazon EC2 AMI](ami-tools-commands.md)
+ [Konversikan AMI yang didukung Amazon S3 Anda ke AMI yang didukung EBS](Using_ConvertingS3toEBS.md)

## Ikhtisar penciptaan AMI
<a name="process-creating-an-ami-instance-store"></a>

Diagram berikut merangkum proses pembuatan AMI dari sebuah instance dengan volume root penyimpanan instance.

![\[Membuat AMI yang didukung Amazon S3.\]](http://docs.aws.amazon.com/id_id/AWSEC2/latest/UserGuide/images/ami_create_instance_store.png)


Pertama, luncurkan instans dari AMI yang serupa dengan AMI yang ingin Anda buat. Anda dapat menyambungkan ke instans dan mengustomisasikannya. Saat instans diatur sesuai keinginan, Anda dapat membuat paketan. Perlu beberapa menit untuk menyelesaikan proses pembuatan paket. Setelah proses selesai, Anda akan memiliki paketan, yang terdiri atas manifes gambar (`image.manifest.xml`) dan file (`image.part.`*xx*) yang berisi templat untuk volume root. Berikutnya, Anda mengunggah paketan tersebut ke bucket Amazon S3 kemudian mendaftarkan AMI Anda.

**catatan**  
Untuk mengunggah objek ke bucket S3 untuk AMI Linux yang didukung Amazon S3, ACL harus diaktifkan untuk bucket. Jika tidak, Amazon EC2 tidak akan dapat mengatur ACLs objek yang akan diunggah. Jika bucket tujuan Anda menggunakan setelan yang diberlakukan pemilik bucket untuk Kepemilikan Objek S3, ini tidak akan berfungsi karena ACLs dinonaktifkan. Untuk informasi selengkapnya, lihat [Mengontrol kepemilikan objek dan menonaktifkan bucket ACLs Anda](https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html).

Saat Anda meluncurkan instans menggunakan AMI yang baru, kami membuat volume root untuk instans tersebut menggunakan paketan yang Anda unggah ke Amazon S3. Ruang penyimpanan yang digunakan oleh paketan di Amazon S3 akan menimbulkan biaya sampai Anda menghapusnya. Untuk informasi selengkapnya, lihat [Membatalkan pendaftaran ke Amazon EC2 AMI](deregister-ami.md).

Jika Anda menambahkan volume penyimpanan instans ke instans Anda selain volume root, pemetaan perangkat blok untuk AMI baru berisi informasi untuk volume ini, dan pemetaan perangkat blok untuk instance yang Anda luncurkan dari AMI baru secara otomatis berisi informasi untuk volume ini. Untuk informasi selengkapnya, lihat [Blokir pemetaan perangkat untuk volume di instans Amazon EC2](block-device-mapping-concepts.md).

## Prasyarat
<a name="bundle-ami-prerequisites"></a>

Sebelum dapat membuat AMI, Anda harus menyelesaikan tugas berikut:
+ Menginstal alat AMI. Untuk informasi selengkapnya, lihat [Siapkan alat Amazon EC2 AMI](set-up-ami-tools.md).
+ Instal AWS CLI. Untuk informasi selengkapnya, lihat [Memulai dengan AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html).
+ Pastikan Anda memiliki bucket S3 untuk bundel, dan bucket Anda telah ACLs diaktifkan. Untuk informasi selengkapnya tentang mengonfigurasi ACLs, lihat [Mengkonfigurasi ACLs](https://docs.aws.amazon.com/AmazonS3/latest/userguide/managing-acls.html).
  + Untuk membuat bucket S3 menggunakan Konsol Manajemen AWS, buka konsol Amazon S3 [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)di dan **pilih** Create Bucket.
  + Untuk membuat bucket S3 dengan AWS CLI, Anda dapat menggunakan perintah [mb](https://docs.aws.amazon.com/cli/latest/reference/s3/mb.html). Jika versi alat AMI yang terinstal adalah 1.5.18 atau yang lebih baru, Anda juga dapat menggunakan perintah `ec2-upload-bundle` untuk membuat bucket S3. Untuk informasi selengkapnya, lihat [ec2-upload-bundle](ami-tools-commands.md#ami-upload-bundle).
+ Pastikan file dalam bundel Anda tidak dienkripsi di bucket S3. Jika Anda memerlukan enkripsi untuk AMI Anda, Anda dapat menggunakan AMI yang didukung EBS sebagai gantinya. Untuk informasi selengkapnya, lihat [Gunakan enkripsi dengan dukungan EBS AMIs](AMIEncryption.md).
+ Pastikan Anda memiliki ID AWS akun Anda. Untuk informasi selengkapnya, lihat [Melihat Akun AWS pengenal](https://docs.aws.amazon.com/accounts/latest/reference/manage-acct-identifiers.html) di *Panduan Referensi Manajemen AWS Akun*.
+ Pastikan Anda memiliki kredensial untuk menggunakan AWS CLI. *Untuk informasi selengkapnya, lihat [Authentication and access credentials for the AWS CLI in the User](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-authentication.html) Guide.AWS Command Line Interface *
+ Pastikan Anda memiliki sertifikat X.509 dan kunci privat yang sesuai.
  + Jika Anda perlu membuat sertifikat X.509, lihat [Mengelola sertifikat penandatanganan](set-up-ami-tools.md#ami-tools-managing-certs). Sertifikat X.509 dan kunci privat digunakan untuk mengenkripsi dan mendekripsi AMI Anda.
  + [Tiongkok (Beijing)] Gunakan sertifikat `$EC2_AMITOOL_HOME/etc/ec2/amitools/cert-ec2-cn-north-1.pem`.
  + [AWS GovCloud (AS-Barat)] Gunakan `$EC2_AMITOOL_HOME/etc/ec2/amitools/cert-ec2-gov.pem` sertifikat.
+ Sambungkan ke instans Anda dan kustomisasikan. Misalnya, Anda dapat menginstal perangkat lunak dan aplikasi, menyalin data, menghapus file sementara, dan mengubah konfigurasi Linux.

## Buat AMI dari instans Amazon Linux
<a name="amazon_linux_instructions"></a>

Prosedur berikut menjelaskan cara membuat AMI dari instance dengan volume root penyimpanan instance yang menjalankan Amazon Linux 1. Mereka mungkin tidak berfungsi untuk instance yang menjalankan distribusi Linux lainnya.

**Untuk mempersiapkan penggunaan alat AMI (khusus instans HVM)**

1. Alat AMI memerlukan GRUB Legacy untuk melakukan boot dengan benar. Gunakan perintah berikut untuk menginstal GRUB:

   ```
   [ec2-user ~]$ sudo yum install -y grub
   ```

1. Instal paket manajemen partisi dengan perintah berikut:

   ```
   [ec2-user ~]$ sudo yum install -y gdisk kpartx parted
   ```

**Untuk membuat AMI dari instans Amazon Linux dengan volume root penyimpanan instance**

Prosedur ini mengasumsikan bahwa Anda telah memenuhi prasyarat dalam [Prasyarat](#bundle-ami-prerequisites).

Dalam perintah berikut, ganti masing-masing *user input placeholder* dengan informasi Anda sendiri.

1. Unggah kredensial Anda ke instans. Kami menggunakan kredensial ini untuk memastikan hanya Anda dan Amazon EC2 yang dapat mengakses AMI.

   1. Buat direktori sementara pada instans untuk kredensial Anda sebagai berikut:

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

      Ini memungkinkan Anda mengecualikan kredensial Anda dari gambar yang dibuat.

   1. Salin sertifikat X.509 dan kunci privat terkait dari komputer Anda ke direktori `/tmp/cert` pada instans dengan alat penyalin aman, seperti [scp](linux-file-transfer-scp.md). Opsi `-i my-private-key.pem` dalam perintah **scp** berikut adalah kunci privat yang Anda gunakan untuk terhubung ke instan Anda dengan SSH, bukan kunci privat X.509. Sebagai contoh:

      ```
      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
      ```

   Atau, karena ini adalah file teks biasa, Anda dapat membuka sertifikat dan mengetikannya dalam editor teks dan menyalin kontennya ke dalam file baru di `/tmp/cert`.

1. <a name="step_with_bundle_path_amazon_linux"></a>Siapkan paketan untuk diunggah ke Amazon S3 dengan menjalankan perintah [ec2-bundle-vol](ami-tools-commands.md#ami-bundle-vol) dari dalam instans Anda. Pastikan untuk menentukan opsi `-e` untuk mengecualikan direktori tempat kredensial Anda disimpan. Secara default, proses paketan mengecualikan file yang mungkin berisi informasi sensitif. File ini termasuk `*.sw`, `*.swo`, `*.swp`, `*.pem`, `*.priv`, `*id_rsa*`, `*id_dsa*` `*.gpg`, `*.jks`, `*/.ssh/authorized_keys`, dan `*/.bash_history`. Untuk menyertakan semua file ini, gunakan opsi `--no-filter`. Untuk menyertakan beberapa file ini, gunakan opsi `--include`.
**penting**  
Secara default, proses pembuatan paketan AMI membuat koleksi file yang dikompresi dan dienkripsi di direktori `/tmp` yang mewakili volume root Anda. Jika tidak memiliki cukup ruang disk di `/tmp` untuk menyimpan paketan, Anda perlu menentukan lokasi berbeda untuk paketan yang akan disimpan dengan opsi `-d /path/to/bundle/storage`. Beberapa instance memiliki penyimpanan sementara yang terpasang pada `/mnt` atau `/media/ephemeral0` yang dapat Anda gunakan, atau Anda juga dapat membuat, melampirkan, dan memasang volume Amazon EBS baru) untuk menyimpan bundel. Untuk informasi selengkapnya, lihat [Membuat volume Amazon EBS](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-creating-volume.html) di *Panduan Pengguna Amazon EBS*.

   1. Anda harus menjalankan perintah **ec2-bundle-vol** sebagai root. Untuk sebagian besar perintah, Anda dapat menggunakan **sudo** untuk mendapatkan izin yang lebih tinggi, tetapi dalam kasus ini, Anda harus menjalankan **sudo -E su** untuk menjaga variabel lingkungan Anda.

      ```
      [ec2-user ~]$ sudo -E su
      ```

      Perhatikan bahwa perintah bash kini mengidentifikasi Anda sebagai pengguna root, dan bahwa tanda dolar telah diganti dengan tanda pagar, menandakan bahwa Anda berada dalam shell root:

      ```
      [root ec2-user]#
      ```

   1. Untuk membuat paketan AMI, jalankan perintah [ec2-bundle-vol](ami-tools-commands.md#ami-bundle-vol) sebagai berikut:

      ```
      [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
      ```
**catatan**  
[Untuk Wilayah Tiongkok (Beijing) AWS GovCloud dan (AS-Barat), gunakan `--ec2cert` parameter dan tentukan sertifikat sesuai prasyarat.](#bundle-ami-prerequisites)

      Perlu waktu beberapa menit untuk membuat gambar. Ketika perintah ini selesai, direktori Anda `/tmp` (atau non-default) berisi bundel (`image.manifest.xml`, ditambah beberapa `image.part.` *xx* file).

   1. Keluar dari shell root.

      ```
      [root ec2-user]# exit
      ```

1. (Opsional) Untuk menambahkan volume penyimpanan instans, edit pemetaan perangkat blok dalam file `image.manifest.xml` untuk AMI Anda. Untuk informasi selengkapnya, lihat [Blokir pemetaan perangkat untuk volume di instans Amazon EC2](block-device-mapping-concepts.md).

   1. Membuat cadangan file `image.manifest.xml` Anda.

      ```
      [ec2-user ~]$ sudo cp /tmp/image.manifest.xml /tmp/image.manifest.xml.bak
      ```

   1. Format ulang file `image.manifest.xml` agar lebih mudah dibaca dan diubah.

      ```
      [ec2-user ~]$ sudo xmllint --format /tmp/image.manifest.xml.bak > /tmp/image.manifest.xml
      ```

   1. Edit pemetaan perangkat blok di `image.manifest.xml` editor teks. Contoh di bawah ini menunjukkan entri baru untuk volume penyimpanan instans `ephemeral1`. 
**catatan**  
Untuk daftar file yang dikecualikan, lihat [ec2-bundle-vol](ami-tools-commands.md#ami-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>
      ```

   1. Simpan file `image.manifest.xml`, dan tutup editor teks Anda.

1. Untuk mengunggah paketan Anda ke Amazon S3, jalankan perintah [ec2-upload-bundle](ami-tools-commands.md#ami-upload-bundle) sebagai berikut.

   ```
   [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
   ```
**penting**  
Untuk mendaftarkan AMI Anda di Wilayah selain AS Timur (Virginia Utara), Anda harus menentukan Wilayah target dengan opsi `--region` dan jalur bucket yang sudah ada di Wilayah target atau jalur bucket unik yang dapat dibuat di Wilayah target.

1. (Opsional) Setelah bundel diunggah ke Amazon S3, Anda dapat menghapus bundel dari direktori `/tmp` pada instans menggunakan perintah **rm** berikut:

   ```
   [ec2-user ~]$ sudo rm /tmp/image.manifest.xml /tmp/image.part.* /tmp/image
   ```
**penting**  
Jika Anda menentukan jalur dengan opsi `-d /path/to/bundle/storage` di [Step 2](#step_with_bundle_path_amazon_linux), gunakan jalur tersebut, alih-alih `/tmp`.

1. Untuk mendaftarkan AMI Anda, jalankan perintah [register-image](https://docs.aws.amazon.com/cli/latest/reference/ec2/register-image.html) sebagai berikut.

   ```
   [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
   ```
**penting**  
Jika sebelumnya Anda menentukan Wilayah untuk perintah [ec2-upload-bundle](ami-tools-commands.md#ami-upload-bundle), tentukan Wilayah itu untuk perintah ini.