Monitoring Resource dengan Amazon CloudWatch

Subscribe Dengan Account Google Untuk Membaca Artikel Tanpa Iklan
Monitoring Resource dengan Amazon CloudWatch

Rasa-rasanya bagi Anda yang tiap hari bekerja di belakang layar, sudah tidak asing lagi dengan Amazon CloudWatch.

Saat mengoperasikan situs web seperti ecommerce dan lainya, dan menghosting aplikasinya di AWS. Anda mungkin memiliki pertanyaan seperti berikut :


  • Berapa banyak orang yang mengunjungi APP saya dari hari ke hari?

  • Bagaimana cara melacak jumlah pengunjung dari waktu ke waktu?

  • Bagaimana saya tahu jika APP mengalami masalah kinerja ?

  • Apa yang terjadi jika instance Amazon Elastic Compute Cloud (EC2) saya kehabisan kapasitas?

  • Apakah saya akan diberi tahu jika situs APP saya down?


Anda memerlukan cara untuk mengumpulkan dan menganalisis data tentang aktifitas dan penggunaan resource.

Tindakan mengumpulkan, menganalisis, dan menggunakan data untuk membantu mengambil keputusan atau menjawab pertanyaan tentang resource dan sistem TI Anda disebut Monitoring.

Monitoring memungkinkan Anda untuk mengetahui denyut nadi sistem Anda secara real-time dan menjawab pertanyaan-pertanyaan di atas.

Anda dapat menggunakan data yang Anda kumpulkan untuk mengawasi masalah operasional yang disebabkan oleh peristiwa seperti penggunaan resource yang berlebihan, kekurangan aplikasi, kesalahan konfigurasi, atau peristiwa yang berhubungan dengan keamanan.

Anggaplah data yang dikumpulkan melalui monitoring sebagai output dari sistem, atau metrik.

1) Gunakan Metrik untuk Memecahkan Masalah


Resource Anda di AWS semuanya menghasilkan berbagai bentuk data yang mungkin ingin Anda kumpulkan.

Metrik yang dikumpulkan dan dianalisis dari waktu ke waktu menjadi statistik.

Seperti contoh pemanfaatan CPU rata-rata dari waktu ke waktu yang menunjukkan lonjakan pada jam ke XX.

Salah satu cara untuk mengevaluasi kesehatan instance Amazon EC2 adalah melalui pemanfaatan CPU.

Secara umum, jika instance EC2 memiliki utilisasi CPU yang tinggi, ini bisa berarti banjir request.

Atau, hal ini dapat mencerminkan proses yang tidak berjalan semestinya sehingga menghabiskan terlalu banyak CPU.

Saat menganalisis pemanfaatan CPU, ambil proses yang melebihi ambang batas tertentu untuk jangka waktu yang tidak biasa.

Gunakan kejadian abnormal tersebut sebagai isyarat untuk menyelesaikan masalah secara manual atau otomatis melalui tindakan seperti menskalakan instance.

Ini adalah salah satu contoh metrik. Contoh metrik lain yang dimiliki instance EC2 adalah pemanfaatan network, kinerja disk, pemanfaatan memori, dan log yang dibuat oleh aplikasi yang berjalan di atas EC2.

2) Ketahui Berbagai Jenis Metrik


Resource yang berbeda di AWS menciptakan jenis metrik yang berbeda pula.

Bucket Amazon Simple Storage Service (S3) tidak akan memiliki pemanfaatan CPU seperti halnya instance EC2.

Sebaliknya, S3 membuat metrik yang terkait dengan objek yang disimpan dalam bucket seperti ukuran keseluruhan, atau jumlah objek dalam bucket.

S3 juga memiliki metrik yang terkait dengan request yang dibuat ke bucket seperti membaca atau menulis objek.

Amazon Relational Database Service (RDS) membuat metrik seperti koneksi database, pemanfaatan CPU dari sebuah instance, atau konsumsi ruang disk.

Ini bukan daftar lengkap untuk semua layanan yang disebutkan, tetapi Anda bisa melihat bagaimana resource yang berbeda menciptakan metrik yang berbeda.

Anda mungkin tertarik dengan berbagai macam metrik tergantung pada jenis sumber daya yang Anda gunakan, tujuan yang Anda miliki, atau jenis pertanyaan yang ingin Anda jawab.

3) Memahami Manfaat Monitoring


Monitoring memberi Anda visibilitas ke dalam resource Anda, tetapi pertanyaannya sekarang adalah, "Mengapa itu penting?"

Berikut ini adalah beberapa manfaat dari monitoring.

A) Menanggapi masalah operasional secara proaktif sebelum user menyadarinya.

Merupakan praktik yang buruk untuk menunggu user memberi tahu Anda bahwa aplikasi Anda mengalami gangguan.

Melalui monitoring, Anda dapat mengawasi metrik seperti tingkat respons kesalahan atau latensi request, dari waktu ke waktu, yang membantu memberi sinyal bahwa kegagalan sistem akan terjadi.

Hal ini memungkinkan Anda melakukan tindakan secara otomatis atau manual untuk mencegah timeout terjadi, memperbaiki masalah sebelum user menyadarinya.

B) Meningkatkan kinerja dan keandalan service.

Memantau berbagai resource yang memberi Anda gambaran lengkap tentang bagaimana kebiasan sebuah sistem bekerja.

Monitoring, jika dilakukan dengan baik, dapat menjelaskan kenapa service mengalami kegagalan dan Anda bisa segera tau bahwa mungkin arsitektur Anda tidak efisien.

Hal ini memungkinkan Anda untuk segera melakukan perbaikan pada sistem untuk mengoptimalkan kinerja menjadi lebih baik lagi.

