KR20230161122A - Provisioning method for cloud service and system thereof - Google Patents

Provisioning method for cloud service and system thereof Download PDF

Info

Publication number
KR20230161122A
KR20230161122A KR1020220060752A KR20220060752A KR20230161122A KR 20230161122 A KR20230161122 A KR 20230161122A KR 1020220060752 A KR1020220060752 A KR 1020220060752A KR 20220060752 A KR20220060752 A KR 20220060752A KR 20230161122 A KR20230161122 A KR 20230161122A
Authority
KR
South Korea
Prior art keywords
provisioning
cloud
instance
spot
instances
Prior art date
Application number
KR1020220060752A
Other languages
Korean (ko)
Inventor
이효정
탄 퉁 응우옌
탄 쿠옹 응우옌
비엣 안 응우옌
Original Assignee
삼성에스디에스 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성에스디에스 주식회사 filed Critical 삼성에스디에스 주식회사
Priority to KR1020220060752A priority Critical patent/KR20230161122A/en
Priority to US18/195,620 priority patent/US20230367656A1/en
Publication of KR20230161122A publication Critical patent/KR20230161122A/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45562Creating, deleting, cloning virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45591Monitoring or debugging support

Abstract

클라우드 서비스를 위한 프로비저닝 방법 및 그 시스템이 제공된다. 본 개시의 몇몇 실시예들에 따른 클라우드 서비스를 위한 프로비저닝 방법은, 클라우드 리소스의 전체 사용률을 포함하는 사용률 정보를 모니터링하고, 클라이언트로부터 레귤러 인스턴스(regular instance)에 대한 요청을 수신하며, 전체 사용률이 제1 임계치 이상이라는 판단에 응답하여, 기 프로비저닝된 스팟 인스턴스(spot instance) 중에서 적어도 일부를 종료시키고 요청된 레귤러 인스턴스를 프로비저닝(provisioning)할 수 있다. 그렇게 함으로써, 클라우드 리소스의 사용 효율성이 향상되고 클라우드 서비스의 품질도 보장될 수 있다.A provisioning method and system for cloud services are provided. A provisioning method for a cloud service according to some embodiments of the present disclosure monitors utilization information including the overall utilization of cloud resources, receives a request for a regular instance from a client, and determines the overall utilization rate. In response to the determination that the threshold value is greater than 1, at least some of the already provisioned spot instances may be terminated and the requested regular instances may be provisioned. By doing so, the efficiency of using cloud resources can be improved and the quality of cloud services can be guaranteed.

Description

클라우드 서비스를 위한 프로비저닝 방법 및 그 시스템{PROVISIONING METHOD FOR CLOUD SERVICE AND SYSTEM THEREOF}Provisioning method and system for cloud services {PROVISIONING METHOD FOR CLOUD SERVICE AND SYSTEM THEREOF}

본 개시는 클라우드 서비스를 위한 프로비저닝 방법 및 그 시스템에 관한 것으로, 보다 상세하게는, 클라우드 리소스의 사용 효율성을 향상시키기 위해, 클라우드 리소스를 동적으로 프로비저닝하는 방법 및 그 방법을 수행하는 시스템에 관한 것이다.This disclosure relates to a provisioning method and system for cloud services, and more specifically, to a method for dynamically provisioning cloud resources and a system for performing the method to improve the use efficiency of cloud resources.

클라우드 서비스에서, 프로비저닝 프로세스(provisioning process)는 클라이언트들의 요청에 따라 물리적 클라우드 노드의 한정된 리소스를 할당하여 클라우드 인스턴스(cloud instance)를 생성하고, 생성된 클라우드 인스턴스를 요청한 클라이언트에게 제공하는 일련의 과정을 의미한다. 이러한 프로비저닝 프로세스는 클라우드 서비스의 품질과 클라우드 리소스의 사용 효율성을 좌우하기 때문에, 많은 클라우드 서비스 제공자들이 아직도 효율적인 프로비저닝 알고리즘을 고안하기 위해 노력하고 있다.In cloud services, the provisioning process refers to a series of processes that allocate limited resources of physical cloud nodes according to clients' requests, create cloud instances, and provide the created cloud instances to the clients who requested them. do. Because this provisioning process determines the quality of cloud services and the efficiency of using cloud resources, many cloud service providers are still trying to devise efficient provisioning algorithms.

한편, 대다수의 클라우드 서비스 제공 시스템은 사용 기간과 성능이 보장되는 레귤러 인스턴스(regular instance)만을 이용하여 서비스를 제공하고 있다. 또한, 대다수의 클라우드 서비스 제공 시스템은 레귤러 인스턴스의 실제 사용률을 고려하지 않고, 프로비저닝된 인스턴스의 개수만을 고려하여 프로비저닝을 수행하고 있다(e.g. 프로비저닝 가능한 최대 인스턴스 개수를 정해 놓고, 그 안에서만 프로비저닝을 수행하는 방식). 이러한 경우, 클라우드 리소스의 실제 사용률은 높지 않음에도 불구하고 추가적인 레귤러 인스턴스가 프로비저닝될 수 없기 때문에, 클라우드 리소스의 사용 효율성과 클라우드 서비스 제공자의 수익성은 떨어질 수밖에 없다.Meanwhile, most cloud service provision systems provide services using only regular instances whose usage period and performance are guaranteed. In addition, most cloud service provision systems do not consider the actual usage rate of regular instances and perform provisioning only by considering the number of provisioned instances (e.g. a method of setting the maximum number of instances that can be provisioned and performing provisioning only within that number). ). In this case, even though the actual usage rate of cloud resources is not high, additional regular instances cannot be provisioned, so the efficiency of using cloud resources and the profitability of the cloud service provider are bound to decrease.

한국공개특허 제10-2019-0059661호 (2019.05.31 공개)Korean Patent Publication No. 10-2019-0059661 (published on May 31, 2019)

본 개시의 몇몇 실시예들을 통해 해결하고자 하는 기술적 과제는, 클라우드 서비스의 품질을 보장하면서 클라우드 리소스의 사용 효율성을 향상시킬 수 있는 프로비저닝 방법 및 그 방법을 수행하는 시스템을 제공하는 것이다.The technical problem to be solved through some embodiments of the present disclosure is to provide a provisioning method that can improve the efficiency of using cloud resources while ensuring the quality of cloud services and a system that performs the method.

본 개시의 몇몇 실시예들을 통해 해결하고자 하는 다른 기술적 과제는, 레귤러 인스턴스(regular instance)와 스팟 인스턴스(spot instance)의 특성을 고려하여 효율적으로 프로비저닝을 수행할 수 있는 방법 및 그 방법을 수행하는 시스템을 제공하는 것이다.Another technical problem to be solved through some embodiments of the present disclosure is a method for efficiently performing provisioning considering the characteristics of regular instances and spot instances, and a system for performing the method. is to provide.

본 개시의 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 개시의 기술분야에서의 통상의 기술자에게 명확하게 이해될 수 있을 것이다.The technical problems of the present disclosure are not limited to the technical problems mentioned above, and other technical problems not mentioned can be clearly understood by those skilled in the art from the description below.

상술한 기술적 과제를 해결하기 위한 본 개시의 몇몇 실시예들에 따른 클라우드 서비스를 위한 프로비저닝 방법은, 적어도 하나의 컴퓨팅 장치에서 수행되는 방법으로서, 클라우드 리소스의 전체 사용률을 포함하는 사용률 정보를 모니터링하는 단계, 클라이언트로부터 레귤러 인스턴스(regular instance)에 대한 요청을 수신하는 단계 및 상기 전체 사용률이 제1 임계치 이상이라는 판단에 응답하여, 기 프로비저닝된 스팟 인스턴스(spot instance) 중에서 적어도 일부를 종료시키고 상기 요청된 레귤러 인스턴스를 프로비저닝(provisioning)하는 단계를 포함할 수 있다.A provisioning method for a cloud service according to some embodiments of the present disclosure to solve the above-described technical problem is a method performed on at least one computing device, and includes monitoring utilization information including the overall utilization of cloud resources. , receiving a request for a regular instance from a client and in response to determining that the overall utilization is greater than or equal to a first threshold, terminating at least some of the previously provisioned spot instances and using the requested regular instance. It may include provisioning an instance.

일 실시예에서, 상기 클라우드 리소스는 프로세서 리소스와 메모리 리소스를 포함하고, 상기 제1 임계치는 상기 프로세서 리소스에 대한 제1 리소스 임계치와 상기 메모리 리소스에 대한 제2 리소스 임계치를 포함하며, 상기 요청된 레귤러 인스턴스를 프로비저닝하는 단계는, 상기 프로세서 리소스의 전체 사용률이 상기 제1 리소스 임계치 이상이거나 상기 메모리 리소스의 전체 사용률이 상기 제2 리소스 임계치 이상이라는 판단에 응답하여, 상기 적어도 일부를 종료시키는 단계를 포함할 수 있다.In one embodiment, the cloud resources include processor resources and memory resources, the first threshold includes a first resource threshold for the processor resource and a second resource threshold for the memory resource, and the requested regular Provisioning the instance may include terminating at least some of the instances in response to determining that the overall utilization of the processor resources is greater than or equal to the first resource threshold or the overall utilization of the memory resources is greater than or equal to the second resource threshold. You can.

일 실시예에서, 클라우드 리소스의 전체 사용률은 제1 전체 사용률이고, 상기 요청된 레귤러 인스턴스를 프로비저닝하는 단계는, 상기 기 프로비저닝된 스팟 인스턴스의 리스트에서 종료 대상을 지정하는 단계, 상기 지정된 스팟 인스턴스의 종료에 따른 상기 클라우드 리소스의 제2 전체 사용률을 예측하는 단계 및 상기 제2 전체 사용률이 상기 제1 임계치 미만이라는 판단에 응답하여, 상기 지정된 스팟 인스턴스를 종료시키는 단계를 포함할 수 있다.In one embodiment, the overall utilization rate of cloud resources is the first overall utilization rate, and provisioning the requested regular instance includes specifying a termination target in the list of the already provisioned spot instances, terminating the specified spot instance. It may include predicting a second overall utilization of the cloud resources according to , and terminating the designated spot instance in response to determining that the second overall utilization is less than the first threshold.

일 실시예에서, 클라이언트로부터 스팟 인스턴스(spot instance)에 대한 요청을 수신하는 단계 및 상기 전체 사용률이 제2 임계치 미만이라는 판단에 응답하여, 상기 요청된 스팟 인스턴스를 프로비저닝하는 단계를 더 포함하되, 상기 제2 임계치는 상기 제1 임계치보다 큰 값일 수 있다.In one embodiment, receiving a request for a spot instance from a client and, in response to determining that the overall utilization is below a second threshold, provisioning the requested spot instance, The second threshold may be greater than the first threshold.

일 실시예에서, 클라이언트로부터 복수의 스팟 인스턴스들에 대한 요청들을 수신하는 단계 - 상기 요청들은 현재 시간 윈도우 내에 수신된 것임 - 및 상기 현재 시간 윈도우의 마지막 지점에서, 상기 복수의 스팟 인스턴스들에 대한 프로비저닝을 수행하는 단계를 더 포함할 수 있다.In one embodiment, receiving requests for a plurality of Spot Instances from a client, wherein the requests are received within a current time window, and at the end of the current time window, provisioning the plurality of Spot Instances. It may further include steps of performing.

상술한 기술적 과제를 해결하기 위한 본 개시의 몇몇 실시예들에 따른 클라우드 서비스를 위한 프로비저닝 시스템은, 하나 이상의 프로세서 및 하나 이상의 인스트럭션을 저장하는 메모리를 포함하고, 상기 하나 이상의 프로세서는, 상기 저장된 하나 이상의 인스트럭션을 실행시킴으로써, 클라우드 리소스의 전체 사용률을 포함하는 사용률 정보를 모니터링하는 동작, 클라이언트로부터 레귤러 인스턴스(regular instance)에 대한 요청을 수신하는 동작 및 상기 전체 사용률이 제1 임계치 이상이라는 판단에 응답하여, 기 프로비저닝된 스팟 인스턴스(spot instance) 중에서 적어도 일부를 종료시키고 상기 요청된 레귤러 인스턴스를 프로비저닝(provisioning)하는 동작을 수행할 수 있다.A provisioning system for a cloud service according to some embodiments of the present disclosure for solving the above-mentioned technical problem includes one or more processors and a memory that stores one or more instructions, wherein the one or more processors store the one or more instructions. Monitoring utilization information including the overall utilization of cloud resources by executing an instruction, receiving a request for a regular instance from a client, and in response to determining that the overall utilization is greater than or equal to a first threshold, An operation may be performed to terminate at least some of the already provisioned spot instances and provision the requested regular instances.

상술한 기술적 과제를 해결하기 위한 본 개시의 몇몇 실시예들에 따른 컴퓨터 프로그램은, 컴퓨팅 장치와 결합되어, 클라우드 리소스의 전체 사용률을 포함하는 사용률 정보를 모니터링하는 단계, 클라이언트로부터 레귤러 인스턴스(regular instance)에 대한 요청을 수신하는 단계 및 상기 전체 사용률이 제1 임계치 이상이라는 판단에 응답하여, 기 프로비저닝된 스팟 인스턴스(spot instance) 중에서 적어도 일부를 종료시키고 상기 요청된 레귤러 인스턴스를 프로비저닝(provisioning)하는 단계를 실행시키기 위하여 컴퓨터로 판독가능한 기록매체에 저장될 수 있다.A computer program according to some embodiments of the present disclosure for solving the above-described technical problem includes the steps of combining with a computing device and monitoring utilization information including the overall utilization of cloud resources, receiving a regular instance from a client. Receiving a request for and in response to determining that the overall utilization is greater than or equal to a first threshold, terminating at least some of the already provisioned spot instances and provisioning the requested regular instances. It may be stored in a computer-readable recording medium for execution.

본 개시의 몇몇 실시예들에 따르면, 클라우드 리소스의 전체 사용률에 기초하여 프로비저닝이 수행될 수 있다. 이러한 경우, 유휴 리소스의 발생이 최소화되어 클라우드 리소스의 사용 효율성이 크게 향상될 수 있다.According to some embodiments of the present disclosure, provisioning may be performed based on the overall utilization of cloud resources. In this case, the occurrence of idle resources can be minimized and the efficiency of using cloud resources can be greatly improved.

또한, 레귤러 인스턴스(regular instance)와 스팟 인스턴스(spot instance)의 특성을 반영하여 프로비저닝을 수행함으로써, 클라우드 리소스의 사용 효율성이 향상되고, 클라우드 서비스의 품질도 보장될 수 있다. 가령, 클라우드 리소스의 전체 사용률이 제1 임계치 이상이 되는 경우에는 스팟 인스턴스를 종료시키고 레귤러 인스턴스를 프로비저닝함으로써, 레귤러 인스턴스의 품질이 보장될 수 있다. 또한, 클라우드 리소스의 전체 사용률이 제2 임계치 미만(단, 제2 임계치는 보통 제1 임계치보다 큰 값임)인 경우에는 스팟 인스턴스의 프로비저닝을 허용함으로써, 클라우드 리소스의 사용 효율성이 향상될 수 있다. 나아가, 클라우드 리소스의 전체 사용률이 제2 임계치 이상인 경우에는 스팟 인스턴스의 프로비저닝을 금지함으로써, 스팟 인스턴스가 레귤러 인스턴스의 성능에 미치는 영향이 최소화될 수 있다.In addition, by performing provisioning by reflecting the characteristics of regular instances and spot instances, the efficiency of using cloud resources can be improved and the quality of cloud services can be guaranteed. For example, when the overall utilization of cloud resources exceeds the first threshold, the quality of regular instances can be guaranteed by terminating spot instances and provisioning regular instances. Additionally, when the overall usage rate of cloud resources is less than the second threshold (however, the second threshold is usually greater than the first threshold), the usage efficiency of cloud resources can be improved by allowing provisioning of spot instances. Furthermore, when the overall utilization of cloud resources is higher than the second threshold, provisioning of spot instances is prohibited, so that the impact of spot instances on the performance of regular instances can be minimized.

또한, 가격 입찰 방식으로 복수의 스팟 인스턴스들에 대한 프로비저닝을 수행함으로써, 클라우드 서비스 제공자의 수익성이 크게 향상될 수 있다.Additionally, by provisioning a plurality of spot instances using a price bidding method, the profitability of the cloud service provider can be greatly improved.

또한, 노드 에이전트와 인스턴스 에이전트를 통해 클라우드 노드의 사용률과 클라우드 인스턴스의 사용률을 모니터링함으로써, 클라우드 리소스에 대한 사용률 모니터링이 정확하게 수행될 수 있다.Additionally, by monitoring the utilization of cloud nodes and cloud instances through the node agent and instance agent, utilization monitoring of cloud resources can be accurately performed.

