Review dan Oprek VPS Gratis dari VPS.me + LEMP Stack + IPv4

VPS.me adalah “anak” dari perusahaan hosting Hostinger yang sudah cukup lama berwara-wiri dalam memberikan shared hosting gratisan. Berbeda dengan induknya yang membagi-bagikan shared hosting, VPS.me “bertugas” membagi-bagikan VPS gratis bagi yang berminat (walaupun spesifikasinya pas-pasan). Nah, pada kesempatan kali ini, saya akan mencoba sharing oprek VPS gratisan dari VPS.me yang akan kita gunakan sebagai web server dan bisa di akses dari IPv4.

logo-vpsme

Spesifikasi VPS gratis dari VPS.me

  • Prosesor 600 MHz (0,6 GHz)
  • RAM 384 Mb
  • Swap 96 Mb
  • Penyimpanan 5 Gb RAID-10
  • Bandwidth 10 Gb / bulan
  • IP address 1 IPv6 – tanpa IPv4
  • Lokasi server di Jerman

Sedikit benchmark

Script benchmark dari freevps.us saya modif sedikit agar nggak melakukan test download, karena satu hal : VPS gratisan biasanya memiliki bandwidth yang “dijepit” (capped bandwidth). Untuk test bandwidth saya pake speedtest.net saja :D

# bash bench.sh
CPU model :  Intel(R) Xeon(R) CPU E5-2609 0 @ 2.40GHz
Number of cores : 1
CPU frequency :  623.403 MHz
Total amount of ram : 384 MB
Total amount of swap : 96 MB
System uptime :   1:05,
# ./speedtest-cli --simple --share
Ping: 16.292 ms
Download: 9.94 Mbit/s
Upload: 8.37 Mbit/s
Share results: https://www.speedtest.net/result/3178307239.png

3178307239

Tuh kan… di “jepit” 10 Mbps :)

IO test … lumayan daripada lumanyun. :P

# dd if=/dev/zero of=iotest bs=64k count=16k conv=fdatasync
16384+0 records in
16384+0 records out
1073741824 bytes (1.1 GB) copied, 6.4652 s, 166 MB/s
# dd if=/dev/zero of=iotest2 bs=64k count=16k oflag=dsync
16384+0 records in
16384+0 records out
1073741824 bytes (1.1 GB) copied, 31.4864 s, 34.1 MB/s
# wget http://cachefly.cachefly.net/10mb.test
--2013-12-21 11:16:00--  http://cachefly.cachefly.net/10mb.test
Resolving cachefly.cachefly.net... 205.234.175.175
Connecting to cachefly.cachefly.net|205.234.175.175|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 10485760 (10M) [application/octet-stream]
Saving to: `10mb.test'

100%[======================================>] 10,485,760  1.18M/s   in 8.5s

2013-12-21 11:16:08 (1.17 MB/s) - `10mb.test' saved [10485760/10485760]

# ping cachefly.cachefly.net -c 5
PING vip1.g.cachefly.net (205.234.175.175) 56(84) bytes of data.
64 bytes from vip1.G-anycast1.cachefly.net (205.234.175.175): icmp_req=1 ttl=53 time=10.2 ms
64 bytes from vip1.G-anycast1.cachefly.net (205.234.175.175): icmp_req=2 ttl=53 time=10.2 ms
64 bytes from vip1.G-anycast1.cachefly.net (205.234.175.175): icmp_req=3 ttl=52 time=10.3 ms
64 bytes from vip1.G-anycast1.cachefly.net (205.234.175.175): icmp_req=4 ttl=52 time=10.3 ms
64 bytes from vip1.G-anycast1.cachefly.net (205.234.175.175): icmp_req=5 ttl=52 time=10.5 ms

--- vip1.g.cachefly.net ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4005ms
rtt min/avg/max/mdev = 10.251/10.354/10.527/0.147 ms

