Gunakan AWS Systems Manager parameter alih-alih AMI IDs di templat peluncuran - EC2 Auto Scaling Amazon

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

Gunakan AWS Systems Manager parameter alih-alih AMI IDs di templat peluncuran

Bagian ini menunjukkan cara membuat template peluncuran yang menentukan AWS Systems Manager parameter yang mereferensikan ID Amazon Machine Image (AMI). Anda dapat menggunakan parameter yang disimpan dalam parameter yang sama Akun AWS, parameter yang dibagikan dari yang lain Akun AWS, atau parameter publik untuk AMI publik yang dikelola oleh AWS.

Dengan parameter Systems Manager, Anda dapat memperbarui grup Auto Scaling untuk menggunakan AMI baru IDs tanpa perlu membuat templat peluncuran baru atau versi baru templat peluncuran setiap kali ID AMI berubah. Ini IDs dapat berubah secara teratur, seperti ketika AMI diperbarui dengan sistem operasi terbaru atau pembaruan perangkat lunak.

Anda dapat membuat, memperbarui, atau menghapus parameter Systems Manager Anda sendiri menggunakan Parameter Store, kemampuan dari AWS Systems Manager. Anda harus membuat parameter Systems Manager sebelum dapat menggunakannya dalam template peluncuran. Untuk memulai, buat parameter dengan tipe dataaws:ec2:image, dan untuk nilainya, masukkan ID AMI. ID AMI memiliki formulirami-<identifier>, misalnya,ami-123example456. ID AMI yang benar bergantung pada jenis instans dan Wilayah AWS tempat Anda meluncurkan grup Auto Scaling.

Untuk informasi selengkapnya tentang membuat parameter yang valid untuk ID AMI, lihat Membuat parameter Systems Manager.

Buat template peluncuran yang menentukan parameter untuk AMI

Untuk membuat template peluncuran yang menentukan parameter untuk AMI, gunakan salah satu metode berikut:

Console
Untuk membuat template peluncuran menggunakan AWS Systems Manager parameter
  1. Buka EC2 konsol Amazon di https://console.aws.amazon.com/ec2/.

  2. Di panel navigasi, pilih Templat Peluncuran, lalu pilih Buat templat peluncuran.

  3. Untuk Nama templat peluncuran, masukkan nama deskriptif untuk templat peluncuran.

  4. Di bawah Gambar Aplikasi dan OS (Gambar Mesin Amazon), pilih Jelajahi lebih banyak AMIs.

  5. Pilih tombol panah di sebelah kanan bilah pencarian, lalu pilih Tentukan berdasarkan nilai kustom/parameter Systems Manager.

  6. Di kotak dialog Tentukan nilai kustom atau parameter Systems Manager, lakukan hal berikut:

    1. Untuk String parameter ID AMI atau Systems Manager, masukkan nama parameter Systems Manager menggunakan salah satu format berikut:

      Untuk mereferensikan parameter publik:

      • resolve:ssm:public-parameter

      Untuk mereferensikan parameter yang disimpan di akun yang sama:

      • resolve:ssm:parameter-name

      • resolve:ssm:parameter-name:version-number

      • resolve:ssm:parameter-name:label

      Untuk mereferensikan parameter yang dibagikan dari yang lain Akun AWS:

      • resolve:ssm:parameter-ARN

      • resolve:ssm:parameter-ARN:version-number

      • resolve:ssm:parameter-ARN:label

    2. Pilih Simpan.

  7. Konfigurasikan pengaturan template peluncuran lainnya sesuai kebutuhan, lalu pilih Buat templat peluncuran. Untuk informasi selengkapnya, lihat Membuat template peluncuran untuk grup Auto Scaling.

AWS CLI

Untuk membuat template peluncuran yang menentukan parameter Systems Manager, Anda dapat menggunakan salah satu perintah contoh berikut. Ganti masing-masing user input placeholder dengan informasi Anda sendiri.

Contoh: Buat template peluncuran yang menentukan parameter publik yang AWS dimiliki

