Amazon Underground yang Aneh

Internet sedang ramai dengan Amazon Underground. Ini proyek baru dari Amazon.com (raksasa e-commerce dan cloud services). Selama ini kan banyak aplikasi yang berlabel “gratis”, tapi kenyataannya di dalamnya penuh dengan fitur-fitur, virtual item, dsb-nya yang harus dibeli. Istilah kerennya “In-app purchase – IAP”. Di Amazon Underground ini, kita (pengguna Android) bisa mengunduh aplikasi yang benar-benar … Continue reading Amazon Underground yang Aneh

MySQL di Hari Minggu

Semalam dapet kabar kalau webserver F tewas lagi (kedua kalinya dalam bulan ini). Masalahnya sederhana sebenarnya, hardisknya penuh. Jadi dengan menggunakan Debian 5.0 di Amazon EC2, default setting partisnya dibagi dua. Total kapasitas hardisknya sekitar 500GB, 10 GB nya buat system (/), sisanya dimount di partisi antah berantah. Dulu sudah saya set agar partisi satunya … Continue reading MySQL di Hari Minggu

Amazon S3 dengan CakePHP

Beberapa hari ini saya cukup disibukkan dengan memahami cara kerja Amazon Simple Storage Service (Amazon S3), yang merupakan salah satu layanan dari Amazon Web Service (AWS), dilanjutkan dengan menulis beberapa baris kode agar bisa bekerja dengan CakePHP . Ini adalah salah satu bagian dari situs yang sedang saya kerjakan.

Langsung aja. Library PHP5 untuk mengakses layanan Amazon S3 ini saya gunakan Class S3 dari http://undesigned.org.za/2007/10/22/amazon-s3-php-class, hasil karya dari Donovan Schönknecht.

Agar bisa diakses dalam CakePHP, file class S3 tadi (S3.php) diletakkan di folder app/vendor/. Setelah itu saya buat fungsi baru di dalam controller yang mengakses Amazon S3 nantinya.

function _initAws()
{
// AWS access info
if (!defined('awsAccessKey')) define('awsAccessKey', 'AKHTZQYAXRXHTZQYAUUM'); // Sesuaikan dengan AccessKey anda
if (!defined('awsSecretKey')) define('awsSecretKey', 'VJFcyIksmdnk90kngio'); // Sesuaikan dengan SecretKey anda

App::import('Vendor', 'S3', array('file'=>'S3.php'));
$s3 = new S3(awsAccessKey, awsSecretKey);
return $s3;
}

Kemudian jika di dalam salah satu fungsi controller anda (di dalam controller yang sama), anda ingin mengakses S3, cukup gunakan baris berikut :

$s3 = $this->_initAws();

$s3->putBucket('cdn.labanux.com', S3::ACL_PRIVATE); // Membuat bucket baru

$s3->putObjectFile($file_path, 'cdn.labanux.com', 'image/'.$file_name.'.xcf', S3::ACL_PRIVATE);

// Menyimpan ke bucket cdn.labanux.com, dengan nama file image/$filename.xcf (image itu hanyalah virtual folder, karena Amazon S3 tidak mensupport folder. Dengan dinamai seperti itu, maka file anda kelihatan seperti berada di dalam sebuah folder / subfolder

Oh iya, bucket itu unik, ndak ada yang sama di AWS. Terus asyiknya gini, kalau bucket kita bernama : labanux, maka bucketnya beralamat di s3.amazonaws.com/labanux, ataupun labanux.s3.amazonaws.com. Kalo nama bucketnya cdn-ku.org, maka bisa diakses di cdn-ku.org.s3.amazonaws.com, ataupun s3.amazonaws.com/cdn-ku.org

Nah kalo kita punya domain labanux.com, kita bisa nambahin subdomain cdn.labanux.com kan? Nah, di S3 nya kita bikin bucket dengan nama cdn.labanux.com. Jadi ntar bisa diakses dengan alamat cdn.labanux.com.s3.amazonaws.com.

Lalu gimana biar CDN (Content Delivery Network) nya beralamat di cdn.labanux.com? Gampang, di NS servernya dibuat record CNAME cdn.labanux.com diarahkan ke cdn.labanux.com.s3.amazonaws.com

Lalu bagaimana jika kita ingin mengakses file dari AWS untuk di berikan kepada user (di download user) ?

Kalau file & bucketnya public, bisa langsung diakses secara direct (misal filenya : image/fotoku.jpg) : s3.amazonaws.com/bucket/image/fotoku.jpg. Atau kalau mengikuti contoh di atas jadinya : cdn.labanux.com.s3.amazonaws.com/image/fotoku.jpg, atau (ini yang saya pakai) : cdn.labanux.com/image/fotoku.jpg.

Nah, kalau file / bucketnya private. Ada dua cara. Cara pertama : Continue reading “Amazon S3 dengan CakePHP”

Layanan Baru dari Google : Google App Engine – Pesaing Amazon Web Services

Google App EngineHampir semua blog tentang web di luar negri sejak kemarin memberitakan satu lagi layanan dari Google. Layanan ini bernama Google App Engine. Layanan ini terdiri : GFS – Google FileSystem untuk storage (penyimpanan), dan BigTable untuk database. (Layanan serupa dengan yang diberikan oleh Amazon Web Services *baca di bawah)

Google App Engine ini menyediakan layanan untuk storage (penyimpanan) dan database. Jadi anda bisa menghost data untuk aplikasi web anda (misal : gambar) disini, dan menggunakan database dari layanan ini juga. Dengan begitu anda tidak perlu khawatir akan borosnya pemakaian resource hosting anda karena aplikasi web anda. Karena seringkali hosting menyediakan bandwith unlimited, space sampe ukuran giga – gigaan, unlimited add on domain, dst, tetapi sangat ketat untuk pemakaian resource server.

TechCrunch telah membuat contoh aplikasi sederhana yang dibuat dengan Google App Engine ini, bisa dikunjungi di http://appengine.crunchbase.com/

Salah satu kelebihan *yang sangat penting* dari Google App Engine ini adalah layanan ini disediakan secara gratis. Walaupun tidak gratis untuk penggunaan tak terbatas (unlimited). Layanan ini gratis selama penggunaan quota space anda dibawah 500MB, 200 million megacycles/day dari CPU (prosesor), dan 10GB dari total bandwith. Lebih dari ini akan dikenakan biaya yang menurut Google “cukup kompetitif”.

Sebagai perkiraan, menurut Google dengan batasan layanan di atas, sudah cukup untuk sebuah website dengan 5 juta pageviews sebulan. Wow.. saya rasa itu sudah cukup untuk sebagian besar developer web aplikasi di Indonesia. *karena sepertinya di Indonesia yang punya trafik lebih besar dari itu hanya portal berita atau forum, tidak untuk web application (aplikasi web), CMIIW deh. Continue reading “Layanan Baru dari Google : Google App Engine – Pesaing Amazon Web Services”