View a markdown version of this page

Gunakan template peluncuran Amazon EC2 dengan AWS Batch - AWS Batch

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

Gunakan template peluncuran Amazon EC2 dengan AWS Batch

AWS Batch mendukung penggunaan template peluncuran Amazon EC2 dengan lingkungan komputasi EC2 Anda. Dengan template peluncuran, Anda dapat memodifikasi konfigurasi default sumber daya AWS Batch komputasi tanpa perlu membuat AMI yang disesuaikan.

Template peluncuran dapat menentukan AMI yang diutamakan dalam urutan pemilihan AMI. Untuk informasi selengkapnya, lihat Pesanan seleksi AMI.

catatan

Saat Anda menentukan template peluncuran khusus untuk lingkungan AWS Batch komputasi, AWS Batch tidak langsung melampirkan template peluncuran Anda ke grup Penskalaan Otomatis yang mendasarinya. Sebagai gantinya AWS Batch , buat template Batch-managed peluncuran terpisah untuk grup Auto Scaling dan menggabungkan pengaturan yang relevan dari template peluncuran kustom Anda ke dalamnya. Akibatnya, template peluncuran yang Anda lihat terkait dengan grup Penskalaan Otomatis berbeda dari yang Anda tentukan semula. Ini adalah perilaku yang diharapkan.

catatan

Template peluncuran tidak didukung di sumber daya AWS Fargate.

Anda harus membuat templat peluncuran sebelum dapat mengaitkannya dengan lingkungan komputasi. Anda dapat membuat template peluncuran di konsol Amazon EC2. Atau, Anda dapat menggunakan AWS SDK AWS CLI atau. Misalnya, file JSON berikut mewakili template peluncuran yang mengubah ukuran volume data Docker untuk sumber daya AWS Batch komputasi default AMI dan juga menyetelnya untuk dienkripsi.

{ "LaunchTemplateName": "increase-container-volume-encrypt", "LaunchTemplateData": { "BlockDeviceMappings": [ { "DeviceName": "/dev/xvda", "Ebs": { "Encrypted": true, "VolumeSize": 100, "VolumeType": "gp2" } } ] } }

Anda dapat membuat template peluncuran sebelumnya dengan menyimpan JSON ke file yang dipanggil lt-data.json dan menjalankan AWS CLI perintah berikut.

aws ec2 --region <region> create-launch-template --cli-input-json file://lt-data.json

Untuk informasi selengkapnya tentang template pel uncuran, lihat Meluncurkan Instans dari Template Peluncuran di Panduan Pengguna Amazon EC2.

Jika Anda menggunakan templat peluncuran untuk membuat lingkungan komputasi, Anda dapat memindahkan parameter lingkungan komputasi yang sudah ada berikut ini ke templat peluncuran Anda:

catatan

Misalkan salah satu parameter ini (kecuali tag Amazon EC2) ditentukan baik dalam template peluncuran maupun dalam konfigurasi lingkungan komputasi. Kemudian, parameter lingkungan komputasi diutamakan. Tanda Amazon EC2 digabung antara templat peluncuran dan konfigurasi lingkungan komputasi. Jika ada tabrakan pada kunci tag, nilai dalam konfigurasi lingkungan komputasi diutamakan.

  • Pasangan kunci Amazon EC2

  • ID AMI Amazon EC2

  • ID grup keamanan

  • Tanda Amazon EC2

Parameter template peluncuran berikut diabaikan oleh AWS Batch:

  • Tipe instans (tentukan tipe instans yang Anda inginkan ketika membuat lingkungan komputasi)

  • Peran instans (tentukan peran instans yang Anda inginkan ketika membuat lingkungan komputasi)

  • Subnet antarmuka jaringan (tentukan subnet yang Anda inginkan saat membuat lingkungan komputasi)

  • Opsi pasar instans (AWS Batch harus mengontrol konfigurasi Instans Spot)

  • Nonaktifkan penghentian API (AWS Batch harus mengontrol siklus hidup instance)

AWS Batch hanya memperbarui template peluncuran dengan versi template peluncuran baru selama pembaruan infrastruktur. Untuk informasi selengkapnya, lihat Perbarui lingkungan komputasi di AWS Batch.

Templat peluncuran default dan ganti

Anda dapat menentukan template peluncuran default untuk lingkungan komputasi dan template peluncuran override untuk jenis dan keluarga instans tertentu. Ini dapat berguna bagi Anda sehingga template default digunakan untuk sebagian besar jenis instans di lingkungan komputasi.

Variabel substitusi $Default dan $Latest dapat digunakan alih-alih memberi nama versi tertentu. Jika Anda tidak menyediakan template peluncuran override, template peluncuran default diterapkan secara otomatis.

Jika Anda menggunakan salah satu $Latest variabel $Default atau, AWS Batch akan menerapkan informasi saat ini pada saat lingkungan komputasi dibuat. Jika versi default atau terbaru berubah di masa mendatang, Anda harus memperbarui informasi melalui UpdateComputeEnvironment atau melalui Konsol Manajemen AWS - AWS Batch.

Untuk memberikan fleksibilitas tambahan, Anda dapat menentukan template peluncuran override yang diterapkan ke jenis atau keluarga instans komputasi tertentu.

catatan

Anda dapat menentukan hingga sepuluh (10) override template peluncuran per lingkungan komputasi.