Gunakan sintaks berikut:resolve:ssm:public-parameter, di mana resolve:ssm awalan standar dan public-parameter merupakan jalur dan nama parameter publik.

Dalam contoh ini, template peluncuran menggunakan parameter publik AWS yang disediakan untuk meluncurkan instance menggunakan Amazon Linux 2 AMI terbaru di Wilayah AWS yang dikonfigurasi untuk profil Anda.

aws ec2 create-launch-template --launch-template-name my-template-for-auto-scaling --version-description version1 \ --launch-template-data file://config.json

Isi dari config.json:

{ "ImageId":"resolve:ssm:/aws/service/ami-amazon-linux-latest/amzn2-ami-hvm-x86_64-gp2", "InstanceType":"t2.micro" }

Berikut ini adalah contoh respons.

{ "LaunchTemplate": { "LaunchTemplateId": "lt-089c023a30example", "LaunchTemplateName": "my-template-for-auto-scaling", "CreateTime": "2022-12-28T19:52:27.000Z", "CreatedBy": "arn:aws:iam::123456789012:user/Bob", "DefaultVersionNumber": 1, "LatestVersionNumber": 1 } }
Contoh: Buat template peluncuran yang menentukan parameter yang disimpan di akun yang sama

Gunakan sintaks berikut:resolve:ssm:parameter-name, di mana resolve:ssm awalan standar dan parameter-name merupakan nama parameter Systems Manager.

Contoh berikut membuat template peluncuran yang mendapatkan ID AMI dari parameter Systems Manager yang ada bernamagolden-ami.

aws ec2 create-launch-template --launch-template-name my-template-for-auto-scaling \ --launch-template-data file://config.json

Isi dari config.json:

{ "ImageId":"resolve:ssm:golden-ami", "InstanceType":"t2.micro" }

Versi default parameter, jika tidak ditentukan, adalah versi terbaru.

Contoh berikut mereferensikan versi golden-ami parameter tertentu. Contoh menggunakan 3 versi golden-ami parameter, tetapi Anda dapat menggunakan nomor versi yang valid.

{ "ImageId":"resolve:ssm:golden-ami:3", "InstanceType":"t2.micro" }

Contoh serupa berikut mereferensikan label prod parameter yang memetakan ke versi golden-ami parameter tertentu.

{ "ImageId":"resolve:ssm:golden-ami:prod", "InstanceType":"t2.micro" }

Berikut ini adalah output contoh.

{ "LaunchTemplate": { "LaunchTemplateId": "lt-068f72b724example", "LaunchTemplateName": "my-template-for-auto-scaling", "CreateTime": "2022-12-27T17:11:21.000Z", "CreatedBy": "arn:aws:iam::123456789012:user/Bob", "DefaultVersionNumber": 1, "LatestVersionNumber": 1 } }
Contoh: Buat template peluncuran yang menentukan parameter yang dibagikan dari yang lain Akun AWS

Gunakan sintaks berikut:resolve:ssm:parameter-ARN, di resolve:ssm mana awalan standar dan parameter-ARN ARN dari parameter Systems Manager.

Contoh berikut membuat template peluncuran yang mendapatkan ID AMI dari parameter Systems Manager yang ada dengan ARN. arn:aws:ssm:us-east-2:123456789012:parameter/MyParameter

aws ec2 create-launch-template --launch-template-name my-template-for-auto-scaling --version-description version1 \ --launch-template-data file://config.json

Isi dari config.json:

{ "ImageId":"resolve:ssm:arn:aws:ssm:us-east-2:123456789012:parameter/MyParameter", "InstanceType":"t2.micro" }

Versi default parameter, jika tidak ditentukan, adalah versi terbaru.

Contoh berikut mereferensikan versi MyParameter parameter tertentu. Contoh menggunakan 3 versi MyParameter parameter, tetapi Anda dapat menggunakan nomor versi yang valid.

