Deployment Portofolio di AWS EC2

Deskripsi Proyek
Proyek ini melibatkan pembangunan website portofolio ini dengan deployment di AWS EC2 menggunakan Ubuntu Server sebagai sistem operasi. Saya mengonfigurasi Apache2 sebagai web server untuk menghosting situs, mengamankannya dengan HTTPS menggunakan DuckDNS untuk domain dinamis dan Certbot untuk sertifikat SSL gratis dari Let's Encrypt. Selain itu, saya membangun VM kedua untuk monitoring dengan Grafana, Prometheus, dan Loki, di mana Loki digunakan untuk memantau log dari VM web server, memastikan performa dan keamanan sistem terjaga.
Fitur Utama
- Instalasi dan konfigurasi Apache2 sebagai web server di Ubuntu Server.
- Pengaturan HTTPS dengan DuckDNS untuk domain dinamis dan Certbot untuk sertifikat SSL.
- Deployment website portofolio dengan struktur direktori dan file statis.
- Pembuatan VM kedua untuk monitoring dengan Grafana sebagai antarmuka visualisasi.
- Integrasi Prometheus untuk mengumpulkan metrik performa server.
- Penggunaan Loki untuk mengelola dan memantau log dari VM web server.
Teknologi yang Digunakan
- Ubuntu Server: Sistem operasi untuk VM EC2.
- Apache2: Web server untuk menghosting situs portofolio.
- DuckDNS: Layanan domain dinamis untuk mengakses situs.
- Certbot: Alat untuk mengatur sertifikat SSL Let's Encrypt.
- Grafana: Antarmuka untuk visualisasi metrik monitoring.
- Prometheus: Sistem monitoring untuk metrik server.
- Loki: Sistem log agregasi untuk VM web server.
- AWS EC2: Platform cloud untuk deployment VM.
Proses Deployment dan Monitoring
Proses dimulai dengan peluncuran instance EC2 di AWS dengan AMI Ubuntu Server. Saya mengonfigurasi Apache2 dengan perintah `sudo apt install apache2` dan mengatur direktori `/var/www/html` untuk file situs. Untuk HTTPS, saya mengintegrasikan DuckDNS dengan pembaruan IP otomatis dan menggunakan Certbot untuk mengaktifkan sertifikat SSL dengan perintah `sudo certbot --apache`. VM kedua diluncurkan untuk monitoring, di mana Prometheus diatur untuk mengumpulkan metrik seperti CPU, memori, dan lalu lintas jaringan, Grafana digunakan untuk visualisasi dashboard, dan Loki dikonfigurasi untuk mengagregasi log Apache dari VM web server, memungkinkan pemantauan real-time dan deteksi masalah.
Tantangan Teknis
- Konfigurasi DuckDNS: Mensinkronkan IP publik dengan domain DuckDNS secara otomatis.
- Sertifikat SSL: Memastikan proses Certbot berjalan lancar dengan pembaruan otomatis.
- Integrasi Prometheus: Menyiapkan eksportir Node Exporter untuk metrik server.
- Konfigurasi Loki: Menghubungkan Loki dengan log Apache dan memastikan kompatibilitas dengan Grafana.
- Keamanan VM: Mengamankan instance EC2 dengan firewall dan pembatasan akses SSH.
Hasil dan Dampak
Website portofolio ini berhasil dideploy dengan Apache2 dan diamankan menggunakan HTTPS, memastikan enkripsi data dan kepercayaan pengguna. Monitoring dengan Grafana menampilkan metrik real-time seperti penggunaan CPU (rata-rata 10-15%), memori (stabil di 50%), dan lalu lintas jaringan, sementara Loki memungkinkan analisis log untuk mendeteksi error server. Proyek ini meningkatkan pemahaman saya tentang deployment cloud, keamanan web, dan monitoring sistem, serta memberikan platform yang andal untuk memamerkan portofolio saya.
Sebelumnya, website ini dihosting menggunakan layanan AWS EC2 dengan domain dinamis webantoku.duckdns.org. Namun, karena keterbatasan penggunaan free tier dari AWS dan potensi tagihan tambahan, saya memutuskan untuk memindahkan deployment ke Netlify yang terintegrasi langsung dengan GitHub. Pendekatan ini lebih efisien, mendukung prinsip CI/CD, dan memberikan kemudahan dalam manajemen versi serta pembaruan konten secara otomatis melalui Git.

Konfigurasi http dan https.

Hasil certbot.

Dashboard Grafana menampilkan metrik server.

Visualisasi log Apache di Loki.