View a markdown version of this page

Pertimbangan desain - Pengujian Beban Terdistribusi di AWS

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

Pertimbangan desain

Bagian ini menjelaskan keputusan desain penting dan opsi konfigurasi untuk solusi Pengujian Beban Terdistribusi pada AWS, termasuk aplikasi yang didukung, jenis pengujian, opsi penjadwalan, dan pertimbangan penerapan.

Aplikasi-aplikasi yang didukung

Solusi ini mendukung pengujian aplikasi berbasis cloud dan aplikasi lokal selama Anda memiliki konektivitas jaringan dari akun AWS ke aplikasi Anda. Solusinya mendukung API yang menggunakan protokol HTTP atau HTTPS.

Jenis tes

Pengujian Beban Terdistribusi di AWS mendukung beberapa jenis pengujian: pengujian titik akhir HTTP sederhana, JMeter, K6, dan Locust.

catatan

Solusinya mendistribusikan JMeter, K6, dan Locust sebagai komponen pihak ketiga tanpa modifikasi. Untuk pertimbangan keamanan, opsi penambalan, dan informasi lisensi, lihat kerangka Third-party pengujian.

Tes titik akhir HTTP sederhana

Konsol web menyediakan antarmuka Konfigurasi Titik Akhir HTTP yang memungkinkan Anda menguji titik akhir HTTP atau HTTPS apa pun tanpa menulis skrip khusus. Anda menentukan URL endpoint, pilih metode HTTP (GET, POST, PUT, DELETE, dll.) Dari menu dropdown, dan secara opsional menambahkan header permintaan kustom dan muatan tubuh. Konfigurasi ini memungkinkan Anda untuk menguji API dengan token otorisasi khusus, jenis konten, atau header HTTP lainnya dan badan permintaan yang diperlukan oleh aplikasi Anda.

Saat Anda mengonfigurasi titik akhir HTTP, solusinya mengubah konfigurasi Anda menjadi rencana pengujian yang dijalankan oleh biner Apache JMeter yang dibundel melalui kerangka kerja Taurus. Tes Endpoint HTTP sederhana tidak menerima arsip pengujian, sehingga tidak dapat mengganti biner atau plugin JMeter yang dibundel. Jika Anda perlu menjalankan pengujian titik akhir HTTP dengan JMeter yang ditambal, gunakan jenis uji JMeter sebagai gantinya. Untuk pertimbangan keamanan, lihat Apache JMeter.

Tes JMeter

Saat membuat skenario pengujian menggunakan konsol web, Anda dapat mengunggah skrip pengujian JMeter. Solusinya mengunggah skrip ke bucket skenario S3. Saat tugas Amazon ECS berjalan, mereka mengunduh skrip JMeter dari S3 dan menjalankan pengujian.

penting

Meskipun skrip JMeter Anda dapat menentukan konkurensi (pengguna virtual), tingkat transaksi (TPS), waktu peningkatan, dan parameter pemuatan lainnya, solusinya akan mengganti konfigurasi ini dengan nilai yang Anda tentukan di Layar Bentuk Lalu Lintas selama pembuatan pengujian. Konfigurasi Bentuk Lalu Lintas mengontrol jumlah tugas, konkurensi (pengguna virtual per tugas), durasi peningkatan, dan durasi penahanan untuk eksekusi pengujian.

Jika Anda memiliki file input JMeter, Anda dapat zip file input bersama dengan skrip JMeter. Anda dapat memilih file zip saat membuat skenario pengujian.

Jika Anda ingin menyertakan plugin, file.jar apa pun yang disertakan dalam subdirektori /plugins dalam file zip yang dibundel akan disalin ke direktori ekstensi JMeter dan tersedia untuk pengujian beban.

catatan

Jika Anda menyertakan file input JMeter dengan file skrip JMeter Anda, Anda harus menyertakan jalur relatif dari file input dalam file skrip JMeter Anda. Selain itu, file input harus berada di jalur relatif. Misalnya, ketika file input JMeter dan file skrip Anda berada di home/user direktori/dan Anda merujuk ke file input dalam file skrip JMeter, jalur file input harus. /INPUT_FILE. Jika Anda menggunakan/home/user/INPUT_FILES sebagai gantinya, tes akan gagal karena tidak akan dapat menemukan file input.

