Cost Aware Resource Selection in IaaS Clouds

One of the main challenges in cloud computing is to cope up with the selection of efficient resources in terms of cost. There are various cloud computing service providers which dynamically provide resources to the customers through different pricing policies. Based on the different APIs and pricing policies of the service providers, it becomes difficult for the customers to select the best service provider in terms of cost. In some cases, if the usage of the resources provided by a datacenter exceeds certain limit, then the providers cannot offer more resources to the customers as new VMs cannot be created. Hence, even if the customer chooses the best provider based on the least cost parameter, still there is no guarantee that the provider allocates complete resources to the customer. For this reason, I present system architecture that selects the best service provider based on the customer requirements mainly the cost. The proposed architecture also performs resource management by automatically providing new VMs from the available service providers in the inter cloud. The proposed system is based on five clouds i.e. Amazon EC2, Cloudsigma, Google, GoGrid, and Windows Azure. An interface is designed for obtaining the user requirements. These user requirements are matched with the design database of five cloud providers and based on the matched values; the catalog of optimal costs for each particular cloud is shown to the user. Then Cost Aware Resource Selection algorithm is run for determining the lowest optimal cost for Instance based approach and Quantity based approach. The algorithm tackles two domains of clouds for the algorithm i.e. Single Cloud and Multi Cloud. Keywords—Cloud computing; pay-as-you-go; infrastructure as a service; cost aware resource selection; virtual machines; hypervisor; instance based approach; quantity based approach; single cloud; multi cloud