Maksud dan tujuan instalasi LEMP stack

  1. VPS akan di “rampingkan” agar menggunakan resource (terutama RAM dan CPU) secara lebih hemat dan efisien. Hal ini penting karena spesifikasi VPS gratisan dari VPS.me memiliki spesifikasi rendah
  2. VPS akan di instal LEMP stack [Linux, nginx (engine-x), MySQL, PHP] yang berperan sebagai web server
  3. Web server yang telah di instal di VPS gratis ini dapat diakses dari IPv6 dan IPv4 (dual-stack)

get-free-vps

Yang dibutuhkan

  • VPS gratis dari VPS.me yang sudah aktif dan sobat sudah bisa login ke konsol lewat SSH dengan akses root. Belum punya VPS gratisan? Silakan klik disini untuk mendaftar di VPS.me
  • Sudah terdaftar serta menggunakan CloudFlare untuk me-manajemen DNS domain yang sobat punya. Klik disini untuk mengetahui lebih lanjut tentang CloudFlare

Langkah-langkah optimasi VPS

Note : Tutorial penggunaan minstall dibawah ini mungkin tidak update. Silakan kunjungi https://github.com/KnightSwarm/Minstall untuk mendapatkan petunjuk dan download source code minstall terbaru!

Paling gampang untuk melakukan optimasi VPS adalah menggunakan minstall. Minstall adalah script kecil yang di buat dengan tujuan mempermudah optimasi VPS dan melakukan instalasi paket-paket tertentu pada lingkungan Debian dan Ubuntu.

# cd ~ ; mkdir minstall; cd minstall ; wget –no-check-certificate -O minstall.tar.gz http://www.github.com/downloads/KnightSwarm/Minstall/Latest.tar.gz ; tar zxf minstall.tar.gz; rm minstall.tar.gz

Lakukan bersih-bersih package dan modul yang nggak kepake

# bash minstall.sh clean-packages

Install dropbear sebagai ssh server. Dropbear lebih hemat penggunaan memory ketimbang OpenSSH.

# bash minstall.sh install-dropbear

Optimize dan tambahkan repo ekstra yang esensial

# bash minstall.sh install-extra-repositories

Do you want to install the Debian Multimedia repository? (Y/n) n
Do you want to optimise the default repositories? Warning, this replaces the default repository list! (Y/n) y
Do you want to install the DotDeb repository? (Y/n) y
Do you want to install the OpenStatus repository? (Y/n) n
Do you want to install the WebUpd8 Java repository? (Y/n) n

Install packages tambahan yang mungkin nanti dibutuhkan

# bash minstall.sh install-extra-packages

Lakukan konfigurasi umum untuk pada VPS (timezone, dsb). Untuk timezone saya sarankan pake timezone sobat saja, jadi lebih gampang berurusan dengan logging dan pengaturan lainnya yang berhubungan dengan tanggal dan waktu.

# bash minstall.sh configure-general

Do you want to enable BASH history? (y/N) y
Do you want to enable extra getty instances (uneeded on virtual machines, can save memory if disabled)? (y/N) n
Do you want to change the default system shell? (Y/n) n
Do you want to change the system timezone? (Y/n) y

Install LEMP (Linux, nginx, MySQL, PHP) stack nya. Oiya, pas install nginx sobat mungkin akan diminta mengaktifkan HTTPS, kalo memang sobat nggak pengen pake HTTPS, bisa aja menjawab nya dengan “n”.

# bash minstall.sh http-install-nginx
# bash minstall.sh http-install-php
# bash minstall.sh http-install-php-extra
# bash minstall.sh http-install-exim
# bash minstall.sh http-install-mysql

Optimize nginx nya…

# bash minstall.sh http-configure-nginx

Do you want to enable cache support and create a cache directory? (Y/n) y
Do you want to enable caching of SSL sessions (can increase responsiveness over SSL)? (Y/n) y
Do you want to enable gzip compression to save bandwidth and decrease page load time (compresses CSS, HTML, Javascript & XML at gzip compression level 6)? (Y/n) y
Do you want to protect the default host by denying unmatched requests (this will override your default virtual host if you have assigned one)? (y/N) y

