Membangun AWS ParallelCluster AMI khusus - AWS ParallelCluster

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

Membangun AWS ParallelCluster AMI khusus

Saat menggunakan antarmuka baris AWS ParallelCluster perintah (CLI) atau API, 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.

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

penting

Jika Anda membuat AMI kustom, 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 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 AMI khusus secara umum tidak ideal, ada skenario khusus di mana membangun AMI khusus AWS ParallelCluster diperlukan. Tutorial ini mencakup cara membangun AMI kustom 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.

Bangun AWS ParallelCluster AMI khusus

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 membangun yang disesuaikan AMIs. 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.

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

  • Mulai dari AWS ParallelCluster 3.0.0, satu set baru perintah CLI 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 Tiongkok, 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 lain, sepertius-east-1, lalu simpan kembalikan untuk memindahkannya ke Wilayah Tiongkok. Untuk informasi selengkapnya, lihat Menyimpan dan memulihkan AMI menggunakan S3 di Panduan EC2 Pengguna Amazon.

Langkah:

  1. Konfigurasikan Akun AWS kredensional 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 image build dasar. Untuk melakukan ini, tentukan yang InstanceTypeakan 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-imageuntuk 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.7.0" } }
    Awas

    pcluster build-imagemenggunakan VPC default. Jika Anda menghapus VPC default 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 AMIs contoh Kustom di Lokakarya HPC untuk Pelanggan Sektor Publik.

    • 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 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 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.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 ID AMI di CustomAmibidang dalam konfigurasi klaster Anda.

Pemecahan masalah dan pemantauan proses pembuatan AMI

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 pembuatan AMI 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 di 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 AWS ParallelCluster AMI resmi 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 parameter spesifik Wilayah AWS dan --os dan --architecture untuk memfilter AMI yang diinginkan 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, pilih AMI, 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 pembuatan AMI.

    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 AMI baru 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. Di Actions, pilih Image dan kemudian Create image.

    4. Pilih Buat Gambar.

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

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 dan --os dan untuk memfilter AMI yang diinginkan 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, pilih AMI, 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 kunci SSH 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 menyiapkan instance Anda untuk pembuatan AMI:

    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 AMI baru 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 ID AMI baru di CustomAmibidang dalam konfigurasi klaster Anda dan buat klaster.