(0275) 2974 127
Perkembangan teknologi cloud computing membuat perusahaan tidak lagi harus menyediakan kapasitas server dalam jumlah besar sejak awal. Resource komputasi dapat ditambah ketika kebutuhan meningkat dan dikurangi kembali ketika beban kerja menurun. Kemampuan inilah yang dikenal sebagai elastic computing atau komputasi elastis.
Elastic computing menjadi salah satu konsep penting dalam cloud computing karena memungkinkan infrastruktur menyesuaikan kapasitas berdasarkan kebutuhan workload. Dengan pendekatan ini, perusahaan dapat menghindari penyediaan resource secara berlebihan sekaligus tetap menjaga performa aplikasi ketika terjadi peningkatan trafik.
Lalu, apa sebenarnya yang dimaksud dengan elastic computing? Bagaimana cara kerjanya, apa manfaatnya, dan apa perbedaannya dengan scalability?
Elastic computing adalah kemampuan sistem komputasi berbasis cloud untuk menambah atau mengurangi resource secara dinamis sesuai dengan perubahan beban kerja atau kebutuhan pengguna.
Ketika workload meningkat, sistem dapat menambahkan kapasitas komputasi. Sebaliknya, ketika workload menurun, resource yang tidak lagi diperlukan dapat dikurangi sehingga kapasitas kembali ke tingkat yang lebih rendah.
Google Cloud menjelaskan cloud elasticity sebagai kemampuan sistem cloud untuk secara otomatis menyesuaikan resource komputasi dengan workload yang berubah. Konsep ini dapat mencakup penyesuaian processing power, memory, storage, maupun jumlah instance.
Sementara itu, AWS mendefinisikan elasticity sebagai kemampuan untuk memperoleh resource ketika dibutuhkan dan melepaskannya kembali ketika sudah tidak diperlukan. Dalam lingkungan cloud, proses tersebut idealnya dilakukan secara otomatis.
Sebagai contoh, sebuah website e-commerce biasanya memiliki trafik yang lebih tinggi ketika sedang mengadakan promo besar. Jika menggunakan elastic computing, kapasitas server dapat ditingkatkan untuk menghadapi lonjakan pengunjung. Setelah trafik kembali normal, kapasitas tersebut dapat dikurangi.
Dengan demikian, elastic computing memungkinkan organisasi menggunakan resource secara lebih fleksibel tanpa harus mempertahankan kapasitas maksimum sepanjang waktu.
Elastic computing sangat erat kaitannya dengan cloud computing. Salah satu karakteristik penting cloud adalah kemampuan menyediakan resource IT sesuai kebutuhan dan memungkinkan kapasitas dinaikkan maupun diturunkan ketika kebutuhan berubah.
Pada infrastruktur tradisional, perusahaan biasanya harus membeli atau menyediakan server fisik terlebih dahulu. Jika kapasitas server tidak mencukupi ketika trafik meningkat, penambahan hardware membutuhkan waktu dan biaya.
Cloud menawarkan pendekatan yang lebih fleksibel. Resource dapat disediakan sesuai kebutuhan melalui layanan cloud dan kapasitasnya dapat disesuaikan dengan workload.
Contohnya, perusahaan dapat menjalankan aplikasi menggunakan virtual machine, container, serverless function, atau layanan cloud lainnya. Ketika workload bertambah, resource dapat diperbesar atau jumlah instance dapat ditambah. Ketika workload menurun, resource dapat dikurangi.
Secara sederhana, elastic computing bekerja dengan menyesuaikan supply resource terhadap demand workload.
Prosesnya dapat digambarkan sebagai berikut:
Beban kerja meningkat → sistem mendeteksi perubahan → resource ditambahkan → aplikasi menangani workload lebih besar → beban kerja menurun → resource dikurangi kembali.
Pada implementasi otomatis, proses tersebut biasanya melibatkan beberapa komponen seperti monitoring, scaling policy, autoscaling mechanism, dan resource cloud.
1. Monitoring Beban Kerja
Sistem terlebih dahulu memantau kondisi workload menggunakan metrik tertentu. Beberapa metrik yang dapat digunakan antara lain:
Metrik tersebut digunakan untuk mengetahui apakah aplikasi membutuhkan resource tambahan atau justru memiliki kapasitas yang berlebihan.
2. Menentukan Scaling Policy
Setelah metrik tersedia, administrator atau engineer dapat menentukan aturan scaling, Misalnya “Jika rata-rata penggunaan CPU melebihi 70% selama beberapa menit, tambahkan instance baru” atau “Jika penggunaan CPU turun di bawah 30%, kurangi jumlah instance”. Aturan tersebut dapat disesuaikan dengan karakteristik aplikasi.
3. Menambah Resource
Ketika workload meningkat dan memenuhi kondisi yang ditentukan, sistem dapat menambahkan resource. Penambahan tersebut dapat berupa:
4. Mengurangi Resource
Elastic computing tidak hanya berarti menambah kapasitas. Bagian penting dari elasticity adalah scale down atau pengurangan resource ketika kapasitas tambahan sudah tidak diperlukan. Hal ini penting karena mempertahankan resource berlebih dapat meningkatkan biaya cloud. AWS juga merekomendasikan agar workload menggunakan scaling dinamis untuk menghindari kapasitas yang terlalu besar maupun terlalu kecil.
5. Evaluasi dan Penyesuaian
Scaling policy perlu dievaluasi secara berkala. Jika sistem terlalu cepat melakukan scaling, biaya dapat meningkat. Sebaliknya, jika scaling terlambat, aplikasi dapat mengalami penurunan performa ketika workload meningkat. Karena itu, elastic computing membutuhkan konfigurasi dan pengujian yang sesuai dengan karakteristik workload.
Elastic computing dapat dilakukan melalui beberapa pendekatan. Dua pendekatan yang umum adalah horizontal elasticity dan vertical elasticity.
1. Horizontal Scaling
Horizontal scaling atau scale out/scale in dilakukan dengan menambah atau mengurangi jumlah mesin atau instance.
Contohnya, sebuah aplikasi awalnya menggunakan 2 server. Ketika trafik meningkat, sistem menambah menjadi 5 server. Ketika trafik kembali turun, jumlah server dapat dikurangi menjadi 2 atau jumlah minimum yang telah ditentukan. Pendekatan ini banyak digunakan pada aplikasi yang dapat berjalan secara terdistribusi di beberapa instance.
2. Vertical Scaling
Vertical scaling atau scale up/scale down dilakukan dengan menambah atau mengurangi resource pada satu mesin. Misalnya, sebuah virtual machine awalnya memiliki:
Kemudian resource tersebut ditingkatkan menjadi:
Ketika kebutuhan menurun, resource dapat dikurangi kembali jika layanan cloud dan arsitekturnya mendukung.
| Aspek | Horizontal Scaling | Vertical Scaling |
|---|---|---|
| Cara kerja | Menambah atau mengurangi jumlah instance | Menambah atau mengurangi kapasitas satu instance |
| Istilah | Scale out / scale in | Scale up / scale down |
| Resource | Jumlah server atau instance | CPU, RAM, atau resource mesin |
| Cocok untuk | Aplikasi terdistribusi | Workload yang membutuhkan mesin lebih besar |
| Kompleksitas | Membutuhkan aplikasi yang mendukung beberapa instance | Relatif lebih sederhana pada workload tertentu |
| Contoh | 2 server menjadi 5 server | 4 GB RAM menjadi 8 GB RAM |
Pemilihan metode scaling bergantung pada arsitektur aplikasi, karakteristik workload, dan kemampuan layanan cloud yang digunakan.
Elasticity dan scalability sering digunakan secara bergantian, padahal keduanya memiliki konsep yang berbeda. Scalability menggambarkan kemampuan sistem untuk menangani peningkatan workload dengan menambah kapasitas. Sementara elasticity lebih menekankan kemampuan sistem untuk secara dinamis menyesuaikan resource terhadap perubahan workload, termasuk menambah dan mengurangi resource. Perbedaannya dapat dilihat pada tabel berikut.
| Aspek | Elasticity | Scalability |
|---|---|---|
| Fokus | Penyesuaian resource terhadap perubahan demand | Kemampuan menangani pertumbuhan workload |
| Sifat | Dinamis | Dapat bersifat terencana maupun dinamis |
| Scale down | Bagian penting dari elasticity | Tidak selalu menjadi fokus utama |
| Otomatisasi | Umumnya menggunakan otomatisasi | Tidak selalu otomatis |
| Tujuan | Menyesuaikan kapasitas dengan kebutuhan saat ini | Memastikan sistem mampu menangani pertumbuhan |
| Contoh | Server otomatis bertambah saat trafik naik dan berkurang saat trafik turun | Infrastruktur diperbesar untuk mendukung pertumbuhan jumlah pengguna |
Elastic computing dapat diterapkan pada berbagai jenis workload.
Website e-commerce biasanya mengalami perubahan trafik yang cukup besar. Saat promosi berlangsung, jumlah pengunjung dapat meningkat secara drastis. Sistem elastic computing dapat menambah instance aplikasi untuk menangani trafik tersebut. Setelah promosi selesai dan jumlah pengunjung kembali normal, instance tambahan dapat dikurangi.
Platform streaming dapat mengalami perubahan jumlah pengguna berdasarkan waktu dan jenis konten yang sedang populer. Ketika permintaan meningkat, kapasitas komputasi dapat ditingkatkan untuk membantu mempertahankan performa layanan.
Aplikasi yang jumlah penggunanya sulit diprediksi dapat memperoleh manfaat besar dari elasticity. Daripada menyediakan kapasitas maksimum sepanjang waktu, perusahaan dapat menggunakan kapasitas yang lebih fleksibel dan menyesuaikannya dengan kebutuhan.
Pekerjaan pemrosesan data terkadang memiliki workload yang bersifat periodik. Misalnya, perusahaan perlu memproses data dalam jumlah besar setiap malam. Resource komputasi dapat ditingkatkan selama proses berlangsung dan dikurangi setelah pekerjaan selesai.
Beberapa layanan serverless memiliki kemampuan scaling yang sudah terintegrasi. AWS, misalnya, menjelaskan bahwa AWS Lambda memiliki elastic scalability sehingga kapasitas eksekusi dapat menyesuaikan jumlah request secara otomatis.
Penerapan elastic computing dapat memberikan berbagai keuntungan bagi organisasi.
1. Mengoptimalkan Biaya
Salah satu manfaat utama elasticity adalah penggunaan resource yang lebih sesuai dengan kebutuhan. Perusahaan tidak harus mempertahankan kapasitas besar ketika workload sedang rendah. Ketika menggunakan model cloud dengan pembayaran berdasarkan penggunaan, pengurangan resource yang tidak diperlukan dapat membantu mengurangi pengeluaran. Namun, elasticity bukan berarti biaya cloud otomatis selalu rendah. Konfigurasi scaling yang tidak tepat tetap dapat menyebabkan penggunaan resource berlebihan.
2. Menjaga Performa Aplikasi
Ketika trafik meningkat, resource tambahan dapat membantu aplikasi mempertahankan kapasitas pemrosesan. Hal ini penting untuk aplikasi yang harus tetap responsif ketika jumlah pengguna meningkat secara tiba-tiba.
3. Mengurangi Risiko Over-Provisioning
Over-provisioning terjadi ketika organisasi menyediakan resource jauh lebih besar daripada kebutuhan sebenarnya. Elastic computing membantu mengurangi kondisi tersebut karena kapasitas dapat disesuaikan berdasarkan kebutuhan workload.
4. Meningkatkan Fleksibilitas Infrastruktur
Perusahaan dapat lebih mudah menghadapi perubahan kebutuhan bisnis. Ketika aplikasi berkembang, kapasitas dapat ditingkatkan. Ketika workload berkurang, kapasitas dapat diturunkan kembali.
5. Mengurangi Pengelolaan Manual
Dengan autoscaling, proses penambahan dan pengurangan resource dapat dilakukan berdasarkan aturan yang telah ditentukan. Hal ini mengurangi kebutuhan engineer untuk terus melakukan scaling secara manual.
6. Mendukung High Availability
Elasticity dapat membantu mempertahankan ketersediaan aplikasi ketika workload mengalami lonjakan, terutama jika scaling dikombinasikan dengan load balancing dan arsitektur yang memiliki redundansi. Google Cloud juga mencontohkan penggunaan managed instance groups, autoscaler, dan load balancer sebagai bagian dari pembangunan sistem yang dapat beradaptasi terhadap perubahan workload.
Meskipun memberikan banyak keuntungan, elastic computing bukan berarti tanpa tantangan.
1. Konfigurasi Autoscaling yang Tidak Tepat
Jika threshold terlalu rendah, sistem dapat terlalu sering melakukan scaling. Sebaliknya, jika threshold terlalu tinggi, scaling mungkin terlambat dilakukan. Keduanya dapat memberikan dampak terhadap biaya maupun performa.
2. Biaya Cloud Tetap Perlu Dikontrol
Resource yang dapat bertambah secara otomatis juga berpotensi menyebabkan tagihan meningkat jika scaling tidak memiliki batas yang jelas. Karena itu, konfigurasi minimum dan maksimum instance serta monitoring biaya tetap diperlukan.
3. Tidak Semua Aplikasi Mudah Di-scale
Beberapa aplikasi memiliki ketergantungan terhadap state, session, database, lisensi, atau proses inisialisasi yang membuat scaling lebih kompleks. Pentingnya mengidentifikasi batasan aplikasi seperti session, waktu inisialisasi, dan licensing sebelum menerapkan elasticity.
4. Waktu Provisioning
Tidak semua resource dapat tersedia secara instan. Jika proses pembuatan instance membutuhkan waktu cukup lama, sistem mungkin terlambat merespons lonjakan trafik yang terjadi secara tiba-tiba. Karena itu, aplikasi tertentu mungkin perlu mempertahankan kapasitas minimum sebagai cadangan.
5. Pengujian Diperlukan
Elasticity harus diuji dalam kondisi scale up maupun scale down. Tujuannya untuk memastikan aplikasi tetap berjalan dengan baik ketika resource bertambah maupun ketika kapasitas dikurangi.
Perbedaan pendekatan elastic computing dengan infrastruktur tradisional dapat dilihat berikut ini.
| Aspek | Elastic Computing | Infrastruktur Tradisional |
|---|---|---|
| Penyediaan resource | Dinamis | Umumnya statis |
| Penyesuaian kapasitas | Dapat otomatis | Sering membutuhkan intervensi manual |
| Penanganan lonjakan trafik | Resource dapat ditambah | Bergantung pada kapasitas hardware yang tersedia |
| Pengurangan kapasitas | Dapat dilakukan ketika kebutuhan turun | Hardware tetap tersedia |
| Investasi hardware | Tidak selalu membutuhkan pembelian hardware sendiri | Membutuhkan pengadaan hardware |
| Fleksibilitas | Tinggi | Relatif lebih terbatas |
| Cocok untuk | Workload yang berubah-ubah | Workload yang relatif stabil |
Perbedaan ini menjadi salah satu alasan elasticity banyak digunakan dalam arsitektur cloud modern.
Elastic computing biasanya tidak berdiri sendiri. Beberapa teknologi dapat digunakan untuk mendukung implementasinya.
Autoscaling
Autoscaling merupakan mekanisme untuk menambah atau mengurangi resource secara otomatis berdasarkan kondisi atau metrik tertentu. Contohnya adalah mekanisme auto scaling untuk virtual machine, container, maupun layanan aplikasi.
Load Balancer
Load balancer membantu mendistribusikan trafik ke beberapa instance aplikasi. Dengan demikian, ketika jumlah instance bertambah, trafik dapat didistribusikan ke resource yang tersedia.
Container
Container dapat membantu aplikasi berjalan secara konsisten pada berbagai environment dan mendukung arsitektur yang dapat diperbanyak ketika workload meningkat.
Kubernetes
Kubernetes menyediakan berbagai mekanisme scaling untuk workload berbasis container, termasuk kemampuan menyesuaikan jumlah pod berdasarkan kondisi tertentu.
Serverless
Pada arsitektur serverless, sebagian pengelolaan infrastruktur dan scaling ditangani oleh penyedia cloud. Model ini dapat mengurangi kebutuhan pengelolaan server secara langsung, meskipun tetap membutuhkan perhatian terhadap konfigurasi, limit, performa, dan biaya.
Penerapan elastic computing sebaiknya tidak hanya berfokus pada penambahan resource. Sistem harus dirancang agar mampu melakukan scaling secara tepat dan aman. Beberapa langkah yang dapat dilakukan antara lain:
1. Identifikasi Workload yang Berubah
Cari workload yang memiliki pola penggunaan tidak stabil atau mengalami lonjakan pada waktu tertentu. Tidak semua aplikasi membutuhkan elasticity dengan tingkat yang sama.
2. Tentukan Metrik Scaling
Pilih metrik yang relevan dengan aplikasi. Misalnya CPU utilization untuk aplikasi tertentu, tetapi queue length atau jumlah request mungkin lebih relevan untuk workload lainnya.
3. Tentukan Batas Minimum dan Maksimum
Tentukan kapasitas minimum yang harus selalu tersedia serta kapasitas maksimum yang boleh digunakan. Langkah ini membantu menjaga keseimbangan antara performa dan biaya.
4. Gunakan Autoscaling
Jika memungkinkan, gunakan fitur autoscaling dari platform cloud yang digunakan.
5. Integrasikan dengan Load Balancer
Untuk aplikasi yang menggunakan banyak instance, load balancer dapat membantu mendistribusikan trafik ke resource yang tersedia.
6. Monitor Performa dan Biaya
Setelah elasticity diterapkan, lakukan monitoring terhadap:
Monitoring diperlukan agar organisasi dapat mengetahui apakah scaling berjalan sesuai tujuan.
7. Lakukan Pengujian
Uji kondisi normal, lonjakan trafik, dan penurunan workload. Pastikan sistem dapat melakukan scale out maupun scale in tanpa menyebabkan gangguan terhadap aplikasi.
Agar elastic computing dapat memberikan hasil optimal, beberapa praktik yang dapat diterapkan antara lain:
AWS juga merekomendasikan pengujian elasticity baik ketika kapasitas meningkat maupun ketika kapasitas dikurangi untuk memastikan workload tetap memenuhi kebutuhan performa dan efisiensi.
Elastic computing sangat cocok untuk aplikasi atau workload yang memiliki perubahan kebutuhan resource. Beberapa kondisi yang cocok antara lain:
| Kondisi | Alasan |
|---|---|
| Trafik website tidak stabil | Kapasitas dapat mengikuti perubahan jumlah pengunjung |
| Aplikasi e-commerce | Dapat menghadapi lonjakan trafik saat promo |
| Aplikasi dengan pengguna musiman | Resource dapat ditingkatkan pada periode tertentu |
| Data processing berkala | Kapasitas dapat ditingkatkan saat proses berjalan |
| Aplikasi dengan pertumbuhan cepat | Infrastruktur dapat mengikuti perkembangan workload |
| Workload yang sulit diprediksi | Resource dapat disesuaikan secara dinamis |
| Aplikasi 24/7 dengan pola trafik berubah | Membantu menghindari kapasitas berlebih saat trafik rendah |
Sebaliknya, jika workload sangat stabil dan kebutuhan resource hampir tidak berubah, penerapan elasticity yang kompleks mungkin tidak memberikan manfaat yang signifikan.
Bayangkan sebuah toko online menggunakan dua server untuk menjalankan website. Pada hari biasa, dua server sudah cukup untuk menangani pengunjung.
Kemudian perusahaan mengadakan promo besar. Jumlah pengunjung meningkat beberapa kali lipat sehingga penggunaan CPU server ikut meningkat. Sistem autoscaling mendeteksi kondisi tersebut dan menambahkan tiga server baru. Dengan demikian, aplikasi kini berjalan menggunakan lima server.
Setelah promo berakhir, jumlah pengunjung kembali normal. Sistem kemudian mengurangi server tambahan sehingga hanya dua server yang tetap berjalan. Secara sederhana:
Hari biasa → 2 server
Promo berlangsung → 5 server
Promo selesai → 2 server
Inilah gambaran sederhana bagaimana elastic computing bekerja. Resource mengikuti kebutuhan sehingga perusahaan tidak harus menyediakan lima server sepanjang waktu.
Elastic computing dan autoscaling berkaitan erat, tetapi bukan istilah yang sepenuhnya sama. Elastic computing adalah konsep atau kemampuan sistem untuk menyesuaikan resource dengan perubahan workload, sedangkan autoscaling adalah salah satu mekanisme yang dapat digunakan untuk mewujudkan kemampuan tersebut secara otomatis.
Dengan kata lain, autoscaling dapat menjadi bagian dari implementasi elastic computing. Contohnya, aplikasi menggunakan autoscaling untuk menambah instance ketika CPU mencapai threshold tertentu dan mengurangi instance ketika workload kembali turun.
Elastic computing juga memiliki hubungan dengan FinOps, terutama dalam pengelolaan biaya cloud. Resource yang dapat bertambah dan berkurang secara dinamis memberikan peluang untuk menggunakan kapasitas secara lebih efisien. Namun, scaling otomatis yang tidak dikontrol juga dapat meningkatkan pengeluaran. Karena itu, organisasi perlu menggabungkan elasticity dengan praktik pengelolaan biaya cloud. Misalnya:
Dengan pendekatan tersebut, elastic computing tidak hanya membantu menjaga performa aplikasi, tetapi juga mendukung efisiensi penggunaan cloud.
Elastic computing adalah kemampuan sistem cloud untuk menyesuaikan kapasitas resource secara dinamis berdasarkan perubahan workload. Ketika kebutuhan meningkat, resource dapat ditambahkan, sedangkan ketika kebutuhan menurun, kapasitas dapat dikurangi kembali.
Konsep ini berbeda dengan scalability meskipun keduanya saling berkaitan. Scalability lebih menekankan kemampuan sistem untuk menangani pertumbuhan workload, sedangkan elasticity menekankan kemampuan menyesuaikan kapasitas secara dinamis, termasuk scale up dan scale down.
Dengan dukungan autoscaling, load balancer, container, Kubernetes, maupun serverless, elastic computing dapat membantu organisasi menjaga performa aplikasi, mengurangi over-provisioning, meningkatkan fleksibilitas infrastruktur, serta menggunakan resource cloud secara lebih efisien.
Bagi Anda yang ingin mempelajari lebih banyak tentang cloud computing, hosting, server, DevOps, cybersecurity, dan perkembangan teknologi digital lainnya, Blog Hosteko dapat menjadi sumber informasi yang relevan dan mudah dipahami. Hosteko juga menyediakan layanan domain dan hosting untuk mendukung kebutuhan website dan infrastruktur digital.
Setelah mengetahui penyebab Windows belum aktif dan jenis lisensi yang tersedia, langkah berikutnya adalah melakukan…
Dalam dunia cybersecurity, mengandalkan sistem keamanan yang sudah terpasang saja belum tentu cukup. Organisasi perlu…
Setelah memahami bahwa aktivasi Windows membutuhkan lisensi digital atau product key yang valid, hal berikutnya…
Di era digital, berbagai aplikasi dan perangkat menghasilkan data secara terus-menerus. Data tersebut tidak hanya…
Salah satu pertanyaan yang sering muncul ketika Windows menampilkan notifikasi "Activate Windows" adalah apakah pengguna…
Penggunaan layanan cloud semakin menjadi bagian penting dalam operasional perusahaan. Aplikasi seperti SaaS, cloud storage,…