Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Kustomisasi gambar kontainer
Gambar penguji beban
Solusi ini menggunakan repositori gambar Amazon Elastic Container Registry (Amazon ECR) publik yang dikelola oleh AWS untuk menyimpan gambar yang digunakan untuk menjalankan pengujian yang dikonfigurasi. Anda dapat membangun kembali dan mendorong gambar kontainer ke repositori gambar ECR di akun AWS Anda sendiri.
Anda dapat mengedit gambar wadah default agar sesuai dengan kebutuhan Anda. Tetapkan variabel lingkungan ini sebelum membuat gambar yang disesuaikan.
#!/bin/bash export REGION=aws-region-code # the AWS region to launch the solution (e.g. us-east-1) export BUCKET_PREFIX=my-bucket-name # prefix of the bucket name without the region code export BUCKET_NAME=$BUCKET_PREFIX-$REGION # full bucket name where the code will reside export SOLUTION_NAME=my-solution-name export VERSION=my-version # version number for the customized code export PUBLIC_ECR_REGISTRY=public.ecr.aws/awssolutions/distributed-load-testing-on-aws-load-tester # replace with the container registry and image if you want to use a different container image export PUBLIC_ECR_TAG=v3.1.0 # replace with the container image tag if you want to use a different container image
Anda dapat meng-host gambar kontainer yang disesuaikan baik di repositori gambar pribadi atau publik di akun AWS Anda. Sumber daya gambar ada di deployment/ecr/distributed-load-testing-on-aws-load-tester direktori di basis kode.
Anda kemudian dapat membangun dan mendorong gambar ke tujuan host.
-
Untuk repositori dan gambar Amazon ECR pribadi, lihat repositori pribadi Amazon ECR dan gambar pribadi di Panduan Pengguna Amazon ECR.
-
Untuk repositori dan gambar Amazon ECR publik, lihat repositori publik Amazon ECR dan gambar publik di Panduan Pengguna Pu blik Amazon ECR.
Setelah Anda membuat gambar kustom, deklarasikan variabel lingkungan berikut sebelum membangun solusi yang disesuaikan.
#!/bin/bash export PUBLIC_ECR_REGISTRY=YOUR_ECR_REGISTRY_URI # e.g. YOUR_ACCOUNT_ID.dkr.ecr.us-east-1.amazonaws.com/YOUR_IMAGE_NAME export PUBLIC_ECR_TAG=YOUR_ECR_TAG # e.g. latest, v3.4.0
Dockerfile mendefinisikan gambar pengujian beban. Ini dibangun di atas image dasar Amazon Linux, menginstal runtime bahasa, paket sistem, dan alat pengujian yang diperlukan untuk menjalankan tes beban, menambahkan file metadata versi kerangka kerja dan skrip load-test.sh titik masuk, dan berjalan sebagai pengguna non-root. Untuk melihat Dockerfile, lihat Docker file di repositori
Skrip load-test.sh entrypoint berjalan di dalam wadah setiap kali tugas dimulai. Ini membaca konfigurasi pengujian dan metadata wadah. Kemudian mengunduh definisi pengujian dari Amazon S3 dan menyediakan kerangka pengujian yang dipilih untuk dijalankan. Skrip menunggu sinyal awal sehingga semua tugas dalam pengujian dimulai pada saat yang sama. Kemudian menjalankan pengujian untuk durasi yang dikonfigurasi sambil menghasilkan metrik dan log. Ketika pengujian selesai, skrip mengumpulkan hasil dan memperkayanya dengan detail tentang wadah yang menghasilkannya. Ini mengunggah hasil, log, dan artefak lainnya ke Amazon S3. Skrip juga menangani sinyal terminasi, sehingga mempertahankan sebagian hasil dan log jika Anda membatalkan pengujian sebelum selesai. Untuk melihat skrip lengkap, lihat load-test.sh
Gambar konsol web (hanya template ALB+ECS Fargate)
Template ALB + ECS Fargate menjalankan konsol web sebagai wadah di ECS Fargate. Secara default, solusi menarik gambar konsol web dari repositori Amazon ECR publik yang dikelola oleh AWS.
Di lingkungan di mana akses ke pendaftar kontainer publik dibatasi (misalnya, VPC tanpa akses internet atau akun dengan kebijakan akses publik ECR), Anda harus mencerminkan citra publik ke repositori Amazon ECR pribadi dan menyediakan URI gambar pribadi di parameter URI Gambar Konsol Web. CloudFormation Anda juga dapat menggunakan langkah-langkah berikut untuk menyesuaikan gambar konsol web.
Mencerminkan gambar publik ke repositori ECR pribadi
Untuk mencerminkan gambar konsol web ke repositori ECR pribadi:
-
Otentikasi ke registri ECR publik:
$ aws ecr-public get-login-password --region us-east-1 | docker login --username AWS --password-stdin public.ecr.aws -
Tarik gambar konsol web publik:
$ docker pull public.ecr.aws/aws-solutions/distributed-load-testing-on-aws-web-console:<version> -
Buat repositori ECR pribadi di akun Anda (jika belum ada):
$ aws ecr create-repository --repository-name <your-repo-name> --region <region> 2>/dev/null || true -
Otentikasi ke registri ECR pribadi Anda:
$ aws ecr get-login-password --region <region> | docker login --username AWS --password-stdin <account-id>.dkr.ecr.<region>.amazonaws.com -
Tandai dan dorong gambar ke repositori pribadi Anda:
$ docker tag public.ecr.aws/aws-solutions/distributed-load-testing-on-aws-web-console:<version> \ <account-id>.dkr.ecr.<region>.amazonaws.com/<your-repo-name>:<version> $ docker push <account-id>.dkr.ecr.<region>.amazonaws.com/<your-repo-name>:<version> -
Saat meluncurkan tumpukan ALB + ECS Fargate, masukkan URI gambar pribadi di parameter URI Gambar Konsol Web:
<account-id>.dkr.ecr.<region>.amazonaws.com/<your-repo-name>:<version>
Sesuaikan gambar konsol web
Anda juga dapat menyesuaikan gambar konsol web. Sumber daya gambar ada di deployment/ecr/distributed-load-testing-on-aws-web-console direktori, terletak di GitHub repositori
Gambar wadah konsol web dibangun di atas image dasar Nginx dan menginstal AWS CLI. Dockerfile-nya meny
Untuk informasi selengkapnya, lihat Mendorong gambar Docker ke repositori pribadi Amazon ECR di Panduan Pengguna Amazon ECR.
URI gambar penguji beban
Ketiga template penerapan (Amazon CloudFront + S3, Application Load Balancer (ALB) + ECS di AWS Fargate, dan headless) menarik gambar wadah penguji beban dari registri publik Amazon Elastic Container Registry (Amazon ECR) () pada waktu penerapanpublic.ecr.aws.
Di lingkungan di mana akses ke registri kontainer publik dibatasi, cerminkan gambar penguji beban ke repositori Amazon ECR pribadi dan berikan URI gambar pribadi di parameter AWS CloudFormation Lo ad Tester Image URI (LoadTesterImageUri). Contoh umum termasuk VPC tanpa akses internet, akun dengan kebijakan akses publik ECR, dan Wilayah AWS GovCloud (AS), di mana tugas ECS tidak dapat mengakses registri ECR publik. Pencerminan ke repositori pribadi di Wilayah penerapan Anda diperlukan untuk penerapan AWS GovCloud (AS) dan opsional di tempat lain.
Mencerminkan gambar penguji beban ke repositori ECR pribadi
catatan
Saat Anda memberikanLoadTesterImageUri, parameter Auto-update Container Image (UseStableTagging) tidak lagi mengelola gambar penguji beban. Untuk mengambil patch keamanan, Anda harus mencerminkan ulang tag gambar yang diperbarui.
Untuk mencerminkan gambar penguji beban ke repositori ECR pribadi, selesaikan langkah-langkah berikut. Dalam perintah berikut, ganti <version> dengan tag gambar (misalnya,v4.0.0), <region> dengan Wilayah penerapan Anda (misalnya,us-gov-west-1), <profile> dengan nama profil AWS Command Line Interface (AWS CLI) Anda, dan <account-id> dengan ID akun AWS 12 digit Anda.
-
Otentikasi ke registri ECR publik dari mesin dengan akses internet.
aws ecr-public get-login-password --region us-east-1 | docker login --username AWS --password-stdin public.ecr.aws -
Tarik gambar penguji beban publik.
docker pull public.ecr.aws/aws-solutions/distributed-load-testing-on-aws-load-tester:<version> -
Buat repositori ECR pribadi di akun Anda (jika belum ada).
aws ecr create-repository --repository-name dlt-load-tester --region <region> --profile <profile> 2>/dev/null || true -
Otentikasi ke registri ECR pribadi Anda.
aws ecr get-login-password --region <region> --profile <profile> | docker login --username AWS --password-stdin <account-id>.dkr.ecr.<region>.amazonaws.com -
Tandai dan dorong gambar ke repositori pribadi Anda.
docker tag public.ecr.aws/aws-solutions/distributed-load-testing-on-aws-load-tester:<version> \ <account-id>.dkr.ecr.<region>.amazonaws.com/dlt-load-tester:<version> docker push <account-id>.dkr.ecr.<region>.amazonaws.com/dlt-load-tester:<version> -
Masukkan URI gambar pribadi dalam parameter Lo ad Tester Image URI saat Anda meluncurkan tumpukan.
<account-id>.dkr.ecr.<region>.amazonaws.com/dlt-load-tester:<version>
Contoh penerapan AWS GovCloud (AS)
Contoh berikut menunjukkan parameter yang diperlukan untuk setiap varian tumpukan di AWS GovCloud (AS).
Untuk tumpukan tanpa kepala, hanya LoadTesterImageUri diperlukan:
aws cloudformation create-stack \ --stack-name dlt-govcloud \ --template-url https://solutions-reference-us-gov.s3.us-gov-west-1.amazonaws.com/distributed-load-testing-on-aws/latest/distributed-load-testing-on-aws-headless.template \ --parameters \ ParameterKey=AdminName,ParameterValue=admin \ ParameterKey=AdminEmail,ParameterValue=admin@example.com \ ParameterKey=LoadTesterImageUri,ParameterValue=<account-id>.dkr.ecr.us-gov-west-1.amazonaws.com/dlt-load-tester:<version> \ --capabilities CAPABILITY_IAM \ --region us-gov-west-1
Untuk Application Load Balancer (ALB) + ECS di AWS Fargate stack, sediakan keduanya dan. LoadTesterImageUri WebConsoleImageUri Tugas ECS di AWS GovCloud (AS) tidak dapat mengakses registri ECR publik (public.ecr.aws), jadi Anda harus mencerminkan kedua gambar kontainer.
aws cloudformation create-stack \ --stack-name dlt-govcloud \ --template-url https://solutions-reference-us-gov.s3.us-gov-west-1.amazonaws.com/distributed-load-testing-on-aws/latest/distributed-load-testing-on-aws-alb-ecs.template \ --parameters \ ParameterKey=AdminName,ParameterValue=admin \ ParameterKey=AdminEmail,ParameterValue=admin@example.com \ ParameterKey=ConsoleDomainName,ParameterValue=dlt.example.gov \ ParameterKey=ACMCertificateArn,ParameterValue=arn:aws-us-gov:acm:us-gov-west-1:123456789012:certificate/abcd1234-ef56-gh78-ij90-klmnopqrstuv \ ParameterKey=LoadTesterImageUri,ParameterValue=<account-id>.dkr.ecr.us-gov-west-1.amazonaws.com/dlt-load-tester:<version> \ ParameterKey=WebConsoleImageUri,ParameterValue=<account-id>.dkr.ecr.us-gov-west-1.amazonaws.com/dlt-web-console:<version> \ --capabilities CAPABILITY_IAM \ --region us-gov-west-1
Untuk petunjuk tentang pencerminan gambar konsol web, lihat Gambar konsol web.