

# Praktik terbaik
<a name="perf-bp"></a>

**Topics**
+ [Pemilihan arsitektur](perf-arch.md)
+ [Komputasi dan perangkat keras](perf-compute.md)
+ [Manajemen data](perf-data.md)
+ [Jaringan dan Pengiriman Konten](perf-networking.md)
+ [Proses dan budaya](perf-process.md)

# Pemilihan arsitektur
<a name="perf-arch"></a>

 Solusi yang optimal bervariasi untuk beban kerja tertentu, dan solusi sering kali menggabungkan beberapa pendekatan. Beban kerja yang dirancang dengan baik menggunakan beberapa solusi dan memungkinkan berbagai fitur guna meningkatkan kinerja. 

 AWS sumber daya tersedia dalam berbagai jenis dan konfigurasi, yang membuatnya lebih mudah untuk menemukan pendekatan yang sesuai dengan kebutuhan Anda. Anda juga dapat menemukan opsi yang tidak mudah dicapai dengan infrastruktur on-premise. Misalnya, layanan terkelola seperti Amazon DynamoDB menyediakan database SQL No yang dikelola sepenuhnya dengan latensi milidetik satu digit pada skala apa pun. 

 Pertanyaan berikut ini berfokus pada semua pertimbangan untuk efisiensi kinerja. (Untuk melihat daftar pertanyaan dan praktik terbaik mengenai efisiensi kinerja, buka [Lampiran](a-performance-efficiency.md).). 


| PERF1: Bagaimana Anda memilih sumber daya cloud dan pola arsitektur yang sesuai untuk beban kerja Anda? | 
| --- | 
|  Sering kali, beberapa pendekatan diperlukan untuk performa yang lebih efektif di semua beban kerja. Sistem yang Well-Architected menggunakan beberapa solusi dan fitur untuk meningkatkan kinerja.  | 

# Komputasi dan perangkat keras
<a name="perf-compute"></a>

 Pilihan komputasi yang optimal untuk beban kerja tertentu bervariasi berdasarkan desain aplikasi, pola penggunaan, dan pengaturan konfigurasi. Arsitektur dapat menggunakan pilihan komputasi yang berbeda untuk berbagai komponen, dan memungkinkan fitur yang berbeda untuk meningkatkan kinerja. Memilih pilihan komputasi yang salah untuk arsitektur dapat menyebabkan efisiensi kinerja menjadi lebih rendah. 

 Dalam AWS, komputasi tersedia dalam tiga bentuk: instance, wadah, dan fungsi: 
+  **Instans** adalah server virtual, memungkinkan Anda untuk mengubah kemampuan mereka dengan tombol atau panggilan. API Karena keputusan sumber daya di cloud tidaklah tetap, Anda dapat bereksperimen dengan jenis server yang berbeda-beda. Pada AWS, instance server virtual ini datang dalam keluarga dan ukuran yang berbeda, dan mereka menawarkan berbagai kemampuan, termasuk solid-state drive (SSDs) dan unit pemrosesan grafis (). GPUs 
+  **Container** adalah metode virtualisasi sistem operasi yang memungkinkan Anda menjalankan aplikasi dan dependensinya dalam proses yang terisolasi sumber daya. AWS Fargate adalah komputasi tanpa server untuk kontainer atau Amazon EC2 dapat digunakan jika Anda memerlukan kontrol atas penginstalan, konfigurasi, dan pengelolaan lingkungan komputasi Anda. Anda juga dapat memilih dari beberapa platform orkestrasi kontainer: Amazon Elastic Container Service (ECS) atau Amazon Elastic Kubernetes Service (). EKS 
+  **Fungsi** mengabstraksikan lingkungan pelaksanaan dari kode yang ingin Anda jalankan. Misalnya, AWS Lambda memungkinkan Anda untuk menjalankan kode tanpa menjalankan instance. 

 Pertanyaan berikut ini berfokus pada semua pertimbangan untuk efisiensi kinerja. 


| PERF2: Bagaimana Anda memilih dan menggunakan sumber daya komputasi dalam beban kerja Anda? | 
| --- | 
| Solusi komputasi yang lebih efisien untuk sebuah beban kerja bervariasi berdasarkan desain aplikasi, pola penggunaan, dan pengaturan konfigurasi. Arsitektur dapat menggunakan beberapa solusi komputasi untuk beragam komponen, dan mengaktifkan fitur lain untuk meningkatkan performa. Memilih solusi komputasi yang salah untuk arsitektur dapat mengakibatkan efisiensi performa yang lebih rendah. | 

# Manajemen data
<a name="perf-data"></a>

 Solusi manajemen data yang optimal untuk sistem tertentu bervariasi berdasarkan jenis tipe data (blok, file, atau objek), pola akses (acak atau sekuensial), throughput yang diperlukan, frekuensi akses (online, offline, arsip), frekuensi pembaruan (, dinamis)WORM, dan kendala ketersediaan dan daya tahan. Beban kerja Well-Architected menggunakan penyimpanan data yang dibuat khusus yang memungkinkan berbagai fitur untuk meningkatkan kinerja. 

 Dalam AWS, penyimpanan tersedia dalam tiga bentuk: objek, blok, dan file: 
+  **Penyimpanan objek** menyediakan platform yang tahan lama dan dapat diskalakan agar data terkait konten yang dibuat pengguna, arsip aktif, komputasi nirserver, penyimpanan Big Data, atau pencadangan dan pemulihan dapat diakses dari lokasi internet mana pun. Amazon Simple Storage Service (Amazon S3) adalah layanan penyimpanan objek yang menawarkan skalabilitas, ketersediaan data, keamanan, dan kinerja terdepan di industri. Amazon S3 dirancang untuk memberikan daya tahan 99,999999999 persen (skenario 11 angka 9) dan menyimpan data jutaan aplikasi untuk perusahaan di seluruh dunia. 
+  **Penyimpanan blok menyediakan penyimpanan blok** latensi rendah yang sangat tersedia, konsisten, untuk setiap host virtual dan analog dengan penyimpanan yang terpasang langsung (DAS) atau Jaringan Area Penyimpanan (). SAN Amazon Elastic Block Store (AmazonEBS) dirancang untuk beban kerja yang memerlukan penyimpanan persisten yang dapat diakses oleh EC2 instans yang membantu Anda menyetel aplikasi dengan kapasitas penyimpanan, kinerja, dan biaya yang tepat. 
+  **Penyimpanan file** menyediakan akses ke sistem file bersama di seluruh sistem. Solusi penyimpanan file seperti Amazon Elastic File System (AmazonEFS) ideal untuk kasus penggunaan seperti repositori konten besar, lingkungan pengembangan, toko media, atau direktori rumah pengguna. Amazon FSx membuatnya efisien dan hemat biaya untuk meluncurkan dan menjalankan sistem file populer sehingga Anda dapat memanfaatkan rangkaian fitur yang kaya dan kinerja cepat dari sistem file open source dan berlisensi komersial yang banyak digunakan. 

 Pertanyaan berikut ini berfokus pada semua pertimbangan untuk efisiensi kinerja. 


| PERF3: Bagaimana Anda menyimpan, mengelola, dan mengakses data dalam beban kerja Anda? | 
| --- | 
|  Solusi penyimpanan yang lebih efisien untuk suatu sistem bervariasi berdasarkan jenis operasi akses (blok, file, atau objek), pola akses (acak atau sekuensial), throughput yang diperlukan, frekuensi akses (online, offline, arsip), frekuensi pembaruan (, dinamis)WORM, dan kendala ketersediaan dan daya tahan. Sistem yang Well-architected menggunakan beberapa solusi penyimpanan dan mengaktifkan fitur berbeda yang meningkatkan performa dan menggunakan sumber daya secara efisien.  | 

# Jaringan dan Pengiriman Konten
<a name="perf-networking"></a>

 Solusi jaringan optimal untuk beban kerja bervariasi berdasarkan latensi, persyaratan throughput, jitter, dan bandwith. Batas fisik, seperti sumber daya on-premise atau pengguna, menentukan opsi lokasi. Batas-batas ini dapat diimbangi dengan penempatan sumber daya atau lokasi edge. 

 Pada AWS, jaringan divirtualisasi dan tersedia dalam sejumlah jenis dan konfigurasi yang berbeda. Ini membuatnya lebih mudah untuk mencocokkan kebutuhan jaringan Anda. AWS menawarkan fitur produk (misalnya, Jaringan yang Ditingkatkan, instans yang dioptimalkan EC2 jaringan Amazon, akselerasi transfer Amazon S3, dan CloudFront Amazon dinamis) untuk mengoptimalkan lalu lintas jaringan. AWS juga menawarkan fitur jaringan (misalnya, perutean latensi Amazon Route 53, VPC titik akhir Amazon AWS Direct Connect, dan AWS Global Accelerator) untuk mengurangi jarak jaringan atau jitter. 

 Pertanyaan berikut ini berfokus pada semua pertimbangan untuk efisiensi kinerja. 


| PERF4: Bagaimana Anda memilih dan mengkonfigurasi sumber daya jaringan dalam beban kerja Anda? | 
| --- | 
|  Pertanyaan ini mencakup panduan dan praktik terbaik untuk merancang, mengonfigurasi, dan mengoperasikan jejaring yang efisien dan solusi penyampaian konten di cloud.  | 

# Proses dan budaya
<a name="perf-process"></a>

 Saat merancang beban kerja, ada prinsip dan praktik yang dapat Anda adopsi untuk membantu Anda menjalankan beban kerja cloud berkinerja tinggi yang efisien dengan lebih baik. Untuk mengadopsi budaya yang mendorong efisiensi kinerja beban kerja cloud, pertimbangkan prinsip dan praktik utama berikut. 

 Pertimbangkan prinsip-prinsip utama berikut untuk membangun budaya ini: 
+  **Infrastruktur sebagai kode:** Tentukan infrastruktur Anda sebagai kode menggunakan pendekatan seperti AWS CloudFormation templat. Penggunaan templat memungkinkan Anda untuk menempatkan infrastruktur di kontrol sumber bersama dengan konfigurasi dan kode aplikasi Anda. Ini memungkinkan Anda untuk menerapkan praktik yang sama yang Anda gunakan untuk mengembangkan perangkat lunak di infrastruktur Anda sehingga Anda dapat mengulang dengan cepat. 
+  **Pipeline deployment:** Gunakan pipeline deployment yang berkelanjutan/terintegrasi terus-menerus (CI/CD) (misalnya, repositori kode sumber, sistem pembangunan, deployment, dan otomatisasi pengujian) untuk melakukan deployment infrastruktur Anda. Ini memungkinkan Anda untuk melakukan deployment dengan cara yang dapat diulang, konsisten, dan murah saat Anda melakukan pengulangan. 
+  **Metrik yang terdefinisi dengan baik:** Siapkan dan pantau metrik untuk menangkap indikator kinerja utama (). KPIs Kami menyarankan Anda menggunakan metrik teknis dan metrik bisnis. Untuk situs web atau aplikasi seluler, metrik utama adalah menangkap time-to-first-byte atau merender. Metrik lain yang umumnya berlaku antara lain, hitungan thread, laju pengumpulan sampah, dan keadaan tunggu. Metrik bisnis, seperti biaya kumulatif agregat per permintaan, dapat memberikan peringatan kepada Anda tentang berbagai cara untuk menghemat biaya. Pertimbangkan dengan hati-hati bagaimana Anda akan menafsirkan metrik. Misalnya, Anda dapat memilih nilai maksimum atau persentil 99 dan bukannya nilai rata-rata. 
+  **Jalankan tes kinerja secara otomatis:** Sebagai bagian dari proses deployment Anda, mulai tes kinerja secara otomatis setelah tes yang lebih cepat berhasil dijalankan. Otomatisasi harus menciptakan lingkungan baru, menyiapkan kondisi awal seperti data uji, kemudian jalankan serangkaian uji beban dan tolok ukur. Hasil dari pengujian-pengujian ini harus dikaitkan kembali dengan pembangunan sehingga Anda dapat melacak perubahan performa seiring waktu. Untuk pengujian yang lama, Anda dapat membuat ini sebagai bagian dari alur yang asinkron dari sisa pembangunan. Atau, Anda dapat menjalankan pengujian kinerja semalaman menggunakan Instans EC2 Spot Amazon. 
+  **simulasi pengujian beban kerja:** Anda harus membuat serangkaian skenario pengujian yang mereplikasi atau merekam perjalanan pengguna yang direkayasa. Skrip ini harus idempoten dan tidak dipasangkan, dan Anda mungkin harus menyertakan skrip *prapemanasan* untuk menghasilkan hasil yang valid. Sejauh dapat dilakukan, skrip pengujian Anda harus mereplikasi perilaku penggunaan dalam produksi. Anda dapat menggunakan perangkat lunak atau solusi software-as-a-service (SaaS) untuk menghasilkan beban. Pertimbangkan untuk menggunakan solusi [AWS Marketplace](https://aws.amazon.com/marketplace/) dan [Instans Spot](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-spot-instances.html) — yang merupakan cara yang hemat untuk simulasi pengujian beban kerja. 
+  **Visibilitas kinerja:** Metrik utama harus dapat dilihat oleh tim Anda, khususnya metrik untuk setiap versi yang dibangun. Ini memungkinkan Anda untuk melihat setiap tren positif atau negatif yang signifikan seiring waktu. Anda juga harus menampilkan metrik atas jumlah kesalahan atau pengecualian untuk memastikan Anda menguji sistem yang berfungsi. 
+ **Visualisasi:** Gunakan teknik visualisasi yang membuat jelas di mana terjadi masalah performa, hotspot, keadaan tunggu, atau penggunaan rendah. Lapisi diagram arsitektur dengan metrik performa — kode atau grafik panggilan dapat membantu mengidentifikasi masalah dengan cepat. 
+  **Tinjau proses secara rutin:** Arsitektur dengan performa buruk biasanya merupakan akibat dari tidak adanya proses peninjauan performa, atau proses peninjauan performa yang bermasalah. Jika arsitektur Anda memiliki performa buruk, implementasi proses peninjauan performa memungkinkan Anda untuk mendorong peningkatan berulang. 
+  **Optimalisasi terus-menerus:** Adopsi budaya untuk terus mengoptimalkan efisiensi kinerja beban kerja cloud Anda. 

 Pertanyaan berikut ini berfokus pada semua pertimbangan untuk efisiensi kinerja. 


| PERF5: Proses apa yang Anda gunakan untuk mendukung efisiensi kinerja yang lebih besar untuk beban kerja Anda?  | 
| --- | 
|  Saat merancang beban kerja, ada prinsip dan praktik yang dapat Anda adopsi untuk membantu Anda menjalankan beban kerja cloud berkinerja tinggi yang efisien dengan lebih baik. Untuk mengadopsi budaya yang mendorong efisiensi kinerja beban kerja cloud, pertimbangkan prinsip dan praktik utama berikut.  | 