

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

# Konfigurasikan AL2 instance
<a name="configure-ec2-instance"></a>

Setelah Anda berhasil meluncurkan dan masuk ke AL2 instans Anda, Anda dapat membuat perubahan padanya. Ada banyak cara berbeda untuk mengonfigurasi sebuah instans untuk memenuhi kebutuhan aplikasi tertentu. Berikut ini adalah beberapa tugas umum untuk membantu Anda memulai.

**Topics**
+ [Skenario konfigurasi umum](#instance-configuration-scenarios)
+ [Kelola perangkat lunak pada AL2 instans Anda](managing-software.md)
+ [Kontrol status prosesor untuk instans Amazon EC2 AL2 Anda](processor_state_control.md)
+ [Penjadwal I/O untuk AL2](io-scheduler.md)
+ [Ubah nama host instans Anda AL2](set-hostname.md)
+ [Siapkan DNS dinamis pada instans Anda AL2](dynamic-dns.md)
+ [Konfigurasikan antarmuka jaringan Anda menggunakan ec2-net-utils untuk AL2](ec2-net-utils.md)

## Skenario konfigurasi umum
<a name="instance-configuration-scenarios"></a>

Distribusi dasar Amazon Linux berisi paket perangkat lunak dan utilitas yang diperlukan untuk operasi server dasar. Namun, lebih banyak lagi paket perangkat lunak yang tersedia di berbagai repositori perangkat lunak, dan lebih banyak lagi paket yang tersedia untuk Anda buat dari kode sumber. Untuk informasi selengkapnya tentang menginstal dan membangun perangkat lunak dari lokasi ini, lihat [Kelola perangkat lunak pada AL2 instans Anda](managing-software.md).

Instans Amazon Linux telah dikonfigurasi sebelumnya dengan `ec2-user`, tetapi Anda mungkin ingin menambahkan pengguna lain yang tidak memiliki hak istimewa pengguna super. Untuk informasi selengkapnya tentang menambahkan dan menghapus pengguna, lihat [Mengelola pengguna di Linux instans Anda](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/managing-users.html) di *Panduan Pengguna Amazon EC2*.

Jika Anda memiliki jaringan Anda sendiri dengan nama domain yang terdaftar, Anda dapat mengubah nama host dari sebuah instans untuk mengidentifikasi dirinya sebagai bagian dari domain itu. Anda juga dapat mengubah prompt sistem untuk menampilkan nama yang lebih bermakna tanpa mengubah pengaturan nama host. Untuk informasi selengkapnya, lihat [Ubah nama host instans Anda AL2](set-hostname.md). Anda dapat mengonfigurasi sebuah instans untuk menggunakan penyedia layanan DNS dinamis. Untuk informasi selengkapnya, lihat [Siapkan DNS dinamis pada instans Anda AL2](dynamic-dns.md).

Saat Anda meluncurkan sebuah instans di Amazon EC2, Anda memiliki opsi untuk meneruskan data pengguna ke instans yang dapat digunakan untuk melakukan tugas konfigurasi umum dan bahkan menjalankan skrip setelah instans dimulai. Anda dapat meneruskan dua tipe data pengguna ke Amazon EC2: arahan cloud-init dan skrip shell. Untuk informasi selengkapnya, lihat [Menjalankan perintah pada Linux instans saat diluncurkan](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/user-data.html) di *Panduan Pengguna Amazon EC2*.

# Kelola perangkat lunak pada AL2 instans Anda
<a name="managing-software"></a>

Distribusi dasar Amazon Linux berisi paket perangkat lunak dan utilitas yang diperlukan untuk operasi server dasar.

Informasi ini berlaku untuk AL2. Untuk selengkapnya AL2023, lihat [Mengelola paket dan pembaruan sistem operasi AL2023 di](https://docs.aws.amazon.com/linux/al2023/ug/managing-repos-os-updates.html) *Panduan Pengguna Amazon Linux 2023*.

Penting untuk selalu memperbarui perangkat lunak Banyak paket dalam distribusi Linux sering diperbarui untuk memperbaiki bug, menambah fitur, dan melindungi dari eksploitasi keamanan. Untuk informasi selengkapnya, lihat [Perbarui perangkat lunak instans pada AL2 instans Anda](install-updates.md).

Secara default, AL2 instance diluncurkan dengan repositori berikut diaktifkan:
+ `amzn2-core`
+ `amzn2extra-docker`

Meskipun ada banyak paket yang tersedia di repositori ini yang diperbarui oleh AWS, mungkin ada paket yang ingin Anda instal yang terkandung dalam repositori lain. Untuk informasi selengkapnya, lihat [Tambahkan repositori pada sebuah instance AL2](add-repositories.md). Untuk bantuan menemukan dan menginstal paket di repositori yang diaktifkan, lihat [Temukan dan instal paket perangkat lunak pada sebuah AL2 instance](find-install-software.md).

Tidak semua perangkat lunak tersedia dalam paket perangkat lunak yang disimpan dalam repositori; beberapa perangkat lunak harus dikompilasi pada sebuah instans dari kode sumbernya. Untuk informasi selengkapnya, lihat [Bersiaplah untuk mengkompilasi perangkat lunak pada sebuah instance AL2](compile-software.md).

AL2 instance mengelola perangkat lunak mereka menggunakan manajer paket yum. Manajer paket yum dapat menginstal, menghapus, dan memperbarui perangkat lunak, serta mengelola semua dependensi untuk setiap paket.

**Topics**
+ [Perbarui perangkat lunak instans pada AL2 instans Anda](install-updates.md)
+ [Tambahkan repositori pada sebuah instance AL2](add-repositories.md)
+ [Temukan dan instal paket perangkat lunak pada sebuah AL2 instance](find-install-software.md)
+ [Bersiaplah untuk mengkompilasi perangkat lunak pada sebuah instance AL2](compile-software.md)

# Perbarui perangkat lunak instans pada AL2 instans Anda
<a name="install-updates"></a>

Perangkat lunak harus selalu diperbarui. Banyak paket dalam distribusi Linux sering diperbarui untuk memperbaiki bug, menambah fitur, dan melindungi dari eksploitasi keamanan. Saat pertama kali meluncurkan dan terhubung ke instans Amazon Linux, Anda mungkin melihat pesan yang meminta Anda untuk memperbarui paket perangkat lunak untuk tujuan keamanan. Bagian ini menunjukkan cara memperbarui seluruh sistem, atau hanya satu paket.

Informasi ini berlaku untuk AL2. Untuk selengkapnya AL2023, lihat [Mengelola paket dan pembaruan sistem operasi AL2023 di](https://docs.aws.amazon.com/linux/al2023/ug/managing-repos-os-updates.html) *Panduan Pengguna Amazon Linux 2023*.

Untuk informasi tentang perubahan dan pembaruan AL2, lihat [catatan AL2 rilis](https://docs.aws.amazon.com/AL2/latest/relnotes/relnotes-al2.html).

Untuk informasi tentang perubahan dan pembaruan AL2023, lihat [catatan AL2023 rilis](https://docs.aws.amazon.com/linux/al2023/release-notes/relnotes.html).

**penting**  
Jika Anda meluncurkan instans EC2 yang menggunakan Amazon Linux 2 AMI ke subnet IPv6 -only, Anda harus terhubung ke instans dan menjalankannya. `sudo amazon-linux-https disable` Ini memungkinkan AL2 instance Anda terhubung ke yum repositori di S3 melalui IPv6 menggunakan layanan patch http.

**Untuk memperbarui semua paket pada sebuah AL2 instance**

1. (Opsional) Mulai sesi **screen** di jendela shell Anda. Terkadang Anda mungkin mengalami gangguan jaringan yang dapat memutuskan koneksi SSH ke instans Anda. Jika ini terjadi selama pembaruan perangkat lunak yang lama, instans dapat dipulihkan, meskipun status membingungkan. Sebuah sesi **screen** memungkinkan Anda untuk terus menjalankan pembaruan meskipun koneksi Anda terputus, dan Anda dapat menyambung kembali ke sesi nanti tanpa masalah.

   1. Jalankan perintah **screen** untuk memulai sesi.

      ```
      [ec2-user ~]$ screen
      ```

   1. Jika sesi Anda terputus, masuk kembali ke instans Anda dan buat daftar layar yang tersedia.

      ```
      [ec2-user ~]$ screen -ls
      There is a screen on:
      	17793.pts-0.ip-12-34-56-78	(Detached)
      1 Socket in /var/run/screen/S-ec2-user.
      ```

   1. Hubungkan kembali ke layar menggunakan perintah **screen -r** dan ID proses dari perintah sebelumnya.

      ```
      [ec2-user ~]$ screen -r 17793
      ```

   1. Saat Anda selesai menggunakan **screen**, gunakan perintah **exit** untuk menutup sesi.

      ```
      [ec2-user ~]$ exit
      [screen is terminating]
      ```

1. Jalankan perintah **yum update**. Secara opsional, Anda dapat menambahkan bendera `--security` untuk menerapkan pembaruan keamanan saja.

   ```
   [ec2-user ~]$ sudo yum update
   ```

1. Tinjau paket yang terdaftar, ketik, **y**dan tekan Enter untuk menerima pembaruan. Memperbarui semua paket pada sistem memakan waktu beberapa menit. Itu**yum** output menunjukkan status pembaruan saat sedang berjalan.

1. (Opsional) [Reboot instance Anda](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-reboot.html) untuk memastikan bahwa Anda menggunakan paket dan pustaka terbaru dari pembaruan Anda; pembaruan kernel tidak dimuat sampai reboot terjadi. Pembaruan untuk semua pustaka `glibc` juga harus diikuti dengan reboot. Pembaruan pada paket yang mengontrol layanan mungkin cukup dilakukan dengan memulai ulang layanan untuk mengambil pembaruan, tetapi reboot sistem memastikan bahwa semua pembaruan paket dan pustaka sebelumnya telah selesai.

**Untuk memperbarui satu paket pada sebuah AL2 instance**

Gunakan prosedur ini untuk memperbarui satu paket (dan dependensinya) alih-alih seluruh sistem.

1. Jalankan perintah **yum update** dengan nama paket yang ingin Anda perbarui.

   ```
   [ec2-user ~]$ sudo yum update openssl
   ```

1. Tinjau informasi paket yang terdaftar, ketik, **y**dan tekan Enter untuk menerima pembaruan atau beberapa pembaruan. Terkadang akan ada lebih dari satu paket yang terdaftar jika ada dependensi paket yang harus diselesaikan. Output **yum** menunjukkan status pembaruan saat sedang berjalan.

1. (Opsional) [Reboot instance Anda](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-reboot.html) untuk memastikan bahwa Anda menggunakan paket dan pustaka terbaru dari pembaruan Anda; pembaruan kernel tidak dimuat sampai reboot terjadi. Pembaruan untuk semua pustaka `glibc` juga harus diikuti dengan reboot. Pembaruan pada paket yang mengontrol layanan mungkin cukup dilakukan dengan memulai ulang layanan untuk mengambil pembaruan, tetapi reboot sistem memastikan bahwa semua pembaruan paket dan pustaka sebelumnya telah selesai.

# Tambahkan repositori pada sebuah instance AL2
<a name="add-repositories"></a>

Informasi ini berlaku untuk AL2. Untuk selengkapnya AL2023, lihat [Peningkatan deterministik melalui repositori berversi di](https://docs.aws.amazon.com/linux/al2023/ug/deterministic-upgrades.html) Panduan Pengguna *Amazon AL2023* Linux 2023.

Secara default, AL2 instance diluncurkan dengan repositori berikut diaktifkan:
+ `amzn2-core`
+ `amzn2extra-docker`

Meskipun ada banyak paket yang tersedia di repositori ini yang diperbarui oleh Amazon Web Services, mungkin ada paket yang ingin Anda instal yang terdapat di repositori lain.

Untuk menginstal paket dari repositori yang berbeda dengan **yum**, Anda perlu menambahkan informasi repositori ke file `/etc/yum.conf` atau file `repository.repo` miliknya sendiri di direktori `/etc/yum.repos.d`. Anda dapat melakukannya secara manual, tetapi kebanyakan repositori yum menyediakan file `repository.repo` sendiri di URL repositori mereka.

**Untuk menentukan repositori yum apa yang sudah terinstal**  
Buat daftar repositori yum yang diinstal dengan perintah berikut:

```
[ec2-user ~]$ yum repolist all
```

Output yang dihasilkan mencantumkan repositori yang diinstal dan melaporkan status masing-masing. Repositori yang diaktifkan menampilkan jumlah paket yang dikandungnya.

**Untuk menambahkan repositori yum ke /etc/yum.repos.d**

1. Temukan lokasi file `.repo`. Ini akan bervariasi tergantung pada repositori yang Anda tambahkan. Dalam contoh ini, file `.repo` ada di `https://www.example.com/repository.repo`.

1. Tambahkan repositori dengan perintah **yum-config-manager**.

   ```
   [ec2-user ~]$ sudo yum-config-manager --add-repo https://www.example.com/repository.repo
   Loaded plugins: priorities, update-motd, upgrade-helper
   adding repo from: https://www.example.com/repository.repo
   grabbing file https://www.example.com/repository.repo to /etc/yum.repos.d/repository.repo
   repository.repo                                      | 4.0 kB     00:00
   repo saved to /etc/yum.repos.d/repository.repo
   ```

Setelah menginstal repositori, Anda harus mengaktifkannya seperti yang dijelaskan di prosedur selanjutnya.

**Untuk mengaktifkan repositori yum di /etc/yum.repos.d**  
Gunakan perintah **yum-config-manager** dengan bendera `--enable repository`. Perintah berikut mengaktifkan repositori Paket Ekstra untuk Enterprise Linux (EPEL) dari proyek Fedora. Secara default, repositori ini berada di `/etc/yum.repos.d` pada instans AMI Amazon Linux, tetapi tidak diaktifkan.

```
[ec2-user ~]$ sudo yum-config-manager --enable epel
```

Untuk informasi lebih lanjut, dan untuk mengunduh versi terbaru dari paket ini, lihat [https://fedoraproject. org/wiki/EPEL](https://fedoraproject.org/wiki/EPEL).

# Temukan dan instal paket perangkat lunak pada sebuah AL2 instance
<a name="find-install-software"></a>

Anda dapat menggunakan alat manajemen paket untuk menemukan dan menginstal paket perangkat lunak. Di Amazon Linux 2, alat manajemen paket perangkat lunak default adalahYUM. Di AL2023, alat manajemen paket perangkat lunak default adalahDNF. Untuk informasi selengkapnya, lihat [Alat manajemen paket](https://docs.aws.amazon.com/linux/al2023/ug/package-management.html) di *Panduan Pengguna Amazon Linux 2023*.

## Temukan paket perangkat lunak pada sebuah AL2 instance
<a name="find-software"></a>

Anda dapat menggunakan perintah **yum search** untuk mencari deskripsi paket yang tersedia di repositori yang Anda konfigurasikan. Ini sangat membantu jika Anda tidak tahu nama pasti dari paket yang ingin Anda instal. Cukup tambahkan pencarian kata kunci ke perintah; untuk pencarian beberapa kata, bungkus permintaan pencarian dengan tanda kutip.

```
[ec2-user ~]$ yum search "find"
```

Berikut ini adalah output contoh.

```
Loaded plugins: extras_suggestions, langpacks, priorities, update-motd
============================== N/S matched: find ===============================
findutils.x86_64 : The GNU versions of find utilities (find and xargs)
gedit-plugin-findinfiles.x86_64 : gedit findinfiles plugin
ocaml-findlib-devel.x86_64 : Development files for ocaml-findlib
perl-File-Find-Rule.noarch : Perl module implementing an alternative interface to File::Find
robotfindskitten.x86_64 : A game/zen simulation. You are robot. Your job is to find kitten.
mlocate.x86_64 : An utility for finding files by name
ocaml-findlib.x86_64 : Objective CAML package manager and build helper
perl-Devel-Cycle.noarch : Find memory cycles in objects
perl-Devel-EnforceEncapsulation.noarch : Find access violations to blessed objects
perl-File-Find-Rule-Perl.noarch : Common rules for searching for Perl things
perl-File-HomeDir.noarch : Find your home and other directories on any platform
perl-IPC-Cmd.noarch : Finding and running system commands made easy
perl-Perl-MinimumVersion.noarch : Find a minimum required version of perl for Perl code
texlive-xesearch.noarch : A string finder for XeTeX
valgrind.x86_64 : Tool for finding memory management bugs in programs
valgrind.i686 : Tool for finding memory management bugs in programs
```

Kueri penelusuran beberapa kata dalam tanda kutip hanya memberikan hasil yang cocok dengan kueri yang sama persis. Jika Anda tidak melihat paket yang diharapkan, sederhanakan pencarian Anda menjadi satu kata kunci dan kemudian scan hasilnya. Anda juga dapat mencoba sinonim kata kunci untuk memperluas pencarian Anda.

Untuk informasi selengkapnya tentang paket AL2, lihat berikut ini:
+ [AL2 Perpustakaan Ekstra](al2-extras.md)
+ [Package repositori](ec2.md#package-repository)

## Instal paket perangkat lunak pada sebuah AL2 instance
<a name="install-software"></a>

Di AL2, alat manajemen paket yum mencari semua repositori yang diaktifkan untuk paket perangkat lunak yang berbeda dan menangani dependensi apa pun dalam proses instalasi perangkat lunak. Untuk informasi tentang menginstal paket perangkat lunak AL2023, lihat [Mengelola paket dan pembaruan sistem operasi](https://docs.aws.amazon.com/linux/al2023/ug/managing-repos-os-updates.html) di *Panduan Pengguna Amazon Linux 2023*.

**Untuk menginstal paket dari repositori**  
Gunakan **yum install *package*** perintah, ganti *package* dengan nama perangkat lunak yang akan diinstal. Misalnya, untuk menginstal browser web berbasis teks **links**, masukkan perintah berikut.

```
[ec2-user ~]$ sudo yum install links
```

**Untuk menginstal file paket RPM yang telah diunduh**  
Anda juga bisa menggunakan **yum install** untuk menginstal file paket RPM yang telah Anda unduh dari internet. Untuk melakukan ini, cukup tambahkan nama jalur file RPM ke perintah instalasi, bukan nama paket repositori.

```
[ec2-user ~]$ sudo yum install my-package.rpm
```

**Untuk mendaftar paket yang diinstal**  
Untuk melihat daftar paket yang diinstal pada instans Anda, gunakan perintah berikut.

```
[ec2-user ~]$ yum list installed
```

# Bersiaplah untuk mengkompilasi perangkat lunak pada sebuah instance AL2
<a name="compile-software"></a>

Perangkat lunak sumber terbuka tersedia di internet yang belum dikompilasi sebelumnya dan tersedia untuk diunduh dari repositori paket. Anda mungkin akhirnya menemukan paket perangkat lunak yang harus Anda kompilasi sendiri, dari kode sumbernya. Agar sistem Anda dapat mengkompilasi perangkat lunak di AL2 dan Amazon Linux, Anda perlu menginstal beberapa alat pengembangan, seperti**make**,**gcc**, dan**autoconf**.

Karena kompilasi perangkat lunak bukanlah tugas yang dibutuhkan oleh setiap instans Amazon EC2, alat-alat ini tidak diinstal secara default, tetapi tersedia dalam grup paket yang disebut "Alat Pengembangan" yang dapat dengan mudah ditambahkan ke instans dengan perintah **yum groupinstall**.

```
[ec2-user ~]$ sudo yum groupinstall "Development Tools"
```

Paket kode sumber perangkat lunak sering tersedia untuk diunduh (dari situs web seperti [https://github.com/](https://github.com/)dan [http://sourceforge.net/](https://sourceforge.net/)) sebagai file arsip terkompresi, yang disebut tarball. Tarball ini biasanya memiliki ekstensi file `.tar.gz`. Anda dapat mendekompresi arsip ini dengan perintah **tar**.

```
[ec2-user ~]$ tar -xzf software.tar.gz
```

Setelah Anda mendekompresi dan membatalkan pengarsipan paket kode sumber, Anda harus mencari file `README` atau `INSTALL` di direktori kode sumber yang dapat memberi Anda petunjuk lebih lanjut untuk mengompilasi dan menginstal kode sumber. 

**Untuk mengambil kode sumber untuk paket Amazon Linux**  
Amazon Web Services menyediakan kode sumber untuk paket yang dipelihara. Anda dapat mengunduh kode sumber untuk paket apa pun yang diinstal dengan perintah **yumdownloader --source**.

Jalankan **yumdownloader --source *package*** perintah untuk mengunduh kode sumber untuk*package*. Misalnya, untuk mengunduh kode sumber untuk paket, `htop` masukkan perintah berikut.

```
[ec2-user ~]$ yumdownloader --source htop

Loaded plugins: priorities, update-motd, upgrade-helper
Enabling amzn-updates-source repository
Enabling amzn-main-source repository
amzn-main-source                                                                                              | 1.9 kB  00:00:00     
amzn-updates-source                                                                                           | 1.9 kB  00:00:00     
(1/2): amzn-updates-source/latest/primary_db                                                                  |  52 kB  00:00:00     
(2/2): amzn-main-source/latest/primary_db                                                                     | 734 kB  00:00:00     
htop-1.0.1-2.3.amzn1.src.rpm
```

Lokasi RPM sumber ada di direktori tempat Anda menjalankan perintah.

# Kontrol status prosesor untuk instans Amazon EC2 AL2 Anda
<a name="processor_state_control"></a>

Status-C mengontrol tingkat tidur yang dapat dimasuki inti saat idle. Status-C diberi nomor mulai dengan C0 (status paling dangkal di mana inti benar-benar terjaga dan menjalankan instruksi) hingga C6 (keadaan idle terdalam di mana inti dimatikan).

P-state mengontrol performa yang diinginkan (dalam frekuensi CPU) dari sebuah inti. Status-P diberi nomor mulai dari P0 (pengaturan performa tertinggi di mana inti diizinkan untuk menggunakan Intel Turbo Boost Technology untuk meningkatkan frekuensi jika memungkinkan), dan mereka beralih dari P1 (status-P yang meminta frekuensi acuan maksimum) ke P15 (frekuensi serendah mungkin).

Anda mungkin harus mengubah pengaturan status-C atau status-P untuk meningkatkan konsistensi performa prosesor, mengurangi latensi, atau menyelaraskan instans Anda dengan beban kerja tertentu. Pengaturan status-C dan status-P default memberikan kinerja maksimum, yang optimal untuk sebagian besar beban kerja. Namun, jika aplikasi Anda akan mendapatkan keuntungan dari pengurangan latensi dengan biaya frekuensi ssatu inti atau dua inti yang lebih tinggi, atau dari performa yang konsisten pada frekuensi yang lebih rendah, dibandingkan dengan frekuensi Turbo Boost yang melonjak, pertimbangkan untuk bereksperimen dengan pengaturan status-C atau status-P yang tersedia untuk instans ini.

*Untuk informasi tentang jenis instans Amazon EC2 yang menyediakan kemampuan sistem operasi untuk mengontrol status C dan status P prosesor, lihat [Kontrol status prosesor untuk instans Amazon EC2 Anda di Panduan Pengguna Amazon EC2](https://docs.aws.amazon.com//AWSEC2/latest/UserGuide/processor_state_control.html).*

Bagian berikut menjelaskan konfigurasi status prosesor yang berbeda dan cara memantau efek konfigurasi Anda. Prosedur ini ditulis untuk, dan berlaku untuk Amazon Linux; Namun, mereka mungkin juga bekerja untuk distribusi Linux lainnya dengan kernel Linux versi 3.9 atau yang lebih baru.

**catatan**  
Contoh di halaman ini menggunakan yang berikut:  
Utilitas **turbostat** untuk menampilkan frekuensi prosesor dan informasi status-C. Utilitas **turbostat** tersedia di Amazon Linux secara default.
Perintah **stress** untuk menyimulasikan beban kerja. Untuk menginstal **stress**, pertama aktifkan repositori EPEL dengan menjalankan **sudo amazon-linux-extras install epel**, dan kemudian jalankan **sudo yum install -y stress**.
Jika output tidak menampilkan informasi status-C, sertakan opsi **--debug** dalam perintah (**sudo turbostat --debug stress *<options>***).

**Topics**
+ [Performa tertinggi dengan frekuensi Turbo Boost maksimum](#turbo-perf)
+ [Performa tinggi dan latensi rendah dengan membatasi status C yang lebih dalam](#c-states)
+ [Performa acuan dengan variabilitas terendah](#baseline-perf)

## Performa tertinggi dengan frekuensi Turbo Boost maksimum
<a name="turbo-perf"></a>

Ini adalah konfigurasi kontrol status prosesor default untuk AMI Amazon Linux, dan direkomendasikan untuk sebagian besar beban kerja. Konfigurasi ini memberikan kinerja tertinggi dengan variabilitas yang lebih rendah. Mengizinkan inti yang tidak aktif untuk memasuki status tidur yang lebih dalam akan memberikan headroom panas yang diperlukan agar proses inti tunggal atau ganda untuk dapat mencapai potensi Turbo Boost maksimumnya.

Contoh berikut menunjukkan instans `c4.8xlarge` dengan dua inti yang secara aktif melakukan pekerjaan mencapai frekuensi Turbo Boost prosesor maksimumnya.

```
[ec2-user ~]$ sudo turbostat stress -c 2 -t 10
stress: info: [30680] dispatching hogs: 2 cpu, 0 io, 0 vm, 0 hdd
stress: info: [30680] successful run completed in 10s
pk cor CPU    %c0  GHz  TSC SMI    %c1    %c3    %c6    %c7   %pc2   %pc3   %pc6   %pc7  Pkg_W RAM_W PKG_% RAM_%
             5.54 3.44 2.90   0   9.18   0.00  85.28   0.00   0.00   0.00   0.00   0.00  94.04 32.70 54.18  0.00
 0   0   0   0.12 3.26 2.90   0   3.61   0.00  96.27   0.00   0.00   0.00   0.00   0.00  48.12 18.88 26.02  0.00
 0   0  18   0.12 3.26 2.90   0   3.61
 0   1   1   0.12 3.26 2.90   0   4.11   0.00  95.77   0.00
 0   1  19   0.13 3.27 2.90   0   4.11
 0   2   2   0.13 3.28 2.90   0   4.45   0.00  95.42   0.00
 0   2  20   0.11 3.27 2.90   0   4.47
 0   3   3   0.05 3.42 2.90   0  99.91   0.00   0.05   0.00
 0   3  21  97.84 3.45 2.90   0   2.11
...
 1   1  10   0.06 3.33 2.90   0  99.88   0.01   0.06   0.00
 1   1  28  97.61 3.44 2.90   0   2.32
...
10.002556 sec
```

Dalam contoh ini, v CPUs 21 dan 28 berjalan pada frekuensi Turbo Boost maksimumnya karena core lain telah memasuki kondisi `C6` tidur untuk menghemat daya dan menyediakan daya dan ruang kepala termal untuk inti kerja. v CPUs 3 dan 10 (masing-masing berbagi inti prosesor dengan v CPUs 21 dan 28) berada dalam `C1` keadaan, menunggu instruksi.

Dalam contoh berikut, semua 18 core secara aktif melakukan pekerjaan, sehingga tidak ada ruang kepala untuk Turbo Boost maksimum, tetapi semuanya berjalan pada kecepatan “all core Turbo Boost” 3,2. GHz

```
[ec2-user ~]$ sudo turbostat stress -c 36 -t 10
stress: info: [30685] dispatching hogs: 36 cpu, 0 io, 0 vm, 0 hdd
stress: info: [30685] successful run completed in 10s
pk cor CPU    %c0  GHz  TSC SMI    %c1    %c3    %c6    %c7   %pc2   %pc3   %pc6   %pc7  Pkg_W RAM_W PKG_% RAM_%
            99.27 3.20 2.90   0   0.26   0.00   0.47   0.00   0.00   0.00   0.00   0.00 228.59 31.33 199.26  0.00
 0   0   0  99.08 3.20 2.90   0   0.27   0.01   0.64   0.00   0.00   0.00   0.00   0.00 114.69 18.55 99.32  0.00
 0   0  18  98.74 3.20 2.90   0   0.62
 0   1   1  99.14 3.20 2.90   0   0.09   0.00   0.76   0.00
 0   1  19  98.75 3.20 2.90   0   0.49
 0   2   2  99.07 3.20 2.90   0   0.10   0.02   0.81   0.00
 0   2  20  98.73 3.20 2.90   0   0.44
 0   3   3  99.02 3.20 2.90   0   0.24   0.00   0.74   0.00
 0   3  21  99.13 3.20 2.90   0   0.13
 0   4   4  99.26 3.20 2.90   0   0.09   0.00   0.65   0.00
 0   4  22  98.68 3.20 2.90   0   0.67
 0   5   5  99.19 3.20 2.90   0   0.08   0.00   0.73   0.00
 0   5  23  98.58 3.20 2.90   0   0.69
 0   6   6  99.01 3.20 2.90   0   0.11   0.00   0.89   0.00
 0   6  24  98.72 3.20 2.90   0   0.39
...
```

## Performa tinggi dan latensi rendah dengan membatasi status C yang lebih dalam
<a name="c-states"></a>

Status-C mengontrol tingkat tidur yang dapat dimasuki inti saat tidak aktif. Anda mungkin perlu mengontrol status-C untuk menyelaraskan sistem Anda untuk latensi versus performa. Menidurkan inti membutuhkan waktu, dan meskipun inti tidur memungkinkan lebih banyak ruang kepala untuk inti lain untuk meningkat ke frekuensi yang lebih tinggi, inti tidur tersebut membutuhkan waktu untuk bangun kembali dan melakukan pekerjaan. Misalnya, jika inti yang ditugaskan untuk menangani interupsi paket jaringan tertidur, mungkin ada penundaan dalam melayani interupsi tersebut. Anda dapat mengonfigurasi sistem agar tidak menggunakan status-C yang lebih dalam, yang mengurangi latensi reaksi prosesor, tetapi nantinya juga mengurangi headroom yang tersedia pada inti lain untuk Turbo Boost.

Skenario umum untuk menonaktifkan status tidur lebih dalam adalah aplikasi basis data Redis, yang menyimpan basis data dalam memori sistem untuk waktu respons kueri yang secepat mungkin.

**Untuk membatasi kondisi tidur yang lebih dalam AL2**

1. Buka file `/etc/default/grub` dengan editor pilihan Anda.

   ```
   [ec2-user ~]$ sudo vim /etc/default/grub
   ```

1. Edit baris `GRUB_CMDLINE_LINUX_DEFAULT` dan tambahkan opsi `intel_idle.max_cstate=1` dan `processor.max_cstate=1` untuk mengatur `C1` sebagai C-state terdalam untuk inti yang idle.

   ```
   GRUB_CMDLINE_LINUX_DEFAULT="console=tty0 console=ttyS0,115200n8 net.ifnames=0 biosdevname=0 nvme_core.io_timeout=4294967295 intel_idle.max_cstate=1 processor.max_cstate=1"
   GRUB_TIMEOUT=0
   ```

   Opsi `intel_idle.max_cstate=1` ini mengonfigurasi batas C-state untuk instans berbasis Intel, dan opsi `processor.max_cstate=1` mengonfigurasi batas C-state untuk instans berbasis AMD. Anda bisa menambahkan kedua opsi ke konfigurasi Anda. Hal ini memungkinkan satu konfigurasi untuk mengatur perilaku yang diinginkan pada Intel dan AMD.

1. Simpan file dan keluar dari editor Anda.

1.  Jalankan perintah berikut untuk membangun ulang konfigurasi boot.

   ```
   [ec2-user ~]$ sudo grub2-mkconfig -o /boot/grub2/grub.cfg
   ```

1. Reboot instans Anda untuk mengaktifkan opsi kernel baru.

   ```
   [ec2-user ~]$ sudo reboot
   ```

**Untuk membatasi status tidur yang lebih dalam di Amazon Linux AMI**

1. Buka file `/boot/grub/grub.conf` dengan editor pilihan Anda.

   ```
   [ec2-user ~]$ sudo vim /boot/grub/grub.conf
   ```

1. Edit baris `kernel` pada entri pertama dan tambahkan opsi `intel_idle.max_cstate=1` dan `processor.max_cstate=1` untuk mengatur `C1` sebagai status-C terdalam untuk inti yang idle.

   ```
   # created by imagebuilder
   default=0
   timeout=1
   hiddenmenu
   
   title Amazon Linux 2014.09 (3.14.26-24.46.amzn1.x86_64)
   root (hd0,0)
   kernel /boot/vmlinuz-3.14.26-24.46.amzn1.x86_64 root=LABEL=/ console=ttyS0 intel_idle.max_cstate=1  processor.max_cstate=1
   initrd /boot/initramfs-3.14.26-24.46.amzn1.x86_64.img
   ```

   Opsi `intel_idle.max_cstate=1` ini mengonfigurasi batas C-state untuk instans berbasis Intel, dan opsi `processor.max_cstate=1` mengonfigurasi batas C-state untuk instans berbasis AMD. Anda bisa menambahkan kedua opsi ke konfigurasi Anda. Hal ini memungkinkan satu konfigurasi untuk mengatur perilaku yang diinginkan pada Intel dan AMD.

1. Simpan file dan keluar dari editor Anda.

1. Reboot instans Anda untuk mengaktifkan opsi kernel baru.

   ```
   [ec2-user ~]$ sudo reboot
   ```

Contoh berikut menunjukkan instans `c4.8xlarge` dengan dua inti yang secara aktif melakukan pekerjaan pada frekuensi inti "all core Turbo Boost".

```
[ec2-user ~]$ sudo turbostat stress -c 2 -t 10
stress: info: [5322] dispatching hogs: 2 cpu, 0 io, 0 vm, 0 hdd
stress: info: [5322] successful run completed in 10s
pk cor CPU    %c0  GHz  TSC SMI    %c1    %c3    %c6    %c7   %pc2   %pc3   %pc6   %pc7  Pkg_W RAM_W PKG_% RAM_%
             5.56 3.20 2.90   0  94.44   0.00   0.00   0.00   0.00   0.00   0.00   0.00 131.90 31.11 199.47  0.00
 0   0   0   0.03 2.08 2.90   0  99.97   0.00   0.00   0.00   0.00   0.00   0.00   0.00  67.23 17.11 99.76  0.00
 0   0  18   0.01 1.93 2.90   0  99.99
 0   1   1   0.02 1.96 2.90   0  99.98   0.00   0.00   0.00
 0   1  19  99.70 3.20 2.90   0   0.30
...
 1   1  10   0.02 1.97 2.90   0  99.98   0.00   0.00   0.00
 1   1  28  99.67 3.20 2.90   0   0.33
 1   2  11   0.04 2.63 2.90   0  99.96   0.00   0.00   0.00
 1   2  29   0.02 2.11 2.90   0  99.98
...
```

Dalam contoh ini, core untuk v CPUs 19 dan 28 berjalan pada 3.2 GHz, dan core lainnya berada dalam `C1` keadaan C, menunggu instruksi. Meskipun inti yang bekerja tidak mencapai frekuensi Turbo Boost maksimumnya, inti yang tidak aktif akan jauh lebih cepat merespons permintaan baru daripada yang mereka lakukan di dalam C-state `C6`.

## Performa acuan dengan variabilitas terendah
<a name="baseline-perf"></a>

Anda dapat mengurangi variabilitas frekuensi prosesor dengan status-P. P-state mengontrol performa yang diinginkan (dalam frekuensi CPU) dari sebuah inti. Sebagian besar beban kerja bekerja lebih baik di P0, yang meminta Turbo Boost. Tetapi Anda mungkin harus menyelaraskan sistem Anda untuk mendapatkan performa yang konsisten daripada performa yang melonjak yang dapat terjadi ketika frekuensi Turbo Boost diaktifkan. 

Beban kerja Intel Advanced Vector Extensions (AVX atau AVX2) dapat bekerja dengan baik pada frekuensi yang lebih rendah, dan instruksi AVX dapat menggunakan lebih banyak daya. Menjalankan prosesor pada frekuensi yang lebih rendah, dengan menonaktifkan Turbo Boost, dapat mengurangi jumlah daya yang digunakan dan menjaga kecepatan lebih konsisten. Untuk informasi selengkapnya tentang mengoptimalkan konfigurasi instans Anda dan beban kerja untuk AVX, lihat [situs web Intel](https://www.intel.com/content/www/us/en/developer/articles/technical/the-intel-advanced-vector-extensions-512-feature-on-intel-xeon-scalable.html?wapkw=advanced%20vector%20extensions).

Driver idle CPU mengontrol status-P. Generasi CPU yang lebih baru memerlukan driver idle CPU yang diperbarui yang sesuai dengan tingkat kernel sebagai berikut:
+ Kernel Linux versi 6.1 dan lebih tinggi - Mendukung Intel Granite Rapids (misalnya, R8i)
+ Kernel Linux versi 5.10 dan lebih tinggi — Mendukung AMD Milan (misalnya, M6a)
+ Kernel Linux versi 5.6 dan lebih tinggi - Mendukung Intel Icelake (misalnya, M6i)

Untuk mendeteksi apakah kernel sistem yang sedang berjalan mengenali CPU, jalankan perintah berikut.

```
if [ -d /sys/devices/system/cpu/cpu0/cpuidle ]; then echo "C-state control enabled"; else echo "Kernel cpuidle driver does not recognize this CPU generation"; fi
```

Jika output dari perintah ini menunjukkan kurangnya dukungan, kami sarankan Anda memutakhirkan kernel.

Bagian ini menjelaskan cara membatasi status tidur yang lebih dalam dan menonaktifkan Turbo Boost (dengan meminta status-P `P1`) untuk memberikan latensi rendah dan variabilitas kecepatan prosesor terendah untuk tipe beban kerja ini.

**Untuk membatasi kondisi tidur yang lebih dalam dan menonaktifkan Turbo Boost aktif AL2**

1. Buka file `/etc/default/grub` dengan editor pilihan Anda.

   ```
   [ec2-user ~]$ sudo vim /etc/default/grub
   ```

1. Edit baris `GRUB_CMDLINE_LINUX_DEFAULT` dan tambahkan opsi `intel_idle.max_cstate=1` dan `processor.max_cstate=1` untuk mengatur `C1` sebagai C-state terdalam untuk inti yang idle.

   ```
   GRUB_CMDLINE_LINUX_DEFAULT="console=tty0 console=ttyS0,115200n8 net.ifnames=0 biosdevname=0 nvme_core.io_timeout=4294967295 intel_idle.max_cstate=1 processor.max_cstate=1"
   GRUB_TIMEOUT=0
   ```

   Opsi `intel_idle.max_cstate=1` ini mengonfigurasi batas C-state untuk instans berbasis Intel, dan opsi `processor.max_cstate=1` mengonfigurasi batas C-state untuk instans berbasis AMD. Anda bisa menambahkan kedua opsi ke konfigurasi Anda. Hal ini memungkinkan satu konfigurasi untuk mengatur perilaku yang diinginkan pada Intel dan AMD.

1. Simpan file dan keluar dari editor Anda.

1.  Jalankan perintah berikut untuk membangun ulang konfigurasi boot.

   ```
   [ec2-user ~]$ grub2-mkconfig -o /boot/grub2/grub.cfg
   ```

1. Reboot instans Anda untuk mengaktifkan opsi kernel baru.

   ```
   [ec2-user ~]$ sudo reboot
   ```

1. Bila Anda membutuhkan variabilitas kecepatan prosesor rendah yang disediakan P-state `P1`, jalankan perintah berikut untuk menonaktifkan Turbo Boost.

   ```
   [ec2-user ~]$ sudo sh -c "echo 1 > /sys/devices/system/cpu/intel_pstate/no_turbo"
   ```

1. Saat beban kerja Anda selesai, Anda dapat mengaktifkan kembali Turbo Boost dengan perintah berikut.

   ```
   [ec2-user ~]$ sudo sh -c "echo 0 > /sys/devices/system/cpu/intel_pstate/no_turbo"
   ```

**Untuk membatasi status tidur yang lebih dalam dan menonaktifkan Turbo Boost di Amazon Linux AMI**

1. Buka file `/boot/grub/grub.conf` dengan editor pilihan Anda.

   ```
   [ec2-user ~]$ sudo vim /boot/grub/grub.conf
   ```

1. Edit baris `kernel` pada entri pertama dan tambahkan opsi `intel_idle.max_cstate=1` dan `processor.max_cstate=1` untuk mengatur `C1` sebagai status-C terdalam untuk inti yang idle.

   ```
   # created by imagebuilder
   default=0
   timeout=1
   hiddenmenu
   
   title Amazon Linux 2014.09 (3.14.26-24.46.amzn1.x86_64)
   root (hd0,0)
   kernel /boot/vmlinuz-3.14.26-24.46.amzn1.x86_64 root=LABEL=/ console=ttyS0 intel_idle.max_cstate=1 processor.max_cstate=1
   initrd /boot/initramfs-3.14.26-24.46.amzn1.x86_64.img
   ```

   Opsi `intel_idle.max_cstate=1` ini mengonfigurasi batas C-state untuk instans berbasis Intel, dan opsi `processor.max_cstate=1` mengonfigurasi batas C-state untuk instans berbasis AMD. Anda bisa menambahkan kedua opsi ke konfigurasi Anda. Hal ini memungkinkan satu konfigurasi untuk mengatur perilaku yang diinginkan pada Intel dan AMD.

1. Simpan file dan keluar dari editor Anda.

1. Reboot instans Anda untuk mengaktifkan opsi kernel baru.

   ```
   [ec2-user ~]$ sudo reboot
   ```

1. Bila Anda membutuhkan variabilitas kecepatan prosesor rendah yang disediakan P-state `P1`, jalankan perintah berikut untuk menonaktifkan Turbo Boost.

   ```
   [ec2-user ~]$ sudo sh -c "echo 1 > /sys/devices/system/cpu/intel_pstate/no_turbo"
   ```

1. Saat beban kerja Anda selesai, Anda dapat mengaktifkan kembali Turbo Boost dengan perintah berikut.

   ```
   [ec2-user ~]$ sudo sh -c "echo 0 > /sys/devices/system/cpu/intel_pstate/no_turbo"
   ```

Contoh berikut menunjukkan `c4.8xlarge` instance dengan dua v CPUs secara aktif melakukan pekerjaan pada frekuensi inti dasar, tanpa Turbo Boost.

```
[ec2-user ~]$ sudo turbostat stress -c 2 -t 10
stress: info: [5389] dispatching hogs: 2 cpu, 0 io, 0 vm, 0 hdd
stress: info: [5389] successful run completed in 10s
pk cor CPU    %c0  GHz  TSC SMI    %c1    %c3    %c6    %c7   %pc2   %pc3   %pc6   %pc7  Pkg_W RAM_W PKG_% RAM_%
             5.59 2.90 2.90   0  94.41   0.00   0.00   0.00   0.00   0.00   0.00   0.00 128.48 33.54 200.00  0.00
 0   0   0   0.04 2.90 2.90   0  99.96   0.00   0.00   0.00   0.00   0.00   0.00   0.00  65.33 19.02 100.00  0.00
 0   0  18   0.04 2.90 2.90   0  99.96
 0   1   1   0.05 2.90 2.90   0  99.95   0.00   0.00   0.00
 0   1  19   0.04 2.90 2.90   0  99.96
 0   2   2   0.04 2.90 2.90   0  99.96   0.00   0.00   0.00
 0   2  20   0.04 2.90 2.90   0  99.96
 0   3   3   0.05 2.90 2.90   0  99.95   0.00   0.00   0.00
 0   3  21  99.95 2.90 2.90   0   0.05
...
 1   1  28  99.92 2.90 2.90   0   0.08
 1   2  11   0.06 2.90 2.90   0  99.94   0.00   0.00   0.00
 1   2  29   0.05 2.90 2.90   0  99.95
```

Inti untuk v CPUs 21 dan 28 secara aktif melakukan pekerjaan pada kecepatan prosesor dasar 2,9 GHz, dan semua inti yang tidak aktif juga berjalan pada kecepatan dasar dalam keadaan `C1` C, siap menerima instruksi.

# Penjadwal I/O untuk AL2
<a name="io-scheduler"></a>

I/O scheduler is a part of the Linux operating system that sorts and merges I/OPermintaan dan menentukan urutan di mana mereka diproses.

I/O schedulers are particularly beneficial for devices such as magnetic hard drives, where seek time can be expensive and where it is optimal to merge co-located requests. I/Openjadwal memiliki lebih sedikit efek dengan perangkat solid state dan lingkungan virtual. Ini karena untuk perangkat solid state, akses berurutan dan acak tidak berbeda, dan untuk lingkungan virtual, host menyediakan lapisan penjadwalan sendiri.

Topik ini membahas I/O penjadwal Amazon Linux. Untuk informasi lebih lanjut tentang penjadwal I/O yang digunakan oleh distribusi Linux lainnya, lihat dokumentasi masing-masing.

**Topics**
+ [Penjadwal yang didukung](#supported-schedulers)
+ [Penjadwal default](#default-schedulers)
+ [Ubah penjadwal](#change-scheduler)

## Penjadwal yang didukung
<a name="supported-schedulers"></a>

Amazon Linux mendukung I/O penjadwal berikut:
+ `deadline`— I/O Penjadwal *tenggat waktu* mengurutkan I/O permintaan dan menanganinya dalam urutan yang paling efisien. Ini menjamin waktu mulai untuk setiap I/O request. It also gives I/O permintaan yang telah tertunda terlalu lama prioritas yang lebih tinggi.
+ `cfq`— I/O Penjadwal *Antrian Sepenuhnya Adil (CFQ) mencoba mengalokasikan I/O resources between processes. It sorts and inserts I/O permintaan secara adil ke dalam antrian per proses*.
+ `noop`— I/O scheduler inserts all I/O Permintaan *No Operation* (noop) ke dalam antrian FIFO dan kemudian menggabungkannya menjadi satu permintaan. Penjadwal ini tidak melakukan penyortiran permintaan apa pun.

## Penjadwal default
<a name="default-schedulers"></a>

No Operation (noop) adalah I/O penjadwal default untuk Amazon Linux. Penjadwal ini digunakan karena alasan berikut:
+ Banyak tipe instans menggunakan perangkat virtual di mana host yang mendasarinya melakukan penjadwalan untuk instans.
+ Perangkat solid state digunakan dalam banyak jenis contoh di mana manfaat I/O penjadwal memiliki efek yang lebih kecil.
+ Ini adalah I/O penjadwal yang paling tidak invasif, dan dapat disesuaikan jika diperlukan.

## Ubah penjadwal
<a name="change-scheduler"></a>

Mengubah I/O penjadwal dapat meningkatkan atau mengurangi kinerja berdasarkan apakah penjadwal menghasilkan lebih banyak atau lebih sedikit I/O permintaan yang diselesaikan dalam waktu tertentu. Ini sebagian besar tergantung pada beban kerja Anda, pembuatan tipe instans yang sedang digunakan, dan jenis perangkat yang diakses. Jika Anda mengubah penjadwal I/O yang digunakan, kami sarankan Anda menggunakan alat, seperti **iotop**, untuk mengukur I/O kinerja dan untuk menentukan apakah perubahan tersebut bermanfaat untuk kasus penggunaan Anda.

Anda dapat melihat I/O penjadwal untuk perangkat menggunakan perintah berikut, yang digunakan `nvme0n1` sebagai contoh. Ganti `nvme0n1` dalam perintah berikut dengan perangkat yang tercantum `/sys/block` di instans Anda.

```
$  cat /sys/block/nvme0n1/queue/scheduler
```

Untuk mengatur I/O penjadwal perangkat, gunakan perintah berikut. 

```
$  echo cfq|deadline|noop > /sys/block/nvme0n1/queue/scheduler
```

Misalnya, untuk mengatur I/O penjadwal *xvda* perangkat dari `noop` ke`cfq`, gunakan perintah berikut. 

```
$  echo cfq > /sys/block/xvda/queue/scheduler
```

# Ubah nama host instans Anda AL2
<a name="set-hostname"></a>

Saat Anda meluncurkan instans ke VPC privat, Amazon EC2 menetapkan nama host OS tamu. Tipe nama host yang ditetapkan Amazon EC2 bergantung pada pengaturan subnet Anda. Untuk informasi selengkapnya tentang nama host EC2, lihat jenis [nama host instans Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-naming.html) di Panduan Pengguna Amazon *EC2*.

Nama DNS pribadi Amazon EC2 khas untuk instans EC2 yang dikonfigurasi untuk menggunakan penamaan berbasis IP dengan IPv4 alamat terlihat seperti ini:`ip-12-34-56-78.us-west-2.compute.internal`, di mana nama terdiri dari domain internal, layanan (dalam hal ini,`compute`), wilayah, dan bentuk alamat pribadi. IPv4 Bagian dari nama host ini ditampilkan pada prompt shell saat Anda masuk ke instans Anda (misalnya, `ip-12-34-56-78`). Setiap kali Anda berhenti dan memulai ulang instans Amazon EC2 Anda (kecuali Anda menggunakan alamat IP Elastis), IPv4 alamat publik berubah, begitu juga nama DNS publik, nama host sistem, dan prompt shell Anda.

**penting**  
Informasi ini berlaku untuk Amazon Linux. Untuk informasi tentang distribusi lain, lihat dokumentasi spesifik tentangnya.

## Mengubah nama host sistem
<a name="set-hostname-system"></a>

Jika Anda memiliki nama DNS publik yang terdaftar untuk alamat IP instans Anda (seperti `webserver.mydomain.com`), Anda dapat mengatur nama host sistem sehingga instans Anda mengidentifikasi dirinya sebagai bagian dari domain itu. Ini juga mengubah prompt shell sehingga menampilkan bagian pertama dari nama ini alih-alih nama host yang disediakan oleh AWS (misalnya,`ip-12-34-56-78`). Jika Anda tidak memiliki nama DNS publik yang terdaftar, Anda masih dapat mengubah nama host, tetapi prosesnya sedikit berbeda.

Agar pembaruan nama host Anda tetap ada, Anda harus memverifikasi bahwa pengaturan `preserve_hostname` cloud-init diatur ke `true`. Anda dapat menjalankan perintah berikut untuk mengedit atau menambahkan pengaturan ini:

```
sudo vi /etc/cloud/cloud.cfg
```

Jika pengaturan `preserve_hostname` tidak terdaftar, tambahkan baris teks berikut ke akhir file: 

```
preserve_hostname: true
```

**Untuk mengubah nama host sistem menjadi nama DNS publik**

Ikuti prosedur ini jika Anda sudah memiliki nama DNS publik yang terdaftar.

1. 
   + Untuk AL2: Gunakan **hostnamectl** perintah untuk mengatur nama host Anda agar mencerminkan nama domain yang sepenuhnya memenuhi syarat (seperti**webserver.mydomain.com**).

     ```
     [ec2-user ~]$ sudo hostnamectl set-hostname webserver.mydomain.com
     ```
   + Untuk AMI Amazon Linux: Pada instans Anda, buka file konfigurasi `/etc/sysconfig/network` di editor teks favorit Anda dan ubah entri `HOSTNAME` sehingga mencerminkan nama domain yang sepenuhnya memenuhi syarat (seperti **webserver.mydomain.com**).

     ```
     HOSTNAME=webserver.mydomain.com
     ```

1. Boot ulang instans untuk mengambil nama host baru.

   ```
   [ec2-user ~]$ sudo reboot
   ```

   Atau, Anda dapat melakukan boot ulang menggunakan konsol Amazon EC2 (di halaman **Instans**, pilih instans dan pilih **Status instans**, **Boot ulang instans**).

1. Masuk ke instans Anda dan pastikan bahwa nama host telah diperbarui. Perintah Anda harus menampilkan nama host baru (hingga "." Pertama) dan**hostname** Perintah harus menunjukkan nama domain yang memenuhi syarat.

   ```
   [ec2-user@webserver ~]$ hostname
   webserver.mydomain.com
   ```

**Untuk mengubah nama host sistem tanpa nama DNS publik**

1. 
   + Untuk AL2: Gunakan **hostnamectl** perintah untuk mengatur nama host Anda untuk mencerminkan nama host sistem yang diinginkan (seperti**webserver**).

     ```
     [ec2-user ~]$ sudo hostnamectl set-hostname webserver.localdomain
     ```
   + Untuk AMI Amazon Linux: Pada instans Anda, buka file konfigurasi `/etc/sysconfig/network` di editor teks favorit Anda dan ubah entri `HOSTNAME` sehingga mencerminkan nama host sistem yang diinginkan (seperti **webserver**).

     ```
     HOSTNAME=webserver.localdomain
     ```

1. Buka file `/etc/hosts` di editor teks favorit Anda dan ubah entri yang diawali dengan **127.0.0.1** untuk mencocokkan contoh di bawah ini, dengan mengganti nama host Anda sendiri.

   ```
   127.0.0.1 webserver.localdomain webserver localhost4 localhost4.localdomain4
   ```

1. Boot ulang instans untuk mengambil nama host baru.

   ```
   [ec2-user ~]$ sudo reboot
   ```

   Atau, Anda dapat melakukan boot ulang menggunakan konsol Amazon EC2 (di halaman **Instans**, pilih instans dan pilih **Status instans**, **Boot ulang instans**).

1. Masuk ke instans Anda dan pastikan bahwa nama host telah diperbarui. Prompt Anda harus menampilkan nama host baru (hingga "." pertama) dan perintah **hostname** harus menunjukkan nama domain yang memenuhi syarat.

   ```
   [ec2-user@webserver ~]$ hostname
   webserver.localdomain
   ```

Anda juga dapat menerapkan solusi yang lebih terprogram, seperti menentukan data pengguna untuk mengonfigurasi instans Anda. Jika instans Anda adalah bagian dari grup Auto Scaling, Anda dapat menggunakan pengait siklus hidup untuk menentukan data pengguna. Untuk informasi selengkapnya, lihat [Menjalankan perintah pada instans Linux Anda saat peluncuran](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/user-data.html) dan [Pengait siklus hidup untuk peluncuran instans](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-autoscaling-lifecyclehook.html#aws-resource-autoscaling-lifecyclehook--examples--Lifecycle_hook_for_instance_launch) di *Panduan Pengguna AWS CloudFormation *.

## Mengubah prompt shell tanpa memengaruhi nama host
<a name="set-hostname-shell"></a>

Jika Anda tidak ingin mengubah nama host untuk instance Anda, tetapi Anda ingin memiliki nama sistem yang lebih berguna (seperti**webserver**) ditampilkan daripada nama pribadi yang disediakan oleh AWS (misalnya,`ip-12-34-56-78`), Anda dapat mengedit file konfigurasi shell prompt untuk menampilkan nama panggilan sistem Anda alih-alih nama host.

**Untuk mengubah prompt shell menjadi nama panggilan host**

1. Buat file di `/etc/profile.d` yang mengatur variabel lingkungan yang disebut `NICKNAME` ke nilai yang Anda inginkan di prompt shell. Misalnya, untuk mengatur nama panggilan sistem menjadi **webserver**, jalankan perintah berikut.

   ```
   [ec2-user ~]$ sudo sh -c 'echo "export NICKNAME=webserver" > /etc/profile.d/prompt.sh'
   ```

1. Buka file `/etc/bashrc` (Red Hat) atau `/etc/bash.bashrc` (Debian/Ubuntu) di editor teks favorit Anda (seperti **vim** atau **nano**). Anda perlu menggunakan **sudo** dengan perintah editor karena `/etc/bashrc` dan `/etc/bash.bashrc` dimiliki oleh `root`.

1. Edit file dan ubah variabel prompt shell (`PS1`) untuk menampilkan nama panggilan Anda, bukan nama host. Temukan baris berikut yang mengatur prompt shell di `/etc/bashrc` atau `/etc/bash.bashrc` (beberapa baris sekitarnya ditampilkan di bawah untuk konteks; cari baris yang dimulai dengan `[ "$PS1"`):

   ```
     # Turn on checkwinsize
     shopt -s checkwinsize
     [ "$PS1" = "\\s-\\v\\\$ " ] && PS1="[\u@\h \W]\\$ "
     # You might want to have e.g. tty in prompt (e.g. more virtual machines)
     # and console windows
   ```

   Ubah `\h` (simbol untuk `hostname`) di baris tersebut ke nilai variabel `NICKNAME`.

   ```
     # Turn on checkwinsize
     shopt -s checkwinsize
     [ "$PS1" = "\\s-\\v\\\$ " ] && PS1="[\u@$NICKNAME \W]\\$ "
     # You might want to have e.g. tty in prompt (e.g. more virtual machines)
     # and console windows
   ```

1. (Opsional) Untuk mengatur judul di jendela shell ke nama panggilan baru, selesaikan langkah-langkah berikut.

   1. Buat file bernama `/etc/sysconfig/bash-prompt-xterm`.

      ```
      [ec2-user ~]$ sudo touch /etc/sysconfig/bash-prompt-xterm
      ```

   1. Buat file tersebut dapat dieksekusi menggunakan perintah berikut.

      ```
      [ec2-user ~]$ sudo chmod +x /etc/sysconfig/bash-prompt-xterm
      ```

   1. Buka file `/etc/sysconfig/bash-prompt-xterm` di editor teks favorit Anda (seperti **vim** atau **nano**). Anda perlu menggunakan **sudo** dengan perintah editor karena `/etc/sysconfig/bash-prompt-xterm` dimiliki oleh `root`.

   1. Tambahkan baris berikut ke file.

      ```
      echo -ne "\033]0;${USER}@${NICKNAME}:${PWD/#$HOME/~}\007"
      ```

1. Keluar lalu masuk kembali untuk mengambil nilai nama panggilan baru.

## Mengubah nama host pada distribusi Linux lainnya
<a name="set-hostname-other-linux"></a>

Prosedur di halaman ini dimaksudkan untuk digunakan dengan Amazon Linux saja. Untuk informasi lebih lanjut tentang distribusi Linux lainnya, lihat dokumentasi spesifik mereka dan artikel berikut ini:
+ [Bagaimana cara menetapkan nama host statis ke instans Amazon EC2 privat yang menjalankan RHEL 7 atau Centos 7?](https://aws.amazon.com/premiumsupport/knowledge-center/linux-static-hostname-rhel7-centos7/)

# Siapkan DNS dinamis pada instans Anda AL2
<a name="dynamic-dns"></a>

Saat Anda meluncurkan instans EC2, instans tersebut mendapatkan alamat IP publik dan nama Sistem Nama Domain (DNS) publik yang dapat Anda gunakan untuk menjangkaunya dari internet. Karena ada begitu banyak host di domain Amazon Web Services, nama publik ini harus cukup panjang agar setiap nama tetap unik. Nama DNS publik Amazon EC2 yang khas terlihat seperti ini:`ec2-12-34-56-78.us-west-2.compute.amazonaws.com`, di mana nama terdiri dari domain Amazon Web Services, layanan (dalam hal ini,`compute`) Wilayah AWS, dan bentuk alamat IP publik.

Layanan DNS Dinamis menyediakan nama host DNS kustom dalam area domain mereka yang mudah diingat dan juga lebih relevan dengan kasus penggunaan host Anda. Beberapa layanan ini juga gratis. Anda dapat menggunakan penyedia DNS dinamis dengan Amazon EC2 dan mengonfigurasi instans untuk memperbarui alamat IP yang terkait dengan nama DNS publik setiap kali instans dimulai. Ada banyak penyedia yang dapat dipilih, dan detail spesifik tentang pemilihan penyedia dan pendaftaran nama dengan mereka berada di luar cakupan panduan ini.<a name="procedure-dynamic-dns"></a>

**Untuk menggunakan DNS dinamis dengan Amazon EC2**

1. Daftar dengan penyedia layanan DNS dinamis dan daftarkan nama DNS publik dengan layanan mereka. Prosedur ini menggunakan layanan gratis dari [noip.com/free](https://www.noip.com/free) sebagai contohnya.

1. Konfigurasikan klien pembaruan DNS dinamis. Setelah Anda mendaftarkan penyedia layanan DNS dinamis dan nama DNS publik dengan layanan mereka, arahkan nama DNS ke alamat IP untuk instans Anda. Banyak penyedia (termasuk [noip.com](https://noip.com)) mengizinkan Anda melakukan ini secara manual dari halaman akun Anda di situs web mereka, tetapi banyak juga yang mendukung klien pembaruan perangkat lunak. Jika klien pembaruan berjalan pada instans EC2 Anda, data DNS dinamis Anda diperbarui setiap kali alamat IP berubah, seperti yang terjadi setelah dimatikan dan dimulai ulang. Dalam contoh ini, Anda menginstal klien noip2, yang bekerja dengan layanan yang disediakan oleh [noip.com](https://noip.com).

   1. Aktifkan repositori Paket Ekstra untuk Enterprise Linux (EPEL) untuk mendapatkan akses ke klien. `noip2`
**catatan**  
AL2 instance memiliki kunci GPG dan informasi repositori untuk repositori EPEL diinstal secara default. Untuk informasi lebih lanjut, dan untuk mengunduh versi terbaru dari paket ini, lihat [https://fedoraproject. org/wiki/EPEL](https://fedoraproject.org/wiki/EPEL).

      ```
      [ec2-user ~]$ sudo amazon-linux-extras install epel -y
      ```

   1. Instal paket `noip`.

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

   1. Buat file konfigurasi. Masukkan informasi login dan kata sandi ketika diminta dan jawab pertanyaan berikutnya untuk mengonfigurasi klien.

      ```
      [ec2-user ~]$ sudo noip2 -C
      ```

1. Aktifkan layanan noip.

   ```
   [ec2-user ~]$ sudo systemctl enable noip.service
   ```

1. Mulai layanan noip.

   ```
   [ec2-user ~]$ sudo systemctl start noip.service
   ```

   Perintah ini memulai klien, yang membaca file konfigurasi (`/etc/no-ip2.conf`) yang Anda buat sebelumnya dan memperbarui alamat IP untuk nama DNS publik yang Anda pilih.

1. Verifikasi bahwa klien pembaruan telah menetapkan alamat IP yang benar untuk nama DNS dinamis Anda. Tunggu beberapa menit agar catatan DNS diperbarui, lalu coba hubungkan instans Anda menggunakan SSH dengan nama DNS publik yang Anda konfigurasikan dalam prosedur ini.

# Konfigurasikan antarmuka jaringan Anda menggunakan ec2-net-utils untuk AL2
<a name="ec2-net-utils"></a>

Amazon Linux 2 AMIs mungkin berisi skrip tambahan yang diinstal oleh AWS, yang dikenal sebagai ec2-net-utils. Skrip ini secara opsional mengotomatiskan konfigurasi antarmuka jaringan Anda. Skrip ini AL2 hanya tersedia untuk.

**catatan**  
Untuk Amazon Linux 2023, `amazon-ec2-net-utils` paket menghasilkan konfigurasi khusus antarmuka di direktori. `/run/systemd/network` Untuk informasi selengkapnya, lihat [Layanan jaringan](https://docs.aws.amazon.com/linux/al2023/ug/networking-service.html) di *Panduan Pengguna Amazon Linux 2023*.

Gunakan perintah berikut untuk menginstal paket AL2 jika belum diinstal, atau perbarui jika sudah diinstal dan pembaruan tambahan tersedia:

```
$ yum install ec2-net-utils
```

Komponen berikut adalah bagian dari ec2-net-utils:

aturan udev (`/etc/udev/rules.d`)  
Mengidentifikasi antarmuka jaringan saat dipasang, dilepaskan, atau dipasang kembali ke instans yang sedang berjalan, dan memastikan bahwa skrip hotplug berjalan (`53-ec2-network-interfaces.rules`). Memetakan alamat MAC ke nama perangkat (`75-persistent-net-generator.rules`, yang menghasilkan `70-persistent-net.rules`).

skrip hotplug  
Menghasilkan file konfigurasi antarmuka yang cocok untuk digunakan dengan DHCP (`/etc/sysconfig/network-scripts/ifcfg-eth` *N*). Juga menghasilkan file konfigurasi rute (`/etc/sysconfig/network-scripts/route-eth` *N*).

Skrip DHCP  
Setiap kali antarmuka jaringan menerima sewa DHCP baru, skrip ini menanyakan metadata instans untuk alamat IP Elastis. Untuk setiap alamat IP Elastis, ini menambahkan aturan ke basis data kebijakan perutean untuk memastikan bahwa lalu lintas ke luar dari alamat tersebut menggunakan antarmuka jaringan yang benar. Itu juga menambahkan setiap alamat IP privat ke antarmuka jaringan sebagai alamat sekunder.

**ec2ifup** eth*N* (`/usr/sbin/`)  
Memperpanjang fungsi standar **ifup**. Setelah skrip ini menulis ulang file konfigurasi `ifcfg-eth`*N* dan `route-eth`*N*, ia menjalankan **ifup**.

**ec2ifdown** eth*N* (`/usr/sbin/`)  
Memperpanjang fungsi standar **ifdown**. Setelah skrip ini menghapus semua aturan untuk antarmuka jaringan dari basis data kebijakan perutean, skrip akan menjalankan **ifdown**.

**ec2ifscan** (`/usr/sbin/`)  
Memeriksa antarmuka jaringan yang belum dikonfigurasi dan mengonfigurasinya.  
Skrip ini tidak tersedia pada rilis awal ec2-net-utils.

Untuk membuat daftar file konfigurasi yang dibuat oleh ec2-net-utils, gunakan perintah berikut:

```
$ ls -l /etc/sysconfig/network-scripts/*-eth?
```

Untuk menonaktifkan otomatisasi, Anda dapat menambahkan `EC2SYNC=no` ke file `ifcfg-eth` *N* yang sesuai. Misalnya, gunakan perintah berikut untuk menonaktifkan otomatisasi untuk antarmuka eth1:

```
$ sed -i -e 's/^EC2SYNC=yes/EC2SYNC=no/' /etc/sysconfig/network-scripts/ifcfg-eth1
```

Untuk menonaktifkan otomatisasi sepenuhnya, Anda dapat menghapus paket menggunakan perintah berikut:

```
$ yum remove ec2-net-utils
```