View a markdown version of this page

Membangun kustom AWS ParallelCluster AMI - AWS ParallelCluster

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

Membangun kustom AWS ParallelCluster AMI

Saat menggunakan antarmuka AWS ParallelCluster baris perintah (CLI) atau API, Anda hanya membayar untuk AWS sumber daya yang dibuat saat Anda membuat atau memperbarui AWS ParallelCluster gambar dan cluster. Untuk informasi selengkapnya, lihat AWS layanan yang digunakan oleh AWS ParallelCluster.

penting

Jika Anda membuat AMI khusus, Anda harus mengulangi langkah-langkah yang Anda gunakan untuk membuat AMI kustom Anda dengan setiap AWS ParallelCluster rilis baru.

Sebelum membaca lebih lanjut, kami sarankan Anda meninjau Tindakan bootstrap khusus bagian ini terlebih dahulu. Tentukan apakah modifikasi yang ingin Anda buat dapat ditulis dan didukung dengan AWS ParallelCluster rilis mendatang.

Meskipun membangun AMI khusus secara umum tidak ideal, ada skenario khusus di mana membangun AMI khusus AWS ParallelCluster diperlukan. Tutorial ini mencakup cara membangun AMI khusus untuk skenario ini.

Prasyarat

Cara menyesuaikan AWS ParallelCluster AMI

Ada dua cara untuk membangun AWS ParallelCluster AMI khusus. Salah satu dari dua metode ini adalah membangun AMI baru menggunakan AWS ParallelCluster CLI. Metode lain mengharuskan Anda untuk membuat modifikasi manual untuk membangun AMI baru yang tersedia di bawah Anda Akun AWS.

Membangun kustom AWS ParallelCluster AMI

Jika Anda memiliki AMI dan perangkat lunak yang disesuaikan, Anda dapat menerapkan perubahan yang diperlukan AWS ParallelCluster di atasnya. AWS ParallelCluster bergantung pada layanan EC2 Image Builder untuk membuat AMI yang disesuaikan. Untuk informasi selengkapnya, lihat Panduan Pengguna Pembuat Gambar.

Poin kunci:

  • Prosesnya memakan waktu sekitar 1 jam. Waktu ini dapat bervariasi jika ada tambahan Build/Componentsyang akan diinstal pada waktu pembuatan.

  • AMI ditandai dengan versi komponen utama. Ini termasuk kernel, penjadwal, dan driver EFA. Subset dari versi komponen juga dilaporkan dalam deskripsi AMI.

  • Mulai dari AWS ParallelCluster 3.0.0, satu set perintah CLI baru dapat digunakan untuk mengelola siklus hidup gambar. Produk ini mencakup build-image, list-images, describe-image, dan delete-image.

  • Metode ini dapat diulang. Anda dapat menjalankannya kembali untuk menjaga AMI tetap diperbarui (misalnya, pembaruan OS), dan kemudian menggunakannya saat Anda memperbarui cluster yang ada.

catatan

Jika Anda menggunakan metode ini di Partisi AWS China, Anda mungkin mendapatkan kesalahan jaringan. Misalnya, Anda mungkin melihat kesalahan ini dari pcluster build-image perintah saat mengunduh paket dari GitHub atau dari repositori OS. Jika ini terjadi, kami sarankan Anda menggunakan salah satu metode alternatif berikut:

  1. Ikuti Ubah sebuah AWS ParallelCluster AMI pendekatan yang melewati perintah ini.

  2. Bangun gambar di Partisi dan Wilayah lain, sepertius-east-1, dan kemudian store/restore memindahkannya ke Wilayah China. Untuk informasi selengkapnya, lihat Meny impan dan memulihkan AMI menggunakan S3 di Panduan Pengguna Amazon EC2.

