© 2014 Amazon.com, Inc. and its affiliates. All rights reserved. May not be copied, modified, or distributed in whole or i...
Build an AWS based, Scalable Mobile application that is location
centric and connects with the user’s mobile device person...
The Reality….
Minimum Viable Product (MVP)
=
Fixed amount of time* to build it and to demonstrate key
AWS concepts… servic...
Amazon Global Physical Infrastructure
(10 Geographic Regions, Multiple Availability Zones, 51 Edge Locations)
Parallel
Pro...
Reasoning Behind Service Usage
Solution Requirement AWS Service(s)
DNS Resolution Route 53
Networking Virtual Private Clou...
The Core Architecture
on AWS
The Overall Solution Architecture
API
Mobile Web Site
Now how to build this….
AWS Elastic Beanstalk
•  AWS Elastic Beanstalk allows for automated deployment of applications by
configuring its run-time...
AWS SDKs & Toolkits
Java .NET
nodeJS
Node JS
Ruby
RubyPython PHP
iOS
IOS Android
AWS CLI PowershellVisual Studio Eclipse
AWS SDKs & Toolkits
.NET
Visual Studio
AWS SDKs & Toolkits
.NET
Visual Studio
AWS SDKs & Toolkits
.NET
Visual Studio
Visual Studio .Net Add-In from AWS
Custom
AWS
Projects
AWS
Explorer
Pane
Available from http://aws.amazon.com/visualstudio/
Publish Directly To AWS
…. And you get something like this!
Visual Studio
http://lunchandlearn.elasticbeanstalk.com
DNS Setup For Application
Route 53
lunchandlearn.stanski.me
(A Record to IP)
Development Server on
AWS
Development Route 5...
Web Application Session State
ASP.Net Session State Management Considerations for
Scaling Out
•  ASP.Net uses a provider model to enable pluggable provi...
Dynamo DB
•  DynamoDB is a very fast, managed NoSQL database as a service
•  Designed to store and retrieve any amount of ...
NuGet integration in Visual Studio .Net
"   Pre-packaged NuGet AWS tools can be installed to provide DynamoDB Session Stat...
Changes to Web.Config file to enable
AWS DynamoDB Session State
"   Security Tip: Create a custom IAM user to only allow a...
Static Content
Static Web Content Management Strategy
•  Static Content usually resides on the same web server as dynamic web
content
–  ...
Application HTML References to Static Assets
•  Edit HTML content directly to reference fully qualified domain name to let...
Amazon Simple Storage Service (S3)
•  Amazon S3 provides a simple web services interface that can be used to store
and ret...
S3 Bucket Setup – Web Hosting Enabled
•  DNS abstracts the actual storage location from web browser
DNS Setup for S3
Route 53
cdn.stanski.me
(A Record to IP)
Development Server on AWS
Development Route 53
cdn.stanski.me
(C...
Content Delivery Acceleration
CloudFront : Content Delivery Network (CDN)
•  CloudFront can be used to deliver your entire website, including
dynamic, s...
CloudFront Distribution
"   CF responds on its Domain Name and Alternative CNAMES
CloudFront Origin
"   CF Origin points to the S3 Bucket containing static content
DNS Setup for CloudFront
Route 53
cdn.stanski.me
(A Record to IP)
Development Server on
AWS
Development
"  DNS abstracts t...
API Integration
Twilio Google Maps Amazon SQS
Google API C# Snippet
"   Using the Google API to convert GPS to Street information
Twilio API C# Snippet
•  Using the Twilio .Net SDK to send a Text Message and make a Phone Call
Amazon Simple Queue Service
•  Amazon Simple Queue Service (SQS) is a fast, reliable, scalable, fully managed
queue servic...
SQS C# AWS SDK Snippet
•  Create an SQS queue and Sending a Message into it…
AWS Web Console
•  Queues can be managed from the web console
Expand your skills with AWS
Certification
aws.amazon.com/certification
Exams
Validate your proven
technical expertise with...
Upcoming SlideShare
Loading in...5
×

Running your First Application on AWS

329

Published on

AWS Summit 2014 Brisbane - Breakout 5

AWS provides a platform that is ideally suited for deploying highly available and reliable systems that can scale with a minimal amount of human interaction. This talk describes a set of architectural patterns that support highly available services that are also scalable, low cost, low latency and allow for agile development practices. We walk through the various architectural decisions taken for each tier and explain our choices for appropriate AWS services and building blocks to ensure the security, scale, availability and reliability of the application.

Presenter: Clayton Brown, Solutions Architect, Amazon Web Services

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
329
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "Running your First Application on AWS "

  1. 1. © 2014 Amazon.com, Inc. and its affiliates. All rights reserved. May not be copied, modified, or distributed in whole or in part without the express consent of Amazon.com, Inc. Running your First Application on AWS Clayton Brown, Solutions Architect, Amazon Web Services
  2. 2. Build an AWS based, Scalable Mobile application that is location centric and connects with the user’s mobile device personally, Which can be ubiquitously accessed via the cloud The Vision….
  3. 3. The Reality…. Minimum Viable Product (MVP) = Fixed amount of time* to build it and to demonstrate key AWS concepts… services … and squeeze into a 45 minute presentation *Approx: 2.5 <interrupted> days of coding effort, YMMV
  4. 4. Amazon Global Physical Infrastructure (10 Geographic Regions, Multiple Availability Zones, 51 Edge Locations) Parallel Processing Amazon Elastic MapReduce Content Delivery Amazon Cloud Front Messaging Amazon SNS Amazon SQS Email Amazon Simple Email Service (SES) Payments Amazon DevPay Amazon Flexible Payment System (FPS) Workforce Amazon Mechanical Turk High Level Building Blocks Compute Amazon EC2 Auto Scaling VM Import/Export Storage Amazon S3 EBS, Glacier, Import/Export Network Amazon VPC Elastic Load Balancer Route 53 Database Amazon RDS Simple DB, Dynamo DB, ElastiCache Low Level Building Blocks Authentication & Authorization Amazon IAM (inc MFA) Monitoring Amazon CloudWatch Deployment & Automation Amazon Elastic Beanstalk Amazon CloudFormation Cross Service Features Libraries and SDKs .Net / Java etc Web Interface Management Console Tools Visual Studio .Net / Eclipse Plugin Command Line Interface Tools to Access Services Your Application We’ll Use these Services Today
  5. 5. Reasoning Behind Service Usage Solution Requirement AWS Service(s) DNS Resolution Route 53 Networking Virtual Private Cloud (VPC by default) Load Balancing to Meet Demand Elastic Load Balancer (ELB) Auto Scaling Groups (ASG) CloudWatch Metrics Windows Servers for ASP.Net Elastic Compute Cloud (EC2) Instances Application Deployment Directly from Dev Tools Elastic Beanstalk (also helps with auto-scaling) Content Delivery Network CloudFront Reliable Storage Elastic Block Store (EBS) for Instances & Simple Storage Service (S3) Database (for Session Store) DynamoDB (No SQL) Security Identity and Access Management (IAM) Push Uploaded Content into a future backend system yet to be specified Simple Queue Service (SQS)
  6. 6. The Core Architecture
  7. 7. on AWS The Overall Solution Architecture API Mobile Web Site
  8. 8. Now how to build this….
  9. 9. AWS Elastic Beanstalk •  AWS Elastic Beanstalk allows for automated deployment of applications by configuring its run-time environment (inside the AMI) –  Upload your application package –  Beanstalk handles the deployment details of capacity provisioning, load balancing, auto- scaling, application health monitoring, and DNS CNAME •  Environment is available in minutes at a customized URL (e.g. http://myapp.elasticbeanstalk.com/) •  Elastic Beanstalk supports ASP.Net, Java, Node.Js, PHP, Python & Ruby •  Think about it as a “Managed Runtime Container as a Service”
  10. 10. AWS SDKs & Toolkits Java .NET nodeJS Node JS Ruby RubyPython PHP iOS IOS Android AWS CLI PowershellVisual Studio Eclipse
  11. 11. AWS SDKs & Toolkits .NET Visual Studio
  12. 12. AWS SDKs & Toolkits .NET Visual Studio
  13. 13. AWS SDKs & Toolkits .NET Visual Studio
  14. 14. Visual Studio .Net Add-In from AWS Custom AWS Projects AWS Explorer Pane Available from http://aws.amazon.com/visualstudio/
  15. 15. Publish Directly To AWS
  16. 16. …. And you get something like this! Visual Studio http://lunchandlearn.elasticbeanstalk.com
  17. 17. DNS Setup For Application Route 53 lunchandlearn.stanski.me (A Record to IP) Development Server on AWS Development Route 53 lunchandlearn.stanski.me (CNAME to) lunchandlearn. elasticbeanstalk.com (CNAME to) PublicELB-143817XX.ap- southeast-2.elb.amazonaws.co m Production
  18. 18. Web Application Session State
  19. 19. ASP.Net Session State Management Considerations for Scaling Out •  ASP.Net uses a provider model to enable pluggable providers (DLLs) and settings in the Web.Config file •  In-Proc : in memory on the web server (default OOBE) •  Out-of-Proc : on another server ß Need this for “Scale Out” –  Usually Microsoft SQL Server on a dedicated server •  AWS provides additional Session State Options: 1.  MySQL data provider via RDS (3rd party on Codeplex) 2.  MemcacheD (aka ElastiCache) 3.  AWS DynamoDB http://aws.typepad.com/aws/2012/09/managing-aspnet-session-state-with- dynamodb.html
  20. 20. Dynamo DB •  DynamoDB is a very fast, managed NoSQL database as a service •  Designed to store and retrieve any amount of data, and serve virtually any level of request traffic –  Dial in the number of read and writes per second as needed by application •  All data items are stored on Solid State Drives (SSDs), replicated across 3 Availability Zones for high availability and high durability •  DynamoDB offloads the administrative burden of operating and scaling a highly available distributed database cluster
  21. 21. NuGet integration in Visual Studio .Net "   Pre-packaged NuGet AWS tools can be installed to provide DynamoDB Session State Support
  22. 22. Changes to Web.Config file to enable AWS DynamoDB Session State "   Security Tip: Create a custom IAM user to only allow access to DynamoDB
  23. 23. Static Content
  24. 24. Static Web Content Management Strategy •  Static Content usually resides on the same web server as dynamic web content –  E.g.. Jpegs, CSS, JS, GIFs etc •  Moving static content to dedicated “static content servers” can reduce server loads •  On AWS this means smaller instances for EC2 and lower hourly cost and using Simple Storage Service (S3) •  By using Route 53 DNS this can be changed without web application disruption
  25. 25. Application HTML References to Static Assets •  Edit HTML content directly to reference fully qualified domain name to let DNS resolve origin servers; OR •  Use Content Rewrites in the web server –  E.g. ASP.Net Content/HTTP Handlers
  26. 26. Amazon Simple Storage Service (S3) •  Amazon S3 provides a simple web services interface that can be used to store and retrieve any amount of data, at any time, from anywhere on the web •  It is designed to make web-scale computing easier for developers by allowing storage of Web accessible static content "   Allows for easy static website hosting (No EC2 Servers required) "   Designed for 99.999999999% durability and 99.99% availability of objects over a given year •  Gives developers access to the same highly scalable, reliable, secure, fast, inexpensive infrastructure that Amazon uses to run its own global network of web sites
  27. 27. S3 Bucket Setup – Web Hosting Enabled •  DNS abstracts the actual storage location from web browser
  28. 28. DNS Setup for S3 Route 53 cdn.stanski.me (A Record to IP) Development Server on AWS Development Route 53 cdn.stanski.me (CNAME to) cdn.stanski.me.s3-website-ap- southeast-2.amazonaws.com Production "  DNS changes the underlying content origin systems Static Content Copy to S3
  29. 29. Content Delivery Acceleration
  30. 30. CloudFront : Content Delivery Network (CDN) •  CloudFront can be used to deliver your entire website, including dynamic, static as well as streaming content using a global network of edge locations •  Requests for your content are automatically routed to the nearest edge location, so content is delivered with the best possible performance •  It integrates with Amazon Web Services like EC2 & S3 to give developers an easy way to distribute content to end users with low latency, high data transfer speeds, and no commitments
  31. 31. CloudFront Distribution "   CF responds on its Domain Name and Alternative CNAMES
  32. 32. CloudFront Origin "   CF Origin points to the S3 Bucket containing static content
  33. 33. DNS Setup for CloudFront Route 53 cdn.stanski.me (A Record to IP) Development Server on AWS Development "  DNS abstracts the actual storage location from the web browser Route 53 cdn.stanski.me (CNAME to) CloudFront Name: dx21lojdjnvls.cloudfront.net Production S3 Origin: cdn.stanski.me.s3- website-ap- southeast-2.amazonaws.com Static Content Copy to S3
  34. 34. API Integration Twilio Google Maps Amazon SQS
  35. 35. Google API C# Snippet "   Using the Google API to convert GPS to Street information
  36. 36. Twilio API C# Snippet •  Using the Twilio .Net SDK to send a Text Message and make a Phone Call
  37. 37. Amazon Simple Queue Service •  Amazon Simple Queue Service (SQS) is a fast, reliable, scalable, fully managed queue service – think MSMQ, RabbitMQ, JMS etc •  SQS makes it simple to decouple the components of a cloud application •  You can use SQS to transmit any volume of data, at any level of throughput, without losing messages or requiring other services to be always available •  With SQS you can offload the administrative burden of operating and scaling a highly available messaging cluster •  Used here to future proof your application: thumbnail images are pushed in the LunchAndLearnQ –  This is to address the requirement of a “future application back-end-system”
  38. 38. SQS C# AWS SDK Snippet •  Create an SQS queue and Sending a Message into it…
  39. 39. AWS Web Console •  Queues can be managed from the web console
  40. 40. Expand your skills with AWS Certification aws.amazon.com/certification Exams Validate your proven technical expertise with the AWS platform On-Demand Resources aws.amazon.com/training/ self-paced-labs Videos & Labs Get hands-on practice working with AWS technologies in a live environment aws.amazon.com/training Instructor-Led Courses Training Classes Expand your technical expertise to design, deploy, and operate scalable, efficient applications on AWS

×