BAB 2-3 IMPLEMENTASI Jurnal CLOUD COMPUTING MENGGUNAKAN AMAZON WEB SERVICES (AWS) DAN TEKNOLOGI GOOGLE APP ENGINE (GAE)
2 IMPLEMENTASI KOMPUTASI AWANMENGGUNAKAN 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).
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).
Figure 1: Biaya Pemanfaatan Google App Engine
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 (perhatikan
Gambar 1). 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.
Figure 2: Arsitektur Aplikasi Google App Engine Secara Umum
Arsitektur sistem untuk Google App Engine (GAE) ini secara umum diperlihatkan dalam Gambar 1 di
atas. 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).
Untuk mengembangkan aplikasi Google App Engine, pengembang yang memiliki preferensi yang tinggi
terhadap bahasa pemrograman Java bisa menggunakan XMPP (Extensible Messaging and Presence Protocol) yang merupakan versi 1.2.5 dari Java SDK for App Engine. Layanan ini memungkinkan aplikasi Apps
Engine berinteraksi dengan layanan-layanan XMPP lainnya seperti (menyebutkan suatu contoh) Google
Talk. Mengembangkan aplikasi menggunakan Google App Engine for Java (GAE/J) mirip dengan pengembangan aplikasi Enterprise menggunakan Java, kecuali pengembang tidak perlu terlalu memikirkan tentang jaringan komputer yang digunakan, perangkat keras, sistem operasi, basis data, atau server aplikasinya.
Menggunakan GAE/J, pemrogram aplikasi bisa langsung berinovasi dan mengembangkan aplikasi, tanpa
harus melakukan hal-hal yang terlalu teknis seperti melakukan pengaturan- pengaturan sistem operasi dan
melakukan konfigurasi-konfigurasi basis data. GAE/J menyediakan antarmuka-antarmuka (interface) yang
serupa dengan JVM (Java Virtual Machine) versi 6 dan Java Servlet, dan juga mendukung teknologiteknologi Java yang umum seperti (hanya menyebutkan beberapa di antaranya) JDO (Java Database Object), JPA (Java Persistence API), JavaMail, dan sebagainya. Aplikasi-aplikasi GAE/J dapat dikembangkan
menggunakan IDE Eclipse dan Google Plugin for Eclipse yang menyediakan bagi kita server pengembangan
yang bersifat lokal, sehingga pengembang bisa mengembangkan aplikasi dari awal hingga akhir, sebelum
mengunggahnya (upload) menjadi Java Google App Engine.
3 IMPLEMENTASI KOMPUTASI AWANMENGGUNAKAN 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. Layananlayanan 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 komponenkomponen 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.
• Amazon EC2 (Elastic Compute Cloud). Digunakan sebagai infrastruktur (kapasitas pemrosesan,
memori, dan ruang hardisk) yang menyediakan layanan (service) yang dibutuhkan oleh para pengguna.
Figure 3: Jenis-jenis Instance Amazon EC2 Umum
Konsep yang sangat penting dalam Amazon Web Service (AWS) adalah instance (Gambar 3). 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
Gambar 3, setiap instance dengan waktu kerja tertentu serta alokasi RAM (Random Access Memory) tertentu
mensyaratkan investasi sejumlah US$ tertentu. Sebagai catatan tambahan, Tabel 1 di atas memperlihatkan
investasi yang diperlukan untuk mengembangkan aplikasi komputasi awan di Amerika Serikat dengan platform sistem operasi Linux. Untuk sistem-sistem operasi lain serta untuk kawasan-kawasan lain, Amazon
menyediakan perhitungan-perhitungan lain.
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). Dalam hal ini, berlainan dengan pendekatan yang dilakukan
oleh Google dengan sistem basis data non-relasionalnya (BigTable), Amazon menggunakan berbagai sistem
basis data yang bertindak sebagai layanan (service) bagi komponen-komponen yang membutuhkan data.
Sistem basis data yang digunakan Amazon Web Service (AWS) berupa baik sistem data relasional (RDSRelational Database Server) maupun non-relasional (SimpleDB) yang dimotori oleh sistem basis data nonrelasional Dynamo. Dalam semua hal ini, untuk mengoptimalkan layanannya, Amazon Web Service (AWS)
menggunakan perhitungan utilitas perangkat keras dan menyeimbangkannya menggunakan suatu fasilitas
yang dinamakan sebagai ELB (Elastic Load Balancing). Untuk melakukan pengaturan komponen-komponen
agar mengelompok berdasarkan apa yang dilakukannya serta berdasarkan utilitasnya, Amazon menggunakan
apa yang dinamakan sebagai Amazon Autoscaling. Sementara untuk melakukan pemantauan terhadap CPUCPU, lalulintas jaringan, serta penggunaan hardisk yang melintas jaringan komputer server dalam sistem
komputer awan (cloud computing) yang dimiliki Amazon digunakan suatu komponen perangkat lunak dalam
sistem Amazon Web Services (AWS) yang dinamakan sebagai Amazon Cloud Watch.
Figure 4: Arsitektur Aplikasi Amazon EC2
Pengembangan sistem dalam Amazon Web Service (AWS) dilakukan pertama kali dengan membuat
AWS Account yang meski untuk penggunaan awal gratis, tetapi menuntut penggunanya memiliki dukungan
pembiayaan melalui kartu kredit tertentu (paling tidak memiliki akun kartu kredit tertentu). Kemudian, kita bisa melakukan pengelolaan dan pengaturan aplikasi yang dikembangkan menggunakan AWS Management
Console. Selanjutnya, berkaitan dengan aplikasi yang kita kembangkan, kita perlu memilih arsitektur sistem
yang akan digunakan, seperti yang terlihat dalam Gambar 4. Jika organisasi/perusahaan memilih Rail
Server, Amazon akan menyediakan bagi organisasi/perusahaan framework Rail, server Web Apache, serta
fasilitas Passenger yang bermanfaat untuk melakukan deployment aplikasi. Alternatif lainnya (perhatikan
juga Gambar 4), kita bisa memilih arsitektur S3/CloudFront, dimana pengembang bisa mengembangkan
aplikasi yang bersifat 3 tier (data tier, logic tier, dan presentation tier) secara lebih konsisten. Menggunakan
alternatif yang terakhir ini, organisasi/perusahaan memiliki kebebasan yang lebih penuh untuk menentukan
lokasi-lokasi dimana berkas-berkas (file) akan diletakkan, memiliki kebebasan penuh untuk melakukan
konfigurasi-konfigurasi server aplikasi, dan sebagainya, yang pada gilirannya akan memberikan fleksibilitas
penuh pada aplikasi yang dikembangkan (dengan konsekuensi tingkat kesulitan pengembangan sistem akan
lebih tinggi).
Komentar
Posting Komentar