Langkah:

  1. Konfigurasikan Akun AWS kredensi Anda sehingga AWS ParallelCluster klien dapat melakukan panggilan ke operasi AWS API atas nama Anda. Untuk daftar izin yang diperlukan, lihatAWS Identity and Access Management izin di AWS ParallelCluster.

  2. Buat file konfigurasi gambar build dasar. Untuk melakukan ini, tent InstanceType ukan yang akan digunakan untuk membangun gambar dan ParentImage. Ini digunakan sebagai titik awal untuk membuat AMI. Untuk informasi selengkapnya tentang parameter build opsional, lihat Konfigurasi Gambar.

    Build: InstanceType: <BUILD_INSTANCE_TYPE> ParentImage: <BASE_AMI_ID>
  3. Gunakan perintah CLI pcluster build-image untuk membangun AWS ParallelCluster AMI mulai dari AMI yang Anda berikan sebagai basis.

    $ pcluster build-image --image-id IMAGE_ID --image-configuration IMAGE_CONFIG.yaml --region REGION { "image": { "imageId": "IMAGE_ID", "imageBuildStatus": "BUILD_IN_PROGRESS", "cloudformationStackStatus": "CREATE_IN_PROGRESS", "cloudformationStackArn": "arn:aws:cloudformation:us-east-1:123456789012:stack/IMAGE_ID/abcd1234-ef56-gh78-ij90-1234abcd5678", "region": "us-east-1", "version": "3.16.1" } }
    Awas

    pcluster build-imagemenggunakan VPC default. Jika Anda menghapus VPC default menggunakan AWS Control Tower atau Zona AWS Pendaratan, ID subnet harus ditentukan dalam file konfigurasi gambar. Untuk informasi selengkapnya, lihat SubnetId.

    Untuk daftar parameter lainnya, lihat halaman referensi pcluster build-image perintah. Hasil dari perintah sebelumnya adalah sebagai berikut:

    • Tum CloudFormation pukan dibuat berdasarkan konfigurasi gambar. Tumpukan mencakup semua sumber daya EC2 Image Builder yang diperlukan untuk build.

    • Sumber daya yang dibuat mencakup AWS ParallelCluster komponen Pembuat Gambar resmi yang dapat ditambahkan ke komponen Pembuat Gambar kustom. Untuk informasi selengkapnya, lihat Membuat komponen khusus dengan Pembuat Gambar di Panduan Pengguna EC2 Image Builder.

    • EC2 Image Builder meluncurkan instance build, menerapkan AWS ParallelCluster buku masak, menginstal tumpukan AWS ParallelCluster perangkat lunak, dan melakukan tugas konfigurasi yang diperlukan. AWS ParallelCluster Buku masak digunakan untuk membangun dan bootstrap AWS ParallelCluster.

    • Instance dihentikan dan AMI baru dibuat darinya.

    • Contoh lain diluncurkan dari AMI yang baru dibuat. Selama fase pengujian, EC2 Image Builder menjalankan pengujian yang ditentukan dalam komponen Image Builder.

    • Jika build berhasil, tumpukan dihapus. Jika build gagal, tumpukan dipertahankan dan tersedia untuk diperiksa.

  4. Anda dapat memantau status proses pembuatan dengan menjalankan perintah berikut. Setelah build selesai, Anda dapat menjalankannya untuk mengambil ID AMI yang diberikan dalam respons.

    $ pcluster describe-image --image-id IMAGE_ID --region REGION # BEFORE COMPLETE { "imageConfiguration": { "url": "https://parallelcluster-1234abcd5678efgh-v1-do-not-delete.s3.amazonaws.com/parallelcluster/3.16.1/images/IMAGE_ID-abcd1234efgh5678/configs/image-config.yaml?...", }, "imageId": "IMAGE_ID", "imagebuilderImageStatus": "BUILDING", "imageBuildStatus": "BUILD_IN_PROGRESS", "cloudformationStackStatus": "CREATE_IN_PROGRESS", "cloudformationStackArn": "arn:aws:cloudformation:us-east-1:123456789012:stack/IMAGE_ID/abcd1234-ef56-gh78-ij90-1234abcd5678", "region": "us-east-1", "version": "3.16.1", "cloudformationStackTags": [ { "value": "3.16.1", "key": "parallelcluster:version" }, { "value": "IMAGE_ID", "key": "parallelcluster:image_name" }, ... ], "imageBuildLogsArn": "arn:aws:logs:us-east-1:123456789012:log-group:/aws/imagebuilder/ParallelClusterImage-IMAGE_ID", "cloudformationStackCreationTime": "2022-04-05T21:36:26.176Z" } # AFTER COMPLETE { "imageConfiguration": { "url": "https://parallelcluster-1234abcd5678efgh-v1-do-not-delete.s3.us-east-1.amazonaws.com/parallelcluster/3.16.1/images/IMAGE_ID-abcd1234efgh5678/configs/image-config.yaml?Signature=..." }, "imageId": "IMAGE_ID", "imageBuildStatus": "BUILD_COMPLETE", "region": "us-east-1", "ec2AmiInfo": { "amiName": "IMAGE_ID 2022-04-05T21-39-24.020Z", "amiId": "ami-1234stuv5678wxyz", "description": "AWS ParallelCluster AMI for alinux2, kernel-4.14.238-182.422.amzn2.x86_64, lustre-2.10.8-5.amzn2.x86_64, efa-1.13.0-1.amzn2.x86_64, dcv-2021.1.10598-1.el7.x86_64, slurm-20-11-8-1", "state": "AVAILABLE", "tags": [ { "value": "2021.3.11591-1.el7.x86_64", "key": "parallelcluster:dcv_version" }, ... ], "architecture": "x86_64" }, "version": "3.16.1" }
  5. Untuk membuat cluster Anda, masukkan ID AMI di CustomAmi bidang dalam konfigurasi cluster Anda.

