Bekerja dengan data pengguna instans - Amazon Elastic Compute Cloud

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

Bekerja dengan data pengguna instans

Anda dapat menggunakan data pengguna instans untuk menyesuaikan instans Anda. Saat meluncurkan instans, Anda dapat menyimpan parameter atau skrip sebagai data pengguna. Skrip apa pun dalam data pengguna dijalankan saat Anda meluncurkan instans. Anda dapat melihat data pengguna sebagai atribut instans. Anda juga dapat melihat data pengguna dari instans Anda melalui Layanan Metadata Instans (IMDS).

Pertimbangan
  • Data pengguna diperlakukan sebagai data buram: apa yang Anda berikan adalah apa yang Anda dapatkan kembali. Terserah instans untuk menafsirkannya.

  • Data pengguna harus dienkode base64. Konsol Amazon EC2 dapat mengenkode base64 untuk Anda atau menerima input yang dienkode base64.

  • Data pengguna dibatasi hingga 16 KB, dalam bentuk mentah, sebelum dienkode base64. Ukuran string dengan panjang n setelah enkode base64 adalah ceil(n/3)*4.

  • Data pengguna harus didekode base64 saat Anda mengambilnya. Jika Anda mengambil data menggunakan metadata instans atau konsol, data akan didekode untuk Anda secara otomatis.

  • Jika Anda menghentikan sebuah instans, mengubah data penggunanya, dan memulai instans, data pengguna yang diperbarui tidak akan dijalankan secara otomatis saat Anda memulai instans. Dengan instance Windows, Anda dapat mengonfigurasi pengaturan sehingga skrip data pengguna yang diperbarui dijalankan satu kali ketika Anda memulai instance atau setiap kali Anda reboot atau memulai instance.

  • Data pengguna adalah atribut instans. Jika Anda membuat AMI dari instans, data pengguna instans tidak disertakan dalam AMI.

Tentukan data pengguna instans saat peluncuran

Anda dapat menentukan data pengguna saat meluncurkan sebuah instans. Untuk petunjuk konsol, lihat Tentukan data pengguna instans saat peluncuran. Untuk contoh Linux yang menggunakan AWS CLI, lihatData pengguna dan AWS CLI. Untuk contoh Windows yang menggunakan Alat untuk Windows PowerShell, lihatData pengguna dan Alat untuk Windows PowerShell.

Ubah data pengguna instans

Anda dapat memodifikasi data pengguna untuk instans dengan volume root EBS. Instans harus berada dalam status berhenti. Untuk petunjuk konsol, lihat Lihat dan perbarui data pengguna instans. Untuk contoh Linux yang menggunakan AWS CLI, lihat modify-instance-attribute. Untuk contoh Windows yang menggunakan Alat untuk Windows PowerShell, lihatData pengguna dan Alat untuk Windows PowerShell.

Ambil data pengguna instans dari instans Anda

catatan

Contoh di bagian ini menggunakan alamat IPv4 IMDS: 169.254.169.254. Jika Anda mengambil metadata instans untuk instans EC2 melalui alamat IPv6, pastikan Anda mengaktifkan dan menggunakan alamat IPv6 sebagai gantinya: [fd00:ec2::254] Alamat IPv6 IMDS kompatibel dengan perintah IMDSv2. Alamat IPv6 hanya dapat diakses pada instans yang dibangun pada Sistem AWS Nitro dan dalam subnet yang didukung IPv6 (dual stack atau IPv6 saja).

Untuk mengambil data pengguna dari sebuah instans, gunakan URI berikut.

http://169.254.169.254/latest/user-data

Permintaan untuk data pengguna mengembalikan data apa adanya (tipe konten application/octet-stream). Jika instans tidak memiliki data pengguna, permintaan akan mengembalikan 404 - Not Found.

Contoh ini mengembalikan data pengguna yang disediakan sebagai teks yang dipisahkan koma.

IMDSv2
[ec2-user ~]$ TOKEN=`curl -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600"` \ && curl -H "X-aws-ec2-metadata-token: $TOKEN" http://169.254.169.254/latest/user-data 1234,john,reboot,true | 4512,richard, | 173,,,
IMDSv1
[ec2-user ~]$ curl http://169.254.169.254/latest/user-data 1234,john,reboot,true | 4512,richard, | 173,,,
IMDSv2
PS C:\> [string]$token = Invoke-RestMethod -Headers @{"X-aws-ec2-metadata-token-ttl-seconds" = "21600"} -Method PUT -Uri http://169.254.169.254/latest/api/token
PS C:\> Invoke-RestMethod -Headers @{"X-aws-ec2-metadata-token" = $token} -Method GET -Uri http://169.254.169.254/latest/user-data 1234,john,reboot,true | 4512,richard, | 173,,,
IMDSv1
PS C:\> Invoke-RestMethod -Headers @{"X-aws-ec2-metadata-token" = Invoke-RestMethod -Headers @{"X-aws-ec2-metadata-token-ttl-seconds" = "21600"} ` -Method PUT -Uri http://169.254.169.254/latest/api/token} -Method GET -uri http://169.254.169.254/latest/user-data 1234,john,reboot,true | 4512,richard, | 173,,,

Contoh ini mengembalikan data pengguna yang disediakan sebagai skrip.

IMDSv2
[ec2-user ~]$ TOKEN=`curl -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600"` \ && curl -H "X-aws-ec2-metadata-token: $TOKEN" http://169.254.169.254/latest/user-data #!/bin/bash yum update -y service httpd start chkconfig httpd on
IMDSv1
[ec2-user ~]$ curl http://169.254.169.254/latest/user-data #!/bin/bash yum update -y service httpd start chkconfig httpd on
IMDSv2
PS C:\> [string]$token = Invoke-RestMethod -Headers @{"X-aws-ec2-metadata-token-ttl-seconds" = "21600"} -Method PUT -Uri http://169.254.169.254/latest/api/token
PS C:\> Invoke-RestMethod -Headers @{"X-aws-ec2-metadata-token" = $token} -Method GET -Uri http://169.254.169.254/latest/user-data <powershell> $file = $env:SystemRoot + "\Temp\" + (Get-Date).ToString("MM-dd-yy-hh-mm") New-Item $file -ItemType file </powershell> <persist>true</persist>
IMDSv1
PS C:\> Invoke-RestMethod -uri http://169.254.169.254/latest/user-data <powershell> $file = $env:SystemRoot + "\Temp\" + (Get-Date).ToString("MM-dd-yy-hh-mm") New-Item $file -ItemType file </powershell> <persist>true</persist>

Ambil data pengguna instans dari komputer Anda

Anda dapat mengambil data pengguna sebagai instans dari komputer Anda sendiri. Untuk petunjuk konsol, lihat Lihat dan perbarui data pengguna instans. Untuk contoh yang menggunakan AWS CLI, lihatData pengguna dan AWS CLI. Untuk contoh yang menggunakan Alat untuk Windows PowerShell, lihatData pengguna dan Alat untuk Windows PowerShell.