또한, 지정된 스팟 인스턴스 종료에 따른 클라우드 리소스의 전체 사용률을 예측하고, 예측된 전체 사용률이 제1 임계치 미만이 될 때까지만 스팟 인스턴스를 종료시킴으로써, 기 프로비저닝된 스팟 인스턴스들이 과도하게 종료되는 것이 방지될 수 있다.In addition, by predicting the overall utilization of cloud resources following termination of specified spot instances and terminating spot instances only until the predicted overall utilization falls below the first threshold, excessive termination of already provisioned spot instances can be prevented. there is.

또한, 사용률, 입찰 가격 및/또는 사용 기간 등의 기준에 따라 먼저 종료될 스팟 인스턴스를 결정함으로써, 단순하지만 공평한 방식으로 스팟 인스턴스에 대한 종료 처리가 수행될 수 있다.Additionally, termination processing for Spot Instances can be performed in a simple but fair manner by determining which Spot Instances will be terminated first based on criteria such as utilization, bid price, and/or usage period.

본 개시의 기술적 사상에 따른 효과들은 이상에서 언급한 효과들로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.The effects according to the technical idea of the present disclosure are not limited to the effects mentioned above, and other effects not mentioned can be clearly understood by those skilled in the art from the description below.

도 1은 본 개시의 몇몇 실시예들에 따른 프로비저닝 시스템과 클라우드 서비스 제공 시스템을 설명하기 위한 예시적인 도면이다.
도 2는 본 개시의 일 실시예에 따른 클라우드 리소스 모니터링 방법을 설명하기 위한 예시적인 도면이다.
도 3은 본 개시의 다양한 실시예들에서 참조될 수 있는 가상 클라우드 리소스와 클라우드 인스턴스의 관계를 설명하기 위한 예시적인 도면이다.
도 4는 본 개시의 일 실시예에 따른 레귤러 인스턴스의 프로비저닝 시점 및 방식을 설명하기 위한 예시적인 도면이다.
도 5는 본 개시의 일 실시예에 따른 스팟 인스턴스의 프로비저닝 방식 및 시점을 설명하기 위한 예시적인 도면이다.
도 6은 본 개시의 일 실시예에 따른 클라우드 노드들의 구성을 설명하기 위한 예시적인 도면이다.
도 7은 본 개시의 몇몇 실시예들에 따른 클라우드 서비스를 위한 프로비저닝 방법을 나타내는 예시적인 흐름도이다.
도 8은 본 개시의 일 실시예에 따른 레귤러 인스턴스 프로비저닝 방법을 나타내는 예시적인 흐름도이다.
도 9는 및 도 10은 본 개시의 일 실시예에 따른 스팟 인스턴스 종료 방법을 설명하기 위한 예시적인 도면이다.
도 11은 본 개시의 일 실시예에 따른 스팟 인스턴스 프로비저닝 방법을 나타내는 예시적인 흐름도이다.
도 12는 본 개시의 몇몇 실시예들에 따른 프로비저닝 방법들에서 이용되는 제1 임계치와 제2 임계치를 부연 설명하기 위한 예시적인 도면이다.
도 13은 본 개시의 몇몇 실시예들에 따른 프로비저닝 시스템을 구현할 수 있는 예시적인 컴퓨팅 장치를 도시한다.
1 is an exemplary diagram for explaining a provisioning system and a cloud service providing system according to some embodiments of the present disclosure.
Figure 2 is an exemplary diagram for explaining a cloud resource monitoring method according to an embodiment of the present disclosure.
FIG. 3 is an exemplary diagram illustrating the relationship between a virtual cloud resource and a cloud instance that may be referenced in various embodiments of the present disclosure.
FIG. 4 is an exemplary diagram illustrating the timing and method of provisioning a regular instance according to an embodiment of the present disclosure.
FIG. 5 is an exemplary diagram illustrating the provisioning method and timing of spot instances according to an embodiment of the present disclosure.
FIG. 6 is an exemplary diagram for explaining the configuration of cloud nodes according to an embodiment of the present disclosure.
7 is an example flowchart illustrating a provisioning method for a cloud service according to some embodiments of the present disclosure.
Figure 8 is an example flowchart showing a regular instance provisioning method according to an embodiment of the present disclosure.
9 and 10 are exemplary diagrams for explaining a spot instance termination method according to an embodiment of the present disclosure.
Figure 11 is an example flowchart showing a spot instance provisioning method according to an embodiment of the present disclosure.
FIG. 12 is an exemplary diagram for further explaining a first threshold and a second threshold used in provisioning methods according to some embodiments of the present disclosure.
13 illustrates an example computing device that can implement a provisioning system in accordance with some embodiments of the present disclosure.

이하, 첨부된 도면을 참조하여 본 개시의 다양한 실시예들을 상세히 설명한다. 본 개시의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나, 본 개시의 기술적 사상은 이하의 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 이하의 실시예들은 본 개시의 기술적 사상을 완전하도록 하고, 본 개시가 속한 기술분야에서 통상의 지식을 가진 자에게 본 개시의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 개시의 기술적 사상은 청구항의 범주에 의해 정의될 뿐이다.Hereinafter, various embodiments of the present disclosure will be described in detail with reference to the attached drawings. The advantages and features of the present disclosure and methods for achieving them will become clear by referring to the embodiments described in detail below along with the accompanying drawings. However, the technical idea of the present disclosure is not limited to the following embodiments and may be implemented in various different forms. The following examples are merely intended to complete the technical idea of the present disclosure and to cover the technical field to which the present disclosure belongs. is provided to fully inform those skilled in the art of the scope of the present disclosure, and the technical idea of the present disclosure is only defined by the scope of the claims.

본 개시의 다양한 실시예들을 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 개시의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다.In describing various embodiments of the present disclosure, if it is determined that a detailed description of a related known configuration or function may obscure the gist of the present disclosure, the detailed description will be omitted.

다른 정의가 없다면, 이하의 실시예들에서 사용되는 용어(기술 및 과학적 용어를 포함)는 본 개시가 속한 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있으나, 이는 관련 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수도 있다. 본 개시에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 개시의 범주를 제한하고자 하는 것은 아니다.Unless otherwise defined, terms (including technical and scientific terms) used in the following embodiments may be used in a meaning that can be commonly understood by those skilled in the art in the technical field to which this disclosure pertains. It may vary depending on the intentions or precedents of engineers working in related fields, the emergence of new technologies, etc. The terminology used in this disclosure is for describing embodiments and is not intended to limit the scope of this disclosure.

이하의 실시예들에서 사용되는 단수의 표현은 문맥상 명백하게 단수인 것으로 특정되지 않는 한, 복수의 개념을 포함한다. 또한, 복수의 표현은 문맥상 명백하게 복수인 것으로 특정되지 않는 한, 단수의 개념을 포함한다.The singular expressions used in the following embodiments include plural concepts, unless the context clearly specifies singularity. Additionally, plural expressions include singular concepts, unless the context clearly specifies plurality.

또한, 이하의 실시예들에서 사용되는 제1, 제2, A, B, (a), (b) 등의 용어는 어떤 구성요소를 다른 구성요소와 구별하기 위해 사용되는 것일 뿐, 그 용어에 의해 해당 구성요소의 본질이나 차례 또는 순서 등이 한정되지는 않는다.In addition, terms such as first, second, A, B, (a), (b) used in the following embodiments are only used to distinguish one component from another component, and the terms The nature, sequence, or order of the relevant components are not limited.

이하, 첨부된 도면들을 참조하여 본 개시의 다양한 실시예들에 대하여 상세하게 설명한다.Hereinafter, various embodiments of the present disclosure will be described in detail with reference to the attached drawings.

도 1은 본 개시의 몇몇 실시예들에 따른 프로비저닝 시스템(10)과 클라우드 서비스 제공 시스템(11)을 설명하기 위한 예시적인 도면이다.FIG. 1 is an exemplary diagram illustrating a provisioning system 10 and a cloud service providing system 11 according to some embodiments of the present disclosure.

도 1에 도시된 바와 같이, 실시예들에 따른 클라우드 서비스 제공 시스템(11)은 적어도 하나의 클라이언트(13-1 내지 13-n)에게 클라우드 서비스를 제공하는 시스템일 수 있다. 가령, 클라우드 서비스 제공 시스템(11)은 클라이언트(13-1 내지 13-n)의 요청에 응답하여 클라우드 인스턴스(cloud instance)를 프로비저닝(provisioning)함으로써 클라이언트(13-1 내지 13-n)에게 클라우드 서비스(e.g. 컴퓨팅 리소스를 제공하는 서비스)를 제공할 수 있다. 이하에서는, 설명의 편의상, 임의의 클라이언트(e.g. 13-1)를 지칭하거나 전체 클라이언트들(13-1 내지 13-n)을 총칭하는 경우에 참조 번호 '13'을 사용하도록 한다.As shown in FIG. 1, the cloud service providing system 11 according to embodiments may be a system that provides a cloud service to at least one client 13-1 to 13-n. For example, the cloud service provision system 11 provides a cloud service to the clients 13-1 to 13-n by provisioning a cloud instance in response to a request from the clients 13-1 to 13-n. (e.g. a service that provides computing resources) can be provided. Hereinafter, for convenience of explanation, the reference number '13' will be used when referring to an arbitrary client (e.g. 13-1) or to collectively refer to all clients (13-1 to 13-n).

도시된 바와 같이, 클라우드 서비스 제공 시스템(11)은 프로비저닝 시스템(10)과 다수의 클라우드 노드들(12-1 내지 12-k)을 포함하도록 구성될 수 있다. 이하, 클라우드 서비스 제공 시스템(11)의 각 구성요소에 대하여 설명한다. 다만, 설명의 편의상, 임의의 클라우드 노드(e.g. 12-1)를 지칭하거나 전체 클라우드 노드들(12-1 내지 12-k)을 총칭하는 경우에 참조 번호 '12'를 사용하도록 한다.As shown, the cloud service providing system 11 may be configured to include a provisioning system 10 and a plurality of cloud nodes 12-1 to 12-k. Hereinafter, each component of the cloud service provision system 11 will be described. However, for convenience of explanation, the reference number '12' is used when referring to an arbitrary cloud node (e.g. 12-1) or to collectively refer to all cloud nodes (12-1 to 12-k).

프로비저닝 시스템(10)은 클라우드 노드들(12)이 제공하는 클라우드 리소스를 모니터링하고, 클라이언트들(13)의 요청에 따라 클라우드 인스턴스에 대한 프로비저닝을 수행할 수 있다. 이때, 프로비저닝 시스템(10)은 모니터링 결과를 고려하여 프로비저닝을 수행할 수 있다. 참고로, 당해 기술 분야에서 클라우드 인스턴스는 '가상 인스턴스(virtual instance)', '가상 머신(virtual machine)' '가상 노드(virtual node)' 등의 용어와 혼용되어 사용될 수 있다. 다만, 하나의 클라우드 노드(12)가 하나의 클라우드 인스턴스만을 제공하도록 설정될 수도 있으므로, 경우에 따라 클라우드 인스턴스는 '물리 머신(physical machine)'의 개념까지 포괄할 수도 있다.The provisioning system 10 may monitor cloud resources provided by cloud nodes 12 and provision cloud instances according to requests from clients 13. At this time, the provisioning system 10 may perform provisioning by considering the monitoring results. For reference, in this technical field, cloud instance may be used interchangeably with terms such as 'virtual instance', 'virtual machine', and 'virtual node'. However, since one cloud node 12 may be set to provide only one cloud instance, in some cases, the cloud instance may even encompass the concept of a 'physical machine'.

클라우드 리소스는 예를 들어 프로세서 리소스, 메모리 리소스, 스토리지 리소스, 네트워크 리소스 등이 될 수 있을 것이나, 본 개시의 범위가 이에 한정되는 것은 아니다. 또한, 클라우드 리소스에 대한 모니터링 정보는 예를 들어 클라우드 리소스의 전체 사용률(e.g. 전체 클라우드 노드들 12가 제공하는 클라우드 리소스에 대한 사용률), 클라우드 노드(12)의 리소스 사용률(e.g. 개별 클라우드 노드 12-1의 리소스 사용률), 클라우드 인스턴스의 리소스 사용률(e.g. 개별 클라우드 인스턴스의 리소스 사용률)이 될 수 있을 것이나, 본 개시의 범위가 이에 한정되는 것은 아니다.Cloud resources may be, for example, processor resources, memory resources, storage resources, network resources, etc., but the scope of the present disclosure is not limited thereto. In addition, monitoring information about cloud resources may include, for example, the overall utilization rate of cloud resources (e.g. the utilization rate of cloud resources provided by all cloud nodes 12), the resource utilization rate of the cloud node 12 (e.g. individual cloud node 12-1 resource utilization rate), or resource utilization rate of a cloud instance (e.g. resource utilization rate of an individual cloud instance), but the scope of the present disclosure is not limited thereto.

프로비저닝 시스템(10)은 주기 또는 비주기적으로 클라우드 리소스를 모니터링할 수 있다. 다만, 구체적인 모니터링 방식은 실시예에 따라 달라질 수 있다.Provisioning system 10 may monitor cloud resources periodically or aperiodically. However, the specific monitoring method may vary depending on the embodiment.

일 실시예에서는, 도 2에 도시된 바와 같이, 프로비저닝 시스템(10)이 인스턴스 에이전트(23)와 노드 에이전트(22)를 통해 클라우드 노드(12)와 각 클라우드 인스턴스(21-1 내지 21-n)의 리소스 사용률을 모니터링(또는 수집)할 수 있다. 여기서, 인스턴스 에이전트(23)는 클라우드 인스턴스(e.g. 21-1) 상에서 동작하는 모듈로서, 해당 클라우드 인스턴스(e.g. 21-1)의 리소스 사용률(e.g. 가상 프로세서의 사용률, 가상 메모리의 사용률)을 측정하고 측정된 결과를 제공할 수 있다. 물론, 인스턴스 에이전트(23)는 다른 모니터링 메트릭(metric)에 대한 측정을 더 수행할 수도 있다. 또한, 노드 에이전트(32)는 클라우드 노드(12) 상에서 동작하는 모듈로서, 해당 클라우드 노드(12)의 리소스 사용률을 측정하고 측정된 결과를 제공할 수 있다. 본 실시예에 따르면, 서로 다른 유형의 에이전트들(22, 23)을 통해 클라우드 노드(12)와 클라우드 인스턴스(e.g. 21-1)의 리소스 사용률이 매우 정확하게 모니터링될 수 있다.In one embodiment, as shown in FIG. 2, the provisioning system 10 connects the cloud node 12 and each cloud instance 21-1 to 21-n through the instance agent 23 and the node agent 22. You can monitor (or collect) resource utilization. Here, the instance agent 23 is a module that operates on a cloud instance (e.g. 21-1), and measures and measures the resource utilization (e.g. virtual processor utilization, virtual memory utilization) of the cloud instance (e.g. 21-1). can provide results. Of course, the instance agent 23 may further perform measurements on other monitoring metrics. Additionally, the node agent 32 is a module that operates on the cloud node 12 and can measure the resource utilization rate of the cloud node 12 and provide the measured results. According to this embodiment, the resource utilization of the cloud node 12 and the cloud instance (e.g. 21-1) can be monitored very accurately through the different types of agents 22 and 23.

또한, 프로비저닝 시스템(10)은 클라이언트(13)의 요청에 따라 클라우드 리소스를 할당하여 클라우드 인스턴스를 생성할 수 있다. 가령, 도 3에 도시된 바와 같이, 프로비저닝 시스템(10)은 클라우드 노드(12)가 제공하는 가상의 프로세서(32-1 내지 32-k)와 가상 메모리(31-1 내지 31-n)를 할당하여 클라우드 인스턴스(33)를 생성하고, 생성된 클라우드 인스턴스(33)를 클라이언트(13)에게 제공할 수 있다. 이때, 클라우드 노드(12)가 제공할 수 있는(또는 클라우드 노드 12에 할당될 수 있는) 가상 프로세서의 개수와 가상 메모리의 최대 개수는 미리 설정된 고정값일 수도 있고, 상황에 따라 변동되는 값일 수도 있다. 도 3은 클라우드 노드(12)가 제공할 수 있는 가상 프로세서의 최대 개수가 'K'이고, 가상 메모리의 최대 개수가 'N'인 경우를 예로써 도시하고 있다. 또한, 도 3은 하나의 가상 프로세서(e.g. 32-1)와 하나의 가상 메모리(e.g. 31-1)를 이용하여 클라우드 인스턴스(e.g. 33)가 생성되는 것을 예로써 도시하고 있다. 그러나, 본 개시의 범위가 이러한 예시에 한정되는 것은 아니다. 가령, 프로비저닝 시스템(10)은 다수의 가상 프로세서들(e.g. 32-1)과 다수의 가상 메모리들(e.g. 31-1)을 할당하여 클라우드 인스턴스(e.g. 33)를 생성할 수도 있다. 본 개시에서, 가상 프로세서(e.g. 32-1)는 '가상 프로세서 리소스'로 칭해질 수 있고, 가상 메모리(e.g. 31-1)는 '가상 메모리 리소스'로 칭해질 수도 있다. 또한, 가상 프로세서(e.g. 32-1)와 가상 메모리(e.g. 31-1)는 '가상 클라우드 리소스'로 칭해질 수도 있다.Additionally, the provisioning system 10 may allocate cloud resources according to the request of the client 13 and create a cloud instance. For example, as shown in FIG. 3, the provisioning system 10 allocates virtual processors 32-1 to 32-k and virtual memories 31-1 to 31-n provided by the cloud node 12. Thus, a cloud instance 33 can be created and the created cloud instance 33 can be provided to the client 13. At this time, the maximum number of virtual processors and virtual memory that the cloud node 12 can provide (or that can be allocated to the cloud node 12) may be preset fixed values or may be values that vary depending on the situation. FIG. 3 shows an example where the maximum number of virtual processors that the cloud node 12 can provide is 'K' and the maximum number of virtual memories is 'N'. In addition, Figure 3 shows as an example that a cloud instance (e.g. 33) is created using one virtual processor (e.g. 32-1) and one virtual memory (e.g. 31-1). However, the scope of the present disclosure is not limited to these examples. For example, the provisioning system 10 may create a cloud instance (e.g. 33) by allocating a plurality of virtual processors (e.g. 32-1) and a plurality of virtual memories (e.g. 31-1). In the present disclosure, the virtual processor (e.g. 32-1) may be referred to as a 'virtual processor resource', and the virtual memory (e.g. 31-1) may be referred to as a 'virtual memory resource'. Additionally, virtual processors (e.g. 32-1) and virtual memory (e.g. 31-1) may be referred to as 'virtual cloud resources'.

앞선 예시에서, 가상 프로세서와 가상 메모리의 최대 개수는 서로 다른 값으로 설정될 수도 있고, 동일한 값으로 설정될 수도 있다. 또한, 가상 프로세서와 가상 메모리의 최대 개수는 클라우드 노드(12)별로 동일한 값으로 설정될 수도 있고, 서로 다른 값으로 설정될 수도 있다. 뿐만 아니라, 각 가상 프로세서 또는 각 가상 메모리가 갖는 리소스의 양(크기)도 서로 동일할 수도 있고, 서로 다를 수도 있다.In the previous example, the maximum number of virtual processors and virtual memory may be set to different values or may be set to the same value. Additionally, the maximum number of virtual processors and virtual memories may be set to the same value for each cloud node 12, or may be set to different values. In addition, the amount (size) of resources possessed by each virtual processor or each virtual memory may be the same or different.

한편, 본 개시의 다양한 실시예들에서, 프로비저닝 시스템(10)은 두가지 유형의 클라우드 인스턴스에 대한 프로비저닝을 수행할 수 있다. 다시 말해, 클라우드 서비스 제공 시스템(11)은 두가지 유형의 클라우드 인스턴스를 이용하여 클라우드 서비스를 제공할 수 있다. 구체적으로, 프로비저닝 시스템(10)은 각 인스턴스의 특성을 반영하여 레귤러 인스턴스(regular instance)와 스팟 인스턴스(spot instance)에 대한 프로비저닝을 수행할 수 있다. 두 인스턴스들은 서로 다른 SLA(Service Level Agreement)를 제공하는 클라우드 인스턴스인데, 레귤러 인스턴스는 요청된 사용 기간과 성능이 보장되는 인스턴스를 의미하고, 스팟 인스턴스는 요청된 사용 기간과 성능이 보장되지 않는(즉, 의도치 않게 종료될 수 있는) 인스턴스를 의미할 수 있다. 당해 기술 분야의 종사자라면, 레귤러 인스턴스와 스팟 인스턴스의 개념에 대해 이미 숙지하고 있을 것인 바, 이에 대한 설명은 생략하도록 한다.Meanwhile, in various embodiments of the present disclosure, the provisioning system 10 may perform provisioning for two types of cloud instances. In other words, the cloud service provision system 11 can provide cloud services using two types of cloud instances. Specifically, the provisioning system 10 can perform provisioning for regular instances and spot instances by reflecting the characteristics of each instance. The two instances are cloud instances that provide different Service Level Agreements (SLAs). Regular instances refer to instances where the requested usage period and performance are guaranteed, and spot instances refer to instances where the requested usage period and performance are not guaranteed (i.e. , may refer to an instance that may be terminated unintentionally. If you are working in the relevant technology field, you will already be familiar with the concepts of regular instances and spot instances, so description of them will be omitted.

앞선 실시예들에서, 레귤러 인스턴스와 스팟 인스턴스는 상이한 특성을 갖는 인스턴스이기 때문에, 두가지 인스턴스의 프로비저닝 시점, 방식 및/또는 알고리즘 등은 서로 다르게 설계될 수도 있다.In the previous embodiments, since regular instances and spot instances are instances with different characteristics, the provisioning time, method, and/or algorithm of the two instances may be designed differently.

예를 들어, 도 4에 도시된 바와 같이, 프로비저닝 시스템(10)은 레귤러 인스턴스에 대해서는 즉각적인 프로비저닝을 수행할 수 있다. 다시 말해, 클라이언트(13)로부터 레귤러 인스턴스에 대한 요청(41)이 수신되면, 프로비저닝 시스템(10)은 곧바로 요청된 레귤러 인스턴스에 대한 프로비저닝을 수행하고, 수행 결과(42)를 제공할 수 있다.For example, as shown in FIG. 4, the provisioning system 10 can perform immediate provisioning for regular instances. In other words, when a request 41 for a regular instance is received from the client 13, the provisioning system 10 may immediately provision the requested regular instance and provide a performance result 42.

또한, 예를 들어, 도 5에 도시된 바와 같이, 프로비저닝 시스템(10)은 스팟 인스턴스에 대해서는 즉각적인 프로비저닝을 수행하지 않을 수 있다. 구체적으로, 프로비저닝 시스템(10)은 현재 시간 윈도우의 마지막 지점에 도달할 때까지 클라이언트들(13)로부터 수신된 스팟 인스턴스 요청(51, 52)에 대한 처리(즉, 프로비저닝 수행)를 보류할 수 있다(e.g. 요청 51, 52를 요청 큐에 삽입하고 대기함). 그리고, 현재 시간 윈도우의 마지막 지점에서, 프로비저닝 시스템(10)은 요청된 스팟 인스턴스에 대한 일괄적인 프로비저닝을 수행(시도)할 수 있고, 수행 결과(53)를 제공할 수 있다. 가령, 프로비저닝 시스템(10)은 클라우드 리소스에 대한 모니터링 결과와 요청된 스팟 인스턴스의 입찰 가격에 기초하여 프로비저닝을 수행할 수 있다. 이러한 경우, 스팟 인스턴스에 대한 가격 경쟁으로 인해 클라우드 서비스 제공자의 수익성이 향상되는 효과가 달성될 수 있다.Additionally, for example, as shown in FIG. 5, the provisioning system 10 may not perform immediate provisioning for spot instances. Specifically, provisioning system 10 may suspend processing (i.e., perform provisioning) on spot instance requests 51 and 52 received from clients 13 until the end point of the current time window is reached. (e.g. Insert requests 51 and 52 into the request queue and wait). And, at the last point of the current time window, the provisioning system 10 may perform (attempt) batch provisioning for the requested spot instances and provide a performance result 53. For example, the provisioning system 10 may perform provisioning based on monitoring results for cloud resources and the bid price of the requested spot instance. In this case, the effect of improving the profitability of cloud service providers can be achieved due to price competition for spot instances.

앞선 예시에서, 특정 요청(e.g. 51)의 허용 대기 시간이 현재 시간 윈도우의 마지막 지점에 도달하기 전에 초과되면, 프로비저닝 시스템(10)은 해당 요청(e.g. 51)을 제외하고 나머지 요청들(e.g. 52)에 대해서만 프로비저닝을 수행할 수 있다. 여기서, 허용 대기 시간은 클라이언트(13)에 의해 설정되는 값으로, 요청한 스팟 인스턴스가 프로비저닝될 때까지 대기할 수 있는 최대 시간을 의미할 수 있다.In the previous example, if the allowable waiting time for a particular request (e.g. 51) is exceeded before reaching the last point of the current time window, provisioning system 10 excludes that request (e.g. 51) and waits for the remaining requests (e.g. 52). Provisioning can only be performed for . Here, the allowable waiting time is a value set by the client 13 and may mean the maximum time that can wait until the requested spot instance is provisioned.

또한, 시간 윈도우의 길이는 미리 설정된 고정값일 수도 있고, 상황에 따라 변동되는 값일 수도 있다. 가령, 시간 윈도우의 길이는 스팟 인스턴스 요청의 발생 빈도, 클라우드 리소스의 전체 사용률, 전체 사용률의 변화, 허용 대기 시간의 평균값 등에 기초하여 변동되는 값일 수도 있다(e.g. 전체 사용률이 지속적으로 높은 경우 시간 윈도우의 길이를 더 길게 설정하고, 반대의 경우 더 짧게 설정함, 허용 대기 시간의 평균값을 고려하여 시간 윈도우의 길이가 조절될 수 있음).Additionally, the length of the time window may be a preset fixed value or a value that may vary depending on the situation. For example, the length of the time window may be a value that changes based on the frequency of occurrence of spot instance requests, the overall utilization rate of cloud resources, changes in the overall utilization rate, the average value of the allowable waiting time, etc. (e.g., if the overall utilization rate is consistently high, the length of the time window may be changed. Set the length to be longer, and vice versa to be shorter; the length of the time window can be adjusted taking into account the average value of the acceptable latency).

프로비저닝 시스템(10)이 레귤러 인스턴스와 스팟 인스턴스를 프로비저닝하는 구체적인 방법에 관하여서는, 도 7 이하의 도면을 참조하여 상세하게 설명하도록 한다.The specific method by which the provisioning system 10 provisions regular instances and spot instances will be described in detail with reference to the drawings of FIG. 7 and below.

프로비저닝 시스템(10)은 적어도 하나의 컴퓨팅 장치로 구현될 수 있다. 예를 들어, 프로비저닝 시스템(10)의 모든 기능이 하나의 컴퓨팅 장치로 구현될 수도 있고, 프로비저닝 시스템(10)의 제1 기능이 제1 컴퓨팅 장치에 구현되고 제2 기능이 제2 컴퓨팅 장치에 구현될 수도 있다. 또는, 프로비저닝 시스템(10)의 특정 기능이 복수의 컴퓨팅 장치들로 구현될 수도 있다.Provisioning system 10 may be implemented with at least one computing device. For example, all functions of provisioning system 10 may be implemented in a single computing device, with a first function of provisioning system 10 implemented in a first computing device and a second function implemented in a second computing device. It could be. Alternatively, specific functions of provisioning system 10 may be implemented with a plurality of computing devices.

컴퓨팅 장치는 컴퓨팅 기능을 구비한 임의의 장치를 모두 포함할 수 있으며, 이러한 장치의 일 예시에 관하여서는 도 13을 참조하도록 한다.The computing device may include any device equipped with a computing function. Refer to FIG. 13 for an example of such a device.

다시 도 1을 참조하여 설명한다.Description will be made again with reference to FIG. 1 .

클라우드 노드(12)는 클라우드 리소스를 제공하는 물리적 장치를 의미할 수 있다. 가령, 클라우드 노드(12)는 프로세서 리소스와 메모리 리소스를 제공할 수 있다. 이때, 프로세서 리소스는 다수의 가상 프로세서들로 구분(즉,논리적으로 구분됨)되어 제공될 수 있고, 메모리 리소스 또한 다수의 가상 메모리들로 구분되어 제공될 수 있다. 그리고, 프로비저닝이 수행됨에 따라 적어도 하나의 클라우드 인스턴스가 클라우드 노드(12) 상에서 실행될 수 있다(도 3 참조). 경우에 따라, 클라우드 노드(12)는 '클라우드 서버', '클라우드 장치', '컴퓨팅 노드', '리소스 노드', '리소스 장치', '물리 머신' 등의 용어로 칭해질 수도 있다.Cloud node 12 may refer to a physical device that provides cloud resources. For example, cloud node 12 may provide processor resources and memory resources. At this time, processor resources may be provided divided into multiple virtual processors (i.e., logically divided), and memory resources may also be provided divided into multiple virtual memories. And, as provisioning is performed, at least one cloud instance may be executed on the cloud node 12 (see FIG. 3). In some cases, the cloud node 12 may be referred to by terms such as 'cloud server', 'cloud device', 'computing node', 'resource node', 'resource device', or 'physical machine'.

클라우드 노드(12)도 컴퓨팅 기능을 구비한 임의의 장치가 될 수 있으며, 이러한 장치의 일 예시에 관하여서도 도 13을 참조하도록 한다.The cloud node 12 may also be any device equipped with a computing function, and reference is made to FIG. 13 for an example of such a device.

한편, 일 실시예에서는, 도 6에 도시된 바와 같이, 클라우드 노드들(12)이 클라우드 리소스를 제공하는 컴퓨팅 노드들(12-1 내지 12-n)과 이들(12-1 내지 12-n)을 제어(e.g. 클라우드 인스턴스 생성, 종료 등의 제어)하는 컨트롤러 노드(61)로 구성될 수도 있다. 이러한 경우, 프로비저닝 시스템(10)은 프로비저닝 알고리즘의 수행 결과를 컨트롤러 노드(61)에게 전달함으로써, 요청된 클라우드 인스턴스를 생성하는 방식으로 프로비저닝을 수행할 수도 있다.Meanwhile, in one embodiment, as shown in FIG. 6, the cloud nodes 12 include computing nodes 12-1 to 12-n that provide cloud resources and these (12-1 to 12-n) It may be composed of a controller node 61 that controls (e.g. controls cloud instance creation, termination, etc.). In this case, the provisioning system 10 may perform provisioning by delivering the performance result of the provisioning algorithm to the controller node 61 to create the requested cloud instance.

지금까지 도 1 내지 도 6을 참조하여 프로비저닝 시스템(10)과 클라우드 서비스 제공 시스템(11)의 구성 및 동작에 대하여 설명하였다. 이하에서는, 도 7 내지 도 13을 참조하여 프로비저닝 시스템(10)에서 수행될 수 있는 다양한 방법들에 대하여 설명하도록 한다.So far, the configuration and operation of the provisioning system 10 and the cloud service providing system 11 have been described with reference to FIGS. 1 to 6. Hereinafter, various methods that can be performed in the provisioning system 10 will be described with reference to FIGS. 7 to 13.

이하에서는, 이해의 편의를 제공하기 위해, 후술될 방법들이 도 1에 예시된 환경의 프로비저닝 시스템(10)에서 수행되는 것을 가정하여 설명을 이어가도록 한다. 또한, 후술될 방법들의 모든 단계/동작이 프로비저닝 시스템(10)에 의해 수행되는 것을 가정하여 설명을 이어가도록 한다. 따라서, 특정 단계/동작의 주체가 생략된 경우, 프로비저닝 시스템(10)에서 수행되는 것으로 이해될 수 있다. 다만, 실제 환경(또는 도 1에 예시된 바와 다른 환경)에서는, 후술될 방법의 일부 단계/동작이 다른 컴퓨팅 장치에서 수행될 수도 있다.Hereinafter, for convenience of understanding, the description will be continued assuming that the methods to be described later are performed in the provisioning system 10 in the environment illustrated in FIG. 1. Additionally, the description will be continued assuming that all steps/operations of the methods to be described later are performed by the provisioning system 10. Accordingly, when the subject of a specific step/action is omitted, it can be understood as being performed by the provisioning system 10. However, in a real environment (or an environment other than that illustrated in FIG. 1), some steps/operations of the method to be described later may be performed on another computing device.

도 7은 본 개시의 몇몇 실시예들에 따른 클라우드 서비스를 위한 프로비저닝 방법을 개략적으로 나타내는 예시적인 흐름도이다. 단, 이는 본 개시의 목적을 달성하기 위한 바람직한 실시예일뿐이며, 필요에 따라 일부 단계가 추가되거나 삭제될 수 있음은 물론이다.7 is an example flowchart schematically illustrating a provisioning method for a cloud service according to some embodiments of the present disclosure. However, this is only a preferred embodiment for achieving the purpose of the present disclosure, and of course, some steps may be added or deleted as needed.

도 7에 도시된 바와 같이, 실시예들에 따른 프로비저닝 방법은 클라우드 리소스를 모니터링하는 단계 S71에서 시작될 수 있다. 가령, 프로비저닝 시스템(10)은 클라우드 리소스의 전체 사용률(e.g. 클라우드 노드들 12가 제공하는 전체 클라우드 리소스의 사용률), 개별 클라우드 노드(e.g. 12) 또는 개별 클라우드 인스턴스(e.g. 31-1)의 리소스 사용률 등을 모니터링할 수 있다. 클라우드 리소스는 예를 들어 프로세서 리소스, 메모리 리소스 등이 될 수 있다. 그러나, 이에 한정되는 것은 아니다.As shown in FIG. 7, the provisioning method according to embodiments may begin at step S71 of monitoring cloud resources. For example, the provisioning system 10 may measure the overall utilization of cloud resources (e.g. the utilization of the entire cloud resources provided by cloud nodes 12), the resource utilization of individual cloud nodes (e.g. 12) or individual cloud instances (e.g. 31-1), etc. can be monitored. Cloud resources may be, for example, processor resources, memory resources, etc. However, it is not limited to this.

상술한 리소스 사용률(e.g. 전체 사용률, 클라우드 인스턴스의 리소스 사용률 등)은 특정 시점에 측정된 값일 수도 있고, 단위 시간(즉, 일정 시간 구간) 동안 측정된 사용률에 대한 평균값일 수도 있다. 이때, 단위 시간은 미리 설정된 고정값일 수도 있고, 상황에 따라 변동되는 값일 수도 있다. 가령, 클라우드 리소스의 사용률이 빠르게 변화하거나, 클라우드 인스턴스 요청의 발생 빈도가 빠르게 증가하는 경우, 프로비저닝 시스템(10)은 보다 정확한 모니터링을 위해 단위 시간은 더 작은 값으로 설정할 수도 있다. 반대의 경우라면, 단위 시간은 더 큰 값으로 설정될 수도 있다.The above-described resource utilization rate (e.g. overall utilization rate, resource utilization rate of cloud instance, etc.) may be a value measured at a specific point in time, or may be an average value of the utilization rate measured during a unit time (i.e., a certain time period). At this time, the unit time may be a preset fixed value or a value that changes depending on the situation. For example, when the utilization rate of cloud resources changes rapidly or the frequency of cloud instance requests increases rapidly, the provisioning system 10 may set the unit time to a smaller value for more accurate monitoring. In the opposite case, the unit time may be set to a larger value.

단계 S72에서, 클라우드 인스턴스(또는 서비스)에 대한 요청이 수신될 수 있다. 가령, 프로비저닝 시스템(10)은 적어도 하나의 클라이언트(13)로부터 적어도 하나의 클라우드 인스턴스에 대한 프로비저닝 요청을 수신할 수 있다.At step S72, a request for a cloud instance (or service) may be received. For example, the provisioning system 10 may receive a provisioning request for at least one cloud instance from at least one client 13.

클라우드 인스턴스에 대한 요청은 클라우드 인스턴스의 유형 정보(즉, 레귤러 인스턴스 또는 스팟 인스턴스를 가리키는 정보)와 함께 요구하는 서비스(또는 인스턴스)의 명세 정보 등을 포함할 수 있다. 그리고, 이러한 정보들은 해당 클라우드 인스턴스의 프로비저닝을 수행하는 데 이용될 수 있다.A request for a cloud instance may include information on the type of cloud instance (i.e., information indicating a regular instance or a spot instance) as well as specification information on the requested service (or instance). And, this information can be used to perform provisioning of the corresponding cloud instance.

예를 들어, 요청한 클라우드 인스턴스가 레귤러 인스턴스인 경우, 서비스 명세 정보는 인스턴스의 사용 기간, 요구 성능, 인스턴스에서 실행될 이미지, 허용 가격, 프로세서 리소스의 양, 메모리 리소스의 양 등을 포함할 수 있다. 그러나, 본 개시의 범위가 이에 한정되는 것은 아니다.For example, if the requested cloud instance is a regular instance, the service specification information may include the usage period of the instance, required performance, images to be run on the instance, allowable price, amount of processor resources, amount of memory resources, etc. However, the scope of the present disclosure is not limited thereto.

또한, 예를 들어, 요청한 클라우드 인스턴스가 스팟 인스턴스인 경우, 서비스 명세 정보는 인스턴스의 사용 기간, 요구 성능, 인스턴스에서 실행될 이미지, 입찰 가격, 프로세서 리소스의 양, 메모리 리소스의 양, 허용 대기 시간(즉, 프로비저닝될 때까지 대기할 수 있는 최대 시간) 등을 포함할 수 있으나, 본 개시의 범위가 이에 한정되는 것은 아니다.Additionally, for example, if the requested cloud instance is a spot instance, the service specification information may include the instance's usage period, required performance, images to run on the instance, bid price, amount of processor resources, amount of memory resources, and allowable waiting time (i.e. , maximum time to wait until provisioning), etc., but the scope of the present disclosure is not limited thereto.

단계 S73에서, 요청된 클라우드 인스턴스의 유형이 판단될 수 있다. 요청된 클라우드 인스턴스가 레귤러 인스턴스인 경우 단계 S74가 수행될 수 있고, 스팟 인스턴스인 경우에는 단계 S75가 수행될 수 있다.At step S73, the type of cloud instance requested may be determined. If the requested cloud instance is a regular instance, step S74 may be performed, and if the requested cloud instance is a spot instance, step S75 may be performed.

단계 S74에서, 제1 프로비저닝 알고리즘에 따라 요청된 레귤러 인스턴스에 대한 프로비저닝이 수행될 수 있다. 본 단계(즉, 제1 프로비저닝 알고리즘)의 세부 과정에 관하여서는 도 8 내지 도 10을 참조하여 잠시 후에 상세하게 설명하도록 한다.In step S74, provisioning for the requested regular instance may be performed according to the first provisioning algorithm. The detailed process of this step (i.e., the first provisioning algorithm) will be described in detail later with reference to FIGS. 8 to 10.

단계 S75에서, 제2 프로비저닝 알고리즘에 따라 요청된 스팟 인스턴스에 대한 프로비저닝이 수행될 수 있다. 본 단계(즉, 제2 프로비저닝 알고리즘)의 세부 과정에 관하여서는 도 11 및 도 12를 참조하여 잠시 후에 상세하게 설명하도록 한다.In step S75, provisioning for the requested spot instance may be performed according to the second provisioning algorithm. The detailed process of this step (i.e., the second provisioning algorithm) will be described in detail later with reference to FIGS. 11 and 12.

단계 S76에서, 프로비저닝 수행 결과가 제공될 수 있다. 가령, 프로비저닝 시스템(10)은 클라우드 인스턴스를 요청한 클라이언트(13)에게 프로비저닝 수행 결과(e.g. 성공, 실패, 프로비저닝된 클라우드 인스턴스의 정보 등)를 제공할 수 있다. 프로비저닝 시스템(10)은 프로비저닝 수행 결과를 데이터베이스에 저장할 수도 있다.In step S76, provisioning performance results may be provided. For example, the provisioning system 10 may provide provisioning performance results (e.g. success, failure, information on provisioned cloud instances, etc.) to the client 13 that requested a cloud instance. The provisioning system 10 may store provisioning results in a database.

지금까지 도 7을 참조하여 본 개시의 몇몇 실시예들에 따른 클라우드 서비스를 위한 프로비저닝 방법에 대하여 개략적으로 설명하였다. 이하에서는, 도 8 내지 도 10을 참조하여 본 개시의 일 실시예에 따른 레귤러 인스턴스 프로비저닝 방법에 대하여 설명하도록 한다.So far, a provisioning method for a cloud service according to some embodiments of the present disclosure has been schematically described with reference to FIG. 7 . Hereinafter, a regular instance provisioning method according to an embodiment of the present disclosure will be described with reference to FIGS. 8 to 10.

도 8은 본 개시의 일 실시예에 따른 레귤러 인스턴스 프로비저닝 방법을 나타내는 예시적인 흐름도이다. 단, 이는 본 개시의 목적을 달성하기 위한 바람직한 실시예일뿐이며, 필요에 따라 일부 단계가 추가되거나 삭제될 수 있음은 물론이다.Figure 8 is an example flowchart showing a regular instance provisioning method according to an embodiment of the present disclosure. However, this is only a preferred embodiment for achieving the purpose of the present disclosure, and of course, some steps may be added or deleted as needed.

도 8에 도시된 바와 같이, 실시예에 따른 프로비저닝 방법은 클라우드 리소스가 충분한지 여부를 판단하는 단계 S81에서 시작될 수 있다. 클라우드 리소스가 충분하다고 판단된 경우 단계 S82가 수행될 수 있고, 반대의 경우라면 단계 S83이 수행될 수 있다.As shown in FIG. 8, the provisioning method according to the embodiment may begin at step S81 to determine whether cloud resources are sufficient. If it is determined that the cloud resources are sufficient, step S82 may be performed, and in the opposite case, step S83 may be performed.

가령, 프로비저닝 시스템(10)은 생성(프로비저닝) 가능한 클라우드 인스턴스의 개수 및/또는 할당 가능한 가상 클라우드 리소스(e.g. 가상 프로세서, 가상 메모리)의 개수에 기초하여 클라우드 리소스가 충분한지 여부를 판단할 수 있다. 보다 구체적인 예로서, 프로비저닝 시스템(10)은 할당 가능한 가상 프로세서의 개수가 소정의 임계치 이상이고, 가상 메모리의 개수도 소정의 임계치 이상인 경우에, 클라우드 리소스가 충분하다고 판단할 수 있다. 여기서, 할당 가능한 가상 프로세서(또는 가상 메모리)의 개수는 전체 클라우드 노드들(12)을 통해 할당 가능한 가상 프로세서(또는 가상 메모리)의 최대 개수에서 기 할당된 가상 프로세서(또는 가상 메모리)의 개수를 제함으로써 산출될 수 있다. 상술한 바와 같이, 할당 가능한 가상 프로세서(또는 가상 메모리)의 최대 개수는 일종의 설정값(즉, 설정 가능한 파라미터의 값)일 수 있다. 다른 예로서, 프로비저닝 시스템(10)은 클라우드 리소스의 전체 사용률과 소정의 임계치를 비교하여 클라우드 리소스가 충분한지 여부를 판단할 수도 있다.For example, the provisioning system 10 may determine whether cloud resources are sufficient based on the number of cloud instances that can be created (provisioned) and/or the number of virtual cloud resources (e.g. virtual processors, virtual memory) that can be allocated. As a more specific example, the provisioning system 10 may determine that the cloud resources are sufficient when the number of virtual processors that can be allocated is greater than or equal to a predetermined threshold and the number of virtual memories is also greater than or equal to a predetermined threshold. Here, the number of virtual processors (or virtual memory) that can be allocated is the number of virtual processors (or virtual memory) already allocated from the maximum number of virtual processors (or virtual memory) that can be allocated through all cloud nodes 12. It can be calculated by doing. As described above, the maximum number of virtual processors (or virtual memories) that can be allocated may be a kind of set value (i.e., the value of a settable parameter). As another example, the provisioning system 10 may determine whether the cloud resources are sufficient by comparing the total usage rate of the cloud resources with a predetermined threshold.

단계 S82에서, 클라우드 리소스의 전체 사용률이 제1 임계치(TH1) 이상인지 여부가 판단될 수 있다. 제1 임계치 이상이라는 판단에 응답하여, 단계 S84가 수행될 수 있고, 반대의 경우 단계 S85가 수행될 수 있다. 여기서, 제1 임계치는 기 프로비저닝된 스팟 인스턴스의 종료 여부를 결정하는 값으로서, 클라우드 리소스의 유형별로 설정될 수도 있다. 그리고, 제1 임계치는 서로 다른 리소스 유형에 대해 동일한 값으로 설정될 수도 있고, 서로 다른 값으로 설정될 수도 있다.In step S82, it may be determined whether the overall usage rate of cloud resources is greater than or equal to the first threshold TH1. In response to determining that the first threshold is above, step S84 may be performed, and vice versa, step S85 may be performed. Here, the first threshold is a value that determines whether to terminate a previously provisioned spot instance, and may be set for each type of cloud resource. And, the first threshold may be set to the same value or may be set to different values for different resource types.

제1 임계치가 클라우드 리소스의 유형별로 설정된 경우에는, 각 클라우드 리소스의 전체 사용률 중 어느 하나라도 제1 임계치 이상이라면 단계 S84가 수행될 수 있다. 가령, 제1 임계치가 프로세서 리소스에 대한 제1 리소스 임계치와 메모리 리소스에 대한 제2 리소스 임계치로 구성된다고 가정하자. 이러한 경우, 프로세서 리소스의 전체 사용률이 제1 리소스 임계치 이상이거나 메모리 리소스의 전체 사용률이 제2 리소스 임계치 이상인 경우, 프로비저닝 시스템(10)은 단계 S84를 수행할 수 있다. 이하에서는, 이해의 편의를 제공하기 위해, '제1 임계치', '제1 리소스 임계치' 및 '제2 리소스 임계치'를 계속해서 상술한 바와 동일한 의미로 사용하도록 한다.When the first threshold is set for each type of cloud resource, step S84 may be performed if any one of the total usage rates of each cloud resource is greater than or equal to the first threshold. For example, assume that the first threshold consists of a first resource threshold for processor resources and a second resource threshold for memory resources. In this case, when the total utilization of processor resources is greater than or equal to the first resource threshold or the total usage of memory resources is greater than or equal to the second resource threshold, the provisioning system 10 may perform step S84. Hereinafter, for convenience of understanding, 'first threshold', 'first resource threshold', and 'second resource threshold' will continue to be used with the same meaning as described above.

다시 도 8을 참조하여 설명한다.This will be described again with reference to FIG. 8 .

단계 S83에서, 요청된 레귤러 인스턴스에 대한 프로비저닝이 실패로 결정될 수 있다.At step S83, provisioning for the requested regular instance may be determined to have failed.

단계 S84에서, 스팟 인스턴스가 종료될 수 있다. 구체적으로, 기 프로비저닝된 스팟 인스턴스들 중에서 종료 대상으로 지정된 적어도 하나의 인스턴스가 종료될 수 있으며, 종료 대상을 지정하는 방식은 다양하게 설계될 수 있다. 본 단계의 세부 과정에 관하여서는 잠시 후에 도 9 및 도 10을 참조하여 상세하게 설명하도록 한다.At step S84, the spot instance may be terminated. Specifically, at least one instance designated as a termination target among pre-provisioned spot instances may be terminated, and methods for specifying the termination target may be designed in various ways. The detailed process of this step will be described in detail with reference to FIGS. 9 and 10 later.

참고로, 스팟 인스턴스의 종료가 불가한 경우(e.g. 종료할 스팟 인스턴스가 존재하지 않는 경우, 모든 스팟 인스턴스들을 종료시키더라도 클라우드 리소스의 전체 사용률이 제1 임계치 이상인 경우 등)에는, 프로비저닝이 실패로 결정될 수 있다(S83 참조)For reference, if it is impossible to terminate a Spot Instance (e.g., if there are no Spot Instances to terminate, if the overall utilization of cloud resources is greater than the first threshold even if all Spot Instances are terminated, etc.), provisioning will be determined to have failed. Can (see S83)

단계 S85에서, 요청된 레귤러 인스턴스가 프로비저닝될 수 있다. 가령, 프로비저닝 시스템(10)은 특정 클라우드 노드(12)에 의해 제공된 가상 프로세서와 가상 메모리를 이용하여 요청된 레귤러 인스턴스를 생성할 수 있다.At step S85, the requested regular instance may be provisioned. For example, the provisioning system 10 may create a requested regular instance using a virtual processor and virtual memory provided by a specific cloud node 12.

단계 S86에서, 요청된 레귤러 인스턴스에 대한 프로비저닝이 성공으로 결정될 수 있다.At step S86, provisioning for the requested regular instance may be determined to be successful.

지금까지 도 8 및 도 9를 참조하여 본 개시의 일 실시예에 따른 레귤러 인스턴스 프로비저닝 방법에 대하여 설명하였다. 상술한 바에 따르면, 클라우드 리소스의 전체 사용률에 기초하여 레귤러 인스턴스에 대한 프로비저닝을 수행함으로써 유휴 리소스의 발생이 최소화되고, 클라우드 리소스의 사용 효율성은 크게 향상될 수 있다. 뿐만 아니라, 클라우드 리소스의 전체 사용률이 제1 임계치 이상이 되는 경우에는 스팟 인스턴스를 종료시키고 레귤러 인스턴스를 프로비저닝함으로써, 레귤러 인스턴스의 품질도 보장될 수 있다.So far, the regular instance provisioning method according to an embodiment of the present disclosure has been described with reference to FIGS. 8 and 9. According to the above, by performing provisioning for regular instances based on the overall utilization of cloud resources, the occurrence of idle resources can be minimized and the use efficiency of cloud resources can be greatly improved. In addition, when the overall utilization of cloud resources exceeds the first threshold, the quality of regular instances can be guaranteed by terminating spot instances and provisioning regular instances.

이하에서는, 도 9 및 도 10을 참조하여 본 개시의 일 실시예에 따른 스팟 인스턴스 종료 방법에 대하여 설명하도록 한다.Hereinafter, a spot instance termination method according to an embodiment of the present disclosure will be described with reference to FIGS. 9 and 10.

도 9는 본 개시의 일 실시예에 따른 스팟 인스턴스 종료 방법을 나타내는 예시적인 흐름도이다. 단, 이는 본 개시의 목적을 달성하기 위한 바람직한 실시예일뿐이며, 필요에 따라 일부 단계가 추가되거나 삭제될 수 있음은 물론이다.Figure 9 is an example flowchart showing a spot instance termination method according to an embodiment of the present disclosure. However, this is only a preferred embodiment for achieving the purpose of the present disclosure, and of course, some steps may be added or deleted as needed.

도 9에 도시된 바와 같이, 실시예에 따른 스팟 인스턴스 종료 방법은 기 프로비저닝된 스팟 인스턴스 리스트에서 종료 대상을 지정하는 단계 S91에서 시작될 수 있다. 가령, 프로비저닝 시스템(10)은 개별 스팟 인스턴스의 리소스 사용률, 입찰 가격, 사용 기간 등에 기초하여 종료 대상을 지정할 수 있다.As shown in FIG. 9, the method for terminating a spot instance according to an embodiment may begin at step S91 of specifying a termination target from a list of pre-provisioned spot instances. For example, the provisioning system 10 may specify a termination target based on the resource utilization rate, bid price, usage period, etc. of individual spot instances.

보다 구체적인 예로서, 프로비저닝 시스템(10)은 리소스 사용률(e.g. 프로세서 리소스 또는 메모리 리소스의 사용률)이 가장 높은 스팟 인스턴스를 종료 대상으로 지정할 수 있다. 또는, 프로비저닝 시스템(10)은 종료에 따른 전체 예측 사용률(아래의 설명 참조)과 제1 임계치와의 차이가 가장 적은 스팟 인스턴스를 종료 대상으로 지정할 수도 있다.As a more specific example, the provisioning system 10 may specify the spot instance with the highest resource utilization (e.g. utilization of processor resources or memory resources) as the termination target. Alternatively, the provisioning system 10 may designate the spot instance with the smallest difference between the total predicted usage rate according to termination (see description below) and the first threshold as the termination target.

다른 예로서, 프로비저닝 시스템(10)은 입찰 가격을 기초로 종료 대상을 지정할 수 있다. 이를테면, 입찰 가격이 가장 낮은 스팟 인스턴스가 종료 대상으로 지정될 수 있다. 이러한 경우, 스팟 인스턴스에 대한 가격 경쟁이 유도될 수 있고, 궁극적으로 클라우드 서비스 제공자의 수익성이 향상될 수 있다.As another example, provisioning system 10 may specify a termination target based on the bid price. For example, the spot instance with the lowest bid price may be designated for termination. In this case, price competition for spot instances can be induced, ultimately improving the profitability of cloud service providers.

또 다른 예로서, 프로비저닝 시스템(10)은 사용 기간에 기초하여 종료 대상을 지정할 수 있다. 이를테면, 사용 기간이 가장 오래된 스팟 인스턴스가 종래 대상으로 지정될 수 있다.As another example, the provisioning system 10 may specify a termination target based on the period of use. For example, Spot Instances with the oldest usage period may be designated as conventional targets.

또 다른 예로서, 프로비저닝 시스템(10)은 종료 대상을 랜덤하게 지정할 수도 있다.As another example, the provisioning system 10 may randomly designate a termination target.

또 다른 예로서, 상술한 예시들의 다양한 조합에 기초하여 종료 대상이 지정될 수 있다. 가령, 프로비저닝 시스템(10)은 입찰 가격이 기준이 이하인 스팟 인스턴스들 중에서 리소스 사용률이 가장 높은 인스턴스를 종료 대상으로 지정할 수도 있다.As another example, a termination target may be designated based on various combinations of the above-described examples. For example, the provisioning system 10 may designate the instance with the highest resource utilization among spot instances whose bid price is below the standard as the termination target.

단계 S92에서, 지정된 인스턴스의 종료에 따른 클라우드 리소스의 전체 사용률이 예측될 수 있다. 가령, 프로비저닝 시스템(10)은 인스턴스 종료에 따른 프로세서 리소스과 메모리 리소스의 전체 사용률을 각각 예측할 수 있다. 구체적으로, 프로비저닝 시스템(10)은 지정된 인스턴스 종료에 따른 전체 리소스 사용률의 감소치를 예측하고, 예측된 감소치를 현재 클라우드 리소스의 전체 사용률에 반영함으로써, 지정된 인스턴스의 종료에 따른 전체 사용률의 예측치를 산출할 수 있다. 이를테면, 프로비저닝 시스템(10)은 하기의 수학식 3에 따라 지정된 인스턴스의 종료에 따른 프로세서 리소스의 전체 사용률을 예측할 수 있고, 유사한 방식으로 지정된 인스턴스의 종료에 따른 메모리 리소스의 전체 사용률도 예측할 수 있다.In step S92, the overall utilization of cloud resources upon termination of the specified instance may be predicted. For example, the provisioning system 10 can predict the overall utilization of processor resources and memory resources according to instance termination. Specifically, the provisioning system 10 predicts a decrease in overall resource utilization due to termination of a specified instance, and reflects the predicted decrease in the overall utilization of current cloud resources, thereby calculating a predicted value of overall utilization due to termination of a specified instance. You can. For example, the provisioning system 10 can predict the overall utilization of processor resources according to termination of a specified instance according to Equation 3 below, and can also predict the overall utilization of memory resources due to termination of a designated instance in a similar manner.

상기 수학식 3에서, 'E_AVG_10m_pCPU'과 'AVG_10m_pCPU'는 각각 인스턴스 종료에 따라 예측되는 프로세서 리소스의 전체 사용률과 현재 프로세서 리소스의 전체 사용률(e.g. 단위 시간 10분에 대한 평균값으로 가정함)을 의미한다. 그리고, 'AVG_10m_vCPU'는 지정된 스팟 인스턴스의 프로세서 리소스 사용율을 의미하고, 'CPU allocation ratio'는 전체 클라우드 노드들(12, 즉 전체 프로세서 리소스)에 대해 할당 가능한 가상 프로세서의 최대 개수(e.g. 도 3의 경우, CPU allocation ratio는 K*노드 개수임)를 의미한다.In Equation 3 above, 'E_AVG_10m_pCPU' and 'AVG_10m_pCPU' mean the total utilization of processor resources predicted according to instance termination and the total utilization of current processor resources (e.g. assumed to be an average value for a unit time of 10 minutes), respectively. In addition, 'AVG_10m_vCPU' refers to the processor resource utilization rate of the specified spot instance, and 'CPU allocation ratio' is the maximum number of virtual processors that can be allocated to all cloud nodes (12, i.e., total processor resources) (e.g. in the case of Figure 3). , CPU allocation ratio means K*number of nodes).

단계 S93에서, 예측된 전체 사용률이 제1 임계치 미만인지 여부가 판단될 수 있다. 가령, 프로비저닝 시스템(10)은 프로세서 리소스와 메모리 리소스 각각에 대해 예측된 전체 사용률이 모두 제1 임계치(즉, 제1 리소스 임계치와 제2 리소스 임계치) 미만인지 여부를 판단할 수 있다. 제1 임계치 미만인 경우, 단계 S95가 수행될 수 있고, 반대의 경우 단계 S94가 수행될 수 있다(즉, 종료 대상이 추가로 지정됨).At step S93, it may be determined whether the predicted overall utilization is less than the first threshold. For example, the provisioning system 10 may determine whether the overall utilization predicted for each of the processor resource and the memory resource is less than a first threshold (i.e., a first resource threshold and a second resource threshold). If it is less than the first threshold, step S95 may be performed, and vice versa, step S94 may be performed (i.e., an end target is additionally specified).

단계 S94에서, 기 프로비저닝된 스팟 인스턴스 리스트에서 다른 스팟 인스턴스가 존재하는지 여부가 판단될 수 있다. 다른 스팟 인스턴스가 존재한다면, 상술한 단계 S91 내지 단계 S93이 다른 스팟 인스턴스에 대해 반복적으로 수행될 수 있다. 반대의 경우라면, 요청된 레귤러 인스턴스에 대한 프로비저닝은 실패로 결정될 수 있다.In step S94, it may be determined whether other spot instances exist in the pre-provisioned spot instance list. If other spot instances exist, steps S91 to S93 described above may be repeatedly performed for other spot instances. In the opposite case, provisioning for the requested regular instance may be determined to have failed.

단계 S95에서, 종료 대상으로 지정된 하나 이상의 스팟 인스턴스가 종료될 수 있다.In step S95, one or more spot instances designated as termination targets may be terminated.

이하에서는, 보다 이해의 편의를 제공하기 위해, 도 10을 참조하여 스팟 인스턴스 종료 방법의 구체적인 예시에 대하여 부연 설명하도록 한다.Hereinafter, to provide easier understanding, a specific example of the spot instance termination method will be explained in detail with reference to FIG. 10.

도 10은 리소스 사용률이 가장 높은 스팟 인스턴스를 종료 대상으로 지정하는 것을 가정하고 있고, 제1 임계치가 프로세서 리소스에 대한 제1 리소스 임계치와 메모리 리소스에 대한 제2 리소스 임계치로 구성되는 것을 가정하고 있다.Figure 10 assumes that the spot instance with the highest resource utilization rate is designated as the termination target, and that the first threshold consists of a first resource threshold for processor resources and a second resource threshold for memory resources.

도 10에 도시된 바와 같이, 단계 S101에서, 인스턴스의 리소스 사용률 기준으로 기 프로비저닝된 스팟 인스턴스 리스트를 정렬함으로써 정렬 리스트가 생성될 수 있다. 구체적으로, 프로세서 리소스의 사용률 기준으로 정렬된 제1 정렬 리스트와 메모리 리소스의 사용률 기준으로 정렬된 제2 정렬 리스트가 생성될 수 있다.As shown in FIG. 10, in step S101, a sorted list can be created by sorting the list of pre-provisioned spot instances based on the resource utilization rate of the instance. Specifically, a first sorted list sorted based on the usage rate of processor resources and a second sorted list sorted based on the usage rate of memory resources may be generated.

단계 S102에서, 정렬 리스트에서 리소스 사용률이 가장 높은 인스턴스(e.g. 내림 차순 정렬 시 첫번째 인스턴스)가 종료 대상으로 지정될 수 있고, 지정된 인스턴스는 정렬 리스트에서 제거될 수 있다. 본 단계가 반복적으로 수행되는 경우에는, 리소스 사용률이 가장 높은 인스턴스가 두 정렬 리스트에서 번갈아가며 지정될 수 있다. 가령, 이전에 제1 정렬 리스트에서 종료 대상 인스턴스가 지정되었다면, 이번에는 제2 정렬 리스트에서 종료 대상이 지정될 수 있고, 다음 번에는 다시 제1 정렬 리스트에서 종료 대상이 지정될 수 있다.In step S102, the instance with the highest resource utilization in the sort list (e.g. the first instance when sorted in descending order) may be designated as a target for termination, and the designated instance may be removed from the sort list. If this step is performed repeatedly, the instance with the highest resource utilization can be alternately designated from the two sorted lists. For example, if the termination target instance was previously designated in the first sort list, the termination target may be specified in the second sort list this time, and the termination target may be specified in the first sort list again next time.

단계 S103에서, 지정된 인스턴스의 종료에 따른 프로세서 리소스의 전체 사용률(사용률C, 이하 '제1 전체 사용률')과 메모리 리소스의 전체 사용률(사용률R, 이하 '제2 전체 사용률')이 각각 예측될 수 있다.In step S103, the overall utilization rate of processor resources (usage rate C , hereinafter referred to as 'first overall utilization rate') and the overall utilization rate of memory resources (utilization rate R , hereinafter referred to as 'second overall utilization rate') of processor resources according to termination of the specified instance can be predicted, respectively. there is.

단계 S104에서, 제1 전체 사용률이 제1 리소스 임계치(TH1C) 미만이거나 제2 전체 사용률이 제2 리소스 임계치 미만(TH1R)인지 여부가 판단될 수 있다. 판단 결과에 따라 단계 S105 또는 단계 S106이 수행될 수 있다.In step S104, it may be determined whether the first overall usage rate is less than the first resource threshold (TH1 C ) or the second overall usage rate is less than the second resource threshold (TH1 R ). Depending on the determination result, step S105 or step S106 may be performed.

단계 S105에서, 두 정렬 리스트(또는 다음 번에 종료 대상이 지정될 정렬 리스트)에 다른 스팟 인스턴스가 존재하는지 여부가 판단될 수 있다. 존재하는 경우, 다른 스팟 인스턴스에 대해 단계 S102 및 단계 S103이 반복적으로 수행될 수 있다(즉, 종료 대상이 추가로 지정됨).In step S105, it may be determined whether other spot instances exist in the two sorted lists (or the sorted list for which a termination target will be specified next time). If present, steps S102 and S103 may be performed repeatedly for other spot instances (i.e., a termination target is additionally specified).

단계 S106에서, 조건 미충족 리소스와 연관된 정렬 리스트에서 리소스 사용률이 가장 높은 인스턴스가 추가 지정될 수 있다. 그리고, 추가 지정된 인스턴스의 종료에 따른 리소스의 전체 사용률이 다시 예측될 수 있다. 가령, 제1 전체 사용률이 제1 리소스 임계치 이상이라서 위 조건을 충족시키지 못한 경우, 제1 정렬 리스트에서 종료 대상이 추가 지정될 수 있고, 지정된 인스턴스의 종료에 따른 프로세서 리소스의 전체 사용률(사용률C)이 다시 예측될 수 있다.In step S106, an instance with the highest resource utilization may be additionally specified in the sorted list associated with the resource that does not meet the condition. And, the overall utilization of resources according to termination of additionally designated instances can be predicted again. For example, if the above condition is not met because the first overall utilization is more than the first resource threshold, a termination target may be additionally specified in the first sort list, and the total utilization of processor resources (utilization rate C ) due to termination of the specified instance This can again be predicted.

단계 S107에서, 다시 예측된 전체 사용률이 리소스 임계치(e.g. TH1C) 미만인지 여부가 판단될 수 있다. 판단 결과에 따라 단계 S107 또는 단계 S108이 수행될 수 있다. 도 10은 프로세서 리소스에 대한 전체 사용률이 다시 예측되는 경우를 가정하고 있다.In step S107, it may be determined again whether the predicted overall utilization is less than the resource threshold (eg TH1 C ). Depending on the determination result, step S107 or step S108 may be performed. Figure 10 assumes a case where the overall utilization of processor resources is predicted again.

단계 S108에서, 두 정렬 리스트(또는 다음 번에 종료 대상이 지정될 정렬 리스트)에 다른 스팟 인스턴스가 존재하는지 여부가 판단될 수 있다. 존재하는 경우, 다른 스팟 인스턴스에 대해 단계 S106 및 단계 S107이 반복적으로 수행될 수 있다(즉, 종료 대상이 추가로 지정됨).In step S108, it may be determined whether other spot instances exist in the two sorted lists (or the sorted list for which a termination target will be specified next time). If present, steps S106 and S107 may be performed repeatedly for other spot instances (i.e., a termination target is additionally specified).

단계 S109에서, 지정된 인스턴스가 종료될 수 있다.In step S109, the specified instance may be terminated.

