Are there cloud / cluster / hosting providers that charge for the actual processor time?

Are there any providers who will charge you for only 2 hours a day? As far as I can tell from reading various literature, Azure, EC2 and GAE will charge until the code is deployed to the instance, regardless of whether it really does something or not. I suppose this will work if we can automatically turn on the scheduled instance and let it shut down after it is finished ... But I cannot find anything that allows this.

Background

We have a procedure that looks like this:

  • Every day at 6am, download some data from a specific website.
  • Perform calculations on this data. This calculation takes less than 2 hours.
  • Send (HTTP) the results of this calculation to another website

We plan to launch it in such a way that it does not require manual intervention. Therefore, every day we need no more than 2 hours of processor time. We would like to place it somewhere that maximizes downtime for 22 hours every day (and pays accordingly).

Is there anyone who offers such a service?

+6
source share
6 answers

App Engine has a Cron Service that can issue a request at a specific time of the day. Then you can use Task Queues for the actual work.

The only drawback is that tasks must be completed within 10 minutes, which means that you have to break your processing into discrete pieces that can end in less than 10 minutes.

Unlike Amazon and others, App Engine does not charge for time, it charges for actual use (for example, the number of requests per second you process, the number of bytes used, etc.).

+3
source

Windows Azure provides application (service) management using the REST-based API ( http://msdn.microsoft.com/en-us/library/ee460799.aspx ). You can write your own code using this REST API for deployment management. There are commercial ( Cerebrata Azure Management Cmdlets ) and free ( Windows Azure Platform PowerShell Cmdlets ) programs that can help you automate deployment tasks.

+4
source

I would say that the Google App Engine Backends sounds like you need:

Dynamic backups occur when they receive a request and are turned off when idle; They are ideal for work that is intermittent or driven by user activity. For more information about the differences between resident and dynamic backends, see Backend Types, as well as a discussion of Startup and Shutdown.

The backend does not automatically scale in response to the request volume. Instead, you specify the number of instances of each backend and change that number by running the update or configure command. the number of instances is usually set in proportion to the size of the data set or the degree of computational power for which you want the problem. Cost may also be considered.

In your case, you can simply open the backend at 6 am, run a long-term calculation (without the 10-minute ala Task Queues time limit) and use URLFetch to send the results where you need it. The downside here is that (IIRC), if you are not under a free quota, you will pay $ 9 per month for the application (although you can use this to get a good and muddy backend).

Alternatively, you can simply use Amazon EC2 and set up the image with all the necessary code, save it to S3 and set the cron task to run an instance of it at 6 in the morning, perform the calculation and kill it once this is done, and you have the necessary results. Here you will pay only for two hours of work and a few cents for adding to save the image on S3.

+3
source

Amazon EC2 can do what you are looking for.

Amazon Auto Scaling supports scheduling the number of instances you want to run at any given time. You can use this to run one instance at a time you want. You must configure the AMI / run options so that it runs your batch job at startup.

You probably don't need to plan a stop time. Your batch job may simply close the instance when it completes the task by disconnecting the board.

Update: I wrote an article describing the steps to achieve this approach:

Starting EC2 instances in a recurring schedule with automatic scaling
http://alestic.com/2011/11/ec2-schedule-instance

Thanks for the idea: -)

+2
source

From my point of view, Jelastic is what you definitely need, because it meets the stated requirements.

First of all, you can stop your environment at any time and will not use dynamic resources (RAM, CPU). Therefore, you will pay for the actual resources used.

Alternatively, you can manage this request directly with your hosting provider.

Jelastic plans to open an API that will allow users to control the cycle of their environments (stop, start), which can be placed on your code or implemented in a browser. This will be done in the near future, so do not lose the opportunity to try.

+1
source

In fact, every provider with hourly billing periods allows this as long as you automate the creation and deletion of instances via the API. You can find IaaS in the comparison mechanism if in advanced mode you specify 2 hours a day in the "time" field.

Another Selectel index is a Russian provider, which charges a fee for the actual loading of the resource. Therefore, if you pay half the price of the CPU, if you have 50% use. I donโ€™t know if you pay at all if it goes to 0. Similarly with RAM.

0
source

Source: https://habr.com/ru/post/899049/


All Articles