Transcript Amazon Web Services: Building Highly Scalable Web Applications Jeff Barr
Amazon Web Services: Building Highly Scalable Web Applications Institutional Web Management Workshop July 2007
Jeff Barr Senior Web Services Evangelist [email protected]
Today
Introduction Amazon Web Services overview Amazon EC2 Amazon S3 Amazon SQS Application Architecture Questions
Who am I?
Software development background 5 Years with Amazon: Senior Developer Web Services Evangelist Senior Web Services Evangelist Veteran of several startups Microsoft .Net Team Visix Software co-founder
Amazon?
Consumers (Buy) Associates, Sellers & Merchants (Sell) Developers (Innovate)
Issues Facing Developers
70% of Web Development Effort is “Muck”: Data Centers Bandwidth / Power / Cooling Operations Staffing Scaling is Difficult and Expensive: Large Up-Front Investment Invest Ahead of Demand Load is Unpredictable
Dream or Nightmare?
Slashdot/Digg/TechCrunch Effect Rapid, unexpected customer demand/growth
Seasonal Spikes
More Seasonal Spikes
“Every year, we take the busiest minute of the busiest hour of the busiest day and build capacity on that, we built our systems to (handle that load) and we went above and beyond that.” * -- Scott Gulbransen Intuit Spokesman * http://news.com.com/2100-1038_3-6177341.html
Solution: Web-Scale Computing
Scale capacity on demand Turn fixed costs into variable costs Always available Rock-solid reliability Simple APIs and conceptual models Cost-effective Reduced time to market Focus on product & core competencies
Amazon Web Services Are...
A set of APIs and business models which give developer level access to Amazon’s infrastructure and content: Data As A Service Amazon E-Commerce Service Amazon Historical Pricing Infrastructure As A Service Amazon Simple Queue Service Amazon Simple Storage Service Amazon Elastic Compute Cloud Search As A Service Alexa Web Information Service Alexa Top Sites Alexa Site Thumbnail Alexa Web Search Platform People As A Service Amazon Mechanical Turk 10
The Commercial Side
Standard licensing terms Commercially usable Aggressive pricing Monthly credit card billing Self-serve model: Sign up as developer Choose services Agree to service licenses Enter payment info Start coding
Web Services Billing
Infrastructure Services
Elastic Compute Cloud Compute Simple Storage Service Store Simple Queue Service Message
Amazon Simple Storage Service
S3
Amazon Simple Storage Service
• • • • • Object-Based Storage 1 B – 5 GB / object Fast, Reliable, Scalable Redundant, Dispersed 99.99% Availability • • • Goal Private or Public Per-object URLs & ACLs BitTorrent Support
$.15 per GB per month storage
$.01 for 1000 to 10000 requests $.10 - $.18 per GB data transfer
Amazon S3 Concepts
Objects: Opaque data to be stored (1 byte … 5 Gigabytes) Authentication and access controls Buckets: Object container – any number of objects 100 buckets per account / buckets are “owned” Keys: Unique object identifier within bucket Up to 1024 bytes long Flat object storage model Standards-Based Interfaces: REST and SOAP URL-Addressability – every object has a URL
S3 SOAP/Query API
Service:
ListAllMyBuckets
Buckets:
CreateBucket DeleteBucket ListBucket GetBucketAccessControlPolicy SetBucketAccessControlPolicy GetBucketLoggingStatus SetBucketLoggingStatus
Objects:
PutObject PutObjectInline GetObject GetObjectExtended DeleteObject GetObjectAccessControlPolicy SetObjectAccessControlPolicy
Amazon Simple Queue Service
SQS
Amazon Simple Queue Service
• • • Scalable Queuing Elastic Capacity Reliable, Simple, Secure Inter-process messaging, data buffering, architecture component
$.10 per 1000 messages
$.10 - $.18 per GB data transfer
Amazon SQS Concepts
Queues: Named message container Persistent Messages: Up to 256KB of data per message Peek / Lock access model Scalable: Unlimited number of queues per account Unlimited number of messages per queue
Amazon SQS At Work
SQS SOAP/Query API
Queues:
ListQueues DeleteQueue SetVisibilityTimeout GetVisibilityTimeout
Messages:
SendMessage ReceiveMessage DeleteMessage PeekMessage
Security:
AddGrant ListGrants RemoveGrant
Amazon Elastic Compute Cloud
EC2
Amazon Elastic Compute Cloud
• • • • • • • Virtual Compute Cloud Elastic Capacity 1.7 GHz x86 1.7 GB RAM 160 GB Disk 250 MB/Second Network Network Security Model Time or Traffic-based Scaling, Load testing, Simulation and Analysis, Rendering, Software as a Service Platform, Hosting
$.10 per server hour
$.10 - $.18 per GB data transfer
Amazon EC2 Concepts
Amazon Machine Image (AMI): Bootable root disk Pre-defined or user-built Catalog of user-built AMIs OS: Fedora, Centos, Gentoo, Debian, Ubuntu, Windows Server App Stack: LAMP, mpiBLAST, Hadoop Instance: Running copy of an AMI Launch in less than 2 minutes Start/stop programmatically Network Security Model: Explicit access control Security groups Inter-service bandwidth is free
Amazon EC2 At Work
Startups Cruxy – Media transcoding GigaVox Media – Podcast Management Fortune 500 clients: High-Impact, Short-Term Projects Development Host Science / Research: Hadoop / MapReduce mpiBLAST Load-Management and Load Balancing Tools: Pound Weogeo Rightscale
EC2 SOAP/Query API
Images:
RegisterImage DescribeImages DeregisterImage
Instances:
RunInstances DescribeInstances TerminateInstances GetConsoleOutput RebootInstances
Keypairs:
CreateKeyPair DescribeKeyPairs DeleteKeyPair
Image Attributes:
ModifyImageAttribute DescribeImageAttribute ResetImageAttribute
Security Groups:
CreateSecurityGroup DescribeSecurityGroups DeleteSecurityGroup AuthorizeSecurityGroupIngress RevokeSecurityGroupIngress
Sample Web-Scale Architecture
GigaVox Media
Web-Scale Architecture
GigaVox Economics
Implemented Amazon S3, Amazon EC2 and Amazon SQS in November 2006
Created an infinitely scalable infrastructure for less than $100
- building the same infrastructure themselves would have cost thousands of dollars Reduced staffing requirements - far less responsibility for 24x7 operations
Q & A
Thank You!
Jeff Barr
Senior Web Services Evangelist [email protected]
Pointers
Portal http://aws.amazon.com
Blog http://aws.typepad.com
EC2 http://aws.amazon.com/ec2 S3 http://aws.amazon.com/s3 Resource Center http://aws.amazon.com/resources Forums http://aws.amazon.com/forums