Jika Anda menyertakan plugin JMeter, file.jar harus dibundel dalam subdirektori bernama /plugins dalam root file zip. Sehubungan dengan root file zip, jalur ke file jar harus. /plugins/BUNDLED_PLUGIN.jar.

Untuk informasi lebih lanjut tentang cara menggunakan skrip JMeter, lihat Manual Pengguna JMeter.

Tes K6

Solusinya mendukung pengujian berbasis kerangka kerja K6. Anda dapat mengunggah file uji K6 bersama dengan file input yang diperlukan dalam file arsip. Konsol web menampilkan pesan pengakuan lisensi saat Anda membuat pengujian K6 baru; untuk detail lisensi dan keamanan, lihat Grafana K6.

penting

Meskipun skrip K6 Anda dapat menentukan konkurensi (pengguna virtual), tahapan, ambang batas, dan parameter beban lainnya, solusinya akan mengganti konfigurasi ini dengan nilai yang Anda tentukan di Bentuk Lalu Lintas layar selama pembuatan pengujian. Konfigurasi Bentuk Lalu Lintas mengontrol jumlah tugas, konkurensi (pengguna virtual per tugas), durasi peningkatan, dan durasi penahanan untuk eksekusi pengujian.

Tes belalang

Solusinya mendukung pengujian berbasis kerangka kerja Locust. Anda dapat mengunggah file uji Locust bersama dengan file input yang diperlukan dalam file arsip.

penting

Meskipun skrip Locust Anda dapat menentukan konkurensi (jumlah pengguna), laju spawn, dan parameter pemuatan lainnya, solusinya akan mengganti konfigurasi ini dengan nilai yang Anda tentukan di Layar Bentuk Lalu Lintas selama pembuatan pengujian. Konfigurasi Bentuk Lalu Lintas mengontrol jumlah tugas, konkurensi (pengguna virtual per tugas), durasi peningkatan, dan durasi penahanan untuk eksekusi pengujian.

Tes penjadwalan

Solusinya menyediakan tiga opsi waktu eksekusi untuk menjalankan tes beban:

  • Jalankan Sekarang - Jalankan uji beban segera setelah pembuatan

  • Jalankan Once - Jalankan tes pada tanggal dan waktu tertentu di masa depan

  • Jalankan pada Jadwal - Buat tes berulang menggunakan ekspresi cron untuk menentukan jadwal

Ketika Anda memilih Run Once, Anda menentukan waktu berjalan dalam format 24 jam dan tanggal berjalan ketika uji beban harus mulai berjalan.

Ketika Anda memilih Run on a Schedule, Anda dapat memasukkan ekspresi cron secara manual atau memilih dari pola cron umum (seperti setiap jam, setiap hari pada waktu tertentu, hari kerja, atau bulanan). Ekspresi cron menggunakan format jadwal berbutir halus dengan bidang untuk menit, jam, hari bulan, bulan, hari dalam seminggu, dan tahun. Anda juga harus menentukan tanggal kedaluwarsa, yang menentukan kapan tes terjadwal harus berhenti berjalan. Untuk informasi selengkapnya tentang cara kerja penjadwalan, lihat bagian Alur kerja penjadwalan pengujian pada panduan ini.

catatan
  • Durasi tes: Pertimbangkan total durasi tes saat menjadwalkan. Misalnya, tes dengan waktu ramp-up 10 menit dan waktu penahanan 40 menit akan memakan waktu sekitar 80 menit untuk menyelesaikannya.

  • Interval minimum: Pastikan interval antara tes terjadwal lebih lama dari perkiraan durasi tes. Misalnya, jika tes memakan waktu sekitar 80 menit, jadwalkan untuk berjalan tidak lebih sering dari setiap 3 jam.

  • Batasan per jam: Sistem tidak mengizinkan tes dijadwalkan dengan perbedaan hanya satu jam meskipun perkiraan durasi tes kurang dari satu jam.

Tes bersamaan

