Last time. Today. IaaS Providers. Amazon Web Services, overview



Similar documents
Last time. Today. IaaS Providers. Amazon Web Services, overview

Last time. Today. IaaS Providers. Amazon Web Services, overview

Razvoj Java aplikacija u Amazon AWS Cloud: Praktična demonstracija

Thing Big: How to Scale Your Own Internet of Things.

AIST Data Symposium. Ed Lenta. Managing Director, ANZ Amazon Web Services

JAVA IN THE CLOUD PAAS PLATFORM IN COMPARISON

ur skills.com

EEDC. Scalability Study of web apps in AWS. Execution Environments for Distributed Computing

Scaling in the Cloud with AWS. By: Eli White (CTO & mojolive) eliw.com - mojolive.com

Scalable Application. Mikalai Alimenkou

Amazon Elastic Beanstalk

Scalable Architecture on Amazon AWS Cloud

A Comparison of Clouds: Amazon Web Services, Windows Azure, Google Cloud Platform, VMWare and Others (Fall 2012)

Amazon Web Services Primer. William Strickland COP 6938 Fall 2012 University of Central Florida

Cloud Computing. Adam Barker

APP DEVELOPMENT ON THE CLOUD MADE EASY WITH PAAS

Introduction to AWS in Higher Ed

Background on Elastic Compute Cloud (EC2) AMI s to choose from including servers hosted on different Linux distros

Cloud Computing with Amazon Web Services and the DevOps Methodology.

DISTRIBUTED SYSTEMS [COMP9243] Lecture 9a: Cloud Computing WHAT IS CLOUD COMPUTING? 2

How To Use Aws.Com

TECHNOLOGY WHITE PAPER Jun 2012

Amazon Web Services Yu Xiao

TECHNOLOGY WHITE PAPER Jan 2016

Amazon EC2 Product Details Page 1 of 5

AWS Performance Tuning

The Cloud as a Computing Platform: Options for the Enterprise

Cloud computing - Architecting in the cloud

DLT Solutions and Amazon Web Services

HADOOP BIG DATA DEVELOPER TRAINING AGENDA

How AWS Pricing Works May 2015

Introduction to Amazon Web Services! Leo Senior Solutions Architect

CLOUD COMPUTING WITH AWS An INTRODUCTION. John Hildebrandt Solutions Architect ANZ

Assignment # 1 (Cloud Computing Security)

How AWS Pricing Works

Introduction to DevOps on AWS

Amazon Web Services Student Tutorial

Amazon Web Services Annual ALGIM Conference. Tim Dacombe-Bird Regional Sales Manager Amazon Web Services New Zealand

Shadi Khalifa Database Systems Laboratory (DSL)

Web Application Deployment in the Cloud Using Amazon Web Services From Infancy to Maturity

Alfresco Enterprise on AWS: Reference Architecture

How To Manage An Orgsync Database On An Amazon Cloud 2 Instance

Cloud Models and Platforms

Making Your ColdFusion Apps Highly Available. Brian Klaas Johns Hopkins Bloomberg School of Public Health

Amazon Web Services. Lawrence Berkeley LabTech Conference 9/10/15. Jamie Baker Federal Scientific Account Manager AWS WWPS

Logentries Insights: The State of Log Management & Analytics for AWS

Innovative Geschäftsmodelle Ermöglicht durch die AWS Cloud

Primex Wireless OneVue Architecture Statement

An Introduction to Cloud Computing Concepts

Introduction to Cloud computing. Viet Tran

!"#$%&'()*'+),-./)0' 9##+':,%-.;),0'

Designing Apps for Amazon Web Services

Cloud Computing: Making the right choices

EXECUTIVE SUMMARY CONTENTS. 1. Summary 2. Objectives 3. Methodology and Approach 4. Results 5. Next Steps 6. Glossary 7. Appendix. 1.

PaaS - Platform as a Service Google App Engine

Scalability in the Cloud HPC Convergence with Big Data in Design, Engineering, Manufacturing

Introduction to Cloud Computing on Amazon Web Services (AWS) with focus on EC2 and S3. Horst Lueck

Using Cloud Services for Test Environments A case study of the use of Amazon EC2

Chapter 3 Cloud Infrastructure. Cloud Computing: Theory and Practice. 1

Where We Are. References. Cloud Computing. Levels of Service. Cloud Computing History. Introduction to Data Management CSE 344

How To Choose Between A Relational Database Service From Aws.Com

Using ArcGIS for Server in the Amazon Cloud

Web Application Hosting in the AWS Cloud Best Practices

Preparing Your IT for the Holidays. A quick start guide to take your e-commerce to the Cloud

Drive new Revenue With PaaS/IaaS. Ruslan Synytsky CTO, Jelastic

Cloud Computing and Amazon Web Services

Cloud Hosting. QCLUG presentation - Aaron Johnson. Amazon AWS Heroku OpenShift

Cloud Computing For Bioinformatics

Running Oracle Applications on AWS

Amazon Relational Database Service. User Guide API Version

LONDON. 2015, Amazon Web Services, Inc. or its affiliates. All rights reserved

AWS Directory Service. Simple AD Administration Guide Version 1.0

Enterprise PaaS Evaluation Guide

ArcGIS for Server: In the Cloud

Cloud Computing and Amazon Web Services. CJUG March, 2009 Tom Malaher

Concentrate Observe Imagine Launch

Microservices on AWS

Real Time Big Data Processing

Enterprise Cloud Computing with AWS. for internal partner use only

References. Introduction to Database Systems CSE 444. Motivation. Basic Features. Outline: Database in the Cloud. Outline

Introduction to Database Systems CSE 444

Platform as a Service (PaaS) Demystified

Chapter 9 PUBLIC CLOUD LABORATORY. Sucha Smanchat, PhD. Faculty of Information Technology. King Mongkut s University of Technology North Bangkok

Amazon Cloud Storage Options

Service Organization Controls 3 Report

Transcription:

Last time General overview, motivation, expected outcomes, other formalities, etc. Please register for course Online (if possible), or talk to CS secretaries Course evaluation forgotten Please assign one volunteer student to comment on the summarizing report Cloud computing introduction General concepts Cloud definitions Different types of clouds Infrastructure as a Service (IaaS) Platform as a Service (PaaS) Software as a Service (SaaS) Today How to develop applications (services) for clouds? Focus on Infrastructure as a Service and Platform as a Service, including Amazon Web Services EC2 (IaaS) Cloud Foundry, Google App Engine, Amazon Elastic Beanstalk (PaaS) Difference between using IaaS and PaaS? What is different from developing self-hosted applications? IaaS Providers Offers compute (VMs), storage, & networking Sometimes also various related services Payment models Per hour, discounts for longer times For what? CPU, RAM, Disk storage, network transfers, etc Cost estimation/comparison hard Pre-defined or tailored VM configurations? Small/Medium/Large vs. custom All in all, difficult to compare prices! Example providers Amazon AWS, first and by far largest Google, Rackspace, Elastichosts, etc. CityCloud, IPeer (Swedish providers) Amazon Web Services, overview Compute services Elastic Compute Cloud (EC2) pay-per-use VM What we will use mostly Map-reduce, auto scaling, elastic load balancing Storage services Simple Storage Service (S3) For any data Elastic Block Store (EBS) For EC2 VMs Networking: DNS and VPN-style tools Databases: relational and nosql Deployment and management Application services 1

Amazon, compute concepts Instances Running VMs with certain hardware ~15 ~30 different configurations small, medium, large, etc. Custom types with more memory, more CPU, etc. Cost per hour (on-demand) reserved (1 or 3 years) Spot prices (dynamically set price) Regions and availability zones Region: world location, e.g., US east, US west, EU, Asia, etc. Availability zone Distinct locations for fault tolerance Multiple per region Big crash in 2011 revealed zone overlaps Keep track of where you run your VMs, etc! More AWS compute concepts Amazon Machine Images (AMIs) Custom VM images with particular operating system, platform tools, etc. Some are more expensive due to software licenses More than 500 pre-made AMIs available Can define your own AMIs 1. Select a suitable base image (right OS, etc) 2. Install the software you need 3. Save image of running VM as new AMI Rather tricky part 4. Create multiple instances of your custom VM Note, not the way to keep data persistent Amazon Compute (cont.) AWS Marketplace 3 rd party software offered as AMIs Workspaces Virtual desktops (Mac or PC) in the cloud Elastic MapReduce Compute framework for parallel data analysis Combined storage with high performance VMs More about MapReduce next lecture Auto-scaling Automatically adds/removes VMs based on rules + monitoring data Amazon, storage concepts VM local disk is not persistent Each VM instance is booted from the AMI, any update to local disk is lost when VM terminates/stops Elastic Block Store (EBS) Persistent storage for EC2 images Raw, unformatted device, can create file systems, etc. on top Can be mounted like device/file system by EC2 instances But only one instance at a time An instance can have multiple block stores Can be used to store snapshots Bound to particular availability zone Cost per GB/month + per 1M I/O ops. 2