A. Overview of Cloud Computing
Cloud computing is an emerging paradigm which provides the computing services as fifth utility [1].Cloud computing provides the resources on pay as you go basis which gives new perspective and identity to the cloud business.
Clients and system administrators can deploy their applications and web services through the allocation of resources by cloud providers.They do not have to invest an upfront cost on Infrastructures and do not have to manage the resources on their own.The tasks are reduced and resources are all managed by the cloud providers providing the resources.The definition of cloud computing was represented by Vaquero [2] after reviewing many different other definitions of cloud computing: "Clouds are a large pool of easily usable and accessible virtualized resources such as hardware, development platforms and/or services.These resources can be dynamically reconfigured to adjust to a variable load (scale), allowing also for an optimum resource utilization.This pool of resources is typically exploited by a pay-per-use model in which guarantees are offered by the Infrastructure Provider by means of customized SLAs".
National Institute of Standards and Technology (NIST) has also presented the definition of Cloud computing that is easily understandable [3]: "Cloud computing is a model for enabling ubiquitous, convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, servers, storage, applications, and services) that can be rapidly provisioned and released with minimal management effort or service provider interaction.This cloud model is composed of five essential characteristics, three service models, and four deployment models".
Service on demand, network access, elasticity, pooling of resources, and measured service are the five important characteristics present in the NIST definition of Cloud Computing [3].There are deployment and service models in the cloud environment.The deployment models are public cloud, private cloud, community cloud, and hybrid cloud (the combination of both private and public clouds).The service models are SaaS (Software as a Service, PaaS (Platform as a Service), and IaaS (Infrastructure as a Service).Fig. 1 shows the service models and the deployment models in cloud computing.It summarizes the operation of three service models on the top of deployment models.Fig. 1.Service and Deployment Models in Cloud Computing (Source: [4]).www.ijacsa.thesai.orgCloud computing brings some features that are attractive to clients and can change the procedure of accessing the resources from clouds making it easy and convenient.The best feature among all features that cloud computing provides is usage of a service as a utility that is pay as you go model of accessing and using the resources, elasticity in resource provisioning, resource management, and having the infrastructure without investing on it.Broad network access is another feature of cloud computing that lets the clients access the resources from Internet [3,5].
Section II provides the related work of other authors highlighting their limitations and strengths of my proposed work.Section III discusses the proposed framework and the underlying design.Section IV provides implementation and the experimentation results.Section V draws my conclusions.

B. Cost Aware Decision System for Resource Selection in Clouds
Earlier, there have been some systems presented for the system administrators to select resources and deploy their web applications and services on clouds.Decision system for resource selection [6] is one of such approaches.Through this approach the system administrators have an ease in selecting the best resource provider from all over the world.
The cost aware resource selection decision system maintains a database of various services provided by different cloud providers.We take five cloud providers for our system on general basis; these are Amazon EC2, Google, GoGrid, CloudSigma, and Windows Azure.The system obtains requirements from the clients and then a comparison is done for the various services saved in the database.Based on the services that match the requirements and charge the lowest cost are selected as the pertinent cloud provider for the client.The best resource can be selected from two or more than two cloud providers.Then the computation cost among the modules is evaluated and a comparison is done to suggest the best resource to the users.
The cost aware resource selection decision system is a solution to the problems that a system administrator faces during the resource selection that best matches their requirements.It is assumed that the resources of the applications that are needed to deploy them are already known to the system administrator.This research covers the main important factor i.e. cost.It provides the cost awareness for resource selection in clouds but it does not cover other parameters like performance and is left for further extension to this research.

II. RELATED WORK
Zhang [7] worked on providing the cloud resources on user demands considering the cost factor as minimum as possible.The focus of the research was providing the network, storage, and computing resources.The author managed to work on three layers to provide the best solution.Although the approach was good in providing the cheapest resource provider, it did not provide the complete solution of getting the resources after having the knowledge of the best provider.The users had to manage the resource selection and retrieval at their own.Prashant and Upendra [8] propose a cost aware system that optimizes the selection of virtual server that minimizes the cost.The researchers also focused on the mechanisms to reduce the time in new configurations.Their main focus was to remove the tradeoff between cost and time for cloud resources in return ignoring the solution to provide the best resource provider offering minimum cost.My proposed system is complementary to this and provides the best cost awareness for efficient resource selection in inter clouds.
Liu and Zhang [9] presented a framework that chooses the resource provider based on the quality of service.The work comprised of discovery agents that managed the discovery of cloud resources using hash indexing.The whole network was divided into different domains to collect the Quality of Service information to choose the best resource provider.The focus was purely abstract covering the quality with the least focus on cost.My system removes the abstraction level, with a complete focus on minimizing the cost.
A survey of cloud computing presented in [10,11] highlight the architecture and key principles about the resource selection with high performance and minimum cost.These survey papers presented the service selection algorithm that is adaptive to different kind of environments with scalability and availability.The research is only limited to design and architecture of cloud computing for resource selection covering performance and cost factors at a very abstract level.Due to insufficient resource available at times, the cloud provider may not be able to provide the demanded resources to the clients [12].High cost of resources to meet the requested services by clients has led to the pay-as-you-go model to avoid the fluctuations in cloud computing.Seagull [12] was introduced as a solution to overcome the outburst in cloud computing due to scarcity of resources.This technique focused well on overcoming the sudden outburst but did not provide a unified solution to provide cost awareness to the clients for selecting resources.
Different cloud providers need to work on how to price the cloud resources requested by the clients from different environments [11,13].Enhanced ant colony system was introduced by Wang [13] which discussed the composition cost of data transfer for composing a service.A service selection algorithm was introduced which was able to deal with parallel relations between services.This algorithm only focused on the location of service providers and users, neglecting the other parameters which have a great impact on the cost evaluation.My system covers all the basic parameters to evaluate cost of the resources in an efficient way.
Inter cloud architectures and brokering systems for cost efficiency proposed by Nikoley and Rajkumar [14] discuss the inter cloud environments that facilitate the brokering of cloud resources in clouds.Kingfisher [15] is a model that presented the cost aware elasticity of cloud resources.This system focused on reducing the cost of virtual servers and their configurations.Kingfisher removed the tradeoff between cost and time but did not provide the efficient solution to the users to select the best service based on minimum cost.My system presents the unified solution to this problem.Mistral [16] addressed the tradeoff between three parameters i.e. power, www.ijacsa.thesai.orgperformance, and cost.It is a framework that optimizes these three parameters to maximize the utility.Its focus is on addressing the tradeoff neglecting the parameter cost, which is a major factor in resource selection.Mansoor and Lakshman [17] proposed a resource allocation algorithm for distributed clouds.The objective was to allocate the resource by minimizing the distance between cloud providers and clients, optimizing the selection of servers in clouds.The performance of the algorithm was evaluated through simulations.As the proposed system was based on resource allocation, it did not provide a solution to the cost aware selection of resources.Whereas, my proposed system satisfies the solution to cost aware resource selection in inter clouds.
Meikang [18] proposed a two dynamically based resource allocation algorithms that adjust the updated task information for execution.These algorithms allocate the resources to the clients and schedule the order of execution for tasks.The objective of these algorithms was to improve the performance.OPTIMIS [19] was proposed for dynamic provisioning of cloud resources.The objective of the technique was to optimize the life cycle of a service including its construction, deployment, and operation on the basis of cost and other factors.It aimed at providing a reliable and trustful cloud computing environment.Both the above techniques aimed at enhancing the performance and optimizing the resource provisioning in the cloud, but somehow neglected the cost awareness for resources.
Cloud resources and data centers have been aiming at reducing energy consumption [20].The technique aims at providing a real time service for a virtual request.Different schemes have been proposed to reduce energy consumptions and enhance the performance through simulations [16,20].Dynamic load distribution policies have been proposed by Kien and Jingru [21] that addresses the cost related to electricity and the cooling effects.Load spikes have been handled through different cooling strategies, a comparison have been done between the cost aware and cost unaware policies by addressing the cost saving related to electricity and load migration.
Reliability Profit Assurance (RPA) algorithm [22] was presented to investigate the reliability of resources in distributed computing systems in context of operating costs and scheduling.To increase reliability, RPA algorithm introduced cost aware replication mechanism.This research made a first attempt to evaluate the reliability cost in workflows but made many gaps in the research which are addressed in our system.Resource selection strategy [23] is presented to select a host based on the minimum network delay.The aim of this model is to minimize the time between requesting and retrieving a service from cloud provider by selecting the host that is the closest in the network.And it minimizes the execution time of the tasks.The approach was good but it only focused on the location of the cloud provider, minimizing the distance between the client and provider to decrease the cost whereas our proposed system covers other necessary factors other than location for the best selection of cloud provider that charges the lowest cost.
Resource scheduling and optimization is an emerging paradigm in the field of cloud computing [24,25].The scheduling algorithm has been introduced in the hybrid clouds presenting the important aspects when scheduling workflows [24].The communication channels are accessed on job allocation and the performance of scheduling algorithms has been evaluated by comparing the impact of the available bandwidth.For scheduling purpose, the tasks are divided and grouped into the requested resource and data, and then are prioritized [25].Resource selection is done using a priority formula over sequential scheduling but it does not provide the best resource provider that provides cost aware resources on user demands.Cost aware allocation of cloud resources have been presented by Markus and Simon [26].In their work, workload forecasting model has been introduced based on Fourier transformation.The aim of the paper was to achieve efficiency of resource utilization.The work aimed at scheduling and improving the resource utilization but did not focus on the cost awareness of resource selection in inter clouds, which is best presented in my proposed system.HCOC [28] addressed which resources should be requested from the public cloud and merged with the private cloud to provide the best results within a given execution time.The aim was to achieve the desired result at a given execution time.The results were then evaluated through simulations.A delayconstrained optimization framework [27] has been proposed on the basis of cost models, to minimize the cloud overhead and maximize the resource utilization.The total execution time is reduced by selecting the appropriate mapping nodes for the modules that have been assigned priority.
Selection and binding of resources at an optimal cost is discussed [30].The focus of the paper was to improve the quality of results by achieving efficiency, robustness, and scalability.A prototype implementation was also presented for the resource selection and binding component.Different parameters were analyzed to estimate the global energy needed for the development of a service or system.The types of energy like operating energy and embodied energy were discussed [29].But the only factor in focus was -energywhereas my proposed system focuses on -cost-as the main factor for service selection from anywhere in the world.
Hybrid modeling [31] focuses on the complex structure of resource selection systems having the ability to cope up with the enterprise architecture.It focuses on the simulation techniques to decrease the involvement of stakeholders and third parties as compared to other techniques.But the paper only focused on the scheduling of the services ignoring the factor of cost which is deeply covered in my proposed system.

III. PROPOSED FRAMEWORK
In my proposed solution, I present a new cost aware resource selection algorithm.The user will give the input based on two approaches provided by the algorithm i.e.Instance based and Quantity based approaches.Based on these inputs, the algorithm will display the best cloud providers that charge the lowest cost for the specified services.

A. Proposed Cost Aware Resource Selection Algorithm
The system mainly takes input from the users based on the factors that influence cost.The first part of this research is to www.ijacsa.thesai.orgfind out those factors and is termed as parameters for which user input is obtained.My system decides the best cloud provider among Amazon EC2, Cloudsigma, Google, GoGrid, and Windows Azure, considering the given user input and displays the optimal costs of every cloud provider.It also displays the lowest cost from the list pointing out the most pertinent cloud provider in terms of cost.The system architecture of the proposed cost aware resource selection system is shown in Fig. 2. The system only focuses on IaaS.
The database designed for the proposed system holds all the detailed information about the cloud providers.It also stores the user requirements in a separate table.The database holds the type of instances of the clouds, the number of cores for every particular instance, RAM (in GB), computational storage (in GB), standard storage, bandwidth in, bandwidth out, location, operating system, contract period and cost for every particular instance and their combinations.
Cloud ecosystem is also integrated with the proposed model.Through cloud ecosystem integration services, cost aware resource selection algorithm can reduce up-front infrastructure capital and maintenance costs while also reducing or keeping their in-house infrastructure footprint or inventory under control.The users will be enabled to provision Windows and Linux operating systems.system's consistency will enable them to use the same VMs and management tools on the platform that they use on their premises, thus reducing the costs.

B. Detailed Design
Cost aware resource selection system takes the user requirements based on the identified parameters, analyses them, and provides the most pertinent cloud provider in terms of cost.The components of the system are designed in MVC (Model-View-Controller) model to reduce dependencies among them.The MVC architecture of the system is shown in Fig. 3.

A. Implemenation
Cost Aware Resource Selection system is implemented using Java scripting and PHP.I have implemented this prototype as a proof of the proposed framework.Five cloud providers have been considered for this research work, from the list of IaaS providers, that is Amazon EC2, Cloudsigma, Google, GoGrid, and Microsoft Windows Azure.A web interface is designed for the user to take the requirements as Input.These web pages have been designed for Single cloud user requirements and Mutli-cloud user requirements.Fig. 4 shows the Single Cloud web interface for the user to enter requirements.This web page has 2 options for the user i.e.Instance based, and Quantity based.If the User selects the Instance based approach, the user is asked to enter the requirements based on Instance type, number of instances, location, operating system, and contract period.The input is taken and is matched with the records of database under every particular cloud through a query.The cost of the record that matches the user requirements is retrieved from the database and then a list is displayed to the user with all the providers and their respected costs.Then a comparison is made between the costs of five cloud providers.The cost which is lowest is displayed to the user.In the Quantity based approach section, the user can give the input based on the parameters of number of cores, RAM, Computational storage, contract period.The user can give the standard storage based on the cloud he/she selects.This input is taken and the logic is performed at the run time.In the single cloud, the user can enter the standard storage for a single cloud.The logic is given below: After taking the input from the user, the list with optimal results is displayed to the user.After displaying a list with five cloud providers and their respective costs, a comparison is done between these costs and the results are shown in Table IV.

B. Algorithm Logic and Flow
Cost aware resource selection algorithm has been split into two basic algorithms.One is through using the Instance based approach while the other is through using Quantity based approach.Using instance-based approach; the user provides the input in the form of type of instance, number of instances, location, operating system, and contract period.The variable "n" defines the number of additions to an instance.The maximum limit has been defined as 10.
Optimal cost is defined as the cost of the output from the cloud provider's database based on the factors like RAM (GB) CPU cores, computational storage, location, and the communication cost, computation cost, additional storage cost, cost of network bandwidth in and cost of network bandwidth out.Now, the second algorithm states the Quantity based approach.The user gives the input inform of quantities like number of machines, the amount of RAM, computational storage, the standard storage which is unique for every particular cloud and for that the user chooses the cloud too, and finally the contract period.

C. Cloud Information Database
Cloud Information database includes the details about the five clouds i.e.Amazon EC2, Cloudsigma, Google, GoGrid, and Windows Azure.It also includes a table of User requirements that saves the input taken by the user.The information database holds the records of the cloud providers www.ijacsa.thesai.organd their details including type of instances, CPU, RAM, storage, standard storage, bandwidth in, bandwidth out, location, operating system, contract period and the pricing details.
I had discussed in the related work section that different cloud providers have their pricing strategies and few of the providers have their own pricing policies which may be totally vary from the rest ones.In Cost aware resource selection system, all the information should be stored in our cloud information database consistently so that the system can display the optimum result without taking help from any otherprograms.Primary keys have been assigned to every particular provider's table and have explicit details about resources and pricing.
Different combinations have been made in the database for the ease of user to select any kind of combination and find the optimum result.Where n>=1, I is the set of n instances, CP is the set of n CPU cores, OS is the set of 2 operating systems, R is the set of n RAMs, Loc is the set of 2 locations, S is the set of n Storage, and Cn is the set of n Contract period.
We have introduced few notations to be used in the paper.They are: I is the instance for every particular cloud, CP is the CPU cores, OS is the type of operating systems, R is the RAM, Loc is the type of location, S is the Storage size, Cn is the Contract period.Let the cloud providers be represented as Amazon_Ec2= a, Cloudsigma=c, Google=g, Go_grid=gg, and Windows_Azure=w.
The database is designed with multiple combinations.The design of the database consists of the fields shown in Table III.The combinations in the database are represented using the linear programming terminologies shown in the following Table II: The Cost aware resource selection system itself is a Linear Programming (LP) problem.The objective function and the set of constraints are as follows: The objective function (1) is the computational cost, which we wish to minimize.With reference to constraint (2), the value of Locn shows whether it can be Loc1 which represents US_east, or Loc2 which represents US_west.Constraint (3) shows that OSn can either be OS1 which represents Linux, or OS2 which represents Windows.

D. Results
In Experiment 1, User Selects "Instance based" approach and gives input.In Experiment 2, User selects Quantity based approach and gives Input.The results for both are shown in Table IV.In Experiment 3, User Selects "Instance based" approach and gives input.The results are same as Experiment 1 because this search is based on instance type, and every cloud has their unique instances.No instance of one cloud matches with the instance of other cloud.Hence, in the multi cloud scenario, the results for "Instance based approach" will be same as that of single cloud.In Experiment 4, user selects Quantity based approach and gives Input.Scenarios are taken for Cloudsigma: User gives the input but selects the standard storage of any other cloud other than CloudSigma itself, like standard storage of Amazon EC2, Google, GoGrid, or Windows Azure, to validate that the standard storage can be chosen from any other cloud now.V. CONCLUSION This paper aims on finding the best resource provider in terms of lowest cost.The system administrators usually spent a lot of time to find the cloud providers with the type of resources they provide and go through the whole pricing policy details.Through cost aware resource selection algorithm, the solution is provided to this particular problem.I reviewed the old approaches where the focus is not on a single factor i.e. cost but also on multiple other factors like efficiency, performance, power, reliability etc. which somehow made the researchers lose the focus on cost.My proposed framework mainly focuses on providing the optimal cost for Single cloud and Multi clouds.I have described the detailed architecture of my cost aware resource selection system and have implemented the prototype.I have deduced some common factors based on our literature review that affected cost in any possible way i.e.Instance type, RAM, CPU cores, computational storage, location, operating system, contract period, number of machines and standard storage.Based on these factors an interface is designed using PHP and java scripting.Input is taken from the user and is matched with that of our cloud information database.Cloud information database is designed in phpMyAdmin to maintain the details of every particular cloud and their pricing policies.The clouds taken for our research are Amazon EC2, Cloudsigma, Google, GoGrid and Microsoft Windows Azure.User requirements are matched with that of the database records and a list is displayed to the user with the costs of all the clouds.Then comparison logic is run to find the optimal and lowest cost among them.This is done under Instance-based approach whereas in Quantity-based approach the results are made through runtime logic.Experimentation and evaluation have proved the validity of the system.
For future work, the parameters that I took for my prototype can be enhanced and increased.Many other locations can be added and more operating systems can be supported in my research.There are many issues that remain open.Something that can search the web interface and updates the cloud information database can be further investigated.


Fig. 2. System Architecture of the Proposed Cost Aware Resource Selection System.

Fig. 3 .
Fig. 3. Cost Aware Resource Selection System Architecture for Model-View-Controller.

TABLE I .
FACTORS OF USER REQUIREMENTS Contract periodIt can be hourly, monthly, or yearly 5 hours www.ijacsa.thesai.orgIV.IMPLEMENTATION AND EXPERIMENTATION

TABLE II .
REPRESENTATION OF COMBINATIONS OF DATABASE

TABLE IV .
EXPERIMENTATION RESULTS