Pada saat ini seharusnya LEMP stack sudah terinstall dengan baik dan VPS siap untuk di gunakan sebagai webserver. Namun secara default, nginx hanya listen IPv4 di port 80

# netstat -plnat | grep nginx
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      8352/nginx
tcp        0      0 0.0.0.0:443             0.0.0.0:*               LISTEN      8352/nginx

Menambahkan user dan vhost

Sangat direkomendasikan agar sobat menggunakan user lain (selain root) yang memiliki akses web. Sebagai contoh, saya akan menambahkan user “fazar” dan memiliki vhost “antares.fazar.net” yang nantinya akan dapat diakses di alamat http://antares.fazar.net/.

# bash minstall.sh manage-add-user

Please enter a user name: fazar
Do you want to add a HTTP folder for this user? (Y/n) y
Do you want to change file permissions for this user to enable privacy? (Y/n) y

# bash minstall.sh manage-add-host

Please enter a user name: fazar
Please enter the virtual host (e.g. www.example.com): antares.fazar.net
Do you want to enable PHP for this virtual host? (Y/n) y
Do you want to enable SSL for this virtual host? (Y/n) n
Do you want to set this virtual host as the default host? (y/N) n

Selanjutnya, atur agar nginx juga listen di IPv6 untuk vhost “antares.fazar.net” serta support PHP

# nano /etc/nginx/hosts.d/fazar-antares.fazar.net.conf

Isi file nya sebagai berikut :

server {
        listen   [::]:80;
        server_name antares.fazar.net;

        access_log off;
        error_log /home/fazar/http/logs/antares.fazar.net.log;
        index index.html index.php;
        root /home/fazar/http/hosts/antares.fazar.net;

        include /etc/nginx/conf.d/cache.conf;
        include /etc/nginx/conf.d/deny.conf;
        include /etc/nginx/php.d/fazar.conf;

        location ~ \.php$ {
                fastcgi_split_path_info ^(.+\.php)(/.+)$;
                fastcgi_pass unix:/dev/shm/php-socket;
                fastcgi_index index.php;
                include fastcgi_params;
        }

        location = /favicon.ico {
                log_not_found off;
                access_log off;
        }
}

Periksa kembali konfigurasi nginx, dan jika tidak terdapat error service nginx dapat di reload.

# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

# service nginx reload

# netstat -plnat | grep nginx
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      10062/nginx
tcp        0      0 0.0.0.0:443             0.0.0.0:*               LISTEN      10062/nginx
tcp6       0      0 :::80                   :::*                    LISTEN      10062/nginx

Nah… seperti yang terlihat diatas, nginx sudah listen di IPv4 dan IPv6 pada port 80. Good job!

Tambahkan file index.php di /home/fazar/http/hosts/antares.fazar.net/ dengan isi sebagai berikut (nantinya bisa dirubah sesuai kebutuhan sobat)

<?php phpinfo(); ?>

Pengaturan CloudFlare

Agar server dapat diakses menggunakan IPv4 dan IPv6, kita akan memanfaatkan fitur proxy dan manajemen DNS dari CloudFlare.

* Pastikan manajemen DNS anda sudah menggunakan CloudFlare.

Buka dashboard website anda di CloudFlare, kemudian arahkan ke pengaturan DNS. Tambahkan entri A record IPv6 (AAAA) yang di point / diarahkan ke IPv6 VPS gratisan dari VPS.me, contohnya seperti ini :

ipv6-cloudflare

Kemudian klik “I’m done entering my DNS records” untuk menyimpan pengaturan DNS.

Cara kerja teknik ini adalah dengan memanfaatkan network dual stack dan proxy milik CloudFlare yang akan “menarik” konten website dari VPS kita yang hanya memiliki IPv6, kemudian menyampaikan pada pengunjung website (baik yang pake IPv4 atau IPv6).

VPS.me (IPv6) <—-> CloudFlare (IPv4/IPv6)  <—-> Pengunjung web (IPv4/IPv6)

Kelebihan lain dari penggunaan CloudFlare adalah kita dapat melakukan penghematan bandwidth, karena konten statik dari website kita (gambar, css, html, dsb) akan di cache oleh CloudFlare. Ideal untuk mengatasi masalah jatah bandwidth VPS.me yang hanya memberikan bandwidth 10 Gb / bulan.