Solusi ini membuat CloudWatch dasbor Amazon untuk setiap pengujian yang menampilkan output gabungan dari semua tugas yang berjalan di cluster Amazon ECS secara real time. CloudWatch Dasbor menunjukkan waktu respons rata-rata, jumlah pengguna bersamaan, jumlah permintaan yang berhasil, dan jumlah permintaan yang gagal. Solusinya menggabungkan setiap metrik per detik dan memperbarui dasbor setiap menit.

Manajemen pengguna

Selama konfigurasi awal, Anda memberikan nama pengguna dan alamat email yang digunakan Amazon Cognito untuk memberi Anda akses ke konsol web solusi. Konsol tidak menyediakan administrasi pengguna. Untuk menambahkan pengguna tambahan, Anda harus menggunakan konsol Amazon Cognito. Untuk informasi selengkapnya, lihat Mengelola Pengguna di Kumpulan Pengguna di Panduan Pengembang Amazon Cognito.

Untuk memigrasikan pengguna yang ada ke kumpulan pengguna Amazon Cognito, lihat Pendekatan blog AWS untuk memigrasikan pengguna ke kumpulan pengguna Amazon Cognito.

Federasi penyedia identitas

Kumpulan pengguna Amazon Cognito solusi mendukung federasi dengan penyedia identitas eksternal (IdPs) menggunakan protokol SAMP 2.0 atau OpenID Connect (OIDC). Federation memungkinkan pengguna untuk masuk ke konsol web menggunakan kredensi perusahaan atau organisasi mereka yang ada alih-alih Cognito-native kredensil. Pengguna federasi menerima izin akses yang sama dengan pengguna yang dibuat langsung di kumpulan pengguna Cognito.

Solusinya sudah menerapkan kumpulan pengguna Cognito, domain, klien aplikasi, dan UI yang dihosting. Untuk mengaktifkan federasi, Anda hanya perlu mendaftarkan penyedia identitas Anda dan mengaktifkannya di klien aplikasi yang ada.

Jika Anda menerapkan integrasi MCP Server opsional, pengguna federasi juga dapat mengakses Server MCP menggunakan kredenal kumpulan pengguna Cognito yang sama.

Prasyarat

Sebelum mengkonfigurasi federasi, Anda memerlukan yang berikut:

  • Penyedia identitas eksternal yang mendukung SAMP 2.0 atau OIDC

  • Akses admin untuk mengonfigurasi IDP eksternal (untuk mengatur URI pengalihan atau URL ACS)

  • ID kumpulan pengguna Cognito solusi (tersedia di sumber daya CloudFormation tumpukan atau konsol Amazon Cognito)

  • Awalan domain Cognito solusi (tersedia di output CloudFormation tumpukan atau konsol Cognito di bawah Integrasi aplikasi> Domain)

Langkah 1: Konfigurasikan penyedia identitas Anda

Konfigurasikan penyedia identitas eksternal Anda dengan nilai-nilai berikut sehingga dapat berkomunikasi dengan kumpulan pengguna Cognito solusi.

Untuk penyedia identitas SAMP:

  • ID entitas SP: urn:amazon:cognito:sp:_<UserPoolId>_

  • URL ACS: \https://<cognito-domain>.auth.<region>.amazoncognito.com/saml2/idpresponse

Untuk penyedia identitas OIDC:

  • Mengalihkan URI: \https://<cognito-domain>.auth.<region>.amazoncognito.com/oauth2/idpresponse

Untuk detail tentang kebutuhan IDP Anda, lihat Menambahkan penyedia identitas SAMP ke kumpulan pengguna atau Menambahkan penyedia identitas OIDC ke kumpulan pengguna di Panduan Pengembang Amazon Cognito.

Langkah 2: Daftarkan penyedia identitas di Cognito

Tambahkan penyedia identitas eksternal Anda ke kumpulan pengguna Cognito solusi yang ada menggunakan konsol Amazon Cognito.

Untuk petunjuk langkah demi langkah, lihat Menambahkan login kumpulan pengguna melalui pihak ketiga di Panduan Pengembang Amazon Cognito.