Amazon, more storage Amazon, even more storage Simple Storage Service (S3) Two-level Bucket object container with unique name Key unique name in bucket (like file name) Object are indexed by bucket+key, http:// s3.amazonaws.com/bucket/key Operations Create/Delete bucket Put/Get/Delete data from bucket Buckets are located in a specific region Cost per GB/month, per 1K ops, per GB/ transferred Amazon Glacier Archiving service Low cost storage for backup and archiving As low as $0.01 per GB and month Cheap? Can buy disk for $0.05 per GB Data transfer costs? Glacier offers 99.99999999% availability 0.03 s downtime per year However, data retrieval is slow 3-5 hours to retrieve data after request Available for 24h post request Amazon CloudFront A Content Delivery Network (CDN) Online caching of read-only objects closer to end users Latency and redundancy Regions and locations Regions Full set of services available (some limitations) Edge locations CloudFront, Route 53 Origin Server (S3, a VM, etc., or your server) Edge locations distributed around the world Data pulled to edge locations on demand 3

Amazon networking Networking - general pricing scheme Costs per ($0.00 - $0.12 / GB) for data transfer Large volume discounts Differences depending on source and destination To AWS, From AWS, within AWS Route 53 Domain Name System (DNS) Integrated with other AWS services Price: per zone + per 1M queries Direct connect Dedicated network access to your site For high and/or consistent network performance Port speed in multiples of 50M, 100M, 200M,, 1G, 10G Can be cheaper than common network pricing Amazon networking (cont.) Elastic Load Balancing (ELB) Redistributes requests across VM instances Availability zones Performance and robustness Integrates with auto-scaling Why this type of auto-scaling? Amazon networking (cont.) Virtual Private Cloud (VPC) EC2 resources Custom network (subnets, routing, etc.) Databases RDS -Relational Database Service Relational DB with SQL Similar to MySQL, PostreSQL, Oracle, etc. Simplified management (backups, etc.) DB instances similar to VMs, but with connected storage, optional fast storage, etc. DynamoDB nosql, i.e., a key-value store Fast and simple, but lack power of SQL Not suitable for all types of applications Pricing based on throughput ElastiCache In-memory cache for read-heavy applications Redshift Data warehouse (DB + reporting) 4

Deployment & management Amazon CloudWatch Monitoring for Cloud resources and applications Aggregation and alarm functionality Metrics Custom for most Amazon services VM CPU load, network traffic, etc. Your own metrics can be integrated Pricing based on: Number of metrics, requests, and alarms Monitoring frequency (1 min is lowest ) More management CloudFormation Templates for easy infrastructure deployment Bundles EC2, Storage, DB, etc. into a single stack that can be started/stopped Exists pre-defined templates for common stacks (Wordpress, Joomla, etc.) IAM Identity and Access management Define own users, groups, roles, permissions Used in this course for your accounts CloudTrail Tracks all API calls for policy and compliance AWS OpsWorks Custom deployment and application lifecycle management Application services A set of utility services for building applications for Amazon CloudSearch, Email (SES), Notifications (SNS), message queues (SQS) Simple integration for Amazon-native application Many other options for these functionalities Once again, consider lock-in Elastic Transcoder Codecs for audio and video stored in S3 AppStream Adds streaming to latency-sensitive applications such as games Custom application + client needed Amazon, getting started Login Credentials 1. Username/password Limited functionality available (only Web UI) 2. Access ID + secret access key Available for generation/download in Web UI Query API (REST) + elasticfox (firefox plugin), Programming libraries (in Java etc.) As environment variables: AWS_ACCESS_KEY_ID and AWS_SECRET_KEY 3. Certificates Use with command line tools Login to VMs (using ssh) Needs to be generated by you Our course set-up a bit complicated Ensure not to interfere with each other Recall hands-on tutorial 5

