De filosofie van Amazon om schaalvoordeel weer door te geven aan de klant, maakt de keuze voor AWS tot een economisch aantrekkelijke keuze. Het platform biedt net name voor softwareontwikkelaars zoveel mogelijkheden dat het zinvol is om deze in een serie van artikelen te presenteren. Dit artikel is het eerste in een reeks artikelen over AWS.

Als ontwikkelaar moet je schipperen tussen mogelijkheden, tijd en eisen van de business. Bekijk de special over Development in de Cloud en geef je mening!

Elastisch

Het sleutelwoord met betrekking tot AWS is elastisch. AWS is door de elasticiteit en flexibiliteit zowel voor de business als voor ontwikkelaars erg aantrekkelijk. Cloud-capaciteit kan zonder verplichtingen in de vorm van contracten op elk gewenst moment vergroot en verkleind worden. Zo kun je nieuwe projecten zonder, of tegen hele lage kosten, opstarten. En later kun je ze ook weer stopzetten, uitgebouwen of sterk wijzigen. Ook in het soort en het aantal diensten dat je afneemt, is er namelijk sprake van elasticiteit. Vrijwel alle denkbare software en diensten zijn beschikbaar, van datawarehouses, commerciële applicaties tot IoT (internet of things) -toepassingen. Daarbij is er veel aandacht voor security.

EC2

Het meest bekende onderdeel van AWS voor ontwikkelaars is waarschijnlijk Amazon EC2, de elastic cloud die vooral zorgt voor de rekenkracht voor het uitvoeren van applicaties. De platformen zijn Linux en Windows en in principe kan op EC2 iedere computertaal gebruikt worden, in combinatie met webservices. Ook is er een groot aantal api's beschikbaar voor Java, Javascript, Windows en .net, PHP, Ruby, Python en mobiele platforms. En wanneer er geen native API beschikbaar is, kun je gebruik maken van een REST based API. Verder zijn er plugins voor Eclipse en Visual Studio .net. Je kunt op EC2 binnen minuten nieuwe serverinstanties in gebruik nemen, waardoor je ook in uitzonderingssituaties vrijwel last hebt van capaciteitsproblemen.

Serverinstanties

Je kunt de verschillende instanties samenstellen met nadruk op respectievelijk CPU-belasting, geheugen, opslag of GPU-belasting. Later kun je die instanties ook weer aanpassen, Mocht dat noodzakelijk zijn vanwege een verandering in de workload of requirements. Zo kan AWS in zeer uiteenlopende use cases voorzien, van weinig veeleisende applicaties tot clustercomputing en supercomputing aan toe. Voor het gebruiken van rekencapaciteit bestaan verschillende calculatiemogelijkheden. Een interessante optie die onder meer door rekenintensieve farmaceutische toepassingen gebruikt is, bestaat in het inkopen van zogenoemde spot-instances: daarbij wordt geboden op rekencapaciteit op een specifiek moment. Zo kun je voordelig extra rekenkracht toevoegen.

AWS Lambda

Een AWS-alternatief voor EC2 is AWS Lambda, dat code uitvoert zonder dat de klant hoeft na te denken over serverinstanties. Die worden automatisch opgestart en je betaalt op basis van rekentijd. Er wordt gebruik gemaakt van Lambda-functies, geschreven in javascript, Python en java. Deze worden onder meer getriggerd door updates in Amazon DynamoDB, modificaties van objecten in Amazon S3 en Amazon CloudWatch logs.

Uitgebreid palet storage en database services

Op het gebied van opslag kent AWS eveneens een uiteenlopend en flexibel aanbod. Allereerst is er Amazon Simple Storage Service (Amazon S3) in verschillende versies, Met hun specifieke eigenschappen, bedoeld voor het opslaan van objecten in de cloud. De durability van de data daarin is 99,99999999% (11x9) . Ook is er EBS, bedoeld voor transactionele data. Dit is block based storage die via het netwerk kan worden gekoppeld aan instanties. Een nieuwe service is Elastic File System (EFS). Dit is een managed file systeem met ondersteuning voor NFS. Glacier is een service die met name geschikt is voor het backuppen van grote hoeveelheden data.

Op het gebied van databases is er allereerst Amazon Relational Database Service (Amazon RDS). Daarmee kunnen zonder dba-werk zes verschillende relationele databases gebruikt worden: Amazon Aurora, Oracle, Microsoft SQL Server, PostgreSQL, MySQL and MariaDB. Voor het supersnelle werk op iedere schaalgrootte is er Amazon DynamoDB: een NoSQL-database service die zowel document en key-value opslagmodellen ondersteunt.

Afgezien van specifieke oplossing als DB2 binnen een AWS-stack, is er ook een datawarehouse-oplossing. Amazon Redshift is de datawarehouse-oplossing die schaalbaar is tot enkele petabytes en samenwerkt met de gebruikelijke BI-tools. Met behulp van ElastiCache kan bovendien voorzien worden in de behoefte aan in-memory cache in de cloud. Via Amazon AWS market place is zelfs SAP Hana in te zetten onder meer op uurbasis.

Cutting edge technologie

Zoals in het begin van dit artikel aangeven is dit overzicht noodzakelijkerwijs onvolledig. Zo beschikt AWS ook over netwerk-oplossingen, mogelijkheden om met streaming data te werken, ook via SQL, een Hadoop-framework, BI-service en mogelijkheden om op relatief eenvoudige wijze machine learning toe te passen (machine learning is de studie en constructie van algoritmen die kunnen leren van data en die op basis ervan voorspellingen kunnen maken).

In de volgende artikelen gaan we verder in op de hier genoemde mogelijkheden. Bent u echter nu al erg nieuwsgierig, dan kunt u op aws.amazon.com een gratis account aanmaken en een jaar of deels langer de zogenaamde free tier gebruiken.