지금까지 도 9 및 도 10을 참조하여 본 개시의 일 실시예에 따른 스팟 인스턴스 종료 방법에 대하여 설명하였다. 상술한 바에 따르면, 사용률, 입찰 가격 및/또는 사용 기간 등의 기준에 따라 먼저 종료될 스팟 인스턴스를 결정함으로써, 단순하지만 공평한 방식으로 스팟 인스턴스에 대한 종료 처리가 수행될 수 있다. 뿐만 아니라, 지정된 스팟 인스턴스 종료에 따른 클라우드 리소스의 전체 사용률을 예측하고, 예측된 전체 사용률이 제1 임계치 미만이 될 때까지만 스팟 인스턴스를 종료시킴으로써, 기 프로비저닝된 스팟 인스턴스들이 과도하게 종료되는 것이 방지될 수 있다.So far, a spot instance termination method according to an embodiment of the present disclosure has been described with reference to FIGS. 9 and 10 . According to the above, termination processing for Spot Instances can be performed in a simple but fair manner by determining which Spot Instances will be terminated first based on criteria such as utilization, bid price, and/or usage period. In addition, by predicting the overall utilization of cloud resources following termination of specified spot instances and terminating spot instances only until the predicted overall utilization falls below the first threshold, excessive termination of already provisioned spot instances can be prevented. You can.

이하에서는, 도 11 및 도 12를 참조하여 본 개시의 일 실시예예 따른 스팟 인스턴스 프로비저닝 방법에 대하여 설명하도록 한다. 다만, 본 개시의 명료함을 위해 앞선 실시예들과 중복되는 내용에 대한 설명은 생략하도록 한다.Hereinafter, a spot instance provisioning method according to an embodiment of the present disclosure will be described with reference to FIGS. 11 and 12. However, for clarity of the present disclosure, description of content that overlaps with the previous embodiments will be omitted.

실시예에 따른 프로비저닝 방법은 클라이언트(13)로부터 스팟 인스턴스 요청이 수신됨에 응답하여 수행될 수도 있고, 현재 시간 윈도우의 마지막 지점에서 수행될 수도 있다(도 5 참조). 이하에서는, 현재 시간 윈도우의 마지막 지점에서 본 방법이 수행되는 것을 가정하여 설명을 이어가도록 한다.The provisioning method according to the embodiment may be performed in response to receiving a spot instance request from the client 13, or may be performed at the last point of the current time window (see FIG. 5). Hereinafter, the description will be continued assuming that the method is performed at the last point of the current time window.

또한, 스팟 인스턴스에 대한 요청은, 상술한 바와 같이, 인스턴스의 사용 기간, 요구 성능, 인스턴스에서 실행할 이미지, 입찰 가격, 프로세서 리소스의 양, 메모리 리소스의 양, 허용 대기 시간(즉, 프로비저닝될 때까지 대기할 수 있는 최대 시간) 등의 정보를 포함할 수 있다.Additionally, requests for Spot Instances include, as described above, the usage period of the instance, the required performance, the images to run on the instance, the bid price, the amount of processor resources, the amount of memory resources, and the acceptable latency (i.e., until provisioned). It may include information such as maximum waiting time).

이하에서는, 도 11에 도시된 예시적인 흐름도를 참조하여 실시예에 따른 프로비저닝 방법에 대하여 보다 상세하게 설명하도록 한다.Hereinafter, the provisioning method according to the embodiment will be described in more detail with reference to the exemplary flowchart shown in FIG. 11.

도 11에 도시된 바와 같이, 실시예에 따른 프로비저닝 방법도 클라우드 리소스가 충분한지 여부가 판단하는 단계 S111에서 시작될 수 있다. 클라우드 리소스가 충분하다고 판단된 경우 단계 S112가 수행될 수 있고, 반대의 경우라면 단계 S113이 수행될 수 있다. 본 단계에 대한 설명은 상술한 단계 S81을 더 참조하도록 한다.As shown in FIG. 11, the provisioning method according to the embodiment may also begin at step S111 where it is determined whether cloud resources are sufficient. If it is determined that the cloud resources are sufficient, step S112 may be performed, and in the opposite case, step S113 may be performed. For a description of this step, further refer to step S81 described above.

단계 S112에서, 클라우드 리소스의 전체 사용률이 제2 임계치(TH2) 미만인지 여부가 판단될 수 있다. 제2 임계치 미만이라는 판단에 응답하여, 단계 S114가 수행될 수 있고, 반대의 경우 단계 S113이 수행될 수 있다. 여기서, 제2 임계치는 스팟 인스턴스의 프로비저닝 여부를 결정하는 값으로서, 제1 임계치보다 같거나 큰 값으로 설정될 수 있다. 제1 임계치와 유사하게, 제2 임계치 또한 클라우드 리소스의 유형별로 설정될 수도 있다. 그리고, 제2 임계치도 서로 다른 리소스 유형에 대해 동일한 값으로 설정될 수도 있고, 서로 다른 값으로 설정될 수도 있다.In step S112, it may be determined whether the overall utilization of cloud resources is less than the second threshold TH2. In response to determining that the second threshold is below, step S114 may be performed, and vice versa, step S113 may be performed. Here, the second threshold is a value that determines whether to provision a spot instance, and may be set to a value equal to or greater than the first threshold. Similar to the first threshold, the second threshold may also be set for each type of cloud resource. Also, the second threshold may be set to the same value or to different values for different resource types.

제2 임계치가 클라우드 리소스의 유형별로 설정된 경우에는, 각 클라우드 리소스의 전체 사용률이 모두 제2 임계치 미만인지 여부가 판단될 수 있다. 가령, 제2 임계치가 프로세서 리소스에 대한 제3 리소스 임계치와 메모리 리소스에 대한 제4 리소스 임계치로 구성된다고 가정하자. 이러한 경우, 프로비저닝 시스템(10)은 프로세서 리소스의 전체 사용률이 제3 리소스 임계치 미만이고, 메모리 리소스의 전체 사용률도 제4 리소스 임계치 미만인지 여부를 판단할 수 있다. 그리고, 프로비저닝 시스템(10)은 두 리소스가 모두 리소스 임계치 미만이라는 판단에 응답하여 단계 S114를 수행할 수 있다When the second threshold is set for each type of cloud resource, it may be determined whether the total usage rate of each cloud resource is less than the second threshold. For example, assume that the second threshold consists of a third resource threshold for processor resources and a fourth resource threshold for memory resources. In this case, the provisioning system 10 may determine whether the total utilization of processor resources is less than the third resource threshold and the total utilization of memory resources is also less than the fourth resource threshold. Then, the provisioning system 10 may perform step S114 in response to determining that both resources are below the resource threshold.

제2 임계치는 미리 설정된 고정값일 수도 있고 상황에 따라 변동되는 값일 수도 있다. 가령, 제2 임계치는 스팟 인스턴스 요청의 발생 빈도, 레귤러 인스턴스 요청의 발생 빈도, 클라우드 리소스의 사용률 변화 등에 기초하여 변동되는 값일 수도 있다. 보다 구체적인 예로서, 클라우드 리소스의 사용률이 빠르게 변화하거나 레귤러 인스턴스 요청의 발생 빈도가 빠르게 증가하는 경우, 프로비저닝 시스템(10)은 레귤러 인스턴스를 위한 리소스를 안정적으로 확보하고 기 프로비저닝된 스팟 인스턴스가 과도하게 종료되는 것을 방지하기 위해 제2 임계치를 더 작은 값으로 설정할 수도 있다. 반대의 경우라면, 프로비저닝 시스템(10)은 제2 임계치를 더 큰 값으로 설정할 수도 있다. 가령, 레귤러 인스턴스 요청의 발생 빈도는 감소하고 스팟 인스턴스 요청의 발생 빈도는 증가하는 경우라면, 프로비저닝 시스템(10)은 스팟 인스턴스에 대한 보다 활발한 프로비저닝을 위해 제2 임계치를 더 큰 값으로 설정할 수도 있다. 이하에서는, 이해의 편의를 제공하기 위해, '제2 임계치', '제3 리소스 임계치' 및 '제4 리소스 임계치'를 계속해서 상술한 바와 동일한 의미로 사용하도록 한다.The second threshold may be a preset fixed value or a value that changes depending on the situation. For example, the second threshold may be a value that changes based on the frequency of occurrence of spot instance requests, the frequency of occurrence of regular instance requests, changes in cloud resource utilization, etc. As a more specific example, when the utilization rate of cloud resources changes rapidly or the frequency of regular instance requests increases rapidly, the provisioning system 10 reliably secures resources for regular instances and terminates already-provisioned spot instances excessively. To prevent this, the second threshold may be set to a smaller value. In the opposite case, provisioning system 10 may set the second threshold to a larger value. For example, if the frequency of regular instance requests decreases and the frequency of spot instance requests increases, the provisioning system 10 may set the second threshold to a larger value for more active provisioning of spot instances. Hereinafter, for convenience of understanding, 'second threshold', 'third resource threshold', and 'fourth resource threshold' will continue to be used with the same meaning as described above.

보다 이해의 편의를 제공하기 위해, 도 12를 참조하여 제1 임계치와 제2 임계치에 대하여 간략하게 부연 설명하도록 한다.In order to provide easier understanding, the first and second thresholds will be briefly explained with reference to FIG. 12.

도 12에 도시된 바와 같이, 제1 임계치(TH1)는 기 프로비저닝된 스팟 인스턴스의 종료 여부를 결정하는 값일 수 있고, 제2 임계치(TH2)는 스팟 인스턴스의 프로비저닝 여부를 결정하는 값일 수 있다. 도시된 바와 같이, 제2 임계치(TH2)는 제1 임계치(TH1)보다 큰 값으로 설정될 수 있는데, 이는 스팟 인스턴스의 특성(e.g. 사용 기간이 보장되지 않고 중간에 종료될 수 있음)을 활용하여 클라우드 리소스의 사용 효율성을 향상시키기 위한 것으로 이해될 수 있다.As shown in FIG. 12, the first threshold (TH1) may be a value that determines whether to terminate a previously provisioned spot instance, and the second threshold (TH2) may be a value that determines whether to provision a spot instance. As shown, the second threshold (TH2) can be set to a value greater than the first threshold (TH1), which utilizes the characteristics of spot instances (e.g., the usage period is not guaranteed and may be terminated prematurely). It can be understood as an attempt to improve the efficiency of using cloud resources.

한편, 제1 임계치(TH1)와 제2 임계치(TH2)의 차이는 상황에 따라 변동될 수도 있다. 가령, 두 임계치의 차이는 스팟 인스턴스 요청의 발생 빈도, 레귤러 인스턴스 요청의 발생 빈도, 클라우드 리소스의 사용률 변화 등에 기초하여 변동되는 값일 수도 있다. 보다 구체적인 예로서, 클라우드 리소스의 사용률이 빠르게 변화하거나 레귤러 인스턴스 요청의 발생 빈도가 빠르게 증가하는 경우, 프로비저닝 시스템(10)은 레귤러 인스턴스를 위한 리소스를 안정적으로 확보하고 기 프로비저닝된 스팟 인스턴스가 과도하게 종료되는 것을 방지하기 위해 두 임계치의 차이가 작아지도록 설정할 수도 있다. 반대의 경우라면, 프로비저닝 시스템(10)은 두 임계치의 차이가 더 커지도록 설정할 수도 있다. 가령, 레귤러 인스턴스 요청의 발생 빈도는 감소하고 스팟 인스턴스 요청의 발생 빈도는 증가하는 경우라면, 프로비저닝 시스템(10)은 스팟 인스턴스에 대한 보다 활발한 프로비저닝을 위해 두 임계치의 차이가 더 커지도록 설정할 수도 있다.Meanwhile, the difference between the first threshold TH1 and the second threshold TH2 may vary depending on the situation. For example, the difference between the two thresholds may be a value that changes based on the frequency of occurrence of spot instance requests, frequency of occurrence of regular instance requests, changes in cloud resource utilization, etc. As a more specific example, when the utilization rate of cloud resources changes rapidly or the frequency of regular instance requests increases rapidly, the provisioning system 10 reliably secures resources for regular instances and terminates already-provisioned spot instances excessively. To prevent this, the difference between the two thresholds can be set to be small. In the opposite case, the provisioning system 10 may set the difference between the two thresholds to become larger. For example, if the frequency of regular instance requests decreases and the frequency of spot instance requests increases, the provisioning system 10 may set the difference between the two thresholds to be larger for more active provisioning of spot instances.

다시 도 11을 참조하여 설명한다.Description will be made again with reference to FIG. 11 .

단계 S113에서, 요청된 스팟 인스턴스에 대한 프로비저닝이 실패로 결정될 수 있다.In step S113, provisioning for the requested spot instance may be determined to have failed.

단계 S114에서, 프로비저닝 가능한 스팟 인스턴스의 개수가 산출될 수 있다. 구체적으로는, 할당 가능한 가상 클라우드 리소스(e.g. 가상 프로세서, 가상 메모리)의 개수, 클라우드 리소스의 전체 사용률 및/또는 제1 임계치 등에 기초하여 프로비저닝 가능한 스팟 인스턴스의 개수가 산출될 수 있다. 다만, 구체적인 산출 방식은 다양하게 설계될 수 있다.In step S114, the number of spot instances that can be provisioned can be calculated. Specifically, the number of spot instances that can be provisioned may be calculated based on the number of virtual cloud resources (e.g. virtual processors, virtual memory) that can be allocated, the overall utilization rate of cloud resources, and/or a first threshold. However, specific calculation methods can be designed in various ways.

예를 들어, 할당 가능한 가상 프로세서의 개수가 NC-avail이고, 할당 가능한 가상 메모리의 개수가 NR-avail이며, 프로세서 리소스 및 메모리 리소스 각각에 대한 리소스 임계치가 '90%'로 설정되었다고 가정하자. 이때, Nc-avail는 전체 클라우드 노드들(12)에 대해 할당 가능한 가상 프로세서의 최대 개수에서 기 할당된 가상 프로세서의 개수를 제함으로써 산출된 것일 수 있다. 이러한 경우, 프로비저닝 시스템(10)은 하기의 수학식 1 및 2에 따라 클라우드 리소스의 전체 사용률에 기초하여 할당 가능 개수(NC, NR)를 더 산출할 수 있다. 그리고, 프로비저닝 시스템(10)은 산출된 NC-avail, NR-avail, NC, NR 중에 최소값을 프로비저닝 가능한 스팟 인스턴스의 개수로 결정할 수 있다.For example, assume that the number of allocable virtual processors is N C-avail , the number of allocable virtual memories is N R-avail , and the resource threshold for each processor resource and memory resource is set to '90%'. . At this time, N c-avail may be calculated by subtracting the number of already allocated virtual processors from the maximum number of virtual processors that can be allocated to all cloud nodes 12. In this case, the provisioning system 10 may further calculate the assignable number (N C , N R ) based on the overall utilization of cloud resources according to Equations 1 and 2 below. Additionally, the provisioning system 10 may determine the minimum value among the calculated N C-avail , N R-avail , N C , and N R as the number of spot instances that can be provisioned.

상기의 수학식 1 및 2에서, 'NC'는 가상 프로세서의 할당 가능 개수를 의미하고, 'NR'은 가상 메모리의 할당 가능 개수를 의미하며, '90'은 각 리소스의 임계치를 의미하며, 'AVG_10m_pCPU'와 'AVG_10m_pRAM'은 각각 프로세서 리소스와 메모리 리소스의 전체 사용률(e.g. 단위 시간 10분에 대한 평균값으로 가정함)을 의미한다. 그리고, 'E_vCPU'와 'E_vRAM'은 각각 스팟 인스턴스의 예측 리소스 사용률(즉, 프로세서 리소스에 대한 예측 사용률과 메모리 리소스에 대한 예측 사용률)을 의미하고, 'allocation ratio'는 앞서 언급한 'CPU allocation ratio'와 동일 또는 유사한 의미로 이해될 수 있다. 'E_vCPU'와 'E_vRAM'은 어떠한 방식으로 산출되더라도 무방한다. 가령, 'E_vCPU'와 'E_vRAM'은 기 프로비저닝된 스팟 인스턴스들의 리소스 사용률의 평균값일 수도 있고, 임의의 스팟 인스턴스의 리소스 사용률일 수도 있으며, 클라이언트(13)로부터 획득된 값일 수도 있다.In Equations 1 and 2 above, 'N C ' means the allocable number of virtual processors, 'N R ' means the allocable number of virtual memories, '90' means the threshold of each resource, and , 'AVG_10m_pCPU' and 'AVG_10m_pRAM' mean the overall utilization of processor resources and memory resources (eg, assumed to be the average value for 10 minutes of unit time), respectively. In addition, 'E_vCPU' and 'E_vRAM' refer to the predicted resource utilization of spot instances (i.e., predicted utilization of processor resources and predicted utilization of memory resources), and 'allocation ratio' refers to the previously mentioned 'CPU allocation ratio'. It can be understood to have the same or similar meaning as '. 'E_vCPU' and 'E_vRAM' can be calculated in any way. For example, 'E_vCPU' and 'E_vRAM' may be the average value of the resource utilization of previously provisioned spot instances, may be the resource utilization of a random spot instance, or may be values obtained from the client 13.

