KR20200086393A - 클라우드 서버의 자동 스케일링 방법, 장치 및 컴퓨터-판독가능기록매체 - Google Patents

클라우드 서버의 자동 스케일링 방법, 장치 및 컴퓨터-판독가능기록매체 Download PDF

Info

Publication number
KR20200086393A
KR20200086393A KR1020190002119A KR20190002119A KR20200086393A KR 20200086393 A KR20200086393 A KR 20200086393A KR 1020190002119 A KR1020190002119 A KR 1020190002119A KR 20190002119 A KR20190002119 A KR 20190002119A KR 20200086393 A KR20200086393 A KR 20200086393A
Authority
KR
South Korea
Prior art keywords
server
replication
cloud
load measurement
usage
Prior art date
Application number
KR1020190002119A
Other languages
English (en)
Other versions
KR102150016B1 (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 KR1020190002119A priority Critical patent/KR102150016B1/ko
Publication of KR20200086393A publication Critical patent/KR20200086393A/ko
Application granted granted Critical
Publication of KR102150016B1 publication Critical patent/KR102150016B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1031Controlling of the operation of servers by a load balancer, e.g. adding or removing servers that serve requests
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3051Monitoring arrangements for monitoring the configuration of the computing system or of the computing system component, e.g. monitoring the presence of processing resources, peripherals, I/O links, software programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3433Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment for load management
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0813Configuration setting characterised by the conditions triggering a change of settings
    • H04L41/0816Configuration setting characterised by the conditions triggering a change of settings the condition being an adaptation, e.g. in response to network events
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0896Bandwidth or capacity management, i.e. automatically increasing or decreasing capacities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1008Server selection for load balancing based on parameters of servers, e.g. available memory or workload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1029Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers using data related to the state of servers by a load balancer
    • H04L67/2809
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

서버에 대한 유저들의 접속 및 이용 등에 따라서 자동으로 서버를 확장하거나 축소하도록 하여, 유저가 클라우드 서버를 이용함에 있어서 불편함을 느끼지 않도록 하고, 클라우드 서버 서비스에 있어서 자원의 최적 활용이 가능하도록 하는 기술을 제공하기 위해서, 본 발명의 일 실시예에 따른 클라우드 서버의 자동 스케일링 방법은, 하나 이상의 프로세서 및 프로세서에서 수행 가능한 명령들을 저장하는 하나 이상의 메모리를 포함하는 컴퓨팅 장치로 구현되는 클라우드 서버의 자동 스케일링 방법에 관한 것으로, 클라우드 서비스 기반에서 유저가 온라인 어드레스를 통해 접속하여 특정 서비스를 이용하기 위해서 생성되어 기 저장된 서버 리스트에 등록된 서버에 대해서 기설정된 주기로 서버의 부하 정도를 나타내는 서버 상태 정보를 측정하는 부하 측정 단계; 부하 측정 단계에 의하여 측정된 서버 상태 정보가 기설정된 확장 조건을 만족하는 경우, 서버와 동일한 복제 서버를 클라우드 서비스 상에 생성하는 복제 서버 생성 단계; 및 유저가 서버와 복제 서버를 이용하여 특정 서비스를 이용할 수 있도록 서버 및 복제 서버 중 어느 하나에 대한 유저 단말의 접속을 중개하는 접속 제어 단계;를 포함하는 것을 특징으로 한다.

Description

클라우드 서버의 자동 스케일링 방법, 장치 및 컴퓨터-판독가능기록매체{PROVIDING METHOD, APPARATUS AND COMPUTER-READABLE MEDIUM OF AUTO SCALING OF CLOUD SERVER}
본 발명은 클라우드 서비스로 서버를 생성하여 제공하는 기술에 관한 것으로, 구체적으로는 서버에 대한 유저들의 접속 및 이용 등에 따라서 자동으로 서버를 확장하거나 축소하도록 하여, 유저가 클라우드 서버를 이용함에 있어서 불편함을 느끼지 않도록 하고, 클라우드 서버 서비스에 있어서 자원의 최적 활용이 가능하도록 하는 기술에 관한 것이다.
일반적으로 유저들이 특정 서비스를 개발하여 다른 유저들이 사용할 수 있도록 하는 데 있어서, 유저들은 서비스를 제공할 서버를 마련하고, 서버에 개발된 서비스의 이용이 가능한 어플리케이션을 온라인 상으로 배포 가능한 형태로 저장하거나, 서비스를 이용하는 유저들이 해당 서버의 IP 또는 도메인 등의 온라인 어드레스를 이용하여 접속할 수 있도록 서비스를 제공한다.
서버에는 어플리케이션을 다운로드 할 수 있거나 서비스를 이용할 수 있도록 데이터가 관리되는데, 어플리케이션 및 서비스에 대한 업데이트 정보 역시 이러한 서버에 저장되기 때문에 서비스를 이용하는 유저들은 해당 서버에 접속하여 어플리케이션 데이터를 다운로드하거나 서버에 접속하여 서버에서 실행되는 어플리케이션에 대한 실행 결과를 자신의 단말에 임시 저장하여 기능을 이용하건, 웹 구동 형식의 서비스를 이용하여 서버에 접속함과 동시에 서비스를 이용할 수 있다.
이러한 서비스를 제공하기 위한 서버 단말은 그 비용이 비싸고 유지 관리가 어려워, 최근에는 클라우드 서비스를 이용하여 유저들이 직접적인 서버의 구매 없이 온라인 상의 클라우드 서비스 기반으로 구축된 서버에 자신이 개발한 서비스에 대응되는 어플리케이션 데이터 또는 프로그램을 업로드하고 이를 바탕으로 다른 유저들은 클라우드 서비스 상에 마련된 서버에 접속할 수 있다.
기존의 이러한 클라우드 서비스는 AWS(Amazon Web Service) 클라우드 인프라로 대표된다. AWS는 유저들에게 클라우드 컴퓨팅 서비스를 제공하며 유저들은 자신이 할당받은 저장공간을 서버로 활용 가능하다. 이러한 클라우드 서버에 유저들이 접속하는 경우, 그 접속량 및 서버의 스펙에 따라서 서버의 한계 사용량에 도달하는 경우 서버 접속 자체에 대한 오류 발생 및 서버 접속 시의 속도 저하의 문제가 발생되고 있다.
이에 따라서 한국특허출원 제10-2006-0089753호 등에서는 서비스를 제공하는 서버를 다수개 마련하고, 서비스 및 사용량에 따라서 접속 유저 단말로부터의 쿼리 데이터 또는 접속을 선택적으로 서로 다른 서버에 분산시킴으로써, 서버의 과부하를 막는 기술을 게시하고 있다.
그러나, 클라우드 서비스에서는 서버가 불필요하게 구비되는 경우 클라우드 서비스의 자원이 낭비되는 문제점이 있는데, 상기의 기존의 기술들은 이러한 클라우드 서비스의 자원을 낭비하게 되는 결과가 불가피하여, 클라우드 서비스를 통한 서버 제공의 이용성 저하 및 효율성 저하의 문제점이 발생될 수 있다.
이에 본 발명은, 클라우드 서비스를 통한 서버 제공 서비스에 있어서, 서버에 대한 유저들의 접속 및 이용량과 함께 제공되는 서버의 스펙에 따라서 자동으로 서버를 확장하거나 축소하도록 하여, 유저가 클라우드 서버를 이용함에 있어서 불편함을 느끼지 않도록 하는 동시에, 클라우드 서버 서비스에 있어서 자원의 낭비를 막아 최적의 사용이 가능한 구조를 구축하여, 클라우드 서버 서비스의 품질을 높여 그 이용량을 높이는 데 그 목적이 있다.
또한 한정된 클라우드 서버의 사용량을 동적으로 자동 제어함으로써, 동시에 최대한의 서버를 구축하여 이용할 수 있도록 함으로써, 클라우드 서비스에 있어서의 수익을 극대화할 수 있는 기술을 제공하는 데 다른 목적이 있다.
상기 목적을 달성하기 위해서, 본 발명의 일 실시예에 따른 클라우드 서버의 자동 스케일링 방법은, 하나 이상의 프로세서 및 상기 프로세서에서 수행 가능한 명령들을 저장하는 하나 이상의 메모리를 포함하는 컴퓨팅 장치로 구현되는 클라우드 서버의 자동 스케일링 방법에 관한 것으로, 클라우드 서비스 기반에서 유저가 온라인 어드레스를 통해 접속하여 특정 서비스를 이용하기 위해서 생성되어 기 저장된 서버 리스트에 등록된 서버에 대해서 기설정된 주기로 서버의 부하 정도를 나타내는 서버 상태 정보를 측정하는 부하 측정 단계; 상기 부하 측정 단계에 의하여 측정된 서버 상태 정보가 기설정된 확장 조건을 만족하는 경우, 상기 서버와 동일한 복제 서버를 클라우드 서비스 상에 생성하는 복제 서버 생성 단계; 및 유저가 상기 서버와 상기 복제 서버를 이용하여 특정 서비스를 이용할 수 있도록 상기 서버 및 상기 복제 서버 중 어느 하나에 대한 유저 단말의 접속을 중개하는 접속 제어 단계;를 포함하는 것을 특징으로 한다.
상기 부하 측정 단계는, CPU, RAM, DISK 및 NETWORK I/O 사용량 중 적어도 하나를 서버 상태 정보로 측정하고, 상기 복제 서버 생성 단계는, CPU, RAM, DISK 및 NETWORK I/O 사용량 중 적어도 하나가 각각에 대해서 기설정된 제1 임계 사용량을 초과하는 경우, 또는 CPU 및 RAM 사용량 중 적어도 하나의 이전 주기 측정 값 대비 증가율이 각각에 대해서 기설정된 제1 임계 증가율에 도달한 경우, 상기 확장 조건을 만족하는 것으로 판단하는 것이 가능하다.
상기 부하 측정 단계는, CPU 및 RAM 사용량 중 적어도 하나를 기설정된 주기마다 서버 상태 정보로 측정하고, 상기 복제 서버 생성 단계는, 상기 기설정된 주기마다 상기 부하 측정 단계의 반복 수행에 의하여 기설정된 횟수만큼 측정된 CPU 및 RAM 사용량 중 적어도 하나의 평균 사용량이 각각에 대해서 기설정된 제2 임계 사용량에 도달한 경우, 또는 상기 기설정된 주기마다 상기 부하 측정 단계의 반복 수행에 의하여 기설정된 횟수만큼 측정된 CPU 및 RAM 사용량 중 적어도 하나의 상기 기설정된 횟수 동안의 증가율 평균이 기설정된 제2 임계 증가율에 도달하는 경우 상기 확장 조건을 만족하는 것으로 판단하는 것이 가능하다.
상기 복제 서버 생성 단계는, 상기 부하 측정 단계에 의하여 측정된 서버 상태 정보가 기설정된 확장 조건을 만족하여, 상기 서버와 동일한 복제 서버를 클라우드 서비스 상에 생성하기 위해 복제 서버의 생성이 요청된 시점이 기설정된 임계 시간 이내에 미존재하는 경우에만 상기 복제 서버를 생성하는 것이 바람직하다.
상기 복제 서버 생성 단계의 수행 후, 상기 부하 측정 단계의 반복 수행에 의하여 측정된 서버 상태 정보가 기설정된 축소 조건을 만족하는 경우, 기 생성된 복제 서버를 클라우드 서비스 상에서 제거하는 복제 서버 삭제 단계;를 더 포함하는 것이 바람직하다.
상기 부하 측정 단계는, CPU, RAM 및 NETWORK I/O 사용량 중 적어도 하나를 기설정된 주기마다 서버 상태 정보로 측정하고, 상기 복제 서버 삭제 단계는, 상기 기설정된 주기마다 상기 부하 측정 단계의 반복 수행에 의하여 기설정된 횟수만큼 측정된 CPU 및 RAM 사용량 중 적어도 하나의 상기 기설정된 횟수 동안의 감소율 평균이 기설정된 임계 감소율에 도달하는 경우, 또는 상기 NETWORK I/O 사용량이 기설정된 임계 사용량 미만인 경우 상기 축소 조건을 만족하는 것으로 판단하는 것이 바람직하다.
본 발명의 일 실시예에 따른 클라우드 서버의 자동 스케일링 장치는, 하나 이상의 프로세서 및 상기 프로세서에서 수행 가능한 명령들을 저장하는 하나 이상의 메모리를 포함하는 컴퓨팅 장치로 구현되는 클라우드 서버의 자동 스케일링 장치에 관한 것으로, 클라우드 서비스 기반에서 유저가 온라인 어드레스를 통해 접속하여 특정 서비스를 이용하기 위해서 생성되어 서버 리스트에 기등록된 서버에 대해서 기설정된 주기로 서버의 부하 정도를 나타내는 서버 상태 정보를 측정하는 부하 측정부; 상기 부하 측정부에 의하여 측정된 서버 상태 정보가 기설정된 확장 조건을 만족하는 경우, 상기 서버와 동일한 복제 서버를 클라우드 서비스 상에 생성하는 복제 서버 생성부; 및 유저가 상기 서버와 상기 복제 서버를 이용하여 특정 서비스를 이용할 수 있도록 상기 서버 및 상기 복제 서버 중 어느 하나에 대한 유저 단말의 접속을 중개하는 접속 제어부;를 포함하는 것을 특징으로 한다.
외부로부터 새로운 서버의 상기 서버 리스트에 대한 등록 요청을 수신 시, 상기 새로운 서버의 온라인 어드레스를 상기 서버 리스트에 등록하고, 서버 리스트에 등록된 서버에 대해서 상기 서버 상태 정보를 측정하도록 부하 측정부에 대한 제어 명령을 생성하고, 상기 부하 측정부의 기능 수행이 실패하여 상기 서버 상태 정보가 미수신되는 경우, 상기 서버 상태 정보가 미측정된 서버의 경우 고장 발생 서버로 판단하여 상기 서버 리스트로부터 상기 서버의 등록을 취소하는 서버 리스트 관리부;를 더 포함하는 것이 바람직하다.
본 발명에 의하면, 클라우드 서비스에 있어서 일 서버가 운용되는 동안, 부하 측정에 의하여 다양한 서버의 사용량을 측정하고, 해당 사용량이 일정 기준에 도달하거나 도달될 것으로 예상되면, 복제 서버를 생성하여 서버와 복제 서버로 유저들의 접속을 분산시키게 되고, 복제 서버를 생성하는 동안 사용량이 다른 기준에 도달하나 도달될 것으로 예상되면, 복제 서버를 삭제하여 접속을 제어하게 된다.
이에 의하면, 클라우드 서비스의 서버의 자유로운 생성 기능을 최대한으로 활용하여, 동적이고 실시간으로 서버의 부하에 따라서 접속을 분산시키거나 집중시킬 수 있어, 유저가 클라우드 서버를 이용함에 있어서 불편함을 느끼지 않도록 하는 동시에, 클라우드 서버 서비스에 있어서 자원의 낭비를 막아 최적의 사용이 가능한 구조를 구축할 수 있다.
더불어, 실시간 및 동적으로 클라우드 서버를 생성 및 삭제하여 효율적인 운용이 가능하고, 클라우드 서비스의 한정된 자원을 최대한으로 실실적으로 이용할 수 있어, 클라우드 서비스 제공 시의 수익을 극대화할 수 있는 효과가 있다.
도 1 내지 4는 본 발명의 일 실시예에 따른 클라우드 서버의 자동 스케일링 방법의 플로우차트.
도 5는 본 발명의 일 실시예에 따른 클라우드 서버의 자동 스케일링 장치의 구성 블록도.
도 6 및 7은 본 발명의 일 실시예의 구현에 따라서 복제 서버가 생성되거나 삭제되는 실시예를 설명하기 위한 도면.
도 8은 본 발명의 일 실시예의 구현에 따라서 서버 리스트가 관리되는 실시예를 설명하기 위한 도면.
도 9은 본 발명의 일 실시 예에 따른 컴퓨팅 장치의 내부 구성의 일 예.
이하에서는, 다양한 실시 예들 및/또는 양상들이 이제 도면들을 참조하여 개시된다. 하기 설명에서는 설명을 목적으로, 하나이상의 양상들의 전반적 이해를 돕기 위해 다수의 구체적인 세부사항들이 개시된다. 그러나, 이러한 양상(들)은 이러한 구체적인 세부사항들 없이도 실행될 수 있다는 점 또한 본 발명의 기술 분야에서 통상의 지식을 가진 자에게 인식될 수 있을 것이다. 이후의 기재 및 첨부된 도면들은 하나 이상의 양상들의 특정한 예시적인 양상들을 상세하게 기술한다. 하지만, 이러한 양상들은 예시적인 것이고 다양한 양상들의 원리들에서의 다양한 방법들 중 일부가 이용될 수 있으며, 기술되는 설명들은 그러한 양상들 및 그들의 균등물들을 모두 포함하고자 하는 의도이다.
본 명세서에서 사용되는 "실시 예", "예", "양상", "예시" 등은 기술되는 임의의 양상 또는 설계가 다른 양상 또는 설계들보다 양호하다거나, 이점이 있는 것으로 해석되지 않을 수도 있다.
또한, "포함한다" 및/또는 "포함하는"이라는 용어는, 해당 특징 및/또는 구성요소가 존재함을 의미하지만, 하나이상의 다른 특징, 구성요소 및/또는 이들의 그룹의 존재 또는 추가를 배제하지 않는 것으로 이해되어야 한다.
또한, 제 1, 제 2 등과 같이 서수를 포함하는 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되지는 않는다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제 1 구성요소는 제 2 구성요소로 명명될 수 있고, 유사하게 제 2 구성요소도 제 1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
또한, 본 발명의 실시 예들에서, 별도로 다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 발명의 실시 예에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
도 1 내지 4는 본 발명의 일 실시예에 따른 클라우드 서버의 자동 스케일링 방법의 플로우차트이다.
본 발명의 일 실시예에 따른 클라우드 서버의 자동 스케일링 방법은, 하나 이상의 프로세서 및 상기 프로세서에서 수행 가능한 명령들을 저장하는 하나 이상의 메모리를 포함하는 컴퓨팅 장치로 구현된다. 해당 컴퓨팅 장치는 하나 이상이 구비될 수 있으며, 서버 단말 또는 데이터 베이스의 기능을 수행하는 구성으로 이해될 수 있다. 또한 후술하는 바와 같이 컴퓨팅 장치는 다수의 기능을 수행하는 구성으로 구분되어 이해될 수 있다.
또한 서비스를 제공하는 서버를 생성하고 관리하는 클라우드 서비스 관리용 서버와 구분되어, 서버의 상태를 점검하고 서버의 등록, 생성 등을 관리하는 전용 관제 서버에 의하여 본 발명의 각 실시예에 대응되는 기능이 실행될 수 있을 것이다. 예를 들어 클라우드 서비스에서는 서버의 생성, 유지 및 삭제가 수행되며, 서버의 생성, 유지 및 삭제에 대한 제어 명령을 클라우드 서비스에 전송하는 관제 서버가 생성하여 클라우드 서비스를 관리하는 서버에 전송하는 것이다.
한편 본 발명에서 서버는, 상술한 바와 같이 클라우드 서비스에 의하여 서비스 제공 유저에게 공급됨으로서, 마치 해당 유저가 서버 단말을 운용하는 것과 같은 기능을 이용할 수 있도록 하기 위한 클라우드 상의 가상의 서버를 의미하는 것으로 이해될 수 있다.
도 1을 참조하면, 컴퓨팅 장치는 구체적으로, 클라우드 서비스 기반에서 유저가 온라인 어드레스를 통해 접속하여 특정 서비스를 이용하기 위해서 생성되어 기 저장된 서버 리스트에 등록된 서버에 대해서 기설정된 주기로 서버의 부하 정도를 나타내는 서버 상태 정보를 측정하는 부하 측정 단계(S10)를 수행한다.
온라인 어드레스는 IP 또는 도메인 주소 등 특정 서버에 접속하기 위해서 유저 단말에 의하여 입력되거나 유저 단말의 입력에 따라 가공되어 유저 단말로부터 게이트웨이 등 네트워크 상에 송출되는 정보를 의미한다. 온라인 어드레스는 본 발명에서는 특정 서비스를 제공하는 서버에 접속하기 위해서 상술한 바와 같이 유저가 입력하는 정보를 의미한다.
본 발명에서 특정 서비스는, 일반적으로 유저들이 서버에 접속하여 이용할 수 있는 모든 서비스를 의미한다. 웹 기반의 서비스의 경우 서버에 접속하여 유저 단말에서 이용 가능한 웹 페이지 서비스 등을 의미할 수 있고, 앱 기반의 서비스의 경우 서버에 접속하여 유저 단말에서 해당 앱의 구동을 위해서 데이터를 수신받을 수 있는 서비스를 의미할 수 있다.
기 저장된 서버 리스트에 등록된 서버라 함은, 클라우드 서비스 상에서 생성 및 유지되는 서버들에 대한 리스트에 등록된 서버를 의미하며, 이때 서버 리스트에 저장되는 서버의 정보는 서버의 식별 정보로서 네트워크 I/O(Input/Output)을 위한 상기의 온라인 어드레스, 서버에 제공된 CPU, RAM, DISK(데이터 저장 용량) 등에 대한 정보가 포함되거나 링크된 정보를 의미한다.
본 발명에서는 상술한 바와 같이 서버 리스트에 등록된 서버들에 대해서 서버의 부하 정도, 즉 서버의 다양한 측면에서의 사용량을 비교할 수 있는 데이터를 나타내는 서버 상태 정보가 측정된다.
본 발명의 다른 실시예에서 서버 상태 정보는 서버의 정상 동작 여부를 판단하기 위해서도 측정될 수 있다. 즉, 컴퓨팅 장치는 서버 상태 정보를 측정하기 위해서 서버 리스트에 등록된 서버의 온라인 어드레스 정보를 이용하여 각 서버에 서버 상태 정보를 측정하도록 하는 제어 명령을 전송할 수 있다.
이때, 서버 상태 정보가 정상적으로 수신(리턴)되는 경우 서버가 해당 온라인 어드레스를 통해서 정상적으로 동작하고 있는 것으로 판단할 수 있다. 반대로, S10 단계의 기능 수행이 실패하는 경우, 즉 서버 상태 정보가 정상적으로 수신(리턴)되지 않는 경우, 서버 상태 정보가 미측정된 서버에 대해서 고장이 발생된 서버로 판단하고, 서버 리스트에서 서버의 등록을 취소, 즉 서버 리스트에서 해당 서버를 삭제하는 기능을 수행할 수 있다.
한편 본 발명에서 측정되는 서버 상태 정보는, 예를 들어 가상의 서버에 클라우드 서비스의 서버 기능 제공을 위해서 각각 할당된 CPU, RAM, DISK(저장 용량) 및 각 서버의 온라인 어드레스에 대한 데이터 입출력이 가능한 네트워크 I/O(Input/Output)에 대한 사용량을 포함하는 개념으로 이해될 수 있다. 이때 서버 상태 정보는 기설정된 주기(예를 들어 1초)마다 측정될 수 있다.
이때 서버 상태 정보는 절대적 사용량뿐 아니라, 본 발명의 핵심적인 기능 수행으로서 각 서버의 한계 사용량 대비 현재 사용량의 비율인 상대적 사용량으로 측정될 수 있다. 즉, 각 서버마다 클라우드 서비스 이용에 따라서 서버의 스펙이 결정되며, 이때 예를 들어 RAM이 할당되는 경우 각 RAM의 최대 사용량이 결정될 수 있고, 서버의 한계 RAM 사용량에 현재 사용량이 근접되어 있거나 근접될 것으로 예상되는 경우 본 발명의 기능 수행에 따라서 복제 서버가 생성 및 사용되어야 하기 때문이다. 이하의 실시예에서는 상술한 예 중 최대 사용량 대비 현재 사용량의 비율을 사용량으로 측정하는 것으로 설명할 것이나, 본 발명의 권리범위가 이에 제한되지는 않을 것이다.
S10 단계의 수행이 상술한 바와 같이 수행되면서, 측정된 서버 상태 정보가 기설정된 확장 조건을 만족하는 경우, 서버와 동일한 복제 서버를 클라우드 서비스 상에 생성하는 복제 서버 생성 단계(S20)가 수행된다. 이때 복제 서버는, 클라우드 서비스 상에 서버와 같이 생성되는 가상의 서버로서, 접속 어드레스가 대상 서버와 동일하고 그 제공 기능 역시 동일한 서버를 의미한다.
상술한 확장 조건은 S10 단계의 수행에 따라서 측정된 서버 상태 정보를 다양하게 고려하여 다음과 같은 각 실시예에 따라서 결정된다.
[제1 실시예]
도 2를 참조하면, 컴퓨팅 장치는 S10 단계의 수행에 있어서, CPU, RAM, DISK 및 NETWORK I/O 사용량 중 적어도 하나를 서버 상태 정보로 측정한다(S11). 이후, S20 단계의 수행에 있어서, CPU, RAM, DISK 및 NETWORK I/O 사용량 중 적어도 하나가 각각에 대해서 기설정된 제1 임계 사용량을 초과하는 경우, 또는 CPU 및 RAM 사용량 중 적어도 하나의 이전 주기 측정 값 대비 증가율이 각각에 대해서 기설정된 제1 임계 증가율에 도달한 경우, 확장 조건을 만족하는 것으로 판단한다(S21).
예를 들어, RAM의 경우 기설정된 주기마다 측정된 평균 RAM 사용량이 최대값 대비 85%를 초과하는 경우 또는 이전 값 대비 증가율이 5%에 도달하면, 확장 조건을 만족하는 것으로 판단하여 복제 서버를 생성하게 된다.
CPU의 경우 경우 기설정된 주기마다 측정된 평균 CPU 사용량이 최대값 대비 85%를 초과하는 경우 또는 이전 값 대비 증가율이 5%에 도달하면, 확장 조건을 만족하는 것으로 판단하여 복제 서버를 생성하게 된다.
DISK의 경우 기설정된 주기마다 측정된 평균 DISK 사용량이 최대값 대비 95%를 초과하는 경우 확장 조건을 만족하는 것으로 판단하여 복제 서버를 생성하게 된다.
NETWORK I/O의 경우, 평균 네트워크 I/O(Input, Output)의 총 용량이 제한 용량의 90%인 경우 확장 조건을 만족하는 것으로 판단하여 복제 서버를 생성한다. 물론 상기 총 용량은 서버의 스펙(옵션)에 따라서 다를 수 있다(예를 들어 100M, 1G, 10G 등).
이때 상기 각 조건들은 해당 조건이 하나라도 만족하는 조건인 경우 확장 조건을 만족하는 것으로 즉시 판단할 수 있다. 특히 DISK 및 NETWORK I/O 조건의 경우 해당 조건이 만족하는 경우 별다른 조건 없이 확장 조건을 만족하는 것으로 즉시 판단할 수 있다. 조건이 모두 충족하지 못하는 경우라면, 현재 상태 값을 메모리에 저장하고, 평균값 등에 영향이 있는 값들의 경우 측정된 현재 값을 반영하여 갱신하게 된다.
[제2 실시예]
도 3을 참조하면, 도 2를 참조하면, 컴퓨팅 장치는 S10 단계의 수행에 있어서, CPU 및 RAM 사용량 중 적어도 하나를 서버 상태 정보로 측정한다(S12). 이후, S20 단계의 수행에 있어서, 기설정된 주기마다(예를 들어 1초) 부하 측정 단계(S10, S11)의 반복 수행에 의하여 기설정된 횟수(예를 들어 60회)만큼 측정된 CPU 및 RAM 사용량 중 적어도 하나의 평균 사용량이 각각에 대해서 기설정된 제2 임계 사용량에 도달한 경우, 또는 기설정된 주기마다 부하 측정 단계(S10, S11)의 반복 수행에 의하여 기설정된 횟수만큼 측정된 CPU 및 RAM 사용량 중 적어도 하나의 기설정된 횟수 동안의 증가율 평균이 기설정된 제2 임계 증가율에 도달하는 경우 확장 조건을 만족하는 것으로 판단한다(S22). 이때 기설정된 횟수는 최근의 측정 횟수를 의미한다. 즉 예를 들어 최근 60개의 측정 값을 사용하는 것을 의미한다.
예를 들어, RAM의 경우 기설정된 주기마다 측정된 최근 60회의 평균 RAM 사용량이 최대값 대비 70%를 초과하는 경우 또는 최근 60회의 증가율 평균이 10%에 도달하면, 확장 조건을 만족하는 것으로 판단하여 복제 서버를 생성하게 된다.
CPU의 경우 경우 기설정된 주기마다 측정된 최근 60회의 평균 CPU 사용량이 최대값 대비 70%를 초과하는 경우 또는 최근 60회의 증가율 평균이 10%에 도달하면, 확장 조건을 만족하는 것으로 판단하여 복제 서버를 생성하게 된다.
이때 상기 각 조건들은 해당 조건이 하나라도 만족하는 조건인 경우 확장 조건을 만족하는 것으로 즉시 판단할 수 있다. 조건이 모두 충족하지 못하는 경우라면, 현재 상태 값을 메모리에 저장하고, 평균값 등에 영향이 있는 값들의 경우 측정된 현재 값을 반영하여 갱신하게 된다.
이상과 같은 제1 및 제2 실시예는 모두 독립적으로 수행될 수 있으나 결합적으로 수행될 수 있다. 즉, 제1 및 제2 실시예에서 언급된 조건들 중 어느 하나라도 만족하게 되면 확장 조건을 만족하는 것으로 판단할 수 있는 것이다.
한편 상술한 상태 측정 정보에 의한 S20 단계의 수행은 예를 들어 컴퓨팅 장치가 클라우드 서비스 제공 서버에, 복제 서버의 생성을 요청하고, 클라우드 서비스 제공 서버가 이를 승인하여 복제 서버가 생성된 후, 컴퓨팅 장치 또는 클라우드 서비스 제공 서버에 의하여 상술한 서버 리스트에 복제 서버가 등록되는 과정을 통해 수행될 수 있다.
이때 복제 서버에 대한 지나치게 중복된 생성 요청은 트래픽 증가 및 불필요한 데이터 송수신의 문제를 발생할 수 있다. 이를 위해서 S20 단계의 수행에 있어서, S10 단계의 수행에 의해 상술한 바와 같이 서버 상태 정보가 확장 조건을 만족하여, 서버와 동일한 복제 서버를 클라우드 서비스 상에 생성하기 위해서 복제 서버의 생성이 상술한 바와 같이 요청된 시점으로서, 일정 시간 내, 즉 복제 서버의 생성이 요청된 시점이 기설정된 임계 시간 이내(예를 들어 30초)에 미존재하는 경우에만 복제 서버를 생성하는 것이 바람직하다.
한편 상술한 복제 서버의 생성에 관련된 일련의 프로세스는 반복적을 수행될 수 있다. 즉 서버와 복제 서버가 존재하는 상황에서 현재 존재하는 모든 동일 서버(서버 및 복제 서버)에 대한 총 사용량에 대해서 상술한 확장 조건이 재만족되는 경우, 복제 서버가 다시 새롭게 생성될 수 있는 것이다.
S20 단계가 상술한 바와 같이 수행되면, 컴퓨팅 장치 및 클라우드 서비스에서는, 유저가 서버와 복제 서버를 이용하여 특정 서비스를 이용할 수 있도록 서버 및 복제 서버 중 어느 하나에 대한 유저 단말의 접속을 중개하는 접속 제어 단계(S30)가 수행된다.
이때 유저 단말이 접속 어드레스를 이용하여 네트워크 상에서 서버에 접속을 요청 시, 컴퓨팅 장치 또는 라우터 등의 중개 장치는, 서버 또는 복제 서버 중, 사용량이 적은 서버로 유저 단말이 접속하도록 연결을 중개할 수 있다.
한편, 상술한 바와 같이 복제 서버가 생성되었으나, 트래픽이 줄어드는 경우, 해당 복제 서버의 운용을 중지할 필요가 있다. 클라우드 서비스 역시 총 사용량은 한정될 것이며, 이 경우 복제 서버를 제거하여 실질적인 서버 운영이 효율적으로 수행되도록 해야 하기 때문이다. 즉 해당 클라우드 서비스 상에서 그 서비스를 최대한으로 실질적으로 활용할 수 있는 효과를 얻기 위해서는, 복제 서버의 필요성에 따라서 복제 서버를 제거하여 서버를 축소할 필요가 있는 것이다.
이에 따라서, 본 발명의 일 실시예에서는, 도 4에 도시된 바와 같이, S20 단계의 수행 후, 부하 측정 단계의 반복 수행에 의하여 측정된 서버 상태 정보가 기설정된 축소 조건을 만족하는 경우, 기 생성된 복제 서버를 클라우드 서비스 상에서 제거하는 복제 서버 삭제 단계(S40)를 수행하게 된다.
이때 상술한 확장 조건 만족 여부 판단과 유사하게, S10 단계는 본 발명의 기능 수행 동안 지속적으로 수행되며, 이때 S40 단계는, 기설정된 주기마다 부하 측정 단계(S10)의 반복 수행에 의하여 기설정된 횟수(예를 들어 60회)만큼 측정된 CPU 및 RAM 사용량 중 적어도 하나의 기설정된 횟수 동안의 감소율 평균이 기설정된 임계 감소율에 도달하는 경우, 또는 NETWORK I/O 사용량이 기설정된 임계 사용량(예를 들어 총 제한 용량의 50%) 미만인 경우 축소 조건을 만족하는 것으로 판단하도록 수행될 수 있다. 이때 상술한 확장 조건 만족 여부 판단에 대한 실시예와 마찬가지로, 기설정된 횟수는 최근의 측정 횟수를 의미한다. 즉 예를 들어 최근 60개의 측정 값을 사용하는 것을 의미한다.
예를 들어 RAM 및 CPU 각각 최근 60회의 측정의 감소율의 평균이 예를 들어 10%, 50%인 경우 축소 조건을 만족하는 것으로 판단하여 복제 서버를 삭제하고 이를 통해 원 서버에 유저 단말이 접속하도록 할 수 있다. 이때 CPU, RAM 및 NETWORK I/O 사용량의 값들은 서버 및 복제 서버 양 서버를 합한 값으로 측정될 수 있다. 한편 DISK 조건은 본 발명에서 저장된 데이터가 증가한 것이며, 이는 사용량에 따라서 반 영구적 증가로 보기 때문에 별도의 조건 만족 여부를 판단하지 않는다.
상술한 본 발명의 실시예에 의하면, 클라우드 서비스에 있어서 일 서버가 운용되는 동안, 부하 측정에 의하여 다양한 서버의 사용량을 측정하고, 해당 사용량이 일정 기준에 도달하거나 도달될 것으로 예상되면, 복제 서버를 생성하여 서버와 복제 서버로 유저들의 접속을 분산시키게 되고, 복제 서버를 생성하는 동안 사용량이 다른 기준에 도달하나 도달될 것으로 예상되면, 복제 서버를 삭제하여 접속을 제어하게 된다.
이에 의하면, 클라우드 서비스의 서버의 자유로운 생성 기능을 최대한으로 활용하여, 동적이고 실시간으로 서버의 부하에 따라서 접속을 분산시키거나 집중시킬 수 있어, 유저가 클라우드 서버를 이용함에 있어서 불편함을 느끼지 않도록 하는 동시에, 클라우드 서버 서비스에 있어서 자원의 낭비를 막아 최적의 사용이 가능한 구조를 구축할 수 있다.
더불어, 실시간 및 동적으로 클라우드 서버를 생성 및 삭제하여 효율적인 운용이 가능하고, 클라우드 서비스의 한정된 자원을 최대한으로 실실적으로 이용할 수 있어, 클라우드 서비스 제공 시의 수익을 극대화할 수 있는 효과가 있다.
도 5는 본 발명의 일 실시예에 따른 클라우드 서버의 자동 스케일링 장치의 구성 블록도이다. 이하의 설명에 있어서 도 1 내지 4에 대한 설명과 중복되는 부분에 대한 설명은 이를 생략하기로 한다.
도 5를 참조하면, 본 발명의 일 실시예에 따른 클라우드 서버의 자동 스케일링 장치(10, 이하 장치라 함)는, 예를 들어 클라우드 서비스를 제공하는 서버에 포함되거나 이에 연동되어 존재할 수 있다.
구체적으로 장치(10)는 부하 측정부(11), 복제 서버 생성부(12), 접속 제어부(13), 복제 서버 삭제부(15) 및 서버 리스트 관리부(14)를 포함할 수 있다. 먼저 부하 측정부(11)는 상술한 클라우드 서비스(20) 상의 서버(21)에 대해서 기설정된 주기로 서버(21)의 부하 정도를 나타내는 서버 상태 정보를 측정하는 기능을 수행한다. 즉 도 1 내지 4에 대한 설명에서 S10 단계 및 도 2 및 3의 S11 및 S12에 관한 설명에 대응되는 모든 기능을 수행하는 구성을 의미한다.
한편 복제 서버 생성부(12)는 부하 측정부(11)에 의하여 측정된 서버 상태 정보가 기설정된 확장 조건을 만족하는 경우, 서버(21)와 동일한 복제 서버(22)를 클라우드 서비스(20) 상에 생성하는 기능을 수행한다. 즉 상술한 설명에서 S20 및 도 2와 3의 S21 및 S22에 대한 설명에서 언급한 모든 기능을 수행하는 구성을 의미한다.
접속 제어부(13)는 유저가 서버(21)와 상기 복제 서버(22)를 이용하여 특정 서비스를 이용할 수 있도록 서버(21) 및 복제 서버(22) 중 어느 하나에 대한 유저 단말(30)의 접속을 중개하는 기능을 수행한다. 즉 상술한 설명에 있어서 S30 단계에 대한 설명에서 언급한 모든 기능을 수행하는 구성을 의미한다.
복제 서버 삭제부(15)는, 복제 서버(22) 및 서버(21)에 대한 부하 측정부(11)의 기능 수행에 의하여 측정되는 서버 상태 정보가 기설정된 축소 조건을 만족 시, 복제 서버(22)를 삭제하는 기능을 수행한다. 즉, 상술한 설명에서 도 4에 대한 S40 단계의 설명에서 언급된 모든 기능을 수행하는 구성을 의미한다.
서버 리스트 관리부(14)는 외부로부터 새로운 서버의 상술한 서버 리스트에 대한 등록 요청을 수신 시, 새로운 서버의 온라인 어드레스를 서버 리스트에 등록하고, 서버 리스트에 등록된 서버에 대해서 서버 상태 정보를 측정하도록 부하 측정부(11)에 대한 제어 명령을 생성하고, 부하 측정부(11)의 기능 수행이 실패하여 서버 상태 정보가 미수신되는 경우, 서버 상태 정보가 미측정된 서버의 경우 고장 발생 서버로 판단하여 서버 리스트로부터 상기 서버의 등록을 취소하는 기능을 수행한다.
도 6 및 7은 본 발명의 일 실시예의 구현에 따라서 복제 서버가 생성되거나 삭제되는 실시예를 설명하기 위한 도면이다.
먼저 도 6을 참조하면, 특정 서버(21)에 대해서 상술한 기능 수행에 의하여 일정한 주기(t1, t2 ~ t60, t61)마다 CPU, RAM, DISK, NETWORK I/O에 대한 사용량이 그 최대치에 대한 상대 비율값으로 측정된다.
이때, 상술한 실시예에 있어서 평균값이 특정한 수치를 초과하는 시점(t4)의 경우 또는 특정 구간(t1 ~ t60)의 증가율(d1)이 상술한 임계 수치에 도달하는 경우 확장 조건을 만족하는 것으로 판단하여 서버(21)와 동일한 복제 서버를 생성하게 된다.
한편 도 7을 참조하면, 특정 서버(21) 및 복제 서버(22)에 대해서 상술한 기능 수행에 의하여 일정한 주기(t1, t2 ~ t60, t61)마다 CPU, RAM, DISK, NETWORK I/O에 대한 사용량이 그 최대치에 대한 상대 비율값으로 측정된다.
이때, 상술한 실시예에 있어서 두 서버의 총 사용량에 대해서 특정 구간(t1 ~ t60)의 감소율(d2)이 상술한 임계 수치에 도달하는 경우 축소 조건을 만족하는 것으로 판단하여 복제 서버(22)를 삭제하게 된다.
도 8은 본 발명의 일 실시예의 구현에 따라서 서버 리스트가 관리되는 실시예를 설명하기 위한 도면이다.
도 8을 참조하면, 서버 리스트(100)는 상술한 바와 같이 서버 리스트 관리부(14)에 의하여 관리된다. 이때 상술한 바와 같이 서버 리스트(100)에는 서버의 이름(N) 및 기타 정보(Info)로서 예를 들어 온라인 접속을 위한 어드레스 등이 관리될 수 있다. 물론, 상술한 바와 같이 각 데이터에는 서버의 구체적인 스펙 정보가 연동되어 관리될 수 있다.
이때 새로운 서버(24)에 대한 등록이 요청되면, 이에 대한 유효성 인증 과정을 통해 클라우드 서비스(20) 상에 새로운 서버(24)가 생성되며, 서버 리스트(100)에 새로운 서버에 대한 정보(101)가 등록되어 관리된다.
한편, 서버(23)의 이용 필요성이 사라지거나 상술한 바와 같이 서버 상태 정보의 측정이 실패하는 경우, 서버 리스트 관리부(14)는 해당 서버(23)에 대한 삭제를 요청하여 서버 리스트(100)에서 해당 서버에 대한 정보(102)를 삭제하게 된다.
도 9은 본 발명의 일 실시 예에 따른 컴퓨팅 장치의 내부 구성의 일 예를 도시하였으며, 이하의 설명에 있어서, 상술한 도 1 내지 8에 대한 설명과 중복되는 불필요한 실시 예에 대한 설명은 생략하기로 한다.
도 9에 도시한 바와 같이, 컴퓨팅 장치(10000)은 적어도 하나의 프로세서(processor)(11100), 메모리(memory)(11200), 주변장치 인터페이스(peripheral interface)(11300), 입/출력 서브시스템(I/O subsystem)(11400), 전력 회로(11500) 및 통신 회로(11600)를 적어도 포함할 수 있다. 이때, 컴퓨팅 장치(10000)은 촉각 인터페이스 장치에 연결된 유저 단말이기(A) 혹은 전술한 컴퓨팅 장치(B)에 해당될 수 있다.
메모리(11200)는, 일례로 고속 랜덤 액세스 메모리(high-speed random access memory), 자기 디스크, 에스램(SRAM), 디램(DRAM), 롬(ROM), 플래시 메모리 또는 비휘발성 메모리를 포함할 수 있다. 메모리(11200)는 컴퓨팅 장치(10000)의 동작에 필요한 소프트웨어 모듈, 명령어 집합 또는 그밖에 다양한 데이터를 포함할 수 있다.
이때, 프로세서(11100)나 주변장치 인터페이스(11300) 등의 다른 컴포넌트에서 메모리(11200)에 액세스하는 것은 프로세서(11100)에 의해 제어될 수 있다.
주변장치 인터페이스(11300)는 컴퓨팅 장치(10000)의 입력 및/또는 출력 주변장치를 프로세서(11100) 및 메모리 (11200)에 결합시킬 수 있다. 프로세서(11100)는 메모리(11200)에 저장된 소프트웨어 모듈 또는 명령어 집합을 실행하여 컴퓨팅 장치(10000)을 위한 다양한 기능을 수행하고 데이터를 처리할 수 있다.
입/출력 서브시스템(11400)은 다양한 입/출력 주변장치들을 주변장치 인터페이스(11300)에 결합시킬 수 있다. 예를 들어, 입/출력 서브시스템(11400)은 모니터나 키보드, 마우스, 프린터 또는 필요에 따라 터치스크린이나 센서 등의 주변장치를 주변장치 인터페이스(11300)에 결합시키기 위한 컨트롤러를 포함할 수 있다. 다른 측면에 따르면, 입/출력 주변장치들은 입/출력 서브시스템(11400)을 거치지 않고 주변장치 인터페이스(11300)에 결합될 수도 있다.
전력 회로(11500)는 단말기의 컴포넌트의 전부 또는 일부로 전력을 공급할 수 있다. 예를 들어 전력 회로(11500)는 전력 관리 시스템, 배터리나 교류(AC) 등과 같은 하나 이상의 전원, 충전 시스템, 전력 실패 감지 회로(power failure detection circuit), 전력 변환기나 인버터, 전력 상태 표시자 또는 전력 생성, 관리, 분배를 위한 임의의 다른 컴포넌트들을 포함할 수 있다.
통신 회로(11600)는 적어도 하나의 외부 포트를 이용하여 다른 컴퓨팅 장치와 통신을 가능하게 할 수 있다.
또는 상술한 바와 같이 필요에 따라 통신 회로(11600)는 RF 회로를 포함하여 전자기 신호(electromagnetic signal)라고도 알려진 RF 신호를 송수신함으로써, 다른 컴퓨팅 장치와 통신을 가능하게 할 수도 있다.
이러한 도 9의 실시 예는, 컴퓨팅 장치(10000)의 일례일 뿐이고, 컴퓨팅 장치(11000)은 도 9에 도시된 일부 컴포넌트가 생략되거나, 도 9에 도시되지 않은 추가의 컴포넌트를 더 구비하거나, 2개 이상의 컴포넌트를 결합시키는 구성 또는 배치를 가질 수 있다. 예를 들어, 모바일 환경의 통신 단말을 위한 컴퓨팅 장치는 도 9에도시된 컴포넌트들 외에도, 터치스크린이나 센서 등을 더 포함할 수도 있으며, 통신 회로(1160)에 다양한 통신방식(WiFi, 3G, LTE, Bluetooth, NFC, Zigbee 등)의 RF 통신을 위한 회로가 포함될 수도 있다. 컴퓨팅 장치(10000)에 포함 가능한 컴포넌트들은 하나 이상의 신호 처리 또는 어플리케이션에 특화된 집적 회로를 포함하는 하드웨어, 소프트웨어, 또는 하드웨어 및 소프트웨어 양자의 조합으로 구현될 수 있다.
본 발명의 실시 예에 따른 방법들은 다양한 컴퓨팅 장치를 통하여 수행될 수 있는 프로그램 명령(instruction) 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 특히, 본 실시 예에 따른 프로그램은 PC 기반의 프로그램 또는 모바일 단말 전용의 어플리케이션으로 구성될 수 있다. 본 발명이 적용되는 애플리케이션은 파일 배포 시스템이 제공하는 파일을 통해 이용자 단말에 설치될 수 있다. 일 예로, 파일 배포 시스템은 이용자 단말이기의 요청에 따라 상기 파일을 전송하는 파일 전송부(미도시)를 포함할 수 있다.
이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시 예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술 분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로 (collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상장치(virtual equipment), 컴퓨터 저장 매체 또는 장치에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨팅 장치상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시 예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시 예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광 기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 실시 예들이 비록 한정된 실시 예와 도면에 의해 설명되었으나, 해당 기술 분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다. 그러므로, 다른 구현들, 다른 실시 예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다
.

Claims (9)

  1. 하나 이상의 프로세서 및 상기 프로세서에서 수행 가능한 명령들을 저장하는 하나 이상의 메모리를 포함하는 컴퓨팅 장치로 구현되는 클라우드 서버의 자동 스케일링 방법에 관한 것으로,
    클라우드 서비스 기반에서 유저가 온라인 어드레스를 통해 접속하여 특정 서비스를 이용하기 위해서 생성되어 기 저장된 서버 리스트에 등록된 서버에 대해서 기설정된 주기로 서버의 부하 정도를 나타내는 서버 상태 정보를 측정하는 부하 측정 단계;
    상기 부하 측정 단계에 의하여 측정된 서버 상태 정보가 기설정된 확장 조건을 만족하는 경우, 상기 서버와 동일한 복제 서버를 클라우드 서비스 상에 생성하는 복제 서버 생성 단계; 및
    유저가 상기 서버와 상기 복제 서버를 이용하여 특정 서비스를 이용할 수 있도록 상기 서버 및 상기 복제 서버 중 어느 하나에 대한 유저 단말의 접속을 중개하는 접속 제어 단계;를 포함하는 것을 특징으로 하는 클라우드 서버의 자동 스케일링 방법.
  2. 제1항에 있어서,
    상기 부하 측정 단계는,
    CPU, RAM, DISK 및 NETWORK I/O 사용량 중 적어도 하나를 서버 상태 정보로 측정하고,
    상기 복제 서버 생성 단계는,
    CPU, RAM, DISK 및 NETWORK I/O 사용량 중 적어도 하나가 각각에 대해서 기설정된 제1 임계 사용량을 초과하는 경우, 또는 CPU 및 RAM 사용량 중 적어도 하나의 이전 주기 측정 값 대비 증가율이 각각에 대해서 기설정된 제1 임계 증가율에 도달한 경우, 상기 확장 조건을 만족하는 것으로 판단하는 것을 특징으로 하는 클라우드 서버의 자동 스케일링 방법.
  3. 제1항에 있어서,
    상기 부하 측정 단계는,
    CPU 및 RAM 사용량 중 적어도 하나를 기설정된 주기마다 서버 상태 정보로 측정하고,
    상기 복제 서버 생성 단계는,
    상기 기설정된 주기마다 상기 부하 측정 단계의 반복 수행에 의하여 기설정된 횟수만큼 측정된 CPU 및 RAM 사용량 중 적어도 하나의 평균 사용량이 각각에 대해서 기설정된 제2 임계 사용량에 도달한 경우, 또는 상기 기설정된 주기마다 상기 부하 측정 단계의 반복 수행에 의하여 기설정된 횟수만큼 측정된 CPU 및 RAM 사용량 중 적어도 하나의 상기 기설정된 횟수 동안의 증가율 평균이 기설정된 제2 임계 증가율에 도달하는 경우 상기 확장 조건을 만족하는 것으로 판단하는 것을 특징으로 하는 클라우드 서버의 자동 스케일링 방법.
  4. 제1항에 있어서,
    상기 복제 서버 생성 단계는,
    상기 부하 측정 단계에 의하여 측정된 서버 상태 정보가 기설정된 확장 조건을 만족하여, 상기 서버와 동일한 복제 서버를 클라우드 서비스 상에 생성하기 위해 복제 서버의 생성이 요청된 시점이 기설정된 임계 시간 이내에 미존재하는 경우에만 상기 복제 서버를 생성하는 것을 특징으로 하는 클라우드 서버의 자동 스케일링 방법.
  5. 제1항에 있어서,
    상기 복제 서버 생성 단계의 수행 후,
    상기 부하 측정 단계의 반복 수행에 의하여 측정된 서버 상태 정보가 기설정된 축소 조건을 만족하는 경우, 기 생성된 복제 서버를 클라우드 서비스 상에서 제거하는 복제 서버 삭제 단계;를 더 포함하는 것을 특징으로 하는 클라우드 서버의 자동 스케일링 방법.
  6. 제5항에 있어서,
    상기 부하 측정 단계는,
    CPU, RAM, DISK 및 NETWORK I/O 사용량 중 적어도 하나를 기설정된 주기마다 서버 상태 정보로 측정하고,
    상기 복제 서버 삭제 단계는,
    상기 기설정된 주기마다 상기 부하 측정 단계의 반복 수행에 의하여 기설정된 횟수만큼 측정된 CPU 및 RAM 사용량 중 적어도 하나의 상기 기설정된 횟수 동안의 감소율 평균이 기설정된 임계 감소율에 도달하는 경우, 또는 상기 NETWORK I/O 사용량이 기설정된 임계 사용량 미만인 경우 상기 축소 조건을 만족하는 것으로 판단하는 것을 특징으로 하는 클라우드 서버의 자동 스케일링 방법.
  7. 하나 이상의 프로세서 및 상기 프로세서에서 수행 가능한 명령들을 저장하는 하나 이상의 메모리를 포함하는 컴퓨팅 장치로 구현되는 클라우드 서버의 자동 스케일링 장치에 관한 것으로,
    클라우드 서비스 기반에서 유저가 온라인 어드레스를 통해 접속하여 특정 서비스를 이용하기 위해서 생성되어 서버 리스트에 기등록된 서버에 대해서 기설정된 주기로 서버의 부하 정도를 나타내는 서버 상태 정보를 측정하는 부하 측정부;
    상기 부하 측정부에 의하여 측정된 서버 상태 정보가 기설정된 확장 조건을 만족하는 경우, 상기 서버와 동일한 복제 서버를 클라우드 서비스 상에 생성하는 복제 서버 생성부; 및
    유저가 상기 서버와 상기 복제 서버를 이용하여 특정 서비스를 이용할 수 있도록 상기 서버 및 상기 복제 서버 중 어느 하나에 대한 유저 단말의 접속을 중개하는 접속 제어부;를 포함하는 것을 특징으로 하는 클라우드 서버의 자동 스케일링 장치.
  8. 제7항에 있어서,
    외부로부터 새로운 서버의 상기 서버 리스트에 대한 등록 요청을 수신 시, 상기 새로운 서버의 온라인 어드레스를 상기 서버 리스트에 등록하고, 서버 리스트에 등록된 서버에 대해서 상기 서버 상태 정보를 측정하도록 부하 측정부에 대한 제어 명령을 생성하고, 상기 부하 측정부의 기능 수행이 실패하여 상기 서버 상태 정보가 미수신되는 경우, 상기 서버 상태 정보가 미측정된 서버의 경우 고장 발생 서버로 판단하여 상기 서버 리스트로부터 상기 서버의 등록을 취소하는 서버 리스트 관리부;를 더 포함하는 것을 특징으로 하는 클라우드 서버의 자동 스케일링 장치.
  9. 컴퓨터-판독가능 기록매체로서,
    상기 컴퓨터-판독가능 기록매체는, 컴퓨팅 장치로 하여금 이하의 단계들을 수행하도록 하는 명령들을 저장하며, 상기 단계들은:
    클라우드 서비스 기반에서 유저가 온라인 어드레스를 통해 접속하여 특정 서비스를 이용하기 위해서 생성되어 기 저장된 서버 리스트에 등록된 서버에 대해서 기설정된 주기로 서버의 부하 정도를 나타내는 서버 상태 정보를 측정하는 부하 측정 단계;
    상기 부하 측정 단계에 의하여 측정된 서버 상태 정보가 기설정된 확장 조건을 만족하는 경우, 상기 서버와 동일한 복제 서버를 클라우드 서비스 상에 생성하는 복제 서버 생성 단계; 및
    유저가 상기 서버와 상기 복제 서버를 이용하여 특정 서비스를 이용할 수 있도록 상기 서버 및 상기 복제 서버 중 어느 하나에 대한 유저 단말의 접속을 중개하는 접속 제어 단계;를 포함하는 것을 특징으로 하는 컴퓨터-판독가능 기록매체.
KR1020190002119A 2019-01-08 2019-01-08 클라우드 서버의 자동 스케일링 방법, 장치 및 컴퓨터-판독가능기록매체 KR102150016B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190002119A KR102150016B1 (ko) 2019-01-08 2019-01-08 클라우드 서버의 자동 스케일링 방법, 장치 및 컴퓨터-판독가능기록매체

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190002119A KR102150016B1 (ko) 2019-01-08 2019-01-08 클라우드 서버의 자동 스케일링 방법, 장치 및 컴퓨터-판독가능기록매체

Publications (2)

Publication Number Publication Date
KR20200086393A true KR20200086393A (ko) 2020-07-17
KR102150016B1 KR102150016B1 (ko) 2020-09-01

Family

ID=71832473

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190002119A KR102150016B1 (ko) 2019-01-08 2019-01-08 클라우드 서버의 자동 스케일링 방법, 장치 및 컴퓨터-판독가능기록매체

Country Status (1)

Country Link
KR (1) KR102150016B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023090807A1 (ko) * 2021-11-19 2023-05-25 에스케이 주식회사 모델 서버 스케일링을 제어하는 ai 모델 운영 장치 및 방법
WO2023090784A1 (ko) * 2021-11-19 2023-05-25 에스케이 주식회사 단일 엔드포인트를 이용한 ai 모델 운영 장치 및 방법

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002123435A (ja) * 2000-10-17 2002-04-26 Hitachi Ltd 情報提供装置および方法
JP2004062441A (ja) * 2002-07-26 2004-02-26 Ntt Docomo Inc サービス管理システム、サービス管理方法、サーバ管理装置、通信端末及びサーバ装置
KR20150078496A (ko) * 2013-12-30 2015-07-08 주식회사 케이티 네트워크 트래픽과 서버 부하에 따른 복제서버 자원의 동적 관리 방법,그 장치 및 시스템

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002123435A (ja) * 2000-10-17 2002-04-26 Hitachi Ltd 情報提供装置および方法
JP2004062441A (ja) * 2002-07-26 2004-02-26 Ntt Docomo Inc サービス管理システム、サービス管理方法、サーバ管理装置、通信端末及びサーバ装置
KR20150078496A (ko) * 2013-12-30 2015-07-08 주식회사 케이티 네트워크 트래픽과 서버 부하에 따른 복제서버 자원의 동적 관리 방법,그 장치 및 시스템

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023090807A1 (ko) * 2021-11-19 2023-05-25 에스케이 주식회사 모델 서버 스케일링을 제어하는 ai 모델 운영 장치 및 방법
WO2023090784A1 (ko) * 2021-11-19 2023-05-25 에스케이 주식회사 단일 엔드포인트를 이용한 ai 모델 운영 장치 및 방법

Also Published As

Publication number Publication date
KR102150016B1 (ko) 2020-09-01

Similar Documents

Publication Publication Date Title
Gai et al. Dynamic energy-aware cloudlet-based mobile cloud computing model for green computing
KR102290527B1 (ko) 파워 사용량에 대한 실측을 통해 가상 머신을 선별적으로 제공하는 방법, 장치 및 시스템
US20210037466A1 (en) Elastic Resource Control in a Container Orchestration Environment
CN108696381B (zh) 一种协议配置方法及装置
KR101939075B1 (ko) 시스템, 가상화 제어 장치, 가상화 제어 장치의 제어 방법 및 프로그램
US9842037B2 (en) Method and apparatus for verifying configuration
TWI344090B (en) Management of a scalable computer system
KR101430649B1 (ko) 클라우드 환경 내의 데이터 분석 서비스 제공 시스템 및 방법
CN105549904A (zh) 一种应用于存储系统中的数据迁移方法及存储设备
KR102122913B1 (ko) 분산형 api 프록시 시스템 및 그러한 시스템에서 트래픽을 관리하는 장치 및 방법
JP2002024192A (ja) 計算機資源分割装置および資源分割方法
US9110696B2 (en) Thin client system, connection management server, connection management method and connection management program
JP6001099B2 (ja) ピアツーピア接続を実行するためのシステム及び方法
Ubarhande et al. Novel data-distribution technique for Hadoop in heterogeneous cloud environments
US10866838B2 (en) Cluster computing service assurance apparatus and method
KR102150016B1 (ko) 클라우드 서버의 자동 스케일링 방법, 장치 및 컴퓨터-판독가능기록매체
US10587680B2 (en) Efficient transaction level workload management across multi-tier heterogeneous middleware clusters
KR20150117258A (ko) 분산형 컴퓨팅 아키텍쳐
EP3353649A1 (en) Heterogeneous distributed runtime code that shares iot resources
US20230136612A1 (en) Optimizing concurrent execution using networked processing units
KR20190132009A (ko) 블록체인 기반 트랜잭션 관리 시스템 및 그 동작 방법
CN104063281A (zh) 一种调控虚拟机物理内存的方法和装置
GB2507816A (en) Calculating timeout for remote task execution from network delays and processing duration on local application/hardware replica
CN105335234A (zh) 一种虚拟机即时迁移方法
WO2018009103A1 (en) Power manager and method performed thereby for managing power of a datacentre

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant