

# Kelola sumber daya pasokan dan permintaan
<a name="a-manage-demand-and-supply-resources"></a>

**Topics**
+ [COST 9 Bagaimana cara mengelola sumber daya pasokan dan permintaan?](w2aac19c13c11b5.md)

# COST 9 Bagaimana cara mengelola sumber daya pasokan dan permintaan?
<a name="w2aac19c13c11b5"></a>

Untuk beban kerja yang memiliki pengeluaran dan performa seimbang, pastikan semua yang Anda bayar akan digunakan dan hindari tingkat penggunaan instans yang terlalu rendah. Metrik penggunaan yang melenceng ke salah satu arah memiliki dampak buruk pada organisasi Anda, baik dalam biaya operasional (performa yang menurun akibat penggunaan yang berlebihan), atau pemborosan pengeluaran AWS (akibat pengadaan yang berlebihan).

**Topics**
+ [COST09-BP01 Melakukan analisis pada permintaan beban kerja](cost_manage_demand_resources_cost_analysis.md)
+ [COST09-BP02 Implementasikan buffer atau throttle untuk mengelola permintaan](cost_manage_demand_resources_buffer_throttle.md)
+ [COST09-BP03 Menyediakan sumber daya secara dinamis](cost_manage_demand_resources_dynamic.md)

# COST09-BP01 Melakukan analisis pada permintaan beban kerja
<a name="cost_manage_demand_resources_cost_analysis"></a>

 Analisis permintaan beban kerja dari waktu ke waktu. Verifikasikan bahwa analisis ini mencakup tren musiman dan merepresentasikan secara akurat kondisi operasi di sepanjang masa pakai beban kerja penuh. Upaya analisis harus mencerminkan potensi manfaat, misalnya, waktu yang digunakan sebanding dengan biaya beban kerja. 

 **Tingkat risiko yang terjadi jika praktik terbaik ini tidak dijalankan:** Tinggi 

## Panduan implementasi
<a name="implementation-guidance"></a>

Ketahui persyaratan beban kerja. Persyaratan organisasi harus menunjukkan waktu respons beban kerja untuk permintaan. Waktu respons dapat digunakan untuk menentukan apakah permintaan dikelola, atau apakah pasokan sumber daya akan berubah untuk memenuhi permintaan.

Analisis harus mencakup prediktabilitas dan pengulangan permintaan, tingkat perubahan dalam permintaan, serta jumlah perubahan dalam permintaan. Pastikan analisis dilakukan dalam periode yang cukup lama sehingga menyertakan variasi musiman apa pun, seperti pemrosesan akhir bulan atau puncak liburan.

Pastikan upaya analisis mencerminkan potensi manfaat implementasi penskalaan. Lihat biaya total komponen yang diharapkan, serta peningkatan atau penurunan penggunaan dan biaya di sepanjang masa pakai beban kerja.