참고로, 수학식 1의 분자의 수식('90-AVG_10m_pCPU')은 리소스 임계치 고려하여 프로세서 리소스의 사용 가능 비율을 구하는 것으로 이해될 수 있고, 분모의 수식('E_vCPU/allocation ratio')은 스팟 인스턴스 기준의 사용률을 전체 리소스 기준의 사용률로 변환하기 위해 'allocation ratio'로 나눠주는 것으로 이해될 수 있다. 가령, E_vCPU(즉, 스팟 인스턴스의 프로세서 리소스 사용률)이 64%이고, 'allocation ratio'가 '16'이라면(즉, 전체 클라우드 노드들에 최대 16개의 가상 프로세서가 할당될 수 있는 경우), 해당 스팟 인스턴스의 전체 리소스 기준의 사용률은 '4%'에 불과할 것이기 때문에, 'allocation ratio'로 나눠주는 것으로 이해될 수 있다.For reference, the numerator formula ('90-AVG_10m_pCPU') in Equation 1 can be understood as calculating the available ratio of processor resources by considering the resource threshold, and the denominator formula ('E_vCPU/allocation ratio') is the spot instance It can be understood as dividing the standard utilization rate by the 'allocation ratio' to convert it to the overall resource standard utilization rate. For example, if E_vCPU (i.e., processor resource utilization of the spot instance) is 64% and 'allocation ratio' is '16' (i.e., when up to 16 virtual processors can be assigned to all cloud nodes), the corresponding spot instance Since the utilization rate based on the total resources of the instance will only be '4%', it can be understood as dividing by the 'allocation ratio'.

단계 S115에서, 요청된 스팟 인스턴스가 프로비저닝될 수 있다. 구체적으로, 이전 단계 S114에서 산출된 개수가 N개인 경우, N 개의 스팟 인스턴스가 프로비저닝될 수 있다. 또한, 요청된 스팟 인스턴스의 개수가 N을 초과하는 경우, 입찰 가격이 상대적으로 높은 N개의 스팟 인스턴스가 프로비저닝될 수 있다.In step S115, the requested spot instance may be provisioned. Specifically, if the number calculated in the previous step S114 is N, N spot instances may be provisioned. Additionally, when the number of requested spot instances exceeds N, N spot instances with relatively high bid prices may be provisioned.

단계 S116에서, 요청된 스팟 인스턴스에 대한 프로비저닝이 성공으로 결정될 수 있다.In step S116, provisioning for the requested spot instance may be determined to be successful.

지금까지 도 11 및 도 12를 참조하여 본 개시의 일 실시예예 따른 스팟 인스턴스 프로비저닝 방법에 대하여 설명하였다. 상술한 바에 따르면, 스팟 인스턴스를 활용하여 클라우드 서비스를 제공함으로써, 클라우드 리소스의 사용 효율성이 향상될 수 있다. 또한, 클라우드 리소스의 전체 사용률이 제2 임계치 이상인 경우에는 스팟 인스턴스에 대한 프로비저닝을 금지함으로써, 스팟 인스턴스가 레귤러 인스턴스의 성능에 미치는 영향이 최소화될 수 있고, 이에 따라 레귤러 인스턴스의 서비스 품질이 확실하게 보장될 수 있다. 나아가, 프로비저닝 가능한 스팟 인스턴스의 개수가 정확하게 산출됨으로써, 클라우드 서비스의 사용 효율성은 더욱 향상될 수 있으며, 가격 입찰 방식으로 복수의 스팟 인스턴스들에 대한 프로비저닝을 수행함으로써 클라우드 서비스 제공자의 수익성은 향상될 수 있다.So far, a spot instance provisioning method according to an embodiment of the present disclosure has been described with reference to FIGS. 11 and 12. According to the above, the efficiency of using cloud resources can be improved by providing cloud services using spot instances. Additionally, by prohibiting provisioning of spot instances when the overall utilization of cloud resources is above the second threshold, the impact of spot instances on the performance of regular instances can be minimized, thereby ensuring the quality of service of regular instances. It can be. Furthermore, by accurately calculating the number of spot instances that can be provisioned, the efficiency of using cloud services can be further improved, and the profitability of cloud service providers can be improved by provisioning multiple spot instances using a price bidding method. .

이하에서는, 상술한 프로비저닝 시스템(10)을 구현할 수 있는 예시적인 컴퓨팅 장치(130)에 대하여 설명하도록 한다.Hereinafter, an exemplary computing device 130 capable of implementing the provisioning system 10 described above will be described.

도 13은 컴퓨팅 장치(130)를 나타내는 예시적인 하드웨어 구성도이다.13 is an exemplary hardware configuration diagram showing the computing device 130.

도 13에 도시된 바와 같이, 컴퓨팅 장치(130)는 하나 이상의 프로세서(131), 버스(133), 통신 인터페이스(134), 프로세서(131)에 의하여 수행되는 컴퓨터 프로그램을 로드(load)하는 메모리(132)와, 컴퓨터 프로그램(136)을 저장하는 스토리지(135)를 포함할 수 있다. 다만, 도 13에는 본 개시의 실시예와 관련 있는 구성요소들만이 도시되어 있다. 따라서, 본 개시가 속한 기술분야의 통상의 기술자라면 도 13에 도시된 구성요소들 외에 다른 범용적인 구성 요소들이 더 포함될 수 있음을 알 수 있다. 즉, 컴퓨팅 장치(130)에는, 도 13에 도시된 구성 요소 이외에도 다양한 구성 요소가 더 포함될 수 있다. 또한, 경우에 따라, 도 13에 도시된 구성요소들 중 일부가 생략된 형태로 컴퓨팅 장치(130)가 구성될 수도 있다. 이하, 컴퓨팅 장치(130)의 각 구성요소에 대하여 설명한다.As shown in FIG. 13, the computing device 130 includes one or more processors 131, a bus 133, a communication interface 134, and a memory (loading) a computer program executed by the processor 131. 132) and a storage 135 that stores a computer program 136. However, only components related to the embodiment of the present disclosure are shown in FIG. 13. Accordingly, a person skilled in the art to which this disclosure pertains can see that other general-purpose components may be included in addition to the components shown in FIG. 13 . That is, the computing device 130 may further include various components in addition to those shown in FIG. 13 . Additionally, in some cases, the computing device 130 may be configured with some of the components shown in FIG. 13 omitted. Hereinafter, each component of the computing device 130 will be described.

프로세서(131)는 컴퓨팅 장치(130)의 각 구성의 전반적인 동작을 제어할 수 있다. 프로세서(131)는 CPU(Central Processing Unit), MPU(Micro Processor Unit), MCU(Micro Controller Unit), GPU(Graphic Processing Unit) 또는 본 개시의 기술 분야에 잘 알려진 임의의 형태의 프로세서 중 적어도 하나를 포함하여 구성될 수 있다. 또한, 프로세서(131)는 본 개시의 실시예들에 따른 동작/방법을 실행하기 위한 적어도 하나의 애플리케이션 또는 프로그램에 대한 연산을 수행할 수 있다. 컴퓨팅 장치(130)는 하나 이상의 프로세서를 구비할 수 있다.The processor 131 may control the overall operation of each component of the computing device 130. The processor 131 is at least one of a Central Processing Unit (CPU), Micro Processor Unit (MPU), Micro Controller Unit (MCU), Graphic Processing Unit (GPU), or any type of processor well known in the art of the present disclosure. It can be configured to include. Additionally, the processor 131 may perform operations on at least one application or program to execute operations/methods according to embodiments of the present disclosure. Computing device 130 may include one or more processors.

다음으로, 메모리(132)는 각종 데이터, 명령 및/또는 정보를 저장할 수 있다. 메모리(132)는 본 개시의 실시예들에 따른 동작/방법을 실행하기 위하여 스토리지(135)로부터 컴퓨터 프로그램(136)을 로드할 수 있다. 메모리(132)는 RAM과 같은 휘발성 메모리로 구현될 수 있을 것이나, 본 개시의 기술적 범위가 이에 한정되는 것은 아니다.Next, memory 132 may store various data, commands and/or information. Memory 132 may load a computer program 136 from storage 135 to execute operations/methods according to embodiments of the present disclosure. The memory 132 may be implemented as a volatile memory such as RAM, but the technical scope of the present disclosure is not limited thereto.

다음으로, 버스(133)는 컴퓨팅 장치(130)의 구성 요소 간 통신 기능을 제공할 수 있다. 버스(133)는 주소 버스(Address Bus), 데이터 버스(Data Bus) 및 제어 버스(Control Bus) 등 다양한 형태의 버스로 구현될 수 있다.Next, the bus 133 may provide communication functionality between components of the computing device 130. The bus 133 may be implemented as various types of buses, such as an address bus, a data bus, and a control bus.

다음으로, 통신 인터페이스(134)는 컴퓨팅 장치(130)의 유무선 인터넷 통신을 지원할 수 있다. 또한, 통신 인터페이스(134)는 인터넷 통신 외의 다양한 통신 방식을 지원할 수도 있다. 이를 위해, 통신 인터페이스(134)는 본 개시의 기술 분야에 잘 알려진 통신 모듈을 포함하여 구성될 수 있다.Next, the communication interface 134 may support wired or wireless Internet communication of the computing device 130. Additionally, the communication interface 134 may support various communication methods other than Internet communication. To this end, the communication interface 134 may be configured to include a communication module well known in the technical field of the present disclosure.

다음으로, 스토리지(135)는 하나 이상의 컴퓨터 프로그램(136)을 비임시적으로 저장할 수 있다. 스토리지(135)는 ROM(Read Only Memory), EPROM(Erasable Programmable ROM), EEPROM(Electrically Erasable Programmable ROM), 플래시 메모리 등과 같은 비휘발성 메모리, 하드 디스크, 착탈형 디스크, 또는 본 개시가 속하는 기술 분야에서 잘 알려진 임의의 형태의 컴퓨터로 읽을 수 있는 기록 매체를 포함하여 구성될 수 있다.Next, storage 135 may non-transitory store one or more computer programs 136. The storage 135 may be a non-volatile memory such as Read Only Memory (ROM), Erasable Programmable ROM (EPROM), Electrically Erasable Programmable ROM (EEPROM), flash memory, a hard disk, a removable disk, or a device well known in the art to which this disclosure pertains. It may be configured to include any known type of computer-readable recording medium.

다음으로, 컴퓨터 프로그램(136)은 메모리(132)에 로드될 때 프로세서(131)로 하여금 본 개시의 다양한 실시예들에 따른 동작/방법을 수행하도록 하는 하나 이상의 인스트럭션을 포함할 수 있다. 즉, 프로세서(131)는 로드된 하나 이상의 인스트럭션을 실행함으로써, 본 개시의 다양한 실시예들에 따른 동작/방법을 수행할 수 있다.Next, the computer program 136 may include one or more instructions that, when loaded into the memory 132, cause the processor 131 to perform operations/methods according to various embodiments of the present disclosure. That is, the processor 131 may perform operations/methods according to various embodiments of the present disclosure by executing one or more loaded instructions.

예를 들어, 컴퓨터 프로그램(136)은 클라우드 리소스의 전체 사용률을 포함하는 사용률 정보를 모니터링하는 동작, 클라이언트로부터 레귤러 인스턴스(regular instance)에 대한 요청을 수신하는 동작 및 전체 사용률이 제1 임계치 이상이라는 판단에 응답하여, 기 프로비저닝된 스팟 인스턴스(spot instance) 중에서 적어도 일부를 종료시키고 요청된 레귤러 인스턴스를 프로비저닝(provisioning)하는 동작을 수행하는 인스트럭션들을 포함할 수 있다. 이와 같은 경우, 컴퓨팅 장치(130)를 통해 본 개시의 몇몇 실시예들에 따른 프로비저닝 시스템(10)이 구현될 수 있다.For example, the computer program 136 may monitor utilization information including the overall utilization of cloud resources, receive a request for a regular instance from a client, and determine that the overall utilization is greater than or equal to a first threshold. In response, it may include instructions for terminating at least some of the already provisioned spot instances and provisioning the requested regular instances. In this case, the provisioning system 10 according to some embodiments of the present disclosure may be implemented through the computing device 130.

지금까지 도 13을 참조하여 본 개시의 몇몇 실시예들에 따른 프로비저닝 시스템(10)을 구현할 수 있는 예시적인 컴퓨팅 장치(130)에 대하여 설명하였다.So far, an exemplary computing device 130 capable of implementing the provisioning system 10 according to some embodiments of the present disclosure has been described with reference to FIG. 13 .

지금까지 도 1 내지 도 13을 참조하여 본 개시의 다양한 실시예들 및 그 실시예들에 따른 효과들을 언급하였다. 본 개시의 기술적 사상에 따른 효과들은 이상에서 언급한 효과들로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.So far, various embodiments of the present disclosure and effects according to the embodiments have been mentioned with reference to FIGS. 1 to 13 . The effects according to the technical idea of the present disclosure are not limited to the effects mentioned above, and other effects not mentioned can be clearly understood by those skilled in the art from the description below.

또한, 이상의 실시예들에서 복수의 구성요소들이 하나로 결합되거나 결합되어 동작하는 것으로 설명되었다고 해서, 본 개시의 기술적 사상이 반드시 이러한 실시예에 한정되는 것은 아니다. 즉, 본 개시의 기술적 사상의 목적 범위 안에서라면, 그 모든 구성요소들이 하나 이상으로 선택적으로 결합하여 동작할 수도 있다.In addition, although it has been described in the above embodiments that a plurality of components are combined or operated in combination, the technical idea of the present disclosure is not necessarily limited to these embodiments. That is, as long as it is within the scope of the technical idea of the present disclosure, all of the components may be operated by selectively combining one or more of them.

지금까지 설명된 본 개시의 기술적 사상은 컴퓨터가 읽을 수 있는 매체 상에 컴퓨터가 읽을 수 있는 코드로 구현될 수 있다. 컴퓨터로 읽을 수 있는 기록 매체에 기록된 컴퓨터 프로그램은 인터넷 등의 네트워크를 통하여 다른 컴퓨팅 장치에 전송되어 상기 다른 컴퓨팅 장치에 설치될 수 있고, 이로써 상기 다른 컴퓨팅 장치에서 사용될 수 있다.The technical ideas of the present disclosure described so far can be implemented as computer-readable code on a computer-readable medium. A computer program recorded on a computer-readable recording medium can be transmitted to another computing device through a network such as the Internet, installed on the other computing device, and thus used on the other computing device.

도면에서 동작들이 특정한 순서로 도시되어 있지만, 반드시 동작들이 도시된 특정한 순서로 또는 순차적 순서로 실행되어야만 하거나 또는 모든 도시 된 동작들이 실행되어야만 원하는 결과를 얻을 수 있는 것으로 이해되어서는 안 된다. 특정 상황에서는, 멀티태스킹 및 병렬 처리가 유리할 수도 있다. 이상 첨부된 도면을 참조하여 본 개시의 다양한 실시예들을 설명하였지만, 본 개시가 속한 기술분야에서 통상의 지식을 가진 자는 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 본 개시의 기술적 사상이 다른 구체적인 형태로도 실시될 수 있다는 것을 이해할 수 있다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로 이해해야만 한다. 본 개시의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 개시에 의해 정의되는 기술적 사상의 권리범위에 포함되는 것으로 해석되어야 할 것이다.Although operations are shown in the drawings in a specific order, it should not be understood that the operations must be performed in the specific order shown or sequential order or that all illustrated operations must be performed to obtain the desired results. In certain situations, multitasking and parallel processing may be advantageous. Although various embodiments of the present disclosure have been described above with reference to the attached drawings, those skilled in the art will understand that the technical idea of the present disclosure can be modified in a different specific form without changing the technical idea or essential features. It is understandable that it can also be implemented. Therefore, the embodiments described above should be understood in all respects as illustrative and not restrictive. The scope of protection of this disclosure should be interpreted in accordance with the claims below, and all technical ideas within the equivalent scope should be interpreted as being included in the scope of rights of the technical ideas defined by this disclosure.

Claims (17)