Pemecahan masalah dan pemantauan proses pembuatan AMI

Pembuatan gambar selesai dalam waktu sekitar satu jam. Anda dapat memantau proses dengan menjalankan perintah atau pcluster describe-image perintah pengambilan log.

$ pcluster describe-image --image-id IMAGE_ID --region REGION

Per build-image intah membuat CloudFormation tumpukan dengan semua sumber daya Amazon EC2 yang diperlukan untuk membangun gambar, dan meluncurkan proses EC2 Image Builder.

Setelah menjalankan build-image perintah, dimungkinkan untuk mengambil peristiwa CloudFormation tumpukan dengan menggunakan pcluster get-image-stack-events. Anda dapat memfilter hasil dengan --query parameter untuk melihat peristiwa terbaru. Untuk informasi selengkapnya, lihat Mem AWS CLI filter keluaran di Panduan AWS Command Line Interface Pengguna.

$ pcluster get-image-stack-events --image-id IMAGE_ID --region REGION --query "events[0]" { "eventId": "ParallelClusterImage-CREATE_IN_PROGRESS-2022-04-05T21:39:24.725Z", "physicalResourceId": "arn:aws:imagebuilder:us-east-1:123456789012:image/parallelclusterimage-IMAGE_ID/3.16.1/1", "resourceStatus": "CREATE_IN_PROGRESS", "resourceStatusReason": "Resource creation Initiated", "resourceProperties": "{\"InfrastructureConfigurationArn\":\"arn:aws:imagebuilder:us-east-1:123456789012:infrastructure-configuration/parallelclusterimage-abcd1234-ef56-gh78-ij90-1234abcd5678\",\"ImageRecipeArn\":\"arn:aws:imagebuilder:us-east-1:123456789012:image-recipe/parallelclusterimage-IMAGE_ID/3.16.1\",\"DistributionConfigurationArn\":\"arn:aws:imagebuilder:us-east-1:123456789012:distribution-configuration/parallelclusterimage-abcd1234-ef56-gh78-ij90-1234abcd5678\",\"Tags\":{\"parallelcluster:image_name\":\"IMAGE_ID\",\"parallelcluster:image_id\":\"IMAGE_ID\"}}", "stackId": "arn:aws:cloudformation:us-east-1:123456789012:stack/IMAGE_ID/abcd1234-ef56-gh78-ij90-1234abcd5678", "stackName": "IMAGE_ID", "logicalResourceId": "ParallelClusterImage", "resourceType": "AWS::ImageBuilder::Image", "timestamp": "2022-04-05T21:39:24.725Z" }

Setelah sekitar 15 menit, peristiwa tumpukan muncul di entri peristiwa log yang terkait dengan pembuatan Image Builder. Anda sekarang dapat membuat daftar aliran log gambar dan memantau langkah-langkah Pembuat Gambar dengan menggunakan pcluster list-image-log-streams dan pcluster get-image-log-events perintah.

