Alasan untuk Memperhatikan Traefik Bahkan Jika Tidak Menggunakan Kontainer
Hal-Hal yang Diketahui tentang Traefik
- Traefik bertujuan membantu dunia mikroservis.
- Banyak YouTuber berbagi bahwa mereka menggunakan infrastruktur kontainer seperti Docker atau Kubernetes.
- Traefik berjalan sebagai kontainer, dan dengan mount Docker socket ke kontainer Traefik, Anda dapat secara otomatis mendeteksi kontainer lain yang ingin diekspos lewat Traefik.
- Tindakan proxy pada kontainer tertentu dapat dikonfigurasi lewat label.
- Traefik dapat secara otomatis meminta sertifikat TLS dari Let's Encrypt dan membuat layanan langsung dapat digunakan begitu terdeteksi adanya kontainer baru.
Mengapa Traefik Berguna Meski Tidak Menggunakan Kontainer
Miskonsepsi Umum: Tidak Membutuhkan Mesin Kontainer
- Traefik tidak perlu berjalan di mesin kontainer, dan layanan pun tidak perlu berjalan di mesin kontainer.
- Traefik ditulis dengan Golang dan dikompilasi sebagai satu binary eksekusi tunggal.
- Saat berhadapan dengan software yang ditulis dengan Go dan dikompilasi menjadi satu binary, memang terasa sangat menyenangkan.
- Ini membuat deployment mudah dan kontrol tetap penuh.
Miskonsepsi Umum: Mendukung File Konfigurasi
- Jika tidak memakai kontainer, Anda tidak dapat menggunakan label kontainer, tetapi label cukup membingungkan dan sulit dibaca.
- Traefik juga dapat dikonfigurasi lewat file konfigurasi.
- Traefik membagi konfigurasi menjadi konfigurasi "statis" yang berisi provider sertifikat (misalnya: Let's Encrypt) dan entry point (port yang didengarkan Traefik), serta konfigurasi "dinamis" yang berisi router, service, dan middleware.
- Traefik dapat mendengarkan event filesystem dan melakukan hot reload pada bagian dinamis.
Dokumentasi yang Baik
- Semua konsep dasar Traefik dijelaskan dengan jelas.
- Pada awal halaman terkait, terdapat contoh konfigurasi untuk metode konfigurasi instans yang dipilih.
- Dokumennya mencakup sebagian besar kebutuhan.
- Sidebar-nya membantu.
Traefik Terlihat Kuat dan Dirancang dengan Baik
- Traefik memberi peringatan ketika konfigurasi terasa tidak logis, dan saya belum melihat masalah acak.
- Traefik sepertinya tidak banyak mencatat log secara bawaan, namun cara kerja permintaan menjadi mudah dipahami sehingga Anda bisa langsung mulai tanpa rasa frustrasi.
Fitur yang Sangat Disukai
TLS Passthrough dan Protokol PROXY
- Traefik mendukung TLS passthrough dan protokol PROXY dari HAProxy (masuk dan keluar).
- TLS passthrough berarti dapat meneruskan traffic ke layanan web yang menyediakan sertifikat TLS-nya sendiri.
- Anda dapat meminta sertifikat ke Let's Encrypt langsung dari layanan tanpa menghentikan TLS di proxy.
- Protokol PROXY adalah cara mengirim informasi yang hilang saat user pertama kali mencapai proxy dengan lebih aman.
- Protokol PROXY juga harus didukung oleh layanan target; untuk Apache2 dan Nginx (dan karena itu PHP), hal ini didukung, dan daftar layanan yang mendukung protokol ini terus bertambah.
Kekurangan Saat Menggunakan Traefik
Autentikasi
- Di NGINX, Vouch Proxy digunakan untuk mengamankan layanan tertentu memakai Azure AD.
- Traefik mendukung ForwardAuth yang mirip dengan autentikasi NGINX, tetapi Vouch Proxy belum berfungsi di Traefik.
- Anda dapat melakukan rollout instance Keycloak, mengintegrasikannya dengan AAD, lalu menggunakannya untuk ForwardAuth, tetapi Anda harus menyiapkan dan menjaga instance Keycloak tersebut tetap aman dan terbarui terlebih dahulu.
traefik-forward-auth sering direkomendasikan, tetapi pembaruan terakhirnya terjadi pada Juni 2020, pengembangnya menghilang dari GitHub, dan dependensinya perlu diperbarui.
- Pernah punya pengalaman buruk sebelumnya dengan
oauth2-proxy.
- HTTP/2/3, timeout, ukuran body, dan WebSocket perlu dikonfigurasi di setiap proxy di antara user dan layanan, sehingga proxying terasa sangat rawan kesalahan.
- Karena Traefik ForwardAuth terlihat sederhana, maka perlu membuat alat sederhana sendiri untuk integrasi AAD atau melakukan fork pada
traefik-forward-auth, mengaudit, lalu memperbarui dependensinya.
Pemblokiran User-Agent dan Alamat IP
- Saya tidak ingin archive.org mengarsipkan layanan internal.
- robots.txt dan header serupa tidak efektif untuk mencegah Archive.org, jadi cara satu-satunya untuk memblokir crawler adalah memblokir user-agent
archive.org_bot atau memblokir range IP.
- Di Traefik, pemblokiran user-agent atau IP hanya bisa dilakukan melalui plugin pihak ketiga.
- Plugin pihak ketiga tidak saya suka karena harus selalu dipertimbangkan saat update dan bisa menimbulkan kerentanan keamanan.
- Dengan middleware IPAllowList, Anda bisa memblokir IP dan mengizinkan semua IP lain kecuali yang diblokir.
- Anda dapat menghitung range IP-nya; ini tidak terlalu buruk dibanding memblokir satu per satu, tetapi karena hanya bisa melihat sisa rentang, Anda tak bisa melihat dengan tepat subnet mana yang diblokir sehingga terasa kurang elegan.
Pendapat GN+
- Traefik tampak sebagai solusi reverse proxy yang menarik, terlepas dari apakah Anda menggunakan kontainer atau tidak. Keunggulannya adalah ditulis dengan Go dan dikompilasi menjadi binary tunggal, sehingga deployment dan pengelolaannya lebih mudah.
- Dokumentasinya juga baik, jadi akan sangat membantu memahami konsep Traefik sekaligus menemukan contoh konfigurasi.
- Fitur lanjutan seperti dukungan TLS passthrough dan PROXY protocol juga terlihat cukup baik.
- Namun di sisi autentikasi sepertinya belum ada solusi yang memuaskan; tampaknya diperlukan upaya membangun server autentikasi sendiri atau memperbaiki proyek yang sudah ada.
- Fitur pemblokiran user-agent atau IP akan lebih baik jika tersedia bawaan, karena di luar plugin eksternal belum ada cara yang elegan.
- Sebagai alternatif NGINX, Traefik tampaknya layak dipertimbangkan. Terutama jika Anda merasa konfigurasi NGINX itu kompleks, kesederhanaan Traefik akan terasa menarik.
1 komentar
Komentar Hacker News