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
-
AWS ParallelCluster diinstal.
-
AWS CLI Itu diinstal dan dikonfigurasi.
-
Anda memiliki EC2key pair Amazon.
-
Anda memiliki IAM peran dengan izin yang diperlukan untuk menjalankan pcluster CLI dan membuat gambar.
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:
-
Ikuti Memodifikasi AWS ParallelCluster AMI pendekatan yang melewati perintah ini.
-
Bangun gambar di Partisi dan Wilayah lain
us-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:
-
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.
-
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>
-
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-configurationIMAGE_CONFIG.yaml
--regionREGION
{ "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-image
menggunakan 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.
-
-
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
--regionREGION
# 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" }
-
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
--regionREGION
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
--regionREGION
--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
"3.7.0/1" ]IMAGE_ID
--regionREGION
\ --query 'logStreams[*].logStreamName'$
pcluster get-image-log-events --image-id
IMAGE_ID
--regionREGION
\ --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
--regionREGION
{ "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
--regionREGION
\ --bucketBUCKET_NAME
--bucket-prefixBUCKET_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
\ --regionREGION
--bucketBUCKET_NAME
--bucket-prefixBUCKET_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: