What is Cloud Computing? Why call it “Cloud” Computing? Cloud Computing Key Properties Advantages • Shift from CAPEX to OPEX • Lowers barrier for starting a new business/project • Can be cheaper even in the long run • Economies of scale • Geography Advantages • Instant agility • Security • Reliability Challenges • Performance predictability (QoS) • Vendor lock-in Challenges • Security and privacy • Data transfer bottleneck • Uploading 10 TB over 20 Mbps link takes 45 days! Cloud-friendly Applications • Existing apps that do not require specialized hardware resources • Internet scale apps • Large user base • Geographic distribution • Apps with elastic demands • Burst computing Cloud Computing Taxonomy • Infrastructure/hardware as a Service (IaaS) • Platform as a Service (PaaS) • Software/Framework as a Service (SaaS/FaaS) Infrastructure as a service (IaaS) • • • • Also know as Utility Computing VM images of different OS flavors Can run any application natively on chosen OS User administers VMs • User in charge of elasticity and failover • Almost like buying your how HW • Billing: • CPU hour • Gigabyte of storage per month • Network traffic in and out of datacenter • Examples: • Amazon Elastic Compute Cloud (EC2), Rackspace Platform as a Service (PaaS) • Application need to conform to provider’s API • VM managed automatically by provider • Automatic scaling and failover • Billing: • CPU hour • Gigabyte of storage per month • Network traffic in and out of datacenter • Examples: • Google App Engine, Microsoft Azure, Heroku Software/Framework as a Service (SaaS/FaaS) • SaaS: services and applications available on an ondemand basis. • FaaS: a configurable SaaS • Billing: • Application specific • Per hour • Per transaction • Examples: • Salesforce.com • Google Docs How do they stack up? Choosing between IaaS and PaaS • IaaS • Use third party sw or other programming languages • Have existing code • Care about lock in • Transfer web app to your own server or a different provider • Want complete control • Are OK with the extra work needed to manage the system • PaaS • Provider’s API provider all needed functionality • Have no issues with lock-in • Don’t want to or cannot afford to manage the servers Amazon Web Services Regions and Availability Zones Region • Set of Availability Zones located in one geographic area • Currently 8 regions: • Virginia, California, Oregon, Ireland Singapore, Australia, Tokio, Sao Paulo Availability Zone • Independent failure domains • Distinct location • Independent power grid and network connection • Zones within a region networked with inexpensive low-latency connections • Example: us-east-1a, us-east1b, us-east-1c, us-east-1d Elastic Compute Cloud (EC2) Introduced in 2006 (beta), 2007 (full production version) Based on Xen virtualization Introduced Infrastructure as a Service (IaaS) • Rent a server on an hourly basis • Renting one instance for 10,000 hours is just as cheap as renting 10,000 instances for an hour. EC2 Instance Definition: an active virtual server Created from an Amazon Machine Image (AMI) • Like a boot CD. Root image with everything necessary to start an instance: Large number of images available Usage Model Single AMI used to create multiple instances • • Customized for application Typically, all applications are pre-loaded Instance are ephemeral • • Created when needed Terminated when demand goes away Instance storage (FS) is ephemeral • Goes away when the instance is terminated Persistent storage: • • Amazon Elastic Block Store (EBS) volume S3, RDS, SimpleDB, DynamoDB Instance Types One EC2 Compute Unit provides the equivalent CPU capacity of a 1.0-1.2 GHz 2007 Opteron or 2007 Xeon processor. Create a Custom EC2 Instance Select AMI Choose instance type Choose availability zone Set key-pair Set security group ssh into instance • e.g., ssh –i .ssh/csc309.pem [email protected] Customize Create Image Security Group Network firewall rules for instance By default instance is not accessible Can limit by protocol, port, source IP Key Pairs SSH credentials to log into instance Install private key (pem file) in .ssh ssh –i <keypair>.pem <user>@<instance> e.g., ssh –i .ssh/ece1779.pem [email protected] ami-cafc53a2 Ubuntu 14 Apache2 • sudo /etc/init.d/apache2 start|stop • /var/www/html #root for all web documents • /var/log/apache2 #apache server logs PHP • /etc/php5/apache2/php.ini # php configuration file Other tools • eclipse • twm, fvwm, kde • vnc • vncpasswd # create .vnc/passwd file • vncserver -geometry 1400x900 :1 # starts a new vncserver on display 1 • mysql-workbench Recommended Reading The Cloud at Your Service Jothy Rosenberg and Art Mateos Cloud Computing Bible Barrie Sosinsky Programming Amazon Web Services James Murty Programming Google App Engine Dan Sanderson
© Copyright 2024