Anda dapat menggunakan [AWS Cost Explorer](https://aws.amazon.com/aws-cost-management/aws-cost-explorer/) atau [Amazon Quick](https://aws.amazon.com/quicksight/) dengan AWS Cost and Usage Report (CUR) atau log aplikasi Anda untuk melakukan analisis visual permintaan beban kerja.

**Langkah implementasi**
+ ** Analisis data beban kerja yang ada: **Analisis data dari beban kerja yang ada, versi beban kerja sebelumnya, atau pola penggunaan yang diprediksi. Gunakan file log dan data pemantauan untuk mendapatkan wawasan tentang bagaimana pelanggan menggunakan beban kerja. Metrik yang umum antara lain permintaan aktual per detik, waktu ketika tingkat permintaan berubah atau ketika permintaan berada di tingkat yang berbeda, dan tingkat perubahan permintaan. Pastikan Anda menganalisis siklus beban kerja secara penuh, memastikan Anda mengumpulkan data untuk beberapa perubahan musiman seperti peristiwa akhir bulan atau akhir tahun. Upaya yang tercermin dalam analisis harus mencerminkan karakteristik beban kerja. Upaya terbesar harus ditempatkan pada beban kerja bernilai tinggi yang memakan biaya terbesar dalam permintaan. Upaya terkecil harus ditempatkan pada beban kerja bernilai rendah yang memakan biaya minimal dalam permintaan. Metrik umum untuk nilai adalah risiko, kesadaran merek, pendapatan, atau biaya beban kerja. 
+ ** Prakirakan pengaruh luar: **Temui anggota tim dari seluruh organisasi yang dapat memengaruhi atau mengubah permintaan pada beban kerja. Tim umum terdiri dari penjualan, pemasaran, atau pengembangan bisnis. Bekerjalah dengan mereka untuk mengetahui siklus operasi mereka, dan apakah ada peristiwa yang akan mengubah permintaan beban kerja. Prakirakan permintaan beban kerja dengan data ini. 

## Sumber daya
<a name="resources"></a>

 **Dokumen terkait:** 
+  [AWS Auto Scaling](https://aws.amazon.com/autoscaling/) 
+  [Penjadwal Instans AWS](https://aws.amazon.com/answers/infrastructure-management/instance-scheduler/) 
+  [Memulai dengan Amazon SQS](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-getting-started.html) 
+ [AWS Cost Explorer](https://aws.amazon.com/aws-cost-management/aws-cost-explorer/)
+ [Amazon Quick](https://aws.amazon.com/quicksight/)

# COST09-BP02 Implementasikan buffer atau throttle untuk mengelola permintaan
<a name="cost_manage_demand_resources_buffer_throttle"></a>

 Buffering dan throttling memodifikasi permintaan di beban kerja Anda, meratakan fluktuasi. Implementasikan throttling ketika klien Anda mencoba ulang. Implementasikan buffering untuk menyimpan permintaan dan menunda pemrosesan ke lain waktu. Pastikan throttle dan buffer Anda didesain sehingga klien menerima respons dalam waktu yang diperlukan. 

 **Tingkat risiko yang terjadi jika praktik terbaik ini tidak diterapkan:** Rendah 

## Panduan implementasi
<a name="implementation-guidance"></a>

**Throttling:** Jika sumber permintaan memiliki kemampuan coba ulang, maka Anda dapat mengimplementasikan throttling. Throttling memberitahu sumber bahwa jika sumber tidak dapat melayani permintaan pada saat ini maka sumber harus mencoba lagi nanti. Sumber akan menunggu selama beberapa waktu kemudian mencoba ulang permintaan tersebut. Implementasi throttling memiliki manfaat membatasi jumlah maksimum sumber daya dan biaya beban kerja. Di AWS, Anda dapat menggunakan [Amazon API Gateway](https://aws.amazon.com/api-gateway/) untuk mengimplementasikan throttling. Lihat [laporan resmi pilar Keandalan Well-Architected](https://docs.aws.amazon.com/wellarchitected/latest/reliability-pillar/welcome.html) untuk detail selengkapnya tentang implementasi throttling.

**Berbasis buffer: **Serupa dengan throttling, buffer menunda pemrosesan permintaan, sehingga aplikasi yang dijalankan pada tingkat yang berlainan dapat berkomunikasi secara efektif. Pendekatan berbasis buffer menggunakan antrean untuk menerima pesan (unit kerja) dari produsen. Pesan dibaca oleh konsumen dan diproses, sehingga pesan dapat dijalankan dengan tingkat yang memenuhi persyaratan bisnis konsumen. Anda tidak perlu mengkhawatirkan produsen harus berurusan dengan masalah throttling, seperti daya tahan data dan tekanan balik (di mana produsen menjadi lebih lambat karena konsumen mereka beroperasi lebih lambat).

Di AWS, Anda dapat memilih dari beberapa layanan untuk mengimplementasikan pendekatan buffer. [Amazon Simple Queue Service(Amazon SQS)](https://aws.amazon.com/sqs/) merupakan layanan terkelola yang memberikan antrean yang memungkinkan satu konsumen membaca pesan secara individu. [Amazon Kinesis](https://aws.amazon.com/kinesis/) memberikan aliran yang memungkinkan banyak konsumen membaca pesan yang sama.

Ketika mendesain dan mengonfigurasi dengan pendekatan berbasis buffer, pastikan Anda mendesain dan mengonfigurasi beban kerja untuk melayani permintaan dalam waktu yang diperlukan, dan Anda dapat menangani permintaan kerja duplikat.

**Langkah implementasi**
+ ** Analisis persyaratan klien: **Analisis permintaan klien untuk menentukan apakah mereka dapat mencoba ulang. Untuk klien yang tidak dapat mencoba ulang, buffer harus diimplementasikan. Analisis permintaan secara keseluruhan, tingkat perubahan, dan waktu respons yang diperlukan untuk menentukan ukuran throttle atau buffer yang diperlukan. 
+ ** Implementasi buffer atau throttle:** Implementasikan buffer atau throttle di beban kerja. Antrean seperti Amazon Simple Queue Service (Amazon SQS) dapat memberikan buffer untuk komponen beban kerja Anda. Amazon API Gateway dapat memberikan throttling untuk komponen beban kerja Anda. 

## Sumber daya
<a name="resources"></a>

 **Dokumen terkait:** 
+  [AWS Auto Scaling](https://aws.amazon.com/autoscaling/) 
+  [AWS Penjadwal Instans](https://aws.amazon.com/answers/infrastructure-management/instance-scheduler/) 
+  [Amazon API Gateway](https://aws.amazon.com/api-gateway/) 
+  [Amazon Simple Queue Service](https://aws.amazon.com/sqs/) 
+  [Memulai dengan Amazon SQS](https://aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-getting-started.html) 
+  [Amazon Kinesis](https://aws.amazon.com/kinesis/) 

# COST09-BP03 Menyediakan sumber daya secara dinamis
<a name="cost_manage_demand_resources_dynamic"></a>

 Sumber daya disediakan sesuai dengan perencanaan. Penyediaan dapat berdasarkan permintaan, yaitu melalui penskalaan otomatis, atau berdasarkan waktu, yaitu permintaan dapat diprediksi dan sumber daya disediakan berdasarkan waktu. Metode ini dapat meminimalkan kekurangan atau kelebihan jumlah penyediaan. 

 **Tingkat risiko yang terjadi jika praktik terbaik ini tidak diterapkan:** Rendah 

## Panduan implementasi
<a name="implementation-guidance"></a>

Anda dapat menggunakan [AWS Auto Scaling](https://aws.amazon.com/autoscaling/), atau penskalaan gabungan di dalam kode Anda dengan [API atau SDK AWS](https://aws.amazon.com/developer/tools/). Hal ini akan menghemat biaya beban kerja secara keseluruhan dengan menghilangkan biaya operasional yang diperlukan untuk membuat perubahan secara manual di lingkungan Anda, serta dapat dilakukan dengan lebih cepat. Ini akan memastikan bahwa sumber daya untuk beban kerja sesuai dengan permintaan setiap waktu.

**Penyediaan berdasarkan permintaan:** Manfaatkan elastisitas cloud untuk menyediakan sumber daya dan memenuhi permintaan yang berubah. Manfaatkan fitur layanan atau API untuk mengelompokkan jumlah sumber daya cloud secara terprogram di arsitektur Anda secara dinamis. Hal ini memungkinkan Anda untuk menskalakan komponen di arsitektur Anda, serta meningkatkan jumlah sumber daya secara otomatis selama permintaan melonjak guna mempertahankan kinerja, dan mengurangi kapasitas saat permintaan menurun untuk mengurangi biaya.

[AWS Auto Scaling](https://aws.amazon.com/autoscaling/) membantu menyesuaikan kapasitas Anda untuk menjaga kinerja yang stabil dan terprediksi dengan biaya serendah mungkin. Ini adalah layanan gratis dan terkelola penuh yang terintegrasi dengan Armada Spot dan instans Amazon Elastic Compute Cloud (Amazon EC2), Amazon Elastic Container Service (Amazon ECS), Amazon DynamoDB, serta Amazon Aurora.

Auto Scaling menyediakan pencarian sumber daya secara otomatis yang dapat dikonfigurasi untuk membantu Anda menemukan sumber daya dalam beban kerja Anda, dilengkapi dengan strategi penskalaan bawaan untuk mengoptimalkan kinerja, biaya, atau keseimbangan antara keduanya, serta memberikan penskalaan prediktif untuk membantu menangani lonjakan yang rutin terjadi.

Auto Scaling dapat mengimplementasikan penskalaan manual, terjadwal, atau berdasarkan permintaan. Anda juga dapat menggunakan metrik atau pengingat dari [Amazon CloudWatch](https://aws.amazon.com/cloudwatch/) untuk memicu peristiwa penskalaan untuk beban kerja Anda. Metrik khusus dapat berupa metrik Amazon EC2 standar, seperti pemanfaatan CPU, throughput jaringan, dan latensi respons atau permintaan terobservasi [Elastic Load Balancing(ELB) ](https://aws.amazon.com/elasticloadbalancing/). Jika memungkinkan, Anda harus menggunakan metrik yang menggambarkan pengalaman pelanggan, biasanya berupa metrik kustom yang berasal dari kode aplikasi di dalam beban kerja Anda.

Jika Anda menggunakan pendekatan berdasarkan permintaan saat merancang, selalu pertimbangkan dua hal yang utama. Pertama, ketahui seberapa cepat Anda harus menyediakan sumber daya baru. Kedua, ketahui bahwa ukuran margin antara penyediaan dan permintaan akan berubah. Anda harus siap untuk menangani rasio perubahan dalam permintaan dan juga bersiap untuk kegagalan sumber daya.

[ELB](https://aws.amazon.com/elasticloadbalancing/) membantu penskalaan dengan mendistribusikan permintaan ke beberapa sumber daya. Jika sumber daya yang Anda implementasikan makin banyak, tambahkan sumber daya ke penyeimbang beban untuk mengisi permintaan. Elastic Load Balancing menyediakan dukungan untuk kontainer, alamat IP, dan Instans Amazon EC2, serta fungsi AWS Lambda.

**Penyediaan berdasarkan waktu:** Pendekatan berdasarkan waktu selaras dengan kapasitas sumber daya untuk permintaan yang dapat diprediksi atau telah ditentukan berdasarkan waktu. Pendekatan ini biasanya tidak bergantung pada tingkat pemanfaatan sumber daya. Pendekatan berdasarkan waktu memastikan ketersediaan sumber daya pada waktu tertentu saat diperlukan, serta dapat disediakan tanpa penundaan yang disebabkan sistem dan prosedur awal atau pemeriksaan konsistensi. Menggunakan pendekatan berdasarkan waktu, Anda dapat menyediakan sumber daya tambahan atau meningkatkan kapasitas selama periode sibuk.

Anda dapat menggunakan Auto Scaling terjadwal untuk mengimplementasikan pendekatan berdasarkan waktu. Beban kerja dapat dijadwalkan untuk penskalaan ke luar atau ke dalam pada waktu yang ditentukan (misalnya, awal jam kerja) untuk memastikan bahwa sumber daya tersedia saat pengguna atau permintaan datang.

Anda juga dapat memanfaatkan [API serta SDK AWS](https://aws.amazon.com/developer/tools/) dan [AWS CloudFormation](https://aws.amazon.com/cloudformation/) untuk menyiapkan atau menarik secara otomatis seluruh lingkungan saat Anda memerlukannya. Pendekatan ini ideal untuk lingkungan pengujian atau pengembangan yang hanya berjalan pada jam kerja atau periode waktu yang ditentukan.

Anda dapat menggunakan API untuk menskalakan ukuran sumber daya di dalam suatu lingkungan (penskalaan vertikal). Misalnya, Anda dapat menaikkan skala beban kerja produksi dengan mengubah ukuran atau kelas instans. Hal ini dapat dicapai dengan menghentikan lalu memulai instans, kemudian memilih kelas dan ukuran instans yang berbeda. Teknik ini juga dapat diterapkan ke sumber daya lain, seperti Volume Elastis Amazon Elastic Block Store (Amazon EBS), yang dapat diubah untuk meningkatkan ukuran, menyeimbangkan kinerja (IOPS), atau mengubah jenis volume saat sedang digunakan.

Jika Anda menggunakan pendekatan berdasarkan waktu saat merancang, selalu pertimbangkan dua hal yang utama. Pertama, seberapa konsisten pola penggunaannya? Kedua, apa dampak dari perubahan pola tersebut? Anda dapat meningkatkan akurasi prediksi dengan memantau beban kerja Anda dan menggunakan kecerdasan bisnis. Jika Anda mendapati perubahan yang signifikan dalam pola penggunaan, Anda dapat menyesuaikan waktu untuk memastikan bahwa cakupan tersedia.

**Langkah implementasi**
+ ** Konfigurasikan penjadwalan berdasarkan waktu: **Untuk perubahan permintaan yang dapat diprediksi, penskalaan berdasarkan waktu dapat memberikan jumlah sumber daya yang benar pada waktu yang tepat. Hal ini juga bermanfaat jika pembuatan dan konfigurasi sumber daya tidak cukup cepat untuk merespons perubahan permintaan. Menggunakan analisis beban kerja untuk mengonfigurasi penskalaan terjadwal menggunakan AWS Auto Scaling. 
+ ** Konfigurasikan Penskalaan Otomatis: **Untuk mengonfigurasi penskalaan berdasarkan metrik beban kerja yang aktif, gunakan Amazon Auto Scaling. Gunakan analisis dan konfigurasikan penskalaan otomatis untuk memicu tingkat sumber daya yang benar, serta memastikan bahwa beban kerja diskalakan pada waktu yang diperlukan. 

## Sumber daya
<a name="resources"></a>

 **Dokumen terkait:** 
+  [AWS Auto Scaling](https://aws.amazon.com/autoscaling/) 
+  [Penjadwal Instans AWS](https://aws.amazon.com/answers/infrastructure-management/instance-scheduler/) 
+  [Mulai Menggunakan Amazon EC2 Auto Scaling](https://docs.aws.amazon.com/autoscaling/ec2/userguide/GettingStartedTutorial.html) 
+  [Mulai Menggunakan Amazon SQS](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-getting-started.html) 
+  [Penskalaan Terjadwal untuk Amazon EC2 Auto Scaling](https://docs.aws.amazon.com/autoscaling/ec2/userguide/schedule_time.html) 