{ "ImageId":"resolve:ssm:arn:aws:ssm:us-east-2:123456789012:parameter/MyParameter:3", "InstanceType":"t2.micro" }

Contoh serupa berikut mereferensikan label prod parameter yang memetakan ke versi MyParameter parameter tertentu.

{ "ImageId":"resolve:ssm:arn:aws:ssm:us-east-2:123456789012:parameter/MyParameter:prod", "InstanceType":"t2.micro" }

Berikut ini adalah contoh respons.

{ "LaunchTemplate": { "LaunchTemplateId": "lt-00f93d4588example", "LaunchTemplateName": "my-template-for-auto-scaling", "CreateTime": "2024-01-08T12:43:21.000Z", "CreatedBy": "arn:aws:iam::123456789012:user/Bob", "DefaultVersionNumber": 1, "LatestVersionNumber": 1 } }

Untuk menentukan parameter dari Parameter Store dalam template peluncuran, Anda harus memiliki ssm:GetParameters izin untuk parameter yang ditentukan. Siapa pun yang menggunakan template peluncuran juga memerlukan ssm:GetParameters izin agar nilai parameter divalidasi. Untuk informasi selengkapnya, lihat Membatasi akses ke parameter Systems Manager menggunakan kebijakan IAM di AWS Systems Manager Panduan Pengguna.

Verifikasi template peluncuran mendapatkan ID AMI yang benar

Gunakan describe-launch-template-versionsperintah dan sertakan --resolve-alias opsi untuk menyelesaikan parameter ke ID AMI yang sebenarnya.

aws ec2 describe-launch-template-versions --launch-template-name my-template-for-auto-scaling \ --versions 1 --resolve-alias

Contoh mengembalikan ID AMI untukImageId. Saat instans diluncurkan menggunakan templat peluncuran ini, ID AMI akan diselesaikan ke ami-0ac394d6a3example.

{ "LaunchTemplateVersions": [ { "LaunchTemplateId": "lt-089c023a30example", "LaunchTemplateName": "my-template-for-auto-scaling", "VersionNumber": 1, "CreateTime": "2022-12-28T19:52:27.000Z", "CreatedBy": "arn:aws:iam::123456789012:user/Bob", "DefaultVersion": true, "LaunchTemplateData": { "ImageId": "ami-0ac394d6a3example", "InstanceType": "t2.micro", } } ] }

Untuk detail selengkapnya tentang menentukan parameter Systems Manager di template peluncuran, lihat Menggunakan parameter Systems Manager, bukan ID AMI di Panduan EC2 Pengguna Amazon.

Untuk informasi selengkapnya tentang bekerja dengan parameter Systems Manager, lihat materi referensi berikut dalam dokumentasi Systems Manager.

Batasan

Saat bekerja dengan parameter Systems Manager, perhatikan batasan berikut:

  • Amazon EC2 Auto Scaling hanya mendukung penetapan IDs AMI sebagai parameter.

  • Membuat atau memperbarui grup instance campuran dengan pemilihan tipe instans berbasis atribut menggunakan template peluncuran yang menentukan parameter Systems Manager tidak didukung.

  • Jika grup Auto Scaling menggunakan template peluncuran yang menentukan parameter Systems Manager, Anda tidak akan dapat memulai penyegaran instans dengan konfigurasi yang diinginkan atau menggunakan pencocokan lewati.

  • Jika grup Auto Scaling Anda menggunakan template peluncuran yang menentukan parameter Systems Manager, kolam hangat tidak didukung.

  • Pada setiap panggilan untuk membuat atau memperbarui grup Auto Scaling Anda, Amazon Auto EC2 Scaling akan menyelesaikan parameter Systems Manager di template peluncuran. Jika Anda menggunakan parameter lanjutan atau batas throughput yang lebih tinggi, panggilan yang sering ke Parameter Store (yaitu, GetParameters operasi) dapat meningkatkan biaya untuk Systems Manager karena biaya dikeluarkan per interaksi Parameter Store API. Untuk informasi lebih lanjut, lihat Harga AWS Systems Manager.