Gunakan targetInstanceTypes parameter untuk memilih jenis instans atau keluarga yang harus menggunakan template peluncuran override ini. Jenis instans atau keluarga harus diidentifikasi terlebih dahulu oleh instanceTypes parameter.

Jika Anda menentukan penggantian template peluncuran dan memutuskan untuk menghapusnya nanti, Anda dapat meneruskan array kosong untuk membatalkan pengaturan overrides parameter dalam operasi UpdateComputeEnvironment API. Anda juga dapat memilih untuk tidak menyertakan overrides parameter saat mengirimkan operasi UpdateComputeEnvironment API. Untuk informasi lebih lanjut lihat, LaunchTemplateSpecification.overrides

Untuk informasi selengkapnya, lihat LaunchTemplateSpecificationOverride.targetInstanceTypes panduan Referensi AWS Batch API.

Data pengguna Amazon EC2 dalam templat peluncuran

Anda dapat memberikan data pengguna Amazon EC2 dalam templat peluncuran Anda yang dijalankan oleh cloud-init saat instans Anda diluncurkan. Data pengguna Anda dapat melakukan skenario konfigurasi umum, termasuk namun tidak terbatas pada hal berikut:

Data pengguna Amazon EC2 dalam templat peluncuran harus memiliki format arsip multibagian MIME. Ini karena data pengguna Anda digabungkan dengan data AWS Batch pengguna lain yang diperlukan untuk mengonfigurasi sumber daya komputasi Anda. Anda dapat menggabungkan beberapa blok data pengguna menjadi satu file multi-bagian MIME. Misalnya, Anda mungkin perlu menggabungkan boothook cloud yang mengonfigurasi daemon Docker dengan skrip shell data pengguna yang menulis informasi konfigurasi untuk agen kontainer Amazon ECS.

Jika Anda menggunakan AWS CloudFormation, tipe AWS::CloudFormation: :Init dapat digunakan dengan skrip helper cfn-init untuk melakukan skenario konfigurasi umum.

File multi-bagian MIME terdiri dari komponen berikut:

  • Jenis konten dan deklarasi batas bagian: Content-Type: multipart/mixed; boundary="==BOUNDARY=="

  • Deklarasi versi MIME: MIME-Version: 1.0

  • Satu atau beberapa blok data pengguna yang berisi komponen berikut:

    • Batas pembukaan yang menandakan awal blok data pengguna:--==BOUNDARY==. Anda harus menjaga garis sebelum batas ini kosong.

    • Deklarasi tipe konten untuk blok: Content-Type: text/cloud-config; charset="us-ascii". Untuk informasi selengkapnya tentang jenis konten, lihat Cloud-Init dokumentasi. Anda harus menjaga baris setelah deklarasi jenis konten kosong.

    • Isi data pengguna, seperti daftar perintah shell atau ar cloud-init ahan.

  • Batas penutupan yang menandakan akhir file multi-bagian MIME:. --==BOUNDARY==-- Anda harus menjaga garis sebelum batas penutupan kosong.

catatan

Jika Anda menambahkan data pengguna ke template peluncuran di konsol Amazon EC2, Anda dapat menempelkannya sebagai plaintext. Atau, Anda dapat mengunggahnya dari file. Jika Anda menggunakan AWS CLI atau AWS SDK, Anda harus terlebih dahulu meny base64 andikan data pengguna dan mengirimkan string itu sebagai nilai UserData parameter saat Anda memanggil CreateLaunchTemplate, seperti yang ditunjukkan dalam file JSON ini.

{ "LaunchTemplateName": "base64-user-data", "LaunchTemplateData": { "UserData": "ewogICAgIkxhdW5jaFRlbXBsYXRlTmFtZSI6ICJpbmNyZWFzZS1jb250YWluZXItdm9sdW..." } }

Nilai konfigurasi agen Amazon ECS yang dicadangkan

AWS Batch menulis nilai konfigurasi agen Amazon ECS tertentu /etc/ecs/ecs.config ketika instans diluncurkan di lingkungan komputasi EC2-based terkelola yang menggunakan Amazon ECS. AWS Batch mungkin juga mengganti nilai-nilai ini selama pembaruan lingkungan komputasi, sehingga perubahan Anda mungkin tidak bertahan.

penting

Konflik antara data pengguna dan nilai yang AWS Batch dikelola dapat mencegah pekerjaan dijadwalkan, menyebabkan perilaku penskalaan yang tidak terduga, dan mengakibatkan biaya tak terduga.

penting

Jangan menyalin data pengguna dari template peluncur AWS Batch an yang dikelola ke template peluncuran Anda sendiri. AWS Batch-Data pengguna yang dikelola berisi nilai yang berbeda antara lingkungan komputasi dan berubah ketika lingkungan komputasi diperbarui. Jika template peluncuran Anda berisi nilai yang disalin, nilai tersebut mungkin bertentangan dengan nilai yang diharapkan untuk lingkungan komputasi saat ini.

Jangan mengatur nilai-nilai berikut dalam data pengguna template peluncuran Anda. Nilai-nilai ini dikelola oleh AWS Batch dan konflik dapat menyebabkan masalah penjadwalan dan penskalaan:

  • ECS_CLUSTER

  • ECS_INSTANCE_ATTRIBUTES

Untuk informasi selengkapnya tentang parameter yang tercantum di atas, lihat konfigurasi agen kontainer Amazon ECS di Panduan Pengembang Layanan Kontainer Amazon Elastic.