Endpoints
6 min read
Endpoints : Direct Connection to Cloud #

Endpoint adalah fitur di Jagoan Cloud yang memungkinkan Kamu mengekspos port tertentu di dalam container agar bisa diakses dari luar tanpa perlu menambahkan Public IP. Platform ini akan secara otomatis melakukan pemetaan port TCP/UDP yang diperlukan, sehingga Kamu bisa mengakses container melalui Shared Load Balancer (SLB) secara langsung. Fitur ini sangat berguna untuk menghubungkan aplikasi ke tool pihak ketiga (seperti database client, IDE, dsb), mengelola database secara jarak jauh, melakukan deployment langsung dari IDE, menjalankan beberapa salinan proyek di satu instance, dan mengakses admin panel tanpa harus pakai Public IP. Dengan memanfaatkan fitur endpoint, Kamu bisa menyederhanakan alur kerja dan mengurangi biaya, karena tidak harus membayar untuk Public IP.
Manage Endpoints #
Untuk mengelola endpoint, buka tab Settings > Endpoints pada environment Kamu. Di sini, Kamu bisa melihat daftar semua endpoint yang ada dan mengelolanya sesuai kebutuhan, seperti menambahkan endpoint baru dan/atau mengedit endpoint yang sudah ada.

Add Endpoints #
Untuk membuat endpoint baru, klik tombol Add di panel alat bagian atas, lalu isi formulir Add Endpoint dengan data yang relevan berikut :
- Node : Pilih salah satu node dari environment kamu untuk dibuatkan endpoint
- Name : Ketik nama endpoint atau pilih salah satu template yang sudah tersedia (lihat daftar di hint yang muncul)
- Private Port : Tentukan port lokal pada node yang ingin dipetakan
- Protocol : Pilih protokol yang digunakan, yaitu TCP atau UDP

Klik Add jika sudah selesai.
š NOTE
Untuk mempermudah, kami sudah menyiapkan daftar template endpoint yang sudah dikonfigurasi sebelumnya yang bisa kamu gunakan untuk layanan-layanan umum.
| Endpoint Name | Private Port |
|---|---|
| FTP | 21 |
| SSH | 22 |
| SMTP | 25 |
| DNS-UDP | 53 |
| DNS-TCP | 53 |
| HTTP | 80 |
| POP3 | 110 |
| IMAP | 143 |
| LDAP | 389 |
| HTTPS | 443 |
| SMTPS | 587 |
| IMAPS | 993 |
| POP3S | 995 |
| Docker Swarm | 2377 |
| MySQL | 3306 |
| Remote Desktop | 3389 |
| Docker Swarm Overlay Network | 4789 |
| PostgreSQL | 5432 |
| RabbitMQ | 5672 |
| CouchDB | 5984 |
| PowerShell | 5986 |
| Redis | 6379 |
| CouchDB-HTTPS | 6984 |
| Cassandra-JMX | 7199 |
| Neo4J | 7474 |
| Docker Swarm Discovery-TCP | 7946 |
| Docker Swarm Discovery-UDP | 7946 |
| Riak | 8093 |
| Riak-JMX | 8985 |
| Cassandra | 9042 |
| Cassandra-Thrift | 9060 |
| Memcached | 11211 |
| MongoDB | 27017 |
Endpoint Kamu akan langsung ditambahkan ke daftar dalam beberapa saat, dengan nilai Public Port dan Access URL yang sudah ditentukan secara otomatis oleh platform.

š NOTE
- Agar fungsi endpoint berjalan dengan baik pada node VPS dan container Docker kustom, kamu perlu membuka port privat yang sesuai secara manual di dalam node (yaitu port yang Kamu tentukan saat membuat endpoint).
- Selain itu, kalau node Kamu menggunakan IP publik, Kamu perlu menghapus prefix node${nodeId}- dari bagian awal Access URL endpoint-nya. Karena jika tidak dihapus, URL tersebut akan tetap mengarah ke alamat publik, bukan ke jalur internal endpoint yang diatur lewat SLB.
Edit/Remove Endpoints #
Kalau diperlukan, endpoint yang sudah ada bisa dengan mudah disesuaikan. Kamu bisa langsung klik dua kali pada entri endpoint yang ingin diedit, atau gunakan tombol di panel tools untuk melakukan hal berikut:
- Edit ā ubah nama endpoint, port privat, dan pengaturan protokol (sama seperti saat membuat endpoint)
- Remove ā hapus endpoint yang dipilih dari daftar

Endpoint Use Case #
Setelah endpoint yang dibutuhkan berhasil dibuat, Kamu bisa langsung menggunakannya untuk menjalankan berbagai tugas. Berikut ini beberapa contoh penggunaan umum yang bisa Kamu manfaatkan:
a. Database Management #
Dengan fitur endpoint, Kamu bisa dengan mudah mengakses server database secara remote tanpa perlu menggunakan IP publik. Cara paling umum untuk melakukan remote mysql ini adalah melalui terminal bawaan di server atau komputer lokal Kamu, menggunakan klien database standar. Contohnya untuk MySQL:
mysql -h {host} -P {port} -u {user} -pĀ
Berikut penjelasan tiap parameter:
- {host}: URL akses dari endpoint (tanpa tambahan port di belakangnya)
- {port}: Nomor port publik dari endpoint tersebut
- {user}: Nama pengguna database (kredensial default biasanya dikirim lewat email setelah environment dibuat)