$ pcluster list-image-log-streams --image-id IMAGE_ID --region REGION \ --query 'logStreams[*].logStreamName' "3.16.1/1" ] $ pcluster get-image-log-events --image-id IMAGE_ID --region REGION \ --log-stream-name 3.16.1/1 --limit 3 { "nextToken": "f/36295977202298886557255241372854078762600452615936671762", "prevToken": "b/36295977196879805474012299949460899222346900769983430672", "events": [ { "message": "ExecuteBash: FINISHED EXECUTION", "timestamp": "2022-04-05T22:13:26.633Z" }, { "message": "Document arn:aws:imagebuilder:us-east-1:123456789012:component/parallelclusterimage-test-abcd1234-ef56-gh78-ij90-1234abcd5678/3.16.1/1", "timestamp": "2022-04-05T22:13:26.741Z" }, { "message": "TOE has completed execution successfully", "timestamp": "2022-04-05T22:13:26.819Z" } ] }

Lanjutkan untuk memeriksa dengan describe-image perintah sampai Anda melihat BUILD_COMPLETE statusnya.

$ pcluster describe-image --image-id IMAGE_ID --region REGION { "imageConfiguration": { "url": "https://parallelcluster-1234abcd5678efgh-v1-do-not-delete.s3.us-east-1.amazonaws.com/parallelcluster/3.16.1/images/IMAGE_ID-abcd1234efgh5678/configs/image-config.yaml?Signature=..." }, "imageId": "IMAGE_ID", "imageBuildStatus": "BUILD_COMPLETE", "region": "us-east-1", "ec2AmiInfo": { "amiName": "IMAGE_ID 2022-04-05T21-39-24.020Z", "amiId": "ami-1234stuv5678wxyz", "description": "AWS ParallelCluster AMI for alinux2, kernel-4.14.238-182.422.amzn2.x86_64, lustre-2.10.8-5.amzn2.x86_64, efa-1.13.0-1.amzn2.x86_64, dcv-2021.1.10598-1.el7.x86_64, slurm-20-11-8-1", "state": "AVAILABLE", "tags": [ { "value": "2021.3.11591-1.el7.x86_64", "key": "parallelcluster:dcv_version" }, ... ], "architecture": "x86_64" }, "version": "3.16.1" }

Jika Anda perlu memecahkan masalah pembuatan AMI khusus, buat arsip log gambar seperti yang dijelaskan dalam langkah-langkah berikut.

Anda dapat mengarsipkan log di bucket Amazon S3 atau dalam file lokal, tergantung pada --output parameternya.

$ pcluster export-image-logs --image-id IMAGE_ID --region REGION \ --bucket BUCKET_NAME --bucket-prefix BUCKET_FOLDER { "url": "https://BUCKET_NAME.s3.us-east-1.amazonaws.com/BUCKET-FOLDER/IMAGE_ID-logs-202209071136.tar.gz?AWSAccessKeyId=..." } $ pcluster export-image-logs --image-id IMAGE_ID \ --region REGION --bucket BUCKET_NAME --bucket-prefix BUCKET_FOLDER --output-file /tmp/archive.tar.gz { "path": "/tmp/archive.tar.gz" }

Arsip berisi Log Stre CloudWatch ams yang terkait dengan proses Pembuat Gambar dan peristiwa CloudFormation tumpukan. Perintah mungkin memakan waktu beberapa menit untuk dijalankan.

Mengelola AMI Kustom

Mulai dari AWS ParallelCluster 3.0.0, serangkaian perintah baru telah ditambahkan di CLI untuk membangun, memantau, dan mengelola siklus hidup gambar. Untuk informasi selengkapnya tentang perintah, lihat perintah pcluster pcluster.

Ubah sebuah AWS ParallelCluster AMI

Metode ini terdiri dari memodifikasi AWS ParallelCluster AMI resmi dengan menambahkan kustomisasi di atasnya. AWS ParallelCluster AMI dasar diperbarui dengan rilis baru. AMI ini memiliki semua komponen yang diperlukan AWS ParallelCluster untuk berfungsi saat diinstal dan dikonfigurasi. Anda dapat mulai dengan salah satu dari ini sebagai basis Anda.

Poin kunci:

  • Metode ini lebih cepat dari build-image perintah. Namun, ini adalah proses manual dan tidak dapat diulang secara otomatis.

  • Dengan metode ini, Anda tidak memiliki akses ke perintah pengambilan log dan manajemen siklus hidup gambar yang tersedia melalui CLI.