적어도 하나의 컴퓨팅 장치에서 수행되는 방법으로서,
클라우드 리소스의 전체 사용률을 포함하는 사용률 정보를 모니터링하는 단계;
클라이언트로부터 레귤러 인스턴스(regular instance)에 대한 요청을 수신하는 단계; 및
상기 전체 사용률이 제1 임계치 이상이라는 판단에 응답하여, 기 프로비저닝된 스팟 인스턴스(spot instance) 중에서 적어도 일부를 종료시키고 상기 요청된 레귤러 인스턴스를 프로비저닝(provisioning)하는 단계를 포함하는,
클라우드 서비스를 위한 프로비저닝 방법.
1. A method performed on at least one computing device, comprising:
monitoring utilization information including overall utilization of cloud resources;
Receiving a request for a regular instance from a client; and
In response to determining that the overall utilization is greater than or equal to a first threshold, terminating at least some of the already provisioned spot instances and provisioning the requested regular instances,
Provisioning methods for cloud services.
제1항에 있어서,
상기 모니터링하는 단계는,
상기 클라우드 리소스를 제공하는 특정 클라우드 노드 상에서 동작하는 노드 에이전트를 통해 상기 특정 클라우드 노드의 리소스 사용률을 모니터링하는 단계; 및
상기 특정 클라우드 노드의 특정 클라우드 인스턴스 상에서 동작하는 인스턴스 에이전트를 통해 상기 특정 클라우드 인스턴스의 리소스 사용률을 모니터링하는 단계를 포함하는,
클라우드 서비스를 위한 프로비저닝 방법.
According to paragraph 1,
The monitoring step is,
Monitoring resource utilization of the specific cloud node through a node agent operating on the specific cloud node providing the cloud resources; and
Comprising the step of monitoring resource utilization of the specific cloud instance through an instance agent operating on the specific cloud instance of the specific cloud node,
Provisioning methods for cloud services.
제1항에 있어서,
상기 클라우드 리소스는 프로세서 리소스와 메모리 리소스를 포함하고,
상기 제1 임계치는 상기 프로세서 리소스에 대한 제1 리소스 임계치와 상기 메모리 리소스에 대한 제2 리소스 임계치를 포함하며,
상기 요청된 레귤러 인스턴스를 프로비저닝하는 단계는,
상기 프로세서 리소스의 전체 사용률이 상기 제1 리소스 임계치 이상이거나 상기 메모리 리소스의 전체 사용률이 상기 제2 리소스 임계치 이상이라는 판단에 응답하여, 상기 적어도 일부를 종료시키는 단계를 포함하는,
클라우드 서비스를 위한 프로비저닝 방법.
According to paragraph 1,
The cloud resources include processor resources and memory resources,
The first threshold includes a first resource threshold for the processor resource and a second resource threshold for the memory resource,
The step of provisioning the requested regular instance is,
In response to determining that the total utilization of the processor resources is greater than or equal to the first resource threshold or that the total utilization of the memory resources is greater than or equal to the second resource threshold, terminating the at least some of the resources,
Provisioning methods for cloud services.
제1항에 있어서,
클라우드 리소스의 전체 사용률은 제1 전체 사용률이고,
상기 요청된 레귤러 인스턴스를 프로비저닝하는 단계는,
상기 기 프로비저닝된 스팟 인스턴스의 리스트에서 종료 대상을 지정하는 단계;
상기 지정된 스팟 인스턴스의 종료에 따른 상기 클라우드 리소스의 제2 전체 사용률을 예측하는 단계; 및
상기 제2 전체 사용률이 상기 제1 임계치 미만이라는 판단에 응답하여, 상기 지정된 스팟 인스턴스를 종료시키는 단계를 포함하는,
클라우드 서비스를 위한 프로비저닝 방법.
According to paragraph 1,
The overall utilization rate of cloud resources is the first overall utilization rate,
The step of provisioning the requested regular instance is,
Specifying a termination target from the list of pre-provisioned spot instances;
predicting a second overall utilization of the cloud resources according to termination of the designated spot instance; and
In response to determining that the second overall utilization is below the first threshold, terminating the designated spot instance.
Provisioning methods for cloud services.
제4항에 있어서,
상기 종료 대상은 스팟 인스턴스의 리소스 사용률에 기초하여 지정되는,
클라우드 서비스를 위한 프로비저닝 방법.
According to clause 4,
The termination target is specified based on the resource utilization of the spot instance,
Provisioning methods for cloud services.
제4항에 있어서,
상기 종료 대상은 스팟 인스턴스의 입찰 가격 또는 사용된 기간에 기초하여 지정되는,
클라우드 서비스를 위한 프로비저닝 방법.
According to clause 4,
The termination target is specified based on the bid price or used period of the spot instance,
Provisioning methods for cloud services.
제4항에 있어서,
상기 요청된 레귤러 인스턴스를 프로비저닝하는 단계는,
상기 예측된 전체 사용률이 상기 제1 임계치 이상이라는 판단에 응답하여, 상기 스팟 인스턴스의 리스트에서 상기 종료 대상을 추가로 지정하는 단계를 더 포함하는,
클라우드 서비스를 위한 프로비저닝 방법.
According to clause 4,
The step of provisioning the requested regular instance is,
In response to determining that the predicted total utilization is greater than or equal to the first threshold, further comprising specifying the termination target in the list of spot instances,
Provisioning methods for cloud services.
제4항에 있어서,
상기 제2 전체 사용률을 예측하는 단계는,
상기 지정된 스팟 인스턴스에 할당된 가상 클라우드 리소스의 사용률을 획득하는 단계;
상기 획득된 사용률과 전체 클라우드 노드에 할당 가능한 가상 클라우드 리소스의 최대 개수와의 나눗셈 연산을 통해 , 상기 지정된 스팟 인스턴스의 종료에 따른 전체 리소스 사용률의 감소치를 예측하는 단계; 및
상기 예측된 감소치를 상기 제1 전체 사용률에 반영하여, 상기 제2 전체 사용률을 산출하는 단계를 포함하는,
클라우드 서비스를 위한 프로비저닝 방법.
According to clause 4,
The step of predicting the second overall utilization rate is,
Obtaining a utilization rate of virtual cloud resources allocated to the designated spot instance;
Predicting a decrease in overall resource utilization due to termination of the specified spot instance through a division operation between the obtained utilization rate and the maximum number of virtual cloud resources that can be allocated to all cloud nodes; and
Comprising the step of calculating the second overall utilization rate by reflecting the predicted decrease in the first overall utilization rate,
Provisioning methods for cloud services.
제1항에 있어서,
클라이언트로부터 스팟 인스턴스(spot instance)에 대한 요청을 수신하는 단계; 및
상기 전체 사용률이 제2 임계치 미만이라는 판단에 응답하여, 상기 요청된 스팟 인스턴스를 프로비저닝하는 단계를 더 포함하되,
상기 제2 임계치는 상기 제1 임계치보다 큰 값인,
클라우드 서비스를 위한 프로비저닝 방법.
According to paragraph 1,
Receiving a request for a spot instance from a client; and
In response to determining that the overall utilization is below a second threshold, provisioning the requested spot instance,
The second threshold is a value greater than the first threshold,
Provisioning methods for cloud services.
제1항에 있어서,
클라이언트로부터 복수의 스팟 인스턴스들에 대한 요청들을 수신하는 단계 - 상기 요청들은 현재 시간 윈도우 내에 수신된 것임 - ; 및
상기 현재 시간 윈도우의 마지막 지점에서, 상기 복수의 스팟 인스턴스들에 대한 프로비저닝을 수행하는 단계를 더 포함하는,
클라우드 서비스를 위한 프로비저닝 방법.
According to paragraph 1,
Receiving requests for a plurality of spot instances from a client, the requests being received within a current time window; and
At the last point of the current time window, further comprising performing provisioning for the plurality of spot instances,
Provisioning methods for cloud services.
제10항에 있어서,
상기 프로비저닝을 수행하는 단계는,
입찰 가격을 기초로 상기 복수의 스팟 인스턴스들 중에서 적어도 하나의 스팟 인스턴스를 결정하는 단계; 및
상기 결정된 스팟 인스턴스를 프로비저닝하는 단계를 포함하는,
클라우드 서비스를 위한 프로비저닝 방법.
According to clause 10,
The step of performing the provisioning is,
determining at least one spot instance among the plurality of spot instances based on a bid price; and
Including provisioning the determined spot instance,
Provisioning methods for cloud services.
제10항에 있어서,
상기 프로비저닝을 수행하는 단계는,
상기 복수의 스팟 인스턴스들 중에서 해당 클라이언트의 허용 대기 시간을 초과한 인스턴스를 프로비저닝 대상에서 제외하는 단계를 포함하는,
클라우드 서비스를 위한 프로비저닝 방법.
According to clause 10,
The step of performing the provisioning is,
Comprising the step of excluding instances that exceed the allowable waiting time of the corresponding client from among the plurality of spot instances from provisioning targets,
Provisioning methods for cloud services.
제10항에 있어서,
상기 프로비저닝을 수행하는 단계는,
상기 전체 사용률에 기초하여 프로비저닝 가능한 스팟 인스턴스의 개수를 산출하는 단계; 및
상기 복수의 스팟 인스턴스들 중에서 상기 산출된 개수의 스팟 인스턴스를 프로비저닝하는 단계를 포함하는,
클라우드 서비스를 위한 프로비저닝 방법.
According to clause 10,
The step of performing the provisioning is,
calculating the number of spot instances that can be provisioned based on the total utilization rate; and
Comprising the step of provisioning the calculated number of spot instances among the plurality of spot instances,
Provisioning methods for cloud services.
제13항에 있어서,
상기 전체 사용률은 프로세서 리소스에 대한 제1 전체 사용률과 메모리 리소스에 대한 제2 전체 사용률을 포함하고,
상기 프로비저닝 가능한 스팟 인스턴스의 개수를 산출하는 단계는,
상기 제1 전체 사용률부터 상기 프로세서 리소스에 대한 제1 사용 가능 비율을 산출하고, 상기 제2 전체 사용률로부터 상기 메모리 리소스에 대한 제2 사용 가능 비율을 산출하는 단계;
상기 프로세서 리소스에 대한 스팟 인스턴스의 제1 예측 리소스 사용률과 상기 제1 사용 가능 비율에 기초하여 가상 프로세서에 대한 제1 할당 가능 개수를 산출하는 단계;
상기 메모리 리소스에 대한 스팟 인스턴스의 제2 예측 리소스 사용률과 상기 제2 사용 가능 비율에 기초하여 가상 메모리에 대한 제2 할당 가능 개수를 산출하는 단계; 및
상기 제1 할당 가능 개수와 상기 제2 할당 가능 개수에 기초하여 상기 프로비저닝 가능한 스팟 인스턴스의 개수를 산출하는 단계를 포함하는,
클라우드 서비스를 위한 프로비저닝 방법.
According to clause 13,
The overall utilization includes a first overall utilization for processor resources and a second overall utilization for memory resources,
The step of calculating the number of spot instances that can be provisioned is,
calculating a first available ratio for the processor resource from the first total usage rate, and calculating a second available ratio for the memory resource from the second total usage rate;
calculating a first allocatable number for a virtual processor based on the first predicted resource utilization rate of the spot instance for the processor resource and the first available ratio;
calculating a second allocatable number for virtual memory based on a second predicted resource utilization rate of the spot instance for the memory resource and the second available ratio; and
Comprising the step of calculating the number of provisionable spot instances based on the first allocatable number and the second allocatable number,
Provisioning methods for cloud services.
제14항에 있어서,
상기 제1 예측 리소스 사용률은,
상기 스팟 인스턴스에 할당된 가상 프로세서의 예측 사용률과 전체 클라우드 노드에 할당 가능한 가상 프로세서의 최대 개수와의 나눗셈 연산을 통해 산출되는,
클라우드 서비스를 위한 프로비저닝 방법.
According to clause 14,
The first predicted resource utilization rate is,
Calculated through a division operation between the predicted utilization of the virtual processor assigned to the spot instance and the maximum number of virtual processors that can be assigned to all cloud nodes,
Provisioning methods for cloud services.
하나 이상의 프로세서; 및
하나 이상의 인스트럭션을 저장하는 메모리를 포함하고,
상기 하나 이상의 프로세서는,
상기 저장된 하나 이상의 인스트럭션을 실행시킴으로써,
클라우드 리소스의 전체 사용률을 포함하는 사용률 정보를 모니터링하는 동작,
클라이언트로부터 레귤러 인스턴스(regular instance)에 대한 요청을 수신하는 동작 및
상기 전체 사용률이 제1 임계치 이상이라는 판단에 응답하여, 기 프로비저닝된 스팟 인스턴스(spot instance) 중에서 적어도 일부를 종료시키고 상기 요청된 레귤러 인스턴스를 프로비저닝(provisioning)하는 동작을 수행하는,
프로비저닝 시스템.
One or more processors; and
Includes memory for storing one or more instructions,
The one or more processors:
By executing one or more instructions stored above,
Monitoring utilization information, including overall utilization of cloud resources;
An operation of receiving a request for a regular instance from a client, and
In response to determining that the overall utilization is greater than or equal to a first threshold, performing an operation of terminating at least some of the already provisioned spot instances and provisioning the requested regular instances.
Provisioning system.
컴퓨팅 장치와 결합되어,
클라우드 리소스의 전체 사용률을 포함하는 사용률 정보를 모니터링하는 단계;
클라이언트로부터 레귤러 인스턴스(regular instance)에 대한 요청을 수신하는 단계; 및
상기 전체 사용률이 제1 임계치 이상이라는 판단에 응답하여, 기 프로비저닝된 스팟 인스턴스(spot instance) 중에서 적어도 일부를 종료시키고 상기 요청된 레귤러 인스턴스를 프로비저닝(provisioning)하는 단계를 실행시키기 위하여 컴퓨터로 판독가능한 기록매체에 저장된,
컴퓨터 프로그램.
Combined with a computing device,
monitoring utilization information including overall utilization of cloud resources;
Receiving a request for a regular instance from a client; and
A computer-readable record for executing the step of terminating at least a portion of already provisioned spot instances and provisioning the requested regular instances, in response to determining that the overall utilization is greater than or equal to a first threshold. stored on the medium,
computer program.
KR1020220060752A 2022-05-10 2022-05-18 Provisioning method for cloud service and system thereof KR20230161122A (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020220060752A KR20230161122A (en) 2022-05-18 2022-05-18 Provisioning method for cloud service and system thereof
US18/195,620 US20230367656A1 (en) 2022-05-10 2023-05-10 Provisioning method for cloud service and system thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020220060752A KR20230161122A (en) 2022-05-18 2022-05-18 Provisioning method for cloud service and system thereof

Publications (1)

Publication Number Publication Date
KR20230161122A true KR20230161122A (en) 2023-11-27

Family

ID=88967969

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220060752A KR20230161122A (en) 2022-05-10 2022-05-18 Provisioning method for cloud service and system thereof

Country Status (1)

Country Link
KR (1) KR20230161122A (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190059661A (en) 2017-11-23 2019-05-31 삼성전자주식회사 Electronic device and method for managing computing resources of at least one cloud server that provices cloud services

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190059661A (en) 2017-11-23 2019-05-31 삼성전자주식회사 Electronic device and method for managing computing resources of at least one cloud server that provices cloud services

Similar Documents

Publication Publication Date Title
Hieu et al. Virtual machine consolidation with multiple usage prediction for energy-efficient cloud data centers
KR102207050B1 (en) Methods and apparatus to manage jobs that can and cannot be suspended when there is a change in power allocation to a distributed computer system
CN107239336B (en) Method and device for realizing task scheduling
US10789100B2 (en) System, apparatus and method for resource provisioning
US8572621B2 (en) Selection of server for relocation of application program based on largest number of algorithms with identical output using selected server resource criteria
US10541939B2 (en) Systems and methods for provision of a guaranteed batch
US7467291B1 (en) System and method for calibrating headroom margin
CN107301093B (en) Method and device for managing resources
JP6364880B2 (en) Parallel computer system, control program for job management apparatus, and control method for parallel computer system
CN112689007B (en) Resource allocation method, device, computer equipment and storage medium
Sampaio et al. PIASA: A power and interference aware resource management strategy for heterogeneous workloads in cloud data centers
WO2011139281A1 (en) Workload performance control
US20140282540A1 (en) Performant host selection for virtualization centers
KR101695013B1 (en) Method for allocating and managing of adaptive resource
US20190028407A1 (en) Quality of service compliance of workloads
CN111258746A (en) Resource allocation method and service equipment
Rahman et al. Compatibility-based static VM placement minimizing interference
Yazdanov et al. EHadoop: Network I/O aware scheduler for elastic MapReduce cluster
JP6237170B2 (en) Allocation determination apparatus, control method, and program
US9021499B2 (en) Moving a logical device between processor modules in response to identifying a varying load pattern
JP4121525B2 (en) Method and computer system for controlling resource utilization
KR20230161122A (en) Provisioning method for cloud service and system thereof
CN111767199A (en) Resource management method, device, equipment and system based on batch processing operation
EP3046029B1 (en) Method and device for determining program performance interference model
Chen et al. Towards resource-efficient cloud systems: Avoiding over-provisioning in demand-prediction based resource provisioning