UEC: Manajemen Instance
Secara umum ada tiga (3) tipe tools yang dapat digunakan untuk me-manage instance Eucalyptus.
- Firefox Plugins – Elasticfox dan Hybridfox
- Command Line tools seperti euca2ools
- Custom application yang di kembangkan menggunakan EC2 APIs. ( Tidak akan di bahas di sini )
Elasticfox
Elasticfox adalah open source Mozilla Firefox extension yang dapat bekerja di Firefox Version 2.0 ke atas untuk membantu kita dalam me-manage account di Amazon EC2 – menjalankan instance baru, mount volume Elastic Block Storage, map Elastic IP addresses, dan masih banyak lagi. Elasticfox awalnya di tulis untuk EC2, tapi sekarang dia juga dapat digunakan untuk manage account Eucalyptus yang kita punya, karena API Eucalyptus compatible dengan EC2.
Fitur
- Melihat daftar image yang tersedia (AMI untuk AWS dan EMI untuk Eucalyptus)
- Melihat daftar instance yang berjalan
- Menjalankan instance baru dari AMI/EMI
- Me-manage security group dan rule
- Manage Snapshot/EBS volume
Installation on Firefox
Install extension dari http://s3.amazonaws.com/ec2-downloads/elasticfox.xpi
Kita perlu me-restart Firefox sebelum kita dapat mulai menggunakan Elasticfox. Kita dapat menjalankan Elasticfox melalui menu ‘Tools’ dari Firefox.
Configuration
Mendefinisikan Region
- Klik pada tombol Region
- Masukan nama logical untuk region (Misalnya: “Eucalyptus” , “MyEucalyptus” dll)
- Masukan nilai dari EC2_URL dari file eucarc sebagai Endpoint URL(http://192.168.10.121:8773/services/Eucalyptus misalnya)
Mendefinisikan Credential
- Klik pada tombol Credential
- Masukan nama logical untuk sebuah set credential (Misalnya: “EucaAcc1″ dll.)
- Masukan EC2_ACCESS_KEY dan EC2_SECRET_KEY dari file eucarc sebagai AWS Access Key dan AWS Secret Access Key
Mendefinisikan Pasangan Kunci
- Klik pada tab KeyPairs
- Klik pada icon “Create a key keypair”
- Masukan nama pasangan kunci (Misalnya : “eucakey” dll.)
- Pilih lokasi dari mesin client untuk menyimpan id file tersebut (Kita memerlukan ini menggunakan putty dll untuk melakukan sambungan SSH)
Mendefinisikan Group Security
- Klik pada tab SecurityGroups
- Masukan nama dari group (Misalnya: “Eucalyptus”, “EucaGroup” dll.)
- Masukan deskripsi dan klik tombol create
- Kita akan memperoleh pilihan untuk menentukan beberapa port dasar seperti SSH/RDP yang perlu di buka saat membuat group tersebut. Setelah group dibuat, kita dapat menambahkan aturan kapan saja, dengan cara memilih security group di lajur kiri yang berjudul “Your groups” dan menambahkan aturan di lajur kanan yang berjudul “Group Permissions”
Untuk informasi lebih lanjut bisa di ambil di http://ec2-downloads.s3.amazonaws.com/elasticfox-owners-manual.pdf
Hybridfox
Hybridfox adalah sempalan dari Elasticfox agar lebih bisa digunakan menggunakan Eucalyptus, Elasticfox hanya bekerja untuk AWS. Hybridfox dapat digunakan menggunakan satu interface baik untuk AWS dan Eucalyptus.
Interface dari Hybridfox mirip dengan Elasticfox dan semua langkah di atas untuk Elasticfox berlaku juga untuk Hybridfox.
Bahkan setelah release terakhir dari Elasticfox (version 1.7) yang mendukung Eucalyptus, Hybridfox menambahkan beberapa fitur tambahan yang membuatnya lebih menarik untuk pengguna Eucalyptus:
- Menjalankan instance dengan IP Private
- Membuat pemetaan antara tipe instance dan tipe arsitektur
- Mendukung 1.5.x maupun 1.6.x
- Beberapa perbaikan agar dapat digunakan lebih baik lagi
Kita dapat menginstalasi extension tersebut dari http://code.google.com/p/hybridfox/downloads/list.
Kita perlu me-restart Firefox sebelum kita dapat menggunakan Hybridfox. Kita dapat mengakses Hybridfox dari menu ‘Tools’ di Firefox.
Command Line Tool (Euca2ools)
Euca2ools dari Eucalyptus menyediakan beberapa command line tool untuk memanage eucalyptus. Perintah-perintah tersebut membantu kita dalam me-manage images, instances, storage, networking dll. Beberapa perintah yang akan berguna bagi kita akan di perlihatkan di bawah ini.
Instalasi euca2ools
$ sudo apt-get install euca2ools
Pembuatan Pasangan Kunci
Eucalyptus berharap client tool untuk menggunakan dua (2) macam credential. Satu set credential di sebut Access Key dan Secret Key yang digunakan oleh semua client yang membutuhkan untuk meminta sesuatu dari Cloud Controller. Setiap user yang terdaftar di interface web akan mempunyai set ini yang dibuatkan untuk masing-masing user. Kita dapat mengambilnya melalui Web seperti dijelaskan sebelumnya pada bagian “Web Interface”.
Kita juga perlu membuat sebuah pasangan kunci yang terdiri dari private key/public key untuk dapat menjalankan instance di Eucalyptus. Kunci ini di injeksi di instance dan dapat digunakan untuk melakukan akses passwordless SSH ke instance.
Pasangan kunci dapat di hasilkan menggunakan perintah berikut
uecadmin@client1:~$ cd ~/.euca uecadmin@client1:~/.euca$ source eucarc uecadmin@client1:~$ euca-add-keypair mykey > mykey.priv uecadmin@client1:~$ chmod 600 mykey.priv
Perintah di atas akan membuat pasangan key yang baru di sebut mykey. Private key mykey.priv akan di simpan secara lokal yang akan digunakan untuk menyambungkan ke instance yang di jalankan dengan mykey sebagai pasangan kunci.
Untuk melihat daftar pasangan kunci:
uecadmin@client1:~$ euca-describe-keypairs KEYPAIR mykey f7:ac:8e:f5:05:19:2b:31:28:8c:9b:d7:b8:07:0c:3c:b6:34:8f:79 KEYPAIR helloworld 12:96:b3:21:34:8d:6a:3f:92:2e:2b:70:23:ff:7f:51:b5:b7:ad:37 KEYPAIR ubuntu f6:af:9a:59:65:35:32:c4:3a:c4:62:0e:e1:44:0f:71:29:03:2d:91 KEYPAIR lucid 74:04:70:33:ed:57:7a:30:36:1f:ca:c6:ec:d5:4f:10:34:1a:52:51 KEYPAIR karmic 01:f9:aa:5f:4d:20:e2:53:d1:29:d0:0f:e2:f3:8c:21:91:70:7e:c8
Untuk men-delete pasangan kunci dapat menggunakan perintah
uecadmin@client1:~$ euca-delete-keypair helloworld
Tugas di atas dapat juga dilakukan menggunakan Hybridfox dari “Keypairs” tab.
Menjalankan dan Memanage Instance
Perintah berikut dapat digunakan untuk untuk menjalankan instance dengan menggunakan pasangan kunci yang kita buat, mencek status instance, dan meng-connect ke instance.
$ euca-run-instances emi-721D0EBA -k mykey -t c1.medium RESERVATION r-55560977 admin admin-default INSTANCE i-50630A2A emi-721D0EBA 0.0.0.0 0.0.0.0 pending mykey 2010-05-07T07:17:48.23Z eki-675412F5 eri-A1E113E0
$ euca-describe-instances RESERVATION r-55560977 admin default INSTANCE i-50630A2A emi-721D0EBA 192.168.10.200 172.19.1.2 running mykey 0 c1.medium 2010-05-07T07:17:48.23Z myueccluster eki-675412F5 eri-A1E113E0
$ euca-get-console-output i-50630A2A i-50630A2A 2010-05-07T07:22:40.795Z [ 0.000000] Initializing cgroup subsys cpuset [ 0.000000] Initializing cgroup subsys cpu [ 0.000000] Linux version 2.6.32-21-server (buildd@yellow) (gcc version 4. 4.3 (Ubuntu 4.4.3-4ubuntu5) ) #32-Ubuntu SMP Fri Apr 16 09:17:34 UTC 2010 (Ub untu 2.6.32-21.32-server 2.6.32.11+drm33.2) [ 0.000000] Command line: root=/dev/sda1 console=ttyS0 [ 0.000000] KERNEL supported cpus: [ 0.000000] Intel GenuineIntel [ 0.000000] AMD AuthenticAMD [ 0.000000] Centaur CentaurHauls [ 0.000000] BIOS-provided physical RAM map: [ 0.000000] BIOS-e820: 0000000000000000 - 000000000009f000 (usable) [ 0.000000] BIOS-e820: 000000000009f000 - 00000000000a0000 (reserved) ............. ............. .............
uecadmin@client1:~$ ssh -i mykey.priv user@192.168.10.200
uecadmin@client1:~$ euca-reboot-instances i-50630A2A
uecadmin@client1:~$ euca-terminate-instances i-50630A2A
pastikan saat kita menjalankan instance dengan tipe VM yang tepat. Jika kita menjalankan dengan tipe VM yang terlalu kecil, maka error berikut akan muncul
error: insufficient disk capacity remaining
Default yang digunakan adalah tipe m1.small akan menggunakan 2GB. Jika kita mempunyai harddisk 5GB maka sebaiknya tidak menggunakan
euca-run-instances emi-XXXXXXXX -k mykey
tapi menggunakan
euca-run-instances emi-XXXXXXXX -k mykey -t c1.medium
Tipe VM juga berimplikasi pada jumlah RAM dan jumlah CPU yang di alokasikan ke instance. Untuk mengetahui tipe VM yang di konfigurasi, silahkan dilihat pada halaman konfigurasi pada interface web.
Pada saat kita memerintahkan “euca-run-instances” (atau saat kita memilih untuk menjalankan instance dari Hybridfox/Elasticfox), berikit ini adalah beberapa yang akan terjadi pada berbagai komponen di UEC:
- Authentication/Authorization dari user request untuk memastikan bahwa kita memiliki ijin untuk menjalankan instance.
- Identifikasi dari CC untuk mengambil tanggung jawab untuk menjalankan instance dan identifikasi NC untuk menjalankan instance.
- Download image ke NC (image di cache oleh karenanya untuk menjalankan multiple instance dari image yang sama hanya membutuhkan satu kali download)
- Buat virtual network interface yang diminta
- Jalankan instance dari image di virtual machine menggunakan KVM (Hal ini hanya dimungkinkan jika menggunakan CPU NC yang mempunyai kemampuan VT dan oleh BIOS enable).
Menjalankan dan menghentikan sebuah instance adalah sebuah proses yang kompleks yang melibatkan banyak komponen di UEC.