IMPLEMENTASI KOMPUTASI AWAN MENGGUNAKAN
TEKNOLOGI GOOGLE APP ENGINE (GAE) DAN AMAZON WEB SERVICES (AWS)
NAMA : YUDI KURNIATAMA
KELAS : 4IA04
PENDAHULUAN : KOMPUTASI AWAN
(CLOUD COMPUTING)
Komputasi awan (cloud computing) pada dasarnya
merupakan komputasi masa depan. Dengan difasilitasi oleh jaringan komputer
global saat ini (Internet), komputasi awan akan semakin populer di masa-masa
yang akan datang. Komputasi awan membuat investasi di bidang Teknologi
Informasi akan menjadi semakin ‘murah’, karena layanan-layanan (services)
tertentu bisa diperoleh dari vendor yang menyediakannya (SaaS-Software as a
Service) tanpa organisasi/perusahaan harus mengembangkannya sendiri. Juga,
dalam beberapa kasus, organisasi-organisasi/perusahaanperusahaan tidak perlu
lagi menanamkan investasinya dalam bentuk perangkat-perangkat keras serta
sistem-sistem operasi (termasuk di dalamnya server-server aplikasi dan server
Web) yang mahal harganya, karena organisasi-organisasi/perusahaan-perusahaan
cukup menyewanya saja dari berbagai vendor komputasi awan yang ada (dalam kasus
seperti yang disebutkan terakhir ini, sebagian orang menyebutnya sebagai
PaaS-Platform as a Service). Dalam kebanyakan kasus, organisasiorganisasi/perusahaan-perusahaan
yang menggunakan fasilitas komputasi awan pada dasarnya tidak perlu lagi
mengetahui dimana sesungguhnya layanan yang diperlukannya dilakukan/diproses,
serta tidak perlu tahu lagi dimana data mereka disimpan, karena semuanya sudah diatur
oleh vendor komputasi awan.
Google
dan Amazon merupakan para pendahulu dari konsep komputasi awan ini dan diikuti
oleh Salesforce. Setelah itu ‘pemain besar’ seperti Microsoft (dengan
fasilitasnya yang dinamakan sebagai Microsoft Azure) juga ikut meramaikannya.
Pada dasarnya, pusat-pusat pemrosesan dan pusat-pusat data (data center) untuk
komputasi awan bisa berada di bagian mana saja di dunia ini dan terdiri dari
berbagai jenis komputer (dari komputer besar [mainframe], komputer mini, hingga
komputerkomputer pribadi [PC-Personal Computer]) yang berbeda, sehingga (dalam
kebanyakan kasus) teknologi pemrosesan yang memungkinkan berbagai jenis
komputer yang berbeda itu (dengan sistem operasi dan platform-nya yang beragam)
dapat saling berkomunikasi adalah teknologi Web Service dan/atau
teknologi-teknologi berkaitan dengan interoperabilitas antarsistem lainnya.
Kita,
melalui tulisan ini, akan membahas secara sepintas implementasi layanan-layanan
(services) yang disediakan oleh Google (dalam bentuk Google App Engine/GAE) dan
Amazon (dalam bentuk Amazon Web Services/AWS), kemudian akan melihat kelebihan
dan kekurangannya masing-masing.
IMPLEMENTASI KOMPUTASI AWAN MENGGUNAKAN
TEKNOLOGI GOOGLE APP ENGINE (GAE)
Komputasi awan (cloud computing) menurut
definisi Google adalah pusat data yang ada di luar komputer aplikasi klien.
Tujuan utama dari Google berkontribusi dalam komputasi awan adalah untuk
memanfaatkan sumberdaya komputer yang dimilikinya dalam jumlah yang sangat
besar yang berjumlah jutaan komputer dan tersebar di seluruh dunia serta untuk
mempercepat operasi-operasi yang dilakukan oleh aplikasi-aplikasi Web saat ini.
Dalam hal ini, komputasi awan yang dikembangkan oleh Google pada dasarnya
berada di seputar jaringan komputer raksasa yang bekerja untuk
aplikasi-aplikasi utamanya seperti Google Search dan Google Mail (GMail).
Saat
ini pihak Google melakukan pemantauan terhadap seluruh jaringan komputer yang
dimilikinya serta juga melakukan pemantauan terhadap aplikasi-aplikasi yang
berjalan di atasnya. Dengan demikian, saat seorang pengguna memanfaatkan
layanan komputasi awannya, Google dapat memantau lama waktu kerja CPU (Central
Processing Unit) yang dilakukan untuk melakukan pemrosesan layanan itu, berapa
kapasitas memori yang digunakannya, serta dapat menghitung kapasitas ruang
penyimpanan (hardisk) yang digunakannya, sehingga kelak dapat menarik biaya
sejumlah US$ tertentu pada penggunanya . Meski demikian, tidak sebarang
aplikasi dapat berjalan di komputer-komputer milik Google yang membentuk
jaringan komputasi awan itu. Agar dapat berjalan dengan baik, aplikasi-aplikasi
harus dikembangkan menggunakan ‘aturan-aturan’ yang ditetapkan oleh Google.
Aplikasi-aplikasi seperti itu dinamakan sebagai Google App Engine (GAE), dimana
saat ini aplikasi-aplikasi jenis ini bisa ditulis dengan cara yang relatif
mudah oleh para pemrogram komputer yang memahami bahasa pemrograman Java dan
Phyton.
Dalam
hal ini, Apps Engine Request yang dimilikinya menentukan jumlah permintaan
(request) yang bisa ditangani oleh aplikasi. Jika kita menggunakan fasilitas
berbayar, aplikasi kita diijinkan untuk menerima 500 permintaan perdetik (!)
(suatu jumlah yang pada umumnya sudah sangat memadai). Demikian juga dengan
DataStore yang disediakan. Kita bisa menggunakan fasilitas tidak berbayar (yang
dapat digunakan untuk melakukan penyimpanan data terbatas sebanyak 1 GB/hari)
atau berbayar (data yang disimpan tidak dibatasi) (Dalam hal ini, meskipun
pengguna sesungguhnya tidak perlu secara rinci mendalaminya, kita perlu tau
bahwa Google App Engine menggunakan sistem basis data non-relasional BigTable
untuk data yang diletakkan di dalam sistemnya). Selanjutnya, Apps Engine
Request juga, dengan komponen URL Fetch Service-nya, dapat berkomunikasi dengan
aplikasi-aplikasi lainnya atau mengakses sumberdaya lainnya yang ada di Web
dengan menggunakan URL (Uniform Resource Locator) yang dimiliki
aplikasi/sumberdaya itu. Suatu aplikasi dapat menggunakan layanan ini untuk
mengirim/menerima permintaan HTTP (Hypertext Transport Protocol) dan HTTPS
(Hypertext Transport Protocol Secure) (tentu saja jumlahnya sesuai dengan
jumlah dana dalam US$ yang kita tanamkan).
IMPLEMENTASI KOMPUTASI AWAN MENGGUNAKAN
TEKNOLOGI AMAZON WEB SERVICES (AWS)
Amazon.com
sebelumnya lebih terkenal dengan toko buku on-line-nya. Meski demikian,
beberapa tahun yang lalu (sekitar tahun 2005), Amazon mengembangkan dirinya
menjadi AWS (Amazon Web Service) yang menyediakan layanan komputasi awan,
dimana setiap fungsi yang ada di dalamnya bisa diakses dengan panggilan Web
Service. Protokol-protokol Web Service yang digunakan adalah SOAP dan REST.
Layanan-layanan di AWS dapat dimanfaatkan berdasarkan 1) Waktunya (waktu
penggunaan CPU), 2) Volume (jumlah data yang ditransfer), 3) Perhitungan
(jumlah antrian pesan [message]), serta 4) Waktu dan ruang (penggunaan ruang
hardisk dalam periode waktu tertentu). Secara infrastruktur internal, AWS
memiliki komponen-komponen sebagai berikut.
· Amazon S3 (Simple Storage
Service). Digunakan untuk menyimpan data untuk penggunaan pribadi maupun umum.
Dalam hal ini, ada 3 lokasi yang memungkinkan pemanfaatannya, yaitu di Amerika
Serikat (termasuk California Utara), Eropa, serta Asia.
· Amazon Cloud Front. Digunakan
untuk mendukung Amazon S3 agar bisa bekerja dengan lebih baik dan lebih cepat.
· Amazon SQS (Simple Queue
Service). Digunakan untuk mendukung tercapainya pemrosesan AWS yang cepat dan
tidak pernah mengalami kegagalan.
· Amazon SimpleDB. Digunakan
untuk menyimpan data yang bersifat semi-terstruktur. Basis data yang digunakan
(SimpleDB) tidak bersifat relasional, melainkan menyimpan data dalam bentuk
pasangan nama/nilai (name/value) yang mirip dengan struktur denormalisasi pada
sistem basis data relasional, demi meningkatkan kinerja query.
· Amazon RDS (Relational
Database Service). Digunakan untuk mengelola data yang disimpan dalam sistem
basis data MySQL. Jurnal Teknik Informatika/Volume01/No. xx/[Bulan] [Tahun] 6
· Amazon EC2 (Elastic Compute
Cloud). Digunakan sebagai infrastruktur (kapasitas pemrosesan, memori, dan
ruang hardisk) yang menyediakan layanan (service) yang dibutuhkan oleh para
pengguna
Konsep
yang sangat penting dalam Amazon Web Service (AWS) adalah instance . Menggunakan
suatu teknik yang dinamakan sebagai virtualisasi, para pengguna bisa melakukan
pengembangan aplikasinya di atas berbagai perangkat keras dengan cara yang
serupa dengan saat pengembangan aplikasi dilakukan pada sebuah mesin tunggal.
Perangkat lunak virtualisasi memastikan bahwa masing-masing instance secara
logika dapat saling berbagi waktu kerja CPU (Central Processing Unit) dan
berbagi ruang memori dengan cara yang benar tanpa saling berinterferensi satu
dengan lainnya. Dapat kita lihat melalui , setiap instance dengan waktu kerja
tertentu serta alokasi RAM (Random Access Memory) tertentu mensyaratkan
investasi sejumlah US$ tertentu. Sebagai catatan tambahan,
Pengembangan
sistem dalam Amazon Web Service (AWS) –tepatnya Amazon EC2 (Elastic Compute
Cloud)- pada umumnya dilakukan berdasarkan metoda CBD (Component Based Development)
dimana komponen-komponen yang ada dapat saling berkomunikasi dan bertukar data
menggunakan suatu komponen perangkat lunak AWS yang bernama Amazon Simple Queue
Service (SQS). Selanjutnya, sistem yang besar, yang menggunakan ruang
penyimpanan berukuran besar, dapat melandaskan dirinya pada fasilitas yang ada
di dalam Amazon Simple Storage Service (S3).
ANALISIS TENTANG IMPLEMENTASI KOMPUTASI
AWAN MENGGUNAKAN TEKNOLOGI GOOGLE APP ENGINE (GAE) DAN AMAZON WEB SERVICES
(AWS)
Pada
dasarnya, layanan komputasi awan yang diberikan oleh baik Google maupun Amazon
memiliki banyak kesamaan. Baik Google maupun Amazon menawarkan penggunaan
fasilitas komputasi awan kepada pengguna berdasarkan waktu kerja CPU, bandwith,
serta berdasarkan ruang penyimpanan yang diperlukan oleh aplikasi pengguna.
Perbedaannya yang berkaitan dengan penggunaan awalnya adalah bahwa Google App
Engine (hingga penggunaan waktu kerja CPU sebesar 6,5 jam/hari) tidak
mensyaratkan akun khusus (yang berbayar) untuk uji-coba, sementara Amazon EC2 (meskipun
juga tidak mensyaratkan pengguna membayar uang sejumlah tertentu pada
penggunaan uji coba) mensyaratkan akun khusus dengan harus menyebutkan cara
pembayarannya. Dari sudutpandang penggunaan ruang tempat penyimpanan, Google
juga lebih ‘murah hati’ dibandingkan dengan Amazon S3. Penggunaan ruang sampai
1 GB/bulan di Google masih gratis (meskipun di atas itu pengguna harus membayar
sejumlah US$ tertentu). Bagaimana pun juga ini masih lebih baik daripada Amazon
S3 yang mensyaratkan penggunaan kartu kredit sejak awal penggunaan ruang. Dari
sudut pengembangan aplikasi, Google App Engine mensyaratkan pemahaman bahasa
pemrograman Java dan Phyton, sementara Amazon lebih menekankan pada penggunaan
bahasa pemrograman PHP dan Ruby (walaupun penggunaan Java secara relatif
terbatas juga didukung). Dalam hal ini, mungkin ini salah satu kelemahan dari
Google App Engine, yaitu bahwa struktur internal Google lebih banyak
dikembangkan menggunakan bahasa pemrograman Phyton dengan platform Django (yang
saat relatif kurang populer), sehingga agak membatasi pengguna yang
menginginkan akses lebih besar terhadap sistem dan yang mengembangkan
aplikasinya menggunakan Jurnal Teknik Informatika/Volume01/No. xx/[Bulan]
[Tahun] 9 bahasa-bahasa pemrograman lain, seperti Java, bahasa-bahasa
pemrograman dalam keluarga .NET, PHP, dan sebagainya. Dari sudutpandang
implementasi sistem basis data, aplikasi-aplikasi Google App Engine tidak
memungkinkan pengguna untuk terlalu banyak melakukan kendali atas sistem basis
data (sebagian besar kendali atas basis data non-relasional yang digunakan
Google App Engine ditangani langsung bukan oleh pengguna melainkan oleh
sistem), sementara pada Amazon Web Service, kita lebih mampu mengendalikan
sistem basis data apa yang akan pengguna gunakan serta bagaimana caranya
menanganinya (dalam hal terakhir ini, jika kita mau, kita bisa menggunakan
SimpleDB yang lebih memungkinkan pengguna untuk mengendalikan sistem).
KESIMPULAN
Sudah kita lihat di atas bahwa komputasi awan
(cloud computing) merupakan sarana pengembangan aplikasi yang sangat penting di
masa yang akan datang, karena menggunakan komputasi awan ini pengguna tidak
perlu lagi memikirkan infrastruktur yang mendasari suatu aplikasi yang biasanya
memerlukan investasi dalam bentuk dana yang sangat besar. Selain itu, dari
sudutpandang pengguna, komputasi awan memungkinkan pengguna mengembangkan
aplikasi secara terintegrasi mulai dari perancangan sistem, perancangan
antarmuka pengguna (user interface), perancangan basis data, pemrograman, dan
hal hal-hal yang bersifat teknis lainnya. Selanjutnya, jika kita melihat
pembahasan sebelumnya ada beberapa hal yang dapat kita simpulkan berkaitan
dengan implementasi Google App Engine (GAE) dan Amazon Web Service (AWS).
Kesimpulan yang dibuat secara umum itu adalah sebagai berikut.
Google App Engine (GAE).
Kelebihan.
1.
Aplikasi dapat dengan mudah dan cepat dikembangkan menggunakan bahasa
pemrograman Java dan/atau Phyton dan tidak memerlukan usaha pemeliharaan yang
ekstra sulit.
2.
Biaya penggunaan relatif murah (bahkan gratis untuk aplikasi-aplikasi kecil)
dan, jika kuota lebih diinginkan, penambahan kuota dapat dilakukan dengan cara
yang sangat masuk akal.
Kekurangan.
1.
Aplikasi-aplikasi tertentu, terutama yang memerlukan akses penuh ke sistem yang
mendasari, relatif sukar untuk dikembangkan.
2.
Sistem yang terkendali penuh tidak memungkinkan pustaka-pustaka (library) dan
frameworkframework tertentu digunakan oleh aplikasi-aplikasi GAE.
3.
Tidak mendukung penggunaan sistem basis data relasional.
Amazon Web Services (AWS).
Kelebihan.
1.
Aplikasi-aplikasi AWS yang ditulis menggunakan bahasa-bahasa pemrograman PHP,
Ruby, serta Java, dapat dikembangkan dengan cara yang sangat fleksibel karena
pengguna memiliki kendali penuh pada sistem yang mendasari.
2.
Struktur pembiayaan sederhana.
3.
Bisa menggunakan sistem basis data (relasional maupun non-relasional) apa saja
yang dibutuhkan oleh pengguna.
4.
Jika pengguna mau, pengguna bisa saja menggunakan/menambahkan server-server
yang berada di luar Amazon Web Service.
Kekurangan.
1.
Kurva belajar yang terjal (relatif sulit untuk mempelajari pengembangan
aplikasi-aplikasi di atas Amazon Web Service dibandingkan di atas Google App
Engine).
2.
Memerlukan waktu yang relatif lebih lama untuk mengembangkan aplikasi (bahkan
untuk aplikasi-aplikasi yang relatif sederhana).
Pemilihan
organisasi/perusahaan saat akan menggunakan Google App Engine (GAE) atau Amazon
Web Service (AWS) sebagai strategi perusahaan untuk mengimplementasikan
aplikasi komputasi awannya pada dasarnya sangat bersifat kasuistik. Pemilihan
bisa dilakukan berdasarkan sumberdaya manusia yang dimiliki
organisasi/perusahaan (terutama ketrampilan teknis para pemrogram komputer yang
dimiliki oleh organisasi/perusahaan) serta jenis aplikasi seperti apa yang akan
dikembangkan (apakah menuntut kendali penuh pada sistem yang mendasari atau
tidak). Pertimbangan lainnya juga bisa digunakan, yaitu dana investasi. Secara
umum, investasi dana yang diperlukan relatif berimbang, tetapi untuk
aplikasi-aplikasi yang berukuran relatif kecil, kelihatannya penggunaan Google
App Engine lebih ekonomis. Untuk aplikasi-aplikasi komputasi awan yang sangat
besar dan kompleks, kelihatannya penggunaan Amazon Web Service lebih
direkomendasikan karena aplikasi-aplikasi bisa dikembangkan dengan akses penuh
ke sistem yang mendasari.
DAFTAR PUSTAKA
Ahuja,
Sanjay, Jee-Lon Yang, 2010. Performance Evaluation of Java Web Service : A
Developer’s Perspective. Communications and Networks, 2010, 2,
200-206.www.SciRP.org/journal/cn.
. Azeez,
Afkham. Autoscaling Web Services on Amazon EC2. Department of Computer and
Engineering-University of Moratuwa-Srilanka.
.
Babcock, Charles, 2010. Management Strategies for the Cloud Revolutions : How
Cloud Computing Is Transforming Businesses and Why You Can’t Afford to Be Left
Behind. McGraw-Hill Companies, New York-USA.
. Bar,
Jeff, 2010. Host Your Web Site in the Cloud : Amazon Web Service Makes Easy.
Amazon Web Service-Site Point Pty Ltd., Seattle-USA. www.sitepoint.com.
.
Blokdijk, Gerrard, 2008. SaaS Success Secrets. www.ebooke.org.
.
Chappell, David, 2008. Introducing The Azure Services Platform : An Early Look
at Windows Azure, .NET Services, SQL Services, and Live Services. Microsoft Corp.
and David Chappell Associates, San Fransisco-California-USA. www.davidchappell.com.
Ciurrana,
Eugene. Developing with Google Apps Engine. Apress. www.apress.com.
Habeb,
Mocky, 2011. A Developer’s Guide to Amazon SimpleDB. Addison Wesley-Pearson
Education, Boston-USA.
Hansen,
Mark D., 2007. SOA Using Java Web Services. Pearson Education, Inc.,
Upper-Saddle River-New York.
Hinchcliffe,
Dion. Comparing Amazon’s and Google’s Platform as Service (PaaS). www.zdnet.com.
Kereki,
Frederico, 2010. Building for the Web with Google Web Toolkit 2. Addison-Wesley
Inc.- Pearson Education, Boston-USA.
Lim,
Billy, Sri Ram Ajjarapu, Khrisna Kumala, 2004. Interfacing with Amazon Web
Services Using Java and .NET : A Comparative Study. Journal of Internet
Commerce Vol 3(4) 2004. The Haworth Press, Inc., www.haworthpress.com.
Malaher, Tom, 2009. Cloud Computing and Amazon
Web Services. CJUG
Nugroho,
Adi, 2011. Implementasi Java Web Service Menggunakan “Big” Web Service dan REST
(REpresentational State Transfer). Dipresentasikan di KNSI (Konferensi Nasional
Sistem Informasi), STMIK Potensi Utama, Medan.
Nugroho,
Adi, 2010. Peran Teknologi Komputasi Awan (Cloud Computing) Dalam Pemeliharaan
dan Pemulihan Data Kependudukan Pasca Bencana. Dipresentasikan di SNASTI
(Seminar Nasional Teknologi Informasi) di STIKOM Surabaya.
Nakhimovsky,
Alexander, Tom Myers, 2004. Google, Amazon, and Beyond : Creating and Consuming
Web Service. Springer-Verlag, GmBH, Heidelberg, Germany.
Rees,
George, 2009. Cloud Application Architectures. O’Reilly Media Inc.,
Sebastopol-USA.
Roche,
Kyle, Jeff Douglas, 2009. Beginning Java Google Apps Engine. Springer-Verlag,
USA.
Teknik
pengembangan klien Java untuk Amazon EC2. http://java.sun.com/
developer/technicalArticles/WebServices/amazonws/.
Valdes,
Ray, 2008. Google Goes Up Againts Amazon Web Services. Gartner Inc.,
Stamford-USA.
Varia,
Jinesh, 2010. Architecting for the Cloud : Best Practises. Amazon Web Service,
Seattle-USA.
Van
Fliet, Flavia Paganilli, 2011. Programming Amazon EC2. O’Relly Media, Inc.,
Sebastopol-USA.
Tidak ada komentar:
Posting Komentar