Testing

Oke.. semua sudah selesai di setting, silakan coba buka alamat http://antares.fazar.net/ — tadaaa!! Terlihat halaman default phpinfo. :)

phpinfo-vpsme

Selanjutnya terserah sobat mau di install apa VPS ini – mau wordpress, joomla, dsb.

Btw, pengen lihat status dari VPS.me gratisan yang ane bikin buat test ini? Silakan klik http://antares.fazar.net/status.php

Kesimpulan

  • VPS gratisan dari VPS.me hanya memiliki IPv6 yang saat ini masih terbatas penggunanya serta memiliki keterbatasan spesifikasi. Akan tetapi hal ini dapat diatasi dengan trik tertentu agar website yang di hosting disana dapat diakses pengguna dengan IPv4 (forward proxy semacam CloudFlare atau Incapsula dapat dimanfaatkan)
  • Bandwidth 10 Gb / bulan dikombinasi dengan caching + CDN CloudFlare saya rasa mampu mengakomodasi sebuah blog dengan kunjungan unik harian beberapa ratus orang.
  • Gunakan VPS ini untuk belajar – yep… VPS berspesifikasi rendah / low-end akan membantu anda untuk belajar memaksimalkan kinerja semua aspek dalam keterbatasan dari segi teknis
  • Rajin-rajin mem-backup data di VPS gratis VPS.me karena status layanan VPS nya masih dalam tahap BETA, yang bisa saja kondisi node VPS nya tidak stabil

Jangan lupa kunjungi juga tulisan saya tentang VPS gratisan dari Host1Free, dan buat sobat yang berhasil mengimplementasikan tutorial ini jangan lupa kasih komen dibawah ini ya! :)

13 Comments

  1. Mas, mau nanya nih, apakah bisa vps gratis dari vps.me ini diinstal apache?

      • Oh, sama mau tanya nih mas, saya udh ikutin tutor sama persis diatas, tapi kenapa ga bisa di akses (This webpage is not available) ya mas? apa kira-kira yang salah?

  2. wawan

    Kang Fazar,,,

    Review juga donk ttg http://haphost.com/
    sekalian cara opreknya juga,, kayak tutor di atas…!!!

    btw,, makasih atas ilmunya Kang Fazar, sangat bermanfaat buat sy pribadi..!!

    • fazar

      haphost = host1free.
      silakan cek reviewnya disini mas : https://fazar.net//review-vps-host1free/

      untuk cara oprek menggunakan minstall tetap sama dengan langkah-langkah di atas. yang membedakan mungkin di penggunaan commandnya, karena posting ini nggak di update dengan versi minstall yang baru. silakan ke url ini untuk mendownload / membaca panduan terbaru minstall.

      https://github.com/KnightSwarm/Minstall

      • wawan

        makasih Kang Fazar… langsung ke TKP…

  3. Im

    kok ane g bisa akses via Putty ya bro ?

  4. ane bookmark dlu gan, bsok ane praktekin.
    Lagi bljar tentang vps ne, hehe

  5. fazar

    mohon maaf untuk web contoh diatas mungkin nggak bisa diakses.. vps ane di vps.me dapet error “Unfinished actions detected in queue for this VPS, please wait until processing is complete.”

    http://www.vps.me/forum/vps-network-issues/free-unfinished-actions-detected-in-queue-for-this-vps-please-wait-until-processing-is-complete

    sampek sekarang vps nya masi error dan nggak bisa diakses. bener2 luar biasa vps gratisan dari vps.me ini… #hammer :D

  6. arief

    mas. bisa untuk bikin SSH ga?
    dibuat dropbear, port 443..

    klo bisa caranya gimana mas?
    Trimakasih sebelumnya…

    • fazar

      kalo pun bisa, sepertinya hal tsb melanggar TOS dari vps.me
      http://www.vps.me/tos

Leave a Reply

Your email address will not be published. Required fields are marked *