Table of Contents
▼- Kesalahan #1 Tidak Mengatur Resource Limit Docker
- Kesalahan #2 Lupa Setup Persistent Storage untuk Memori Agent
- Kesalahan #3 Port Conflict dengan Service Lain
- Kesalahan #4 Tidak Monitoring Log Container
- Kesalahan #5 Salah Konfigurasi Environment Variable
- Kesalahan #6 Tidak Setup Health Check
- Kesalahan #7 Abaikan Network Isolation
- Checklist Deployment AI Agent
- Kesimpulan
Deploy AI agent di VPS bukan sekadar jalankan docker run dan selesai. Banyak developer terjebak mindset ini sampai server tiba-tiba nge-hang di tengah malam.
AI agent seperti Hermes membutuhkan resource komputasi jauh lebih besar dibanding aplikasi web biasa. Satu kesalahan konfigurasi bisa bikin VPS 4GB RAM langsung drop.
Artikel ini membahas 7 kesalahan umum saat deploy AI agent di VPS. Bukan tutorial setup biasa, tapi daftar kesalahan yang sering diabaikan sampai server benar-benar mati.
Kesalahan #1 Tidak Mengatur Resource Limit Docker
AI agent memakan memory seperti busa. Tanpa resource limit, satu container bisa menghabiskan seluruh RAM VPS dan membuat service lain ikut crash.
Banyak developer pemula menjalankan container tanpa batasan apapun. Mereka berasumsi Docker akan otomatis mengatur resource allocation.
Kenyataannya Docker tidak mengatur apapun secara default. Container AI agent bebas mengonsumsi memory sebanyak yang dibutuhkan sampai host system kehabisan resource.
Cara Mengatur Resource Limit yang Benar
Gunakan flag --memory dan --cpus saat menjalankan container. Ini memastikan container tidak menghabiskan seluruh resource server.
docker run -d \
--name hermes-agent \
--memory="2g" \
--memory-swap="2g" \
--cpus="1.5" \
--restart=unless-stopped \
hermes-agent:latestFlag --memory-swap penting untuk mencegah container menggunakan swap memory berlebihan. Swap yang terlalu besar akan membuat server sangat lambat.
Untuk Docker Compose, tambahkan konfigurasi deploy di file docker-compose.yml.
services:
hermes-agent:
image: hermes-agent:latest
deploy:
resources:
limits:
cpus: '1.5'
memory: 2G
reservations:
memory: 1GReservation memastikan container mendapat minimal resource yang dibutuhkan. Limit mencegah container mengambil terlalu banyak.
Kesalahan #2 Lupa Setup Persistent Storage untuk Memori Agent
AI agent menyimpan conversation history dan learned context di memory. Tanpa persistent storage, semua data hilang saat container restart.
Bayangkan agent yang sudah belajar pola customer selama berbulan-bulan tiba-tiba kembali ke nol hanya karena VPS reboot. Kerugian waktu dan data sangat besar.
Implementasi Volume Mounting yang Tepat
Selalu mount directory data agent ke host system. Ini memastikan data tetap aman meski container dihancurkan atau diupdate.
docker run -d \
--name hermes-agent \
--memory="2g" \
-v /opt/hermes/data:/app/data \
-v /opt/hermes/logs:/app/logs \
hermes-agent:latestPisahkan volume untuk data dan logs. Data berisi conversation history dan model state. Logs berisi audit trail untuk debugging.
Untuk production, gunakan named volumes alih-alih bind mount. Named volumes lebih mudah di-backup dan di-migrate antar server.
docker volume create hermes-data
docker volume create hermes-logs
docker run -d \
--name hermes-agent \
-v hermes-data:/app/data \
-v hermes-logs:/app/logs \
hermes-agent:latestBackup volume secara berkala ke remote storage. AI agent data sangat berharga dan tidak bisa direcover jika hilang.
Kesalahan #3 Port Conflict dengan Service Lain
VPS production biasanya menjalankan banyak service sekaligus. Web server, database, cache, dan monitoring tool semuanya butuh port.
AI agent default sering menggunakan port 8000 atau 8080. Port ini sering sudah dipakai oleh aplikasi web atau API gateway.
Port conflict menyebabkan container gagal start tanpa pesan error yang jelas. Developer bingung mencari penyebabnya.
Strategi Menghindari Port Conflict
Dokumentasikan semua port yang digunakan di server. Buat inventory port sebelum deploy service baru.
Gunakan port di luar range umum untuk menghindari conflict. Range 9000-9999 biasanya masih kosong.
docker run -d \
--name hermes-agent \
-p 9080:8000 \
hermes-agent:latestInternal port container tetap 8000, tapi diexpose ke host di port 9080. Ini menghindari conflict dengan service yang sudah ada.
Untuk deployment yang lebih kompleks, gunakan reverse proxy seperti Nginx atau Traefik. Reverse proxy bisa mengatur routing berdasarkan domain atau path.
# Nginx configuration
server {
listen 80;
server_name agent.namadomain.com;
location / {
proxy_pass http://localhost:9080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}Dengan reverse proxy, AI agent bisa diakses melalui domain tanpa perlu mengingat port number.
Kesalahan #4 Tidak Monitoring Log Container
AI agent menghasilkan banyak log. Mulai dari request handling, model inference, hingga error trace. Tanpa monitoring, masalah terdeteksi terlambat.
Banyak developer hanya cek log saat sudah ada masalah. Padahal log bisa memberikan early warning sebelum server benar-benar crash.
Setup Centralized Logging
Docker menyimpan log container di file JSON yang bisa membesar tak terbatas. Konfigurasi log rotation untuk mencegah disk penuh.
docker run -d \
--name hermes-agent \
--log-driver json-file \
--log-opt max-size="10m" \
--log-opt max-file="3" \
hermes-agent:latestKonfigurasi di atas membatasi setiap log file maksimal 10MB dan menyimpan maksimal 3 file. Total log maksimal 30MB per container.
Untuk production, kirim log ke centralized logging system seperti Loki, Elasticsearch, atau cloud logging service.
# docker-compose.yml dengan logging driver
services:
hermes-agent:
image: hermes-agent:latest
logging:
driver: loki
options:
loki-url: "http://loki:3100/loki/api/v1/push"
loki-batch-size: "100"Centralized logging memudahkan troubleshooting. Cari error di semua container dari satu dashboard tanpa perlu login ke setiap server.
Kesalahan #5 Salah Konfigurasi Environment Variable
Environment variable menyimpan konfigurasi sensitif seperti API key dan database credential. Kesalahan di sini bisa fatal.
Kesalahan paling umum adalah menyimpan API key langsung di Docker image. Ini sangat berbahaya karena bisa dilihat siapa saja yang punya akses ke image.
Best Practice Environment Variable
Gunakan file .env untuk menyimpan environment variable. File ini tidak ikut di-commit ke repository.
# .env file
OPENAI_API_KEY=sk-proj-xxxxx
DATABASE_URL=postgresql://user:pass@localhost:5432/hermes
MODEL_NAME=gpt-4
MAX_TOKENS=4096Load file .env saat menjalankan container.
docker run -d \
--name hermes-agent \
--env-file .env \
hermes-agent:latestUntuk production, pertimbangkan menggunakan secrets management tool seperti Docker Secrets atau HashiCorp Vault.
# Docker Swarm secrets
docker service create \
--name hermes-agent \
--secret openai_api_key \
--secret db_password \
hermes-agent:latestSecrets di-mount sebagai file di dalam container, bukan environment variable. Ini lebih aman dari accidental exposure di log atau process list.
Kesalahan #6 Tidak Setup Health Check
Container bisa running tapi aplikasi di dalamnya sudah hang. Tanpa health check, Docker tidak tahu harus restart container.
AI agent sering mengalami memory leak atau model crash. Container tetap hidup tapi tidak merespons request.
Implementasi Health Check Docker
Tambahkan health check di Dockerfile atau docker-compose.yml. Health check memeriksa apakah aplikasi masih responsif.
# Di Dockerfile
HEALTHCHECK --interval=30s --timeout=10s --start-period=60s --retries=3 \
CMD curl -f http://localhost:8000/health || exit 1Atau di docker-compose.yml untuk konfigurasi yang lebih fleksibel.
services:
hermes-agent:
image: hermes-agent:latest
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8000/health"]
interval: 30s
timeout: 10s
retries: 3
start_period: 60sstart_period memberikan waktu grace bagi AI agent untuk loading model. AI agent butuh waktu lebih lama untuk startup dibanding aplikasi biasa.
Kesalahan #7 Abaikan Network Isolation
AI agent sering butuh akses ke external API seperti OpenAI atau Claude. Tanpa network isolation, serangan bisa menyebar ke seluruh server.
Jika AI agent terkena exploit, attacker bisa mengakses database atau service lain di server yang sama.
Network Segmentation untuk AI Agent
Buat dedicated network untuk AI agent. Isolasi dari network utama server.
docker network create --driver bridge ai-agent-network
docker run -d \
--name hermes-agent \
--network ai-agent-network \
hermes-agent:latestUntuk akses database, gunakan network terpisah yang hanya menghubungkan agent dengan database.
# docker-compose.yml dengan network isolation
services:
hermes-agent:
image: hermes-agent:latest
networks:
- agent-internal
database:
image: postgres:15
networks:
- agent-internal
environment:
POSTGRES_PASSWORD: ${DB_PASSWORD}
networks:
agent-internal:
driver: bridgeDengan konfigurasi ini, AI agent hanya bisa mengakses database. Tidak bisa mengakses service lain di server.
Checklist Deployment AI Agent
Sebelum deploy AI agent ke production, pastikan semua item tercentang.
- Resource limit CPU dan memory sudah dikonfigurasi
- Persistent volume untuk data dan logs sudah di-mount
- Port sudah dicek tidak ada conflict dengan service lain
- Log rotation dan centralized logging sudah setup
- Environment variable disimpan di file .env atau secrets
- Health check sudah dikonfigurasi dengan start period yang cukup
- Network isolation untuk membatasi blast radius jika terjadi serangan
Deployment AI agent memang lebih kompleks dari aplikasi web biasa. Tapi dengan persiapan yang benar, server akan berjalan stabil berbulan-bulan tanpa masalah.
Butuh bantuan setup server untuk AI agent? KerjaKode menyediakan layanan pembuatan website dan konfigurasi server profesional. Tim kami berpengalaman men-deploy aplikasi AI di berbagai environment. Hubungi jasa pembuatan website KerjaKode untuk konsultasi kebutuhan infrastruktur Anda.
Kesimpulan
Deploy AI agent di VPS butuh perhatian ekstra dibanding aplikasi web biasa. Resource consumption AI model sangat tinggi dan bisa membuat server hang jika tidak dikelola.
Seven kesalahan di atas bukan teori. Ini adalah masalah nyata yang sering kami temui saat membantu client setup infrastruktur AI mereka.
Dengan menghindari kesalahan-kesalahan ini, deployment AI agent akan berjalan lancar dan server tetap stabil. Tidak ada lagi panic di tengah malam karena server tiba-tiba tidak bisa diakses.