Kamu perlu memasukkan password pengguna database yang sesuai. Setelah koneksi berhasil dibuat, kamu bisa langsung mulai bekerja dengan database tersebut menggunakan perintah-perintah SQL yang dibutuhkan.
Cara lain untuk mengelola database secara jarak jauh adalah dengan menggunakan klien lokal. Klien ini menyediakan antarmuka grafis yang lebih ramah pengguna dan berbagai fitur untuk mempercepat pekerjaanmu. Di bawah ini adalah cara untuk menghubungkan ke database menggunakan klien populer MySQL Workbench.
1. Jalankan aplikasi klien kamu (misalnya MySQL Workbench) dan klik tombol New Connection (Koneksi Baru).

2. Pada jendela Setup New Connection yang muncul, isi bagian atas dengan informasi berikut:
- Connection Name: beri nama koneksi sesuai keinginan kamu
- Connection Method: pilih metode Standard (TCP/IP)
Lalu, isi tab Parameters dengan data database yang diperlukan:
- Hostname: URL Akses dari endpoint (tanpa tambahan port di belakang)
- Port: nomor port publik dari endpoint
- Username: nama pengguna database (platform biasanya mengirimkan kredensial default ini lewat email setelah environment dibuat)
- Password: klik Store in Keychain untuk menyimpan password kamu, atau biarkan kosong jika kamu ingin memasukkan password setiap kali koneksi dilakukan
- Default Schema (opsional): nama skema database yang akan digunakan secara default (boleh dikosongkan kalau tidak tahu)

Klik OK untuk menyelesaikan
3. Klik dua kali pada koneksi yang baru saja muncul untuk memulainya. Jika diminta, masukkan passwordmu di jendela yang muncul.

š” TIP
Kamu bisa mencentang opsi Save password in keychain jika tidak ingin memasukkan password secara manual setiap kali mengakses database.
Klik OK untuk melanjutkan.
4. Lalu Kamu akan terkoneksi dengan server databasemu.

Keren! Sekarang Kamu bisa mulai mengelola datamu dengan semua fitur lengkap dari aplikasi manajemen database. Misalnya, Kamu bisa melakukan backup dan restore data melalui file dump.
b. Multiple Projects on App Server #
Selain untuk manajemen database secara umum, endpoint juga memungkinkan Kamu menerapkan berbagai solusi menarik untuk server lainnya. Salah satu contohnya adalah menjalankan lingkungan produksi dan pengembangan dalam satu application server.
1. Buat endpoint untuk application server Kamu dengan membuka port private yang belum digunakan.

š NOTE
Jangan pilih port 80 sebagai private port untuk tugas ini, karena Apache secara default menggunakan port tersebut untuk menangani permintaan HTTP yang masuk
2. Sekarang, deploy aplikasi Kamu dua kali ke konteks yang berbeda (misalnya prod dan dev).

3. Langkah selanjutnya adalah mengkonfigurasi server Apache. Klik tombol Config di sebelah server tersebut, lalu buka file konfigurasi: /etc/httpd/conf/httpd.conf

Tambahkan private port dari endpoint ke daftar port yang didengarkan (listened) oleh Apache dengan menambahkan baris berikut ke dalam file konfigurasi
httpd.conf: Listen [::]:{port}
4. Temukan bagian VirtualHost untuk port default 80 di file konfigurasi httpd.conf, lalu duplikat bagian tersebut dan ubah portnya menjadi nomor private port yang kamu pakai tadi (contohnya 81). Kemudian, sesuaikan DocumentRoot masing-masing VirtualHost agar mengarah ke folder proyek yang sesuai (prod untuk konfigurasi port 80 (default) dan dev untuk konfigurasi port 81 (endpoint))

5. Simpan perubahan konfigurasi tersebut, lalu restart Apache untuk menerapkannya.

6. Sekarang kamu bisa mengakses proyek produksi seperti biasa, menggunakan tombol Open in Browser atau domain custom eksternal (jika sudah dikonfigurasi). Untuk mengakses versi pengembangan (dev), cukup buka URL Akses dari endpoint yang sudah kamu buat sebelumnya.

Sebagai hasilnya, Kamu memiliki dua titik koneksi ke dua proyekmu, yang memungkinkan Kamu melakukan tugas pengujian atau pengembangan apa pun pada salah satu salinan, tanpa mempengaruhi salinan lainnya. Selain itu, Kamu dapat dengan mudah beralih antara proyek-proyek tersebut jika diperlukan.
Powered by BetterDocs
