Kokeillaan rakentaa kahden weppipalvelimen klusteri yllä olevan kuvan mukaisesti ja käyttää Amazonin tarjoamaa kuormantasaajaa (ELB, Elastic Load Balancing) komentorivikomennoilla. Weppipalvelimena toimivat kaksi Apachea, jotka tarjoilevat molemmat yhtä sivua.
Klusterin palvelimien pystytys
Klusterin palvelimet voisi pystyttää yksitellen edellisen blogauksen ohjeiden perusteella. On kuitenkin mielenkiintoisempaa rakentaa image, jolta molemmat koneet käynnistetään.
Luodaan ensin yksi EC2-instanssi Ubuntu 10.04:n AMI:n pohjalta.
$ ec2-run-instances ami-cc0e3cb8 --instance-count 1 --instance-type t1.micro --key testkeypair --group public_access RESERVATION r-adfdf5db 093338577702 public_access INSTANCE i-14cc735d ami-cc0e3cb8 pending testkeypair 0 t1.micro 2011-12-04T16:59:46+0000 eu-west-1a aki-4feec43b monitoring-disabled ebs paravirtual xen sg-12ac4965 default
Asennetaan koneelle Apache-palvelin. Apachen asentaminen vaatii koneelle kirjautumista ja koneelle kirjautuminen edellyttää koneen nimen tietämistä, joten selvitetään nimi ensin.
$ ec2-describe-instances RESERVATION r-adfdf5db 093338577702 public_access INSTANCE i-14cc735d ami-cc0e3cb8 ec2-46-137-22-203.eu-west-1.compute.amazonaws.com ip-10-48-9-210.eu-west-1.compute.internal running testkeypair 0 t1.micro 2011-12-04T16:59:46+0000 eu-west-1a aki-4feec43b monitoring-disabled 46.137.22.203 10.48.9.210 ebs paravirtual xen sg-12ac4965 default BLOCKDEVICE /dev/sda1 vol-7551591c 2011-12-04T17:00:04.000Z
Kirjaudutaan koneelle ja asennetaan Apache.
$ ssh -i certs/testkeypair_private.key ubuntu@ec2-46-137-22-203.eu-west-1.compute.amazonaws.com $ sudo apt-get update $ sudo apt-get install apache2
Todetaan selaimella, että Apache toimii eli mennään osoitteeseen http://ec2-46-137-22-203.eu-west-1.compute.amazonaws.com..
Tehdään luodusta Ubuntu-asennuksesta asennusmedia, josta on helppo luoda klusteriin uusia instansseja.
$ ec2-stop-instances i-14cc735d INSTANCE i-14cc735d running stopping $ ec2-create-image i-14cc735d --name "weppipalvelin" --description "Klusterin weppipalvelimien luomiseen image" IMAGE ami-73073b07
Imagen olemassaolon voi vielä tarkistaa näin.
$ ec2-describe-images IMAGE ami-73073b07 093338577702/weppipalvelin 093338577702 available private x86_64 machine aki-4feec43b ebs paravirtual xen BLOCKDEVICEMAPPING /dev/sda1 snap-aaef70c2 8
Sitten pitäisi käynnistää klusterin koneet. Poistetaan ensin kuitenkin aiemmin luotu instanssi sotkemasta muuta säätöä.
$ ec2-terminate-instances i-14cc735d
Uusien koneiden käynnistäminen.
$ ec2-run-instances ami-73073b07 --instance-count 2 --instance-type t1.micro --key testkeypair --group public_access RESERVATION r-2b89815d 093338577702 public_access INSTANCE i-10bf0059 ami-73073b07 pending testkeypair 0 t1.micro 2011-12-04T18:09:57+0000 eu-west-1c aki-4feec43b monitoring-disabled ebs paravirtual xen sg-12ac4965 default INSTANCE i-12bf005b ami-73073b07 pending testkeypair 1 t1.micro 2011-12-04T18:09:57+0000 eu-west-1c aki-4feec43b monitoring-disabled ebs paravirtual xen sg-12ac4965 default
Koneiden status käynnistyksen jälkeen.
$ ec2-describe-instance-status INSTANCE i-10bf0059 eu-west-1c running 16 INSTANCE i-12bf005b eu-west-1c running 16
AWS antoi koneille DNS-nimet ec2-79-125-46-213.eu-west-1.compute.amazonaws.com ja ec2-46-137-144-163.eu-west-1.compute.amazonaws.com. Muutetaan jälkimmäisen koneen tiedostoa /var/www/index.html ja lisätään sinne tunnisteen "Kone 2", jotta koneet voi myöhemmin erottaa kuormantasaajan takaa.
Kuormantasaajan luominen
Aivan ensiksi pitää noutaa kuormantasaajan komentorivityökalut.
$ wget http://ec2-downloads.s3.amazonaws.com/ElasticLoadBalancing.zip
Paketti pitää purkaa ja sen jälkeen vielä editoida aiemmin luotua env.sh-tiedostoa, jotta ELB:n työkalut saadaan polkuun ja jotta ELB:n työkalut tietävät mistä löytyvät. Lisää siis seuraavat rivit.
export AWS_ELB_HOME=~/aws/ElasticLoadBalancing-1.0.15.1 export PATH=$PATH:$EC2_HOME/bin:$AWS_ELB_HOME/bin export EC2_REGION=eu-west-1
ELB:n luonti.
$ elb-create-lb klusteri-lb --listener "protocol=HTTP, lb-port=80, instance-port=80" --availability-zones eu-west-1c DNS_NAME klusteri-lb-828561786.eu-west-1.elb.amazonaws.com
Lisätään instanssit ELB:lle.
$ elb-register-instances-with-lb klusteri-lb --instances i-10bf0059,i-12bf005b INSTANCE_ID i-12bf005b INSTANCE_ID i-10bf0059
Selaimella voi käydä tarkistamassa, että kuormantasaaja heittelee pyyntöjä molemmille koneille: http://klusteri-lb-828561786.eu-west-1.elb.amazonaws.com.
Jälkien siivoaminen
Lopuksi poistetaan kaikki varatut resurssit, jotta AWS ei lähettele laskuja perään.
$ elb-delete-lb klusteri-lb $ ec2-terminate-instances i-12bf005b i-10bf0059
Luodun AMI:n poistaminen on karvan verran hankalampaa.
$ ec2-describe-snapshots SNAPSHOT snap-aaef70c2 vol-7551591c completed 2011-12-04T17:22:54+0000 100% 093338577702 8 Created by CreateImage(i-14cc735d) for ami-73073b07 from vol-7551591c $ ec2-deregister ami-73073b07 IMAGE ami-73073b07 $ ec2-delete-snapshot snap-aaef70c2 SNAPSHOT snap-aaef70c2
Voiko kahden koneen klusterin tekeminen mennä vielä paljon helpommaksi?
Ei kommentteja:
Lähetä kommentti