Amazon, interfacing Amazon some observations 1. Amazon Management Console The Web UI Useful for getting to know the services + debugging 2. Command line tools Windows or Linux, Linux version installed@cs 3. Programmatically Network interfaces: SOAP and REST Low-level, can be tedious to use Language bindings SDKs for Java, Ruby, etc. Eclipse plugins also available First and by far largest provider Rackspace, Google, Microsoft, etc. challenging Rapid roll-out of new services Exponential growth the last few years This is not hosting, but a programmable infrastructure Vendor lock-in? Prices are reduced often Price reduction #42 in place as of tomorrow Is this really getting cheaper? Development for the cloud Example At large scale, errors are norm, not exception How often does a data center disk fail? How to avoid failure? Design for redundancy and fault tolerance Fail constantly! Netflix s chaos monkey Randomly kills VMs and services Extended with Latency Monkey, Chaos Gorilla, etc. Resource sharing is complicated Multi-tenancy and noisy neighbors What works in your own servers, may not work in the cloud 6

PaaS providers Tools for service development & deployment Typically includes databases, application servers, etc. One (or a few) programming languages Often tightly coupled to IaaS Exists for most platforms, such as: Java Cloud Foundry, Google App Engine, Jelastic, Cloud Bees, etc. PHP CloudControl, etc Python Heroku, Google App Engine, etc..net Microsoft Azure Cloud Foundry VMWare s PaaS initiative Much attention recently One of few PaaS solutions with clear separation from IaaS Supports various application frameworks: Spring Java Inversion of Control (IoC) container with support for databases, XML processing, and almost everything else Ruby Neat interpreted programming language Various Web toolkits for Java or Ruby Ruby on Rails, Sinatra, Grails, Node.js Cloud Foundry, procedure Cloud Foundry, services 1. Implement your application in Java or Ruby 2. Connect it to Cloud Foundry services 3. Deploy it to Cloud Foundry VM Tooling (for the above steps): VMC Command line interface Eclipse Cloud Foundry extensions STS Spring framework extensions MongoDB nosql database Scales to 1000+ nodes MySQL Standard relational database Scales to ~10 nodes (if clustered) RabbitMQ Implementation of AMQP Standard message queue for robust messaging (publish-subscribe) Redis Key-value store (like nosql database) 7

Cloud Foundry, deployment and infrastructure Micro Cloud Foundry Your own VM, to be run locally Packed as VMWare image, requires VMWare Player (or similar) to run Seamless transition to real cloud Run VM In IaaS provider For example, Amazon EC2 Need to import Micro Cloud Foundry VM Google App Engine Runs web apps (really well!) One-trick-pony Handles HTTP(S) requests No performance tuning Everything scalable Number of apps, reqs/s, storage Pricing similar to Amazon Pay for instances, storage, network, etc. Some features Persistent storage Automatic scaling and load balancing Asynchronous task queues, etc. Google App Engine (cont.) Supports Java, Python, PHP, Go Exists SDKs for supported languages Very restricted environment Limited sandbox, java class white list Limitations to SQL Performance limits: application boot time, response time < 30 seconds Compare: SDKs for smart phone development Development 1. Build application locally 2. Test locally in embedded Web server 3. Upload application to App Engine Notably: no VMs Google does not use virtualization Amazon Elastic Beanstalk PaaS solution by Amazon built on top of AWS Elastic Beanstalk makes use of Compute (EC2) Storage (S3) Notification (SNS) Load balancing (ELB) Auto-scaling Languages: Node.js, PHP, Python, Java,.NET Apache Tomcat, etc. Shows how PaaS can be built on top of IaaS 8

IaaS vs. PaaS Developing for IaaS Manage your application Manage the infrastructure Tedious, but greater flexibility Developing for PaaS Manage your application Simpler Limited tooling/application type restrictions Next time. Next lecture Data management (guest lecture by Ahmed) Assignment 1: Full description coming this week (hopefully tomorrow) Implement small content management system Using IaaS - a few core Amazon services Using PaaS - Google App Engine 9