Langkah:

New Amazon EC2 console
  1. Temukan AMI yang sesuai dengan spesifik Wilayah AWS yang Anda gunakan. Untuk menemukannya, gunakan pcluster list-official-images perintah dengan --region parameter untuk memilih --architecture parameter spesifik Wilayah AWS dan --os dan untuk memfilter AMI yang diinginkan dengan OS dan arsitektur yang ingin Anda gunakan. Dari output, ambil ID Gambar Amazon EC2.

  2. Masuk ke Konsol Manajemen AWS dan buka konsol Amazon EC2 di https://console.aws.amazon.com/ec2/.

  3. Di panel navigasi, pilih Gambar, lalu AMI. Cari ID Gambar EC2 yang diambil, pilih AMI, dan pilih Luncurkan instance dari AMI.

  4. Gulir ke bawah dan pilih jenis Instance Anda.

  5. Pilih pasangan K unci dan Luncurkan Instans.

  6. Masuk ke instance Anda menggunakan pengguna OS dan SSH kunci Anda.

  7. Sesuaikan instans secara manual untuk memenuhi kebutuhan Anda.

  8. Jalankan perintah berikut untuk mempersiapkan instance Anda untuk pembuatan AMI.

    sudo /usr/local/sbin/ami_cleanup.sh
  9. Dari konsol, pilih Status instans dan H entikan instance.

    Arahkan ke Instans, pilih instance baru, pilih Status instans, dan H entikan instance.

  10. Buat AMI baru dari instans menggunakan konsol Amazon EC2 atau AWS CLI cre ate-image.

    Dari konsol Amazon EC2
    1. Pilih Instans di panel navigasi.

    2. Pilih instance yang Anda buat dan modifikasi.

    3. Di Tind akan, pilih Gambar dan kemudian Buat gambar.

    4. Pilih Buat Gambar.

  11. Masukkan ID AMI baru di CustomAmi bidang dalam konfigurasi cluster Anda dan buat cluster.

Old Amazon EC2 console
  1. Temukan AWS ParallelCluster AMI yang sesuai dengan spesifik Wilayah AWS yang Anda gunakan. Untuk menemukannya, Anda dapat menggunakan pcluster list-official-images perintah dengan --region parameter untuk memilih --architecture parameter spesifik Wilayah AWS --os dan dan untuk memfilter AMI yang diinginkan dengan OS dan arsitektur yang ingin Anda gunakan. Dari output Anda dapat mengambil ID Gambar Amazon EC2.

  2. Masuk ke Konsol Manajemen AWS dan buka konsol Amazon EC2 di https://console.aws.amazon.com/ec2/.

  3. Di panel navigasi, pilih Gambar, lalu AMI. Atur filter untuk Gambar Pu blik dan cari ID Gambar EC2 yang diambil, pilih AMI, dan pilih Lun curkan.

  4. Pilih jenis instans Anda dan pilih Ber ikutnya: Konfigurasikan Detail Instans atau T injau dan Luncur kan untuk meluncurkan instans Anda.

  5. Pilih Lun cur kan, pilih pasangan K unci Anda, dan Luncurkan Instans.

  6. Masuk ke instance Anda menggunakan pengguna OS dan kunci SSH Anda. Untuk informasi selengkapnya, navigasikan ke Instans, pilih instance baru dan Hubun gkan.

  7. Sesuaikan instans secara manual untuk memenuhi kebutuhan Anda.

  8. Jalankan perintah berikut untuk mempersiapkan instance Anda untuk pembuatan AMI:

    sudo /usr/local/sbin/ami_cleanup.sh
  9. Dari konsol Amazon EC2, pilih Instans di panel navigasi, pilih instans baru Anda dan pilih Tindakan, Status Instans, dan Ber henti.

  10. Buat AMI baru dari instans menggunakan konsol Amazon EC2 atau AWS CLI cre ate-image.

    Dari konsol Amazon EC2
    1. Pilih Instans di panel navigasi.

    2. Pilih instance yang Anda buat dan modifikasi.

    3. Di Tind akan, pilih Gambar dan kemudian Buat Gambar.

    4. Pilih Buat Gambar.

  11. Masukkan ID AMI baru di CustomAmi bidang dalam konfigurasi cluster Anda dan buat cluster.