Langkah 3: Konfigurasikan pemetaan atribut

Konfigurasikan pemetaan atribut antara klaim penyedia identitas Anda dan atribut kumpulan pengguna Cognito. Minimal, petakan klaim email pengguna dari penyedia eksternal ke atribut Cognitoemail. Pertimbangkan juga pemetaan name atau nickname jika penyedia identitas Anda memasoknya.

Untuk petunjuk, lihat Menentukan pemetaan atribut penyedia identitas untuk kumpulan pengguna Anda di Panduan Pengembang Amazon Cognito.

Langkah 4: Aktifkan penyedia identitas pada klien aplikasi

Di konsol Amazon Cognito, temukan klien aplikasi yang dibuat oleh solusi dan aktifkan penyedia identitas baru Anda di bawah pengaturan UI yang dihosting.

Untuk petunjuk, lihat Mengonfigurasi klien aplikasi kumpulan pengguna di Panduan Pengembang Amazon Cognito.

catatan

Solusinya sudah mengonfigurasi URL callback dan sign-out klien aplikasi, cakupan OAuth, dan domain UI yang dihosting. Anda tidak perlu mengubah pengaturan ini — hanya mengaktifkan penyedia identitas Anda pada klien aplikasi yang ada.

penting

Solusinya sengaja menghilangkan SupportedIdentityProviders properti dari konfigurasi klien CloudFormation aplikasi. Ini memungkinkan Anda untuk menambahkan penyedia identitas pasca-penerapan tanpa memicu deteksi drift. CloudFormation Jika properti ini disetel dalam template, setiap perubahan iDP manual melalui konsol atau CLI akan ditimpa pada pembaruan tumpukan berikutnya, mengembalikan klien aplikasi hanya ke penyedia yang tercantum dalam template.

Karena properti ini dihilangkan, CloudFormation tidak melacak atau mengelola penyedia identitas mana yang diaktifkan pada klien aplikasi. Setelah Anda mengonfigurasi federasi, Anda bertanggung jawab untuk mengelola konten SupportedIdentityProviders pada klien aplikasi. Untuk memantau perubahan yang tidak sah, aktifkan CloudTrail pencatatan AWS dan buat EventBridge aturan Amazon untuk mengingatkan CreateIdentityProvider dan panggilan UpdateUserPoolClient API yang menargetkan kumpulan pengguna Cognito solusi.

catatan
  • Menambahkan penyedia identitas eksternal tidak menghapus kemampuan Cognito-native pengguna yang ada untuk masuk dengan kredensialnya saat ini.

  • Pengguna federasi tunduk pada batasan ketersediaan regional yang sama dengan kumpulan pengguna Cognito. Untuk informasi lebih lanjut, lihat penyebaran Regional.

  • Uji login gabungan dengan sekelompok kecil pengguna sebelum meluncurkannya ke organisasi Anda.

Menonaktifkan atau menghapus pengguna Cognito default

Setelah mengonfigurasi federasi, Anda mungkin ingin menonaktifkan atau menghapus pengguna default yang dibuat selama penyebaran tumpukan. Ini opsional — pengguna default terus bekerja bersama login federasi.

Untuk menonaktifkan pengguna, navigasikan ke kumpulan pengguna Cognito solusi di konsol Amazon Cognito, pilih tab Pengguna, pilih pengguna, dan pilih Nonaktifkan akses pengguna. Untuk menghapus pengguna, Anda harus menonaktifkannya terlebih dahulu, lalu pilih Hapus pengguna. Menonaktifkan pengguna mencabut token mereka dan mencegah masuk sambil mempertahankan akun; menghapus secara permanen menghapusnya.

Untuk detail selengkapnya, lihat Mengelola dan mencari akun pengguna di Panduan Pengembang Amazon Cognito.

Penyebaran regional

Solusi ini menggunakan Amazon Cognito yang hanya tersedia di Wilayah AWS tertentu. Oleh karena itu, Anda harus menerapkan solusi ini di wilayah tempat Amazon Cognito tersedia. Untuk ketersediaan layanan terbaru menurut Wilayah, lihat Daftar Layanan Regional AWS.