1
2
Amazon Web Services (AWS) on varmaankin maailman suosituin IaaS-tarjoaja. Lisäksi se tarjoaa erilaisia PaaS-kategoriaan kuuluvia palveluita. 3
4
Region vastaa palvelun fyysistä sijaintipaikkaa (AWS data center). Kaikille sovelluksille valitaan aina region, johon ne pystytetään. Regionin sisällä voidaan vielä määritellä availability zone:ja, jota on eristetty toisistaan verkkokatkosten ja muiden ongelmatilanteiden osalta. AWS pilvipalveluihin päästään käsiksi Amazon Edge location avulla. Se tarjoaa optimaalisen reitityksen itse fyysisiin palveluihin. Amazon CloudFront on erityinen verkkopalvelu sisällön jakamiseen. Kutsut reititetään automaattisesti lähimpään edge location:iin. Latenssia voidaan edelleen pienentää käyttämällä Edge locationin yhteydessä mm. välimuistia. Sijainti vaikuttaa myös AWS palveluiden hinnoitteluun. Esim. meille on edullisinta käyttää Eurooppa-regionia. 5
6
Amazon Machine Image (AMI) on konfiguraatio, jonka perusteella virtuaalikoneinstanssit luodaan. Se voi siis sisältää käyttöjärjestelmän lisäksi mm. sovelluskehitykseen tarvittavan ohjelmointi- ja ajoympäristön. 7
Amazonilla on käytössä Hadoop, joka on Java-pohjainen opensource toteutus MapReducesta. EMR paketoi Hadoopin valmiiksi EC2 instanssien päälle, jolloin mitään ei tarvitse itse asentaa. EMR töitä käynnistettäessä kerrotaan missä on sisääntulo, mitkä map ja reduce ohjelmat suoritetaan, mihin ulostulo halutaan ja monellako EC2 instanssilla työ ajetaan. EMR:n sisääntulo ja ohjelmat täytyy sijoittaa etukäteen valmiiksi johonkin S3:n buckettiin. Myös ohjelmien ulostulo tallentuu S3seen. Sisääntuloksi voidaan määritellä hakemisto, jolloin kaikki sen sisältämät tiedostot ladataan. Ulostulo on hakemisto, mutta sitä ei saa olla etukäteen olemassa. 8
S3 on varmennettu kovalevytila. Kaikki tieto S3ssa lajitellaan ensinnäkin bucketteihin ja niiden sisälle luodaan objekteja, joilla on avain eli key. Bucketit nimetään käyttäjän haluamalla tavalla, mutta nimen täytyy olla yksikäsitteinen maailmanlaajuisesti kaikkien S3-käyttäjien kesken. 9
SimpleDB on nimensä mukaan varsin yksinkertainen tietokanta. Tietokantaan ei tarvitse luoda skemaa etukäteen, eli tauluja, sarakkeita eikä sarakkeiden tyyppejä tarvitse määritellä etukäteen. Etuna on nopea käyttöönotto. SimpleDBssä tieto lajitellaan ensinnäkin domaineihin, joita voidaan ajatella relaatiotietokannan tauluina. Domainit sitten täytetään itemeillä. Itemillä voi olla attribuutteja. Jokainen rivi koostuu itemin nimestä ja sen attribuuteista. Attribuutit vastaavat pitkälti relaatiotietokantojen sarakkeita. Tietokantaa voidaan laajentaa lisäämällä uusia attributteja ajonaikana. Yhteen attribuuttiin voi myös sijoittaa useita arvoja. 10
SQS on jonopalvelu johon voidaan lähettää ja josta voidaan noutaa viestejä. Viestit voivat olla esimerkiksi jotain tehtäväkuvauksia joita halutaan jakaa useille työkoneille. SQS ei ole kuitenkaan ole FIFO tai LIFO, vaikka toiminta saattaa kyllä erehdyttävästi muistuttaa FIFOa. Tärkeä huomioitava seikka jonon viesteissä on niiden näkymättömyys- ominaisuus. Kun viesti noudetaan jonosta, niin se jää edelleen jonoon, mutta näkymättömäksi. Näkymättömyys-aika on säädettävissä ja oletuksena 30 sekuntia. Ideana on, että viestin noutaja ehtii suorittaa viestiin liittyvän työn tässä ajassa ja sen jälkeen poistaa viestin erityisellä poisto-operaatiolla. 11
12
Tässä esimerkkinä tämän kurssin aiemmilla toteutuksilla tehty harjoitustyö, joka toteutettiin käyttäen AWS:n Ohjelman logiikka toimii yksinkertaistettuna niin, että haetaan SQS(Simple Queue Service)- jonosta yksi kerrallaan web-sivujen URLeja. Jokaisesta web-sivusta eritellään kuvat ja niitä parhaiten vastaavat hakusanat. Kuvat tallennetaan S3(Simple StorageService)-levylle ja hakusanat SDB(SimpleDB)-tietokantaan. SDB-tietokantaan tallennetaan linkit S3-levyihin ladattuihin kuviin ja alkuperäisiin web-sivuihin. Kuvahaku toimii SDB-tietokannan voimin tavallisena hakuna ja tulokset haetaan S3-levyltä kuvina. Tulokset näytetään web-sivuna ja tämä pieni hakuohjelma luodaan Django-web frameworkin päälle. Erillisessä vaiheessa luodaan hakusanojen ehdotustoiminto. Ideana on, että yhdistetään hakusanoihin niiden kanssa useimmiten esiintyvät hakusanat. Tämä suoritetaan EMR (Elastic MapReduce) palvelulla. Nämäkin tiedot ajetaan sisään SDB-tietokantaan, josta niitä voidaan sitten käyttää kuvahaussa. 13