
- •Cloud Computing
- •Foreword
- •Preface
- •Introduction
- •Expected Audience
- •Book Overview
- •Part 1: Cloud Base
- •Part 2: Cloud Seeding
- •Part 3: Cloud Breaks
- •Part 4: Cloud Feedback
- •Contents
- •1.1 Introduction
- •1.1.1 Cloud Services and Enabling Technologies
- •1.2 Virtualization Technology
- •1.2.1 Virtual Machines
- •1.2.2 Virtualization Platforms
- •1.2.3 Virtual Infrastructure Management
- •1.2.4 Cloud Infrastructure Manager
- •1.3 The MapReduce System
- •1.3.1 Hadoop MapReduce Overview
- •1.4 Web Services
- •1.4.1 RPC (Remote Procedure Call)
- •1.4.2 SOA (Service-Oriented Architecture)
- •1.4.3 REST (Representative State Transfer)
- •1.4.4 Mashup
- •1.4.5 Web Services in Practice
- •1.5 Conclusions
- •References
- •2.1 Introduction
- •2.2 Background and Related Work
- •2.3 Taxonomy of Cloud Computing
- •2.3.1 Cloud Architecture
- •2.3.1.1 Services and Modes of Cloud Computing
- •Software-as-a-Service (SaaS)
- •Platform-as-a-Service (PaaS)
- •Hardware-as-a-Service (HaaS)
- •Infrastructure-as-a-Service (IaaS)
- •2.3.2 Virtualization Management
- •2.3.3 Core Services
- •2.3.3.1 Discovery and Replication
- •2.3.3.2 Load Balancing
- •2.3.3.3 Resource Management
- •2.3.4 Data Governance
- •2.3.4.1 Interoperability
- •2.3.4.2 Data Migration
- •2.3.5 Management Services
- •2.3.5.1 Deployment and Configuration
- •2.3.5.2 Monitoring and Reporting
- •2.3.5.3 Service-Level Agreements (SLAs) Management
- •2.3.5.4 Metering and Billing
- •2.3.5.5 Provisioning
- •2.3.6 Security
- •2.3.6.1 Encryption/Decryption
- •2.3.6.2 Privacy and Federated Identity
- •2.3.6.3 Authorization and Authentication
- •2.3.7 Fault Tolerance
- •2.4 Classification and Comparison between Cloud Computing Ecosystems
- •2.5 Findings
- •2.5.2 Cloud Computing PaaS and SaaS Provider
- •2.5.3 Open Source Based Cloud Computing Services
- •2.6 Comments on Issues and Opportunities
- •2.7 Conclusions
- •References
- •3.1 Introduction
- •3.2 Scientific Workflows and e-Science
- •3.2.1 Scientific Workflows
- •3.2.2 Scientific Workflow Management Systems
- •3.2.3 Important Aspects of In Silico Experiments
- •3.3 A Taxonomy for Cloud Computing
- •3.3.1 Business Model
- •3.3.2 Privacy
- •3.3.3 Pricing
- •3.3.4 Architecture
- •3.3.5 Technology Infrastructure
- •3.3.6 Access
- •3.3.7 Standards
- •3.3.8 Orientation
- •3.5 Taxonomies for Cloud Computing
- •3.6 Conclusions and Final Remarks
- •References
- •4.1 Introduction
- •4.2 Cloud and Grid: A Comparison
- •4.2.1 A Retrospective View
- •4.2.2 Comparison from the Viewpoint of System
- •4.2.3 Comparison from the Viewpoint of Users
- •4.2.4 A Summary
- •4.3 Examining Cloud Computing from the CSCW Perspective
- •4.3.1 CSCW Findings
- •4.3.2 The Anatomy of Cloud Computing
- •4.3.2.1 Security and Privacy
- •4.3.2.2 Data and/or Vendor Lock-In
- •4.3.2.3 Service Availability/Reliability
- •4.4 Conclusions
- •References
- •5.1 Overview – Cloud Standards – What and Why?
- •5.2 Deep Dive: Interoperability Standards
- •5.2.1 Purpose, Expectations and Challenges
- •5.2.2 Initiatives – Focus, Sponsors and Status
- •5.2.3 Market Adoption
- •5.2.4 Gaps/Areas of Improvement
- •5.3 Deep Dive: Security Standards
- •5.3.1 Purpose, Expectations and Challenges
- •5.3.2 Initiatives – Focus, Sponsors and Status
- •5.3.3 Market Adoption
- •5.3.4 Gaps/Areas of Improvement
- •5.4 Deep Dive: Portability Standards
- •5.4.1 Purpose, Expectations and Challenges
- •5.4.2 Initiatives – Focus, Sponsors and Status
- •5.4.3 Market Adoption
- •5.4.4 Gaps/Areas of Improvement
- •5.5.1 Purpose, Expectations and Challenges
- •5.5.2 Initiatives – Focus, Sponsors and Status
- •5.5.3 Market Adoption
- •5.5.4 Gaps/Areas of Improvement
- •5.6 Deep Dive: Other Key Standards
- •5.6.1 Initiatives – Focus, Sponsors and Status
- •5.7 Closing Notes
- •References
- •6.1 Introduction and Motivation
- •6.2 Cloud@Home Overview
- •6.2.1 Issues, Challenges, and Open Problems
- •6.2.2 Basic Architecture
- •6.2.2.1 Software Environment
- •6.2.2.2 Software Infrastructure
- •6.2.2.3 Software Kernel
- •6.2.2.4 Firmware/Hardware
- •6.2.3 Application Scenarios
- •6.3 Cloud@Home Core Structure
- •6.3.1 Management Subsystem
- •6.3.2 Resource Subsystem
- •6.4 Conclusions
- •References
- •7.1 Introduction
- •7.2 MapReduce
- •7.3 P2P-MapReduce
- •7.3.1 Architecture
- •7.3.2 Implementation
- •7.3.2.1 Basic Mechanisms
- •Resource Discovery
- •Network Maintenance
- •Job Submission and Failure Recovery
- •7.3.2.2 State Diagram and Software Modules
- •7.3.3 Evaluation
- •7.4 Conclusions
- •References
- •8.1 Introduction
- •8.2 The Cloud Evolution
- •8.3 Improved Network Support for Cloud Computing
- •8.3.1 Why the Internet is Not Enough?
- •8.3.2 Transparent Optical Networks for Cloud Applications: The Dedicated Bandwidth Paradigm
- •8.4 Architecture and Implementation Details
- •8.4.1 Traffic Management and Control Plane Facilities
- •8.4.2 Service Plane and Interfaces
- •8.4.2.1 Providing Network Services to Cloud-Computing Infrastructures
- •8.4.2.2 The Cloud Operating System–Network Interface
- •8.5.1 The Prototype Details
- •8.5.1.1 The Underlying Network Infrastructure
- •8.5.1.2 The Prototype Cloud Network Control Logic and its Services
- •8.5.2 Performance Evaluation and Results Discussion
- •8.6 Related Work
- •8.7 Conclusions
- •References
- •9.1 Introduction
- •9.2 Overview of YML
- •9.3 Design and Implementation of YML-PC
- •9.3.1 Concept Stack of Cloud Platform
- •9.3.2 Design of YML-PC
- •9.3.3 Core Design and Implementation of YML-PC
- •9.4 Primary Experiments on YML-PC
- •9.4.1 YML-PC Can Be Scaled Up Very Easily
- •9.4.2 Data Persistence in YML-PC
- •9.4.3 Schedule Mechanism in YML-PC
- •9.5 Conclusion and Future Work
- •References
- •10.1 Introduction
- •10.2 Related Work
- •10.2.1 General View of Cloud Computing frameworks
- •10.2.2 Cloud Computing Middleware
- •10.3 Deploying Applications in the Cloud
- •10.3.1 Benchmarking the Cloud
- •10.3.2 The ProActive GCM Deployment
- •10.3.3 Technical Solutions for Deployment over Heterogeneous Infrastructures
- •10.3.3.1 Virtual Private Network (VPN)
- •10.3.3.2 Amazon Virtual Private Cloud (VPC)
- •10.3.3.3 Message Forwarding and Tunneling
- •10.3.4 Conclusion and Motivation for Mixing
- •10.4 Moving HPC Applications from Grids to Clouds
- •10.4.1 HPC on Heterogeneous Multi-Domain Platforms
- •10.4.2 The Hierarchical SPMD Concept and Multi-level Partitioning of Numerical Meshes
- •10.4.3 The GCM/ProActive-Based Lightweight Framework
- •10.4.4 Performance Evaluation
- •10.5 Dynamic Mixing of Clusters, Grids, and Clouds
- •10.5.1 The ProActive Resource Manager
- •10.5.2 Cloud Bursting: Managing Spike Demand
- •10.5.3 Cloud Seeding: Dealing with Heterogeneous Hardware and Private Data
- •10.6 Conclusion
- •References
- •11.1 Introduction
- •11.2 Background
- •11.2.1 ASKALON
- •11.2.2 Cloud Computing
- •11.3 Resource Management Architecture
- •11.3.1 Cloud Management
- •11.3.2 Image Catalog
- •11.3.3 Security
- •11.4 Evaluation
- •11.5 Related Work
- •11.6 Conclusions and Future Work
- •References
- •12.1 Introduction
- •12.2 Layered Peer-to-Peer Cloud Provisioning Architecture
- •12.4.1 Distributed Hash Tables
- •12.4.2 Designing Complex Services over DHTs
- •12.5 Cloud Peer Software Fabric: Design and Implementation
- •12.5.1 Overlay Construction
- •12.5.2 Multidimensional Query Indexing
- •12.5.3 Multidimensional Query Routing
- •12.6 Experiments and Evaluation
- •12.6.1 Cloud Peer Details
- •12.6.3 Test Application
- •12.6.4 Deployment of Test Services on Amazon EC2 Platform
- •12.7 Results and Discussions
- •12.8 Conclusions and Path Forward
- •References
- •13.1 Introduction
- •13.2 High-Throughput Science with the Nimrod Tools
- •13.2.1 The Nimrod Tool Family
- •13.2.2 Nimrod and the Grid
- •13.2.3 Scheduling in Nimrod
- •13.3 Extensions to Support Amazon’s Elastic Compute Cloud
- •13.3.1 The Nimrod Architecture
- •13.3.2 The EC2 Actuator
- •13.3.3 Additions to the Schedulers
- •13.4.1 Introduction and Background
- •13.4.2 Computational Requirements
- •13.4.3 The Experiment
- •13.4.4 Computational and Economic Results
- •13.4.5 Scientific Results
- •13.5 Conclusions
- •References
- •14.1 Using the Cloud
- •14.1.1 Overview
- •14.1.2 Background
- •14.1.3 Requirements and Obligations
- •14.1.3.1 Regional Laws
- •14.1.3.2 Industry Regulations
- •14.2 Cloud Compliance
- •14.2.1 Information Security Organization
- •14.2.2 Data Classification
- •14.2.2.1 Classifying Data and Systems
- •14.2.2.2 Specific Type of Data of Concern
- •14.2.2.3 Labeling
- •14.2.3 Access Control and Connectivity
- •14.2.3.1 Authentication and Authorization
- •14.2.3.2 Accounting and Auditing
- •14.2.3.3 Encrypting Data in Motion
- •14.2.3.4 Encrypting Data at Rest
- •14.2.4 Risk Assessments
- •14.2.4.1 Threat and Risk Assessments
- •14.2.4.2 Business Impact Assessments
- •14.2.4.3 Privacy Impact Assessments
- •14.2.5 Due Diligence and Provider Contract Requirements
- •14.2.5.1 ISO Certification
- •14.2.5.2 SAS 70 Type II
- •14.2.5.3 PCI PA DSS or Service Provider
- •14.2.5.4 Portability and Interoperability
- •14.2.5.5 Right to Audit
- •14.2.5.6 Service Level Agreements
- •14.2.6 Other Considerations
- •14.2.6.1 Disaster Recovery/Business Continuity
- •14.2.6.2 Governance Structure
- •14.2.6.3 Incident Response Plan
- •14.3 Conclusion
- •Bibliography
- •15.1.1 Location of Cloud Data and Applicable Laws
- •15.1.2 Data Concerns Within a European Context
- •15.1.3 Government Data
- •15.1.4 Trust
- •15.1.5 Interoperability and Standardization in Cloud Computing
- •15.1.6 Open Grid Forum’s (OGF) Production Grid Interoperability Working Group (PGI-WG) Charter
- •15.1.7.1 What will OCCI Provide?
- •15.1.7.2 Cloud Data Management Interface (CDMI)
- •15.1.7.3 How it Works
- •15.1.8 SDOs and their Involvement with Clouds
- •15.1.10 A Microsoft Cloud Interoperability Scenario
- •15.1.11 Opportunities for Public Authorities
- •15.1.12 Future Market Drivers and Challenges
- •15.1.13 Priorities Moving Forward
- •15.2 Conclusions
- •References
- •16.1 Introduction
- •16.2 Cloud Computing (‘The Cloud’)
- •16.3 Understanding Risks to Cloud Computing
- •16.3.1 Privacy Issues
- •16.3.2 Data Ownership and Content Disclosure Issues
- •16.3.3 Data Confidentiality
- •16.3.4 Data Location
- •16.3.5 Control Issues
- •16.3.6 Regulatory and Legislative Compliance
- •16.3.7 Forensic Evidence Issues
- •16.3.8 Auditing Issues
- •16.3.9 Business Continuity and Disaster Recovery Issues
- •16.3.10 Trust Issues
- •16.3.11 Security Policy Issues
- •16.3.12 Emerging Threats to Cloud Computing
- •16.4 Cloud Security Relationship Framework
- •16.4.1 Security Requirements in the Clouds
- •16.5 Conclusion
- •References
- •17.1 Introduction
- •17.1.1 What Is Security?
- •17.2 ISO 27002 Gap Analyses
- •17.2.1 Asset Management
- •17.2.2 Communications and Operations Management
- •17.2.4 Information Security Incident Management
- •17.2.5 Compliance
- •17.3 Security Recommendations
- •17.4 Case Studies
- •17.4.1 Private Cloud: Fortune 100 Company
- •17.4.2 Public Cloud: Amazon.com
- •17.5 Summary and Conclusion
- •References
- •18.1 Introduction
- •18.2 Decoupling Policy from Applications
- •18.2.1 Overlap of Concerns Between the PEP and PDP
- •18.2.2 Patterns for Binding PEPs to Services
- •18.2.3 Agents
- •18.2.4 Intermediaries
- •18.3 PEP Deployment Patterns in the Cloud
- •18.3.1 Software-as-a-Service Deployment
- •18.3.2 Platform-as-a-Service Deployment
- •18.3.3 Infrastructure-as-a-Service Deployment
- •18.3.4 Alternative Approaches to IaaS Policy Enforcement
- •18.3.5 Basic Web Application Security
- •18.3.6 VPN-Based Solutions
- •18.4 Challenges to Deploying PEPs in the Cloud
- •18.4.1 Performance Challenges in the Cloud
- •18.4.2 Strategies for Fault Tolerance
- •18.4.3 Strategies for Scalability
- •18.4.4 Clustering
- •18.4.5 Acceleration Strategies
- •18.4.5.1 Accelerating Message Processing
- •18.4.5.2 Acceleration of Cryptographic Operations
- •18.4.6 Transport Content Coding
- •18.4.7 Security Challenges in the Cloud
- •18.4.9 Binding PEPs and Applications
- •18.4.9.1 Intermediary Isolation
- •18.4.9.2 The Protected Application Stack
- •18.4.10 Authentication and Authorization
- •18.4.11 Clock Synchronization
- •18.4.12 Management Challenges in the Cloud
- •18.4.13 Audit, Logging, and Metrics
- •18.4.14 Repositories
- •18.4.15 Provisioning and Distribution
- •18.4.16 Policy Synchronization and Views
- •18.5 Conclusion
- •References
- •19.1 Introduction and Background
- •19.2 A Media Service Cloud for Traditional Broadcasting
- •19.2.1 Gridcast the PRISM Cloud 0.12
- •19.3 An On-demand Digital Media Cloud
- •19.4 PRISM Cloud Implementation
- •19.4.1 Cloud Resources
- •19.4.2 Cloud Service Deployment and Management
- •19.5 The PRISM Deployment
- •19.6 Summary
- •19.7 Content Note
- •References
- •20.1 Cloud Computing Reference Model
- •20.2 Cloud Economics
- •20.2.1 Economic Context
- •20.2.2 Economic Benefits
- •20.2.3 Economic Costs
- •20.2.5 The Economics of Green Clouds
- •20.3 Quality of Experience in the Cloud
- •20.4 Monetization Models in the Cloud
- •20.5 Charging in the Cloud
- •20.5.1 Existing Models of Charging
- •20.5.1.1 On-Demand IaaS Instances
- •20.5.1.2 Reserved IaaS Instances
- •20.5.1.3 PaaS Charging
- •20.5.1.4 Cloud Vendor Pricing Model
- •20.5.1.5 Interprovider Charging
- •20.6 Taxation in the Cloud
- •References
- •21.1 Introduction
- •21.2 Background
- •21.3 Experiment
- •21.3.1 Target Application: Value at Risk
- •21.3.2 Target Systems
- •21.3.2.1 Condor
- •21.3.2.2 Amazon EC2
- •21.3.2.3 Eucalyptus
- •21.3.3 Results
- •21.3.4 Job Completion
- •21.3.5 Cost
- •21.4 Conclusions and Future Work
- •References
- •Index
13 Mixing Grids and Clouds: High-Throughput Science Using the Nimrod Tool Family |
225 |
|||
Table 13.2 Adaptive scheduling algorithms in Nimrod/G |
|
|
|
|
|
|
|
|
|
|
Execution time |
Execution cost |
|
|
Scheduling strategy |
(not beyond deadline) |
(not beyond budget) |
|
|
Time |
Minimise |
Limited by budget |
||
Time optimal |
Minimise |
Unlimited budget |
||
Cost |
Limited by deadline |
Minimise |
|
|
None |
Limited by deadline |
Limited by budget |
|
Nimrod implements four different adaptive scheduling strategies (listed in Table 13.2) [20] that attempt to meet deadline and/or budget constraints, possibly while minimising execution time or cost. Over the duration of the experiment, the scheduler refines a profile for each computational resource and alters the job allocation accordingly.
As commercial clouds enable researchers to easily expand their computational test-beds beyond the confines of university-level infrastructure, it is likely that they will wish to do so while continuing to utilise their local resources and minimising expenditure on cloud time. For this reason, the experiment we present in Section 4 uses the cost-minimisation strategy.
13.3 Extensions to Support Amazon’s Elastic Compute Cloud
Recently, we developed a new actuator and associated components capable of interfacing Nimrod with compute clouds offering EC2-compatible APIs. In addition to allowing Nimrod jobs to be run on EC2, it also supports Eucalytpus [21] and OpenNebula [22] clouds. In this section, we discuss the extension and provide a discussion of issues involved in writing applications for such clouds.
The EC2 service provides one of the most generic and low-level interfaces to Infrastructure as a Service (IaaS) utility computing. At its most basic, it simply allows clients to start an instance of a particular virtual machine image on one of a handful of virtual hardware configurations. Further use of that instance is afforded via Secure Shell (SSH) access, which EC2 supports by providing a service for generating and managing SSH cryptographic key-pairs. Instances are then pre-configured with a key of the client’s choice when a virtual machine is booted.
In contrast to IaaS, grid middleware typically provides a Platform as a Service (PaaS) to some representation of a computational job – usually an invocation of some program, optionally staged into the remote machine as part of the job and potentially specifying a number of options relevant to the local resource manager (LRM) or batch queuing system.
Developing or adapting an application to use EC2 can be challenging, and often requires writing code for tasks peripheral to the main purpose of the application such as machine provisioning and management. Grid clients, such as Nimrod, typically deal with middleware interfaces at the level of job management and file-transfer services without concern for the lifecycle of the machine on which the
226 |
B. Bethwaite et al. |
jobs might run. Typically, Nimrod only needs to know (or discover) the resource type and contact details, along with the architecture of the platform, in order to use it as a computational resource. No explicit management of the underlying computational resource is normally required. Hence, management of the virtual infrastructure is the largest part of the extension.
Rather than using a higher-level IaaS or PaaS built on top of EC2, we opted to use the basic core interface – the EC2 web service for provisioning and SSH for interaction. This means that the EC2 extension can accommodate a broad range of uses, and importantly for deployment it can utilise almost any virtual machine image suitable for running within the cloud. It is important to note that the extension provides an EC2 cloud execution mechanism for Nimrod, and that many of the higher level AWS services (such as Elastic Load Balancer) are not applicable to Nimrod because it is not a cloud-hosted service. We are simply interested in utilising the compute capacity.
To define a Nimrod EC2 resource requires a label, the service URL, the access and secret key file locations, a machine (and optionally, kernel and initial ramdisk) image identifiers, an instance type, and limits on the number of instances to run in parallel. There are further options, such as whether the use of a proxy or tunnelling is required, and most options have default settings for use with EC2.
13.3.1 The Nimrod Architecture
This section describes the architectural details of Nimrod relevant to the EC2 extension. Nimrod utilises a modular architecture that clearly separates the responsibility for various processes to a number of extensible modules. The modules are coordinated via a data model using a relational database management system (RDBMS), which also provides the basis for persistence and failure recovery. A particularly important feature of Nimrod is its use of a remote agent that runs on the computational node. The agent retrieves work from the root server (the server where the other Nimrod modules are running) and will, in a single execution, process as many jobs as available during its allotted time. This contrasts with the usual approach of submitting each job to the middleware separately, and helps mitigate the effects of unpredictable queue wait time on overall execution time. Nimrod, along with Condor [3] (which uses the glide-in mechanism), was one of the pioneering systems to use such a technique. Recent specialised high-throughput systems, such as Falkon [23], follow a similar approach. This approach is also well-matched to existing cloud services, as will be discussed in Section 3.2.
The agent is highly portable and can be built for several different architectures and operating systems. Importantly, there is no requirement to install any Nimrod components on the remote computational system prior to running an experiment, as the agent is staged in and launched using a variety of supported interfaces. This greatly simplifies system deployment and makes it possible to easily create an ad-hoc high-throughput engine by consolidating multiple computational resources.
13 Mixing Grids and Clouds: High-Throughput Science Using the Nimrod Tool Family |
227 |
Nimrod jobs correspond to executions of a Nimrod task for a particular parameter combination. As discussed in Section 2.1, the Nimrod tools use customised computational-task description syntax, similar to a batch script. Depending on the tool being used, all jobs for a particular experiment may be added to the database prior to execution or added dynamically, for example, by some iterative process (e.g. an optimisation/search). While Nimrod is typically used for parametric studies of a statically defined task, it also accommodates assigning a different task to every job and thus provides a high-level general-purpose computational middleware service.
Most of the low-level machinery is concerned with interacting with computational resources and services in order to launch agents and ensure that those agents can contact the root – in some cases, this involves launching a proxy to bridge between private cluster networks and the root machine which is often on the public internet. Actuators interact directly with external systems, such as middleware services like the Globus Resource Allocation Manager (GRAM), batch systems, or other meta-schedulers. Actuators (1) perform resource information discovery functions (e.g. determining machine architecture), (2) transfer agents and their prerequisite files (contact details for modules on the root and symmetric cryptography keys for authentication) to resources and (3) subsequently launch or (in)directly queue batch jobs to launch agents. Actuators can be considered as resource-specific drivers for Nimrod, providing a uniform interface to various types of computational resource.
The agent schedulers decide what operations ought to be performed by the actuator for a given resource and experiment. They (1) trigger actions by the actuators in response to job-to-resource assignments made by job schedulers,
(2) enforce resource or user-specified limits on agent submissions and (3) for some resource types, schedule peripheral tasks such as credential refreshes.
Job schedulers assign work to the available resources using a choice of in-built heuristics, including cost and time minimisation on a per-experiment basis. It is also possible to do one’s own job scheduling through a specialised API. The job scheduler takes into account dynamic job metadata, collected by the agents, and continually refines the schedule throughout execution.
The database- and file-server provide agents with job and control data, and access to the experiment file system on the root, respectively. Computational resources can have a number of typical and differing network topologies with regard to connectivity to the internet. A thorough discussion is beyond the scope of this chapter; however, in these cases, Nimrod can launch the agent in proxy mode on one or more intermediate machines in order to provide network access for the agents to connect to the servers.
13.3.2 The EC2 Actuator
Figure 13.1 shows the architecture of the EC2 extension. The actuator provides the main control flow, an interface to events and data regarding resource configuration, and agent commands. Typically, Nimrod actuators interface with a library or call

228 |
B. Bethwaite et al. |
Fig. 13.1 EC2 extension architecture
out to command-line client tools in order to start agents on remote resources. A large part of an actuator’s implementation is devoted to adapting the interface offered by the external middleware or service, to the interface required by the actuator model. In Nimrod, this functionality is encapsulated in a resource module. The new EC2 resource module leverages the Boto (http://code.google.com/p/boto/) library for communication with the EC2 web service. We chose to use Boto because it is implemented in Python, like Nimrod/G, so we did not need to create a com- mand-line wrapper for the AWS Java client tools.
Boto provides client implementation for many of the current AWS query APIs, including EC2, S3, SQS, etc. The EC2 query API has been adopted by a number of other IaaS cloud projects offering software for creating private and hybrid clouds. Notable examples with support in current releases include Eucalyptus and OpenNebula. The EC2 actuator can provision Amazon EC2, Eucalyptus and OpenNebula cloud resources for use in Nimrod experiments.
As shown in Fig. 13.1, the EC2 resource divides instances into slots based on the number of processor cores per instance and the number of cores required per job. Agents are allocated to the slots and then launched via SSH once the instance has been initialised. Owing to limitations of the IPv4 address space, and like compute clusters, a common network configuration for private clouds uses a reserved private IP address range. We postulate that this will become more common as cloud computing is adopted for HTC. External access will be possible via a port-forwarding method from an intermediate device.