C) Mengenali ancaman.

Ketika Anda memantau resource, events, dan sistem dari waktu ke waktu, Anda menciptakan apa yang disebut baseline.

Baseline mendefinisikan aktivitas apa yang normal. Dengan menggunakan baseline, Anda dapat menemukan anomali seperti lonjakan lalu lintas yang tidak biasa atau alamat IP yang tidak biasa yang mengakses resource Anda.

Ketika anomali terjadi, peringatan dapat dikirim atau tindakan dapat dilakukan untuk menyelidikinya dengan cepat.

D) Membuat keputusan berdasarkan data untuk bisnis Anda.

Monitoring tidak hanya untuk mengawasi kesehatan operasional TI. Ini juga membantu mendorong keputusan bisnis.

Sebagai contoh, katakanlah Anda meluncurkan fitur baru untuk aplikasi P2P, dan ingin mengetahui apakah fitur tersebut digunakan.

Anda bisa mengumpulkan metrik untuk melihat jumlah pengguna yang menggunakan fitur baru tersebut.

Dengan temuan Anda, Anda dapat memutuskan apakah akan menginvestasikan lebih banyak waktu untuk meningkatkan fitur baru tersebut atau tidak.

E) Menciptakan solusi yang lebih hemat biaya.

Melalui monitoring, Anda dapat melihat resource yang kurang dimanfaatkan dan menyesuaikannya dengan kebutuhan Anda.

Hal ini membantu Anda mengoptimalkan biaya dan memastikan Anda tidak mengeluarkan lebih banyak uang.

4) Aktifkan Visibilitas


Resource di AWS menghasilkan data yang dapat Anda pantau melalui metrik, log, lalu lintas network, events, dan lainnya.

Data ini berasal dari komponen yang sifatnya terdistribusi, yang dapat menyebabkan kesulitan dalam mengumpulkan data yang Anda butuhkan jika Anda tidak memiliki tempat terpusat untuk meninjau semuanya.

AWS telah melakukannya untuk Anda dengan service yang disebut Amazon CloudWatch.

Amazon CloudWatch adalah monitoring dan observability service yang mengumpulkan data seperti yang disebutkan dalam artikel ini.

CloudWatch memberikan akses yang dapat di sinkrokan ke dalam aplikasi Anda, dan memungkinkan Anda merespons perubahan kinerja di seluruh sistem, mengoptimalkan pemanfaatan resource, dan mendapatkan gambaran terpadu tentang keadaan sistem yang menyeluruh.

Hal ini sangat penting, karena Anda akan punya banyak waktu mengembangkan bisnis, meningkatkan performa sistem dan masih banyak lagi yang bisa dilakukan.

Anda dapat menggunakan CloudWatch untuk:


  • Mendeteksi perilaku anomali sistem.

  • Mengatur alarm untuk memperingatkan Anda ketika ada sesuatu yang tidak beres.

  • Memvisualisasikan log dan metrik dengan AWS Management Console.

  • Mengambil tindakan otomatis seperti penskalaan.

  • Memecahkan masalah.

  • Temukan wawasan untuk menjaga aplikasi Anda tetap sehat.


Sumber referensi: Amazon CloudWatch.
Artikel lainya:














  1. Flask Async Without Await - Part. 7 Belajar Flask Framework Untuk Pemula

  2. Hello world, membangun microservice dengan FastAPI

  3. FastAPI APIRouter, Membangun microservice dngan FastAPI

  4. Mini Wallet Bagian 1 - Django Template dan Static File

  5. Mini Wallet Bagian 2 - Django Template Base HTML

  6. Mini Wallet Bagian 3 - Dajngo Model dan Koneksi Database MySQL

  7. Tutorial bassic Mysql bagian 1 - Create Read Update Delete

  8. Tutorial bassic Mysql bagian 2 - Inner, Left, Right, Cross Join

  9. Tutorial bassic Mysql bagian 3 - Filtering Data

  10. Tutorial bassic Mysql bagian 4 - Grouping Data 

  11. Tutorial bassic Mysql bagian 5 - Operator dan Clausa

  12. Tutorial bassic Mysql bagian 6 - Replace Statement

  13. Tutorial bassic Mysql bagian 7 - Constraint Data

  14. Tutorial bassic Mysql bagian 8 - Mengubah Struktur tabel

  15. Tutorial bassic Mysql bagian 9 - Subquery

  16. Tutorial bassic Mysql bagian 10 - Virtual Tabel

  17. Tutorial bassic Mysql bagian 11 - Control Flow Function

  18. Membuat service OTP bagian 1 - OTP dan PIN

  19. Membuat service OTP bagian 2 - Sequence Diagram

  20. Membuat service OTP bagian 3 - Model dan Serializer

  21. Membuat  service OTP bagian 4 - Validate OTP

  22. Membuat  service OTP bagian 5 - Api Client Service

  23. Membuat service user login bagian 1 - Konfigurasi Database

  24. Membuat service user login bagian 2 - Serializer dan JWT

  25. Membuat CRUD service product bagian 1 - Models Product

  26. Membuat CRUD service product bagian 2 - Function Serializer

  27. Membuat CRUD service product bagian 3 - Api Client Service

  28. Membaut CRUD service product bagian 4 - Auth User

  29. Membuat CRUD service product bagian 5 - TDR File Log

  30. Membuat CRUD service product bagian 6 - Unit Test

  31. Membuat service user register bagian 1 - Django

  32. Membuat Service user register bagian 2 - Django

  33. Membuat service filter dan download file CSV di django

  34. Django upload file menggunakan FileSystemStorage