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 baris AWS ParallelCluster perintah (CLI) atauAPI, Anda hanya membayar 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.

AWS ParallelCluster UI dibangun di atas arsitektur tanpa server dan Anda dapat menggunakannya dalam kategori Tingkat AWS Gratis untuk sebagian besar kasus. Untuk informasi selengkapnya, lihat AWS ParallelCluster Biaya UI.

penting

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

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

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

Prasyarat

Cara menyesuaikan AWS ParallelCluster AMI

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

Bangun kustom AWS ParallelCluster AMI

Jika Anda memiliki perangkat lunak yang disesuaikanAMI, Anda dapat menerapkan perubahan yang diperlukan AWS ParallelCluster di atasnya. AWS ParallelCluster bergantung pada layanan EC2 Image Builder untuk membangun yang disesuaikanAMIs. Untuk informasi selengkapnya, lihat Panduan Pengguna Image Builder.

Poin kunci:

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

  • AMIIni ditandai dengan versi komponen utama. Ini termasuk kernel, scheduler, dan EFAdriver. Subset dari versi komponen juga dilaporkan dalam AMI deskripsi.

  • Mulai dari AWS ParallelCluster 3.0.0, satu set CLI perintah 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 terus AMIs 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 Memodifikasi AWS ParallelCluster AMI pendekatan yang melewati perintah ini.

  2. Bangun gambar di Partisi dan Wilayah lainus-east-1, seperti, lalu simpan kembali untuk memindahkannya ke Wilayah China. Untuk informasi selengkapnya, lihat Menyimpan dan memulihkan AMI penggunaan S3 di Panduan EC2 Pengguna Amazon.

Langkah:

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

  2. Buat file konfigurasi image build dasar. Untuk melakukan ini, tentukan yang InstanceTypeakan digunakan untuk membangun gambar dan ParentImage. Ini digunakan sebagai titik awal untuk membuatAMI. Untuk informasi selengkapnya tentang parameter build opsional, lihat Konfigurasi Gambar.

    Build: InstanceType: <BUILD_INSTANCE_TYPE> ParentImage: <BASE_AMI_ID>
  3. Gunakan CLI perintah pcluster build-imageuntuk membangun AWS ParallelCluster AMI awal 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.7.0" } }
    Awas

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

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

    • CloudFormation Tumpukan dibuat berdasarkan konfigurasi gambar. Tumpukan mencakup semua resource EC2 Image Builder yang diperlukan untuk build.

    • Sumber daya yang dibuat mencakup AWS ParallelCluster komponen Image Builder resmi yang dapat ditambahkan komponen Image Builder kustom. Untuk mempelajari cara membuat komponen kustom, lihat AMIscontoh Kustom di Workshop HPC untuk Pelanggan Sektor Publik.

    • EC2Image 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 yang baru AMI dibuat darinya.

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

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

  4. Anda dapat memantau status proses build dengan menjalankan perintah berikut. Setelah build selesai, Anda dapat menjalankannya untuk mengambil AMI ID 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.7.0/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.7.0", "cloudformationStackTags": [ { "value": "3.7.0", "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.7.0/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.7.0" }
  5. Untuk membuat klaster Anda, masukkan AMI ID di CustomAmibidang dalam konfigurasi klaster Anda.

Pemecahan masalah dan pemantauan AMI proses pembuatan

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

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

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

Setelah menjalankan build-imageperintah, 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 Memfilter AWS CLI output 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.7.0/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.7.0\",\"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 Image Builder dengan menggunakan pcluster list-image-log-streamsdan pcluster get-image-log-eventsperintah.

$ pcluster list-image-log-streams --image-id IMAGE_ID --region REGION \ --query 'logStreams[*].logStreamName' "3.7.0/1" ] $ pcluster get-image-log-events --image-id IMAGE_ID --region REGION \ --log-stream-name 3.7.0/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.7.0/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-imageperintah 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.7.0/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.7.0" }

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

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

$ 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 Aliran CloudWatch Log yang terkait dengan proses Image Builder dan peristiwa AWS CloudFormation tumpukan. Perintah mungkin memakan waktu beberapa menit untuk dijalankan.

Mengelola Kustom AMIs

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

Memodifikasi AWS ParallelCluster AMI

Metode ini terdiri dari memodifikasi pejabat AWS ParallelCluster AMI dengan menambahkan kustomisasi di atasnya. Basis AWS ParallelCluster AMIs diperbarui dengan rilis baru. Ini AMIs memiliki semua komponen yang diperlukan AWS ParallelCluster untuk berfungsi ketika diinstal dan dikonfigurasi. Anda bisa mulai dengan salah satu dari ini sebagai basis Anda.

Poin kunci:

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

  • Dengan metode ini, Anda tidak memiliki akses ke pengambilan log dan perintah 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-imagesperintah dengan --region parameter untuk memilih --architecture parameter spesifik Wilayah AWS dan --os dan untuk memfilter yang diinginkan AMI dengan OS dan arsitektur yang ingin Anda gunakan. Dari output, ambil ID EC2 Gambar Amazon.

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

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

  4. Gulir ke bawah dan pilih jenis Instance Anda.

  5. Pilih pasangan Kunci dan Launch Instance.

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

  7. Sesuaikan instans Anda secara manual untuk memenuhi kebutuhan Anda.

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

    sudo /usr/local/sbin/ami_cleanup.sh
  9. Dari konsol, pilih Instance state dan Stop instance.

    Arahkan ke Instans, pilih instans baru, pilih Status instans, dan Stop instance.

  10. Buat yang baru AMI dari instance menggunakan EC2 konsol Amazon atau AWS CLI create-image.

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

    2. Pilih contoh yang Anda buat dan modifikasi.

    3. Dalam Tindakan, pilih Gambar dan kemudian Buat gambar.

    4. Pilih Buat Gambar.

  11. Masukkan AMI ID baru di CustomAmibidang 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-imagesperintah dengan --region parameter untuk memilih --architecture parameter spesifik Wilayah AWS --os dan dan untuk memfilter yang diinginkan AMI dengan OS dan arsitektur yang ingin Anda gunakan. Dari output Anda dapat mengambil ID EC2 Gambar Amazon.

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

  3. Di panel navigasi, pilih Gambar, lalu AMIs. Atur filter untuk gambar Publik dan cari ID EC2 Gambar yang diambil, pilihAMI, dan pilih Luncurkan.

  4. Pilih jenis instans Anda dan pilih Next: Configure Instance Details or Review and Launch untuk meluncurkan instans Anda.

  5. Pilih Luncurkan, pilih pasangan Kunci Anda, dan Luncurkan Instans.

  6. Masuk ke instans Anda menggunakan pengguna OS dan SSH kunci Anda. Untuk informasi selengkapnya, navigasikan ke Instans, pilih instans baru dan Connect.

  7. Sesuaikan instans Anda secara manual untuk memenuhi kebutuhan Anda.

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

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

  10. Buat yang baru AMI dari instance menggunakan EC2 konsol Amazon atau AWS CLI create-image.

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

    2. Pilih instance yang Anda buat dan modifikasi.

    3. Di Actions, pilih Image dan kemudian Create Image.

    4. Pilih Buat Gambar.

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