KR102122176B1 - 향상된 확장성 및 자율성을 갖는 컨테이너 기반 클라우드 시스템 및 클라우드 서비스 제공 방법 - Google Patents

향상된 확장성 및 자율성을 갖는 컨테이너 기반 클라우드 시스템 및 클라우드 서비스 제공 방법 Download PDF

Info

Publication number
KR102122176B1
KR102122176B1 KR1020200018698A KR20200018698A KR102122176B1 KR 102122176 B1 KR102122176 B1 KR 102122176B1 KR 1020200018698 A KR1020200018698 A KR 1020200018698A KR 20200018698 A KR20200018698 A KR 20200018698A KR 102122176 B1 KR102122176 B1 KR 102122176B1
Authority
KR
South Korea
Prior art keywords
container
module
database
user terminal
service
Prior art date
Application number
KR1020200018698A
Other languages
English (en)
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 KR1020200018698A priority Critical patent/KR102122176B1/ko
Application granted granted Critical
Publication of KR102122176B1 publication Critical patent/KR102122176B1/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/1004Server selection for load balancing
    • H04L67/1014Server selection for load balancing based on the content of a request
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3006Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/301Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is a virtual computing platform, e.g. logically partitioned systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/214Database migration support
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • 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/5061Partitioning or combining of resources
    • G06F9/5072Grid computing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • 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/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • 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

Abstract

본 발명은 클라우드 내에서 할당된 영역을 가지며, 컨테이너 기반으로 이벤트 데이터를 저장하는 인메모리 클러스터; 네트워크 연결된 사용자 단말기로 클라우드 서비스를 제공하기 위한 서버 모듈; 및 제1 데이터베이스와 제2 데이터베이스; 를 포함하고, 상기 서버 모듈은, 상기 이벤트 데이터를 이용하여 클라우드 서비스를 제공하는 컨테이너 구조의 서비스 모듈; 상기 서비스 모듈이 Web API(Application Programming Interface)를 통해 상기 제1 데이터베이스 및 상기 제2 데이터베이스에 대한 접근이 가능하도록 하는 컨테이너 구조의 데이터 접근 제어 모듈; 및 상기 제1 데이터베이스에 저장된 정보를 다른 상기 제2 데이터베이스로 복제하는 컨테이너 구조의 데이터 분산 모듈; 을 포함하는 향상된 확장성 및 자율성을 갖는 컨테이너 기반 클라우드 시스템을 제공할 수 있다.

Description

향상된 확장성 및 자율성을 갖는 컨테이너 기반 클라우드 시스템 및 클라우드 서비스 제공 방법{CLOUD SYSTEM BASED ON CONTAINER AND METHOD FOR PROVIDING CLOUD SERVICE HAVING ENHANCED SCALABILITY AND AUTONOMY}
본 발명은 향상된 확장성 및 자율성을 갖는 컨테이너 기반 클라우드 시스템 및 클라우드 서비스 제공 방법에 관한 것으로, 보다 상세하게는 클라우드 환경에 적합한 분산 처리에 강건한 서비스를 제공 가능한 컨테이너 기반 클라우드 시스템 및 클라우드 서비스 제공 방법에 관한 것이다.
서버 기반의 웹 호스팅은 서버 단위의 운용으로 제한되어 활용성이 떨어지는 문제점이 있다. 즉, 서버 기반의 호스팅은 서버 전체에 대한 완전한 활용이 사실상 어려우며, 상호 협의가 불가능한 전체 고객을 대상으로 서버 호스팅의 효율성을 극대화하는 것은 매우 어렵다. 또한, 서버 기반의 호스팅은 한정된 인력으로 다수의 서버를 관리하고 있어 운용시 관리 인력에 매우 큰 업무 부담을 줄 수 있다.
최근, 인터넷 기술을 활용하여 가상화된 IT(information technology) 자원을 서비스로 제공하는 클라우드 컴퓨팅에 대한 관심이 높아짐에 따라 전 세계적으로 클라우드 관련 서비스와 제품들이 많이 출시되고 있다.
클라우드 컴퓨팅은 분산 처리 기술과 가상화 기술을 이용하여 스토리지, 네트워크, 플랫폼 및 컴퓨터 리소스를 사용자가 손쉽게 대여할 수 있도록 해주기 때문에 사용자는 인터넷 접속과 연산 기능을 갖춘 단말기만 갖고 있다면 어디서나 전산 작업이 가능하다. 가장 보편적인 클라우드 서비스 유형은 IaaS(Infrastructure as Service), PaaS(Platform as Service), SaaS(Software as Service)이 있다.
다만, 이러한 클라우드 서비스는 한정된 자원으로 인하여 사용자가 늘어날 때마다 성능 지연이나 시스템 지연 등의 문제가 발생할 우려가 있으며, 이에 따라 보다 향상된 확장성 및 자율성을 갖는 클라우드 시스템에 대한 연구 개발이 필요한 실정이다.
상술한 문제점을 해결하기 위해 안출된 본 발명의 목적은 향상된 확장성과 자율성을 갖는 향상된 확장성 및 자율성을 갖는 컨테이너 기반 클라우드 시스템 및 클라우드 서비스 제공 방법을 제공하기 위한 것이다.
본 발명의 실시예에 의한 향상된 확장성 및 자율성을 갖는 컨테이너 기반 클라우드 시스템은, 클라우드 내에서 할당된 영역을 가지며, 컨테이너 기반으로 이벤트 데이터를 저장하는 인메모리 클러스터, 네트워크 연결된 사용자 단말기로 클라우드 서비스를 제공하기 위한 서버 모듈, 및 제1 데이터베이스와 제2 데이터베이스를 포함하고, 상기 서버 모듈은, 상기 이벤트 데이터를 이용하여 클라우드 서비스를 제공하는 컨테이너 구조의 서비스 모듈, 상기 서비스 모듈이 Web API(Application Programming Interface)를 통해 상기 제1 데이터베이스 및 상기 제2 데이터베이스에 대한 접근이 가능하도록 하는 컨테이너 구조의 데이터 접근 제어 모듈, 및 상기 제1 데이터베이스에 저장된 정보를 다른 상기 제2 데이터베이스로 복제하는 컨테이너 구조의 데이터 분산 모듈을 포함할 수 있다.
또한, 상기 데이터 접근 제어 모듈은, POST, GET, PUT, 및 DELETE를 포함하는 HTTP 메소드(Method) 중 어느 하나와 상기 서비스 모듈이 처리하고자 하는 데이터의 URL(Uniform Resource Locator)을 포함하는 Web API를 상기 서비스 모듈로 제공할 수 있다.
또한, 상기 데이터 분산 모듈은, 상기 제1 데이터베이스에 기준치 이상의 트래픽이 발생한 경우 상기 제1 데이터베이스에 저장된 데이터의 적어도 일부를 상기 제2 데이터베이스로 복제할 수 있다.
또한, 상기 서버 모듈은, 상기 사용자 단말기의 인증을 수행하기 위한 컨테이너 구조의 보안 모듈을 더 포함하고, 상기 보안 모듈은, 상기 사용자 단말기 별 인증 키를 생성하여 상기 인메모리 클러스터에 저장하고, 상기 사용자 단말기가 상기 클라우드 서비스를 이용하는 동안 상기 인메모리 클러스터에 저장된 인증 키를 이용하여 상기 사용자 단말기의 인증을 주기적으로 수행할 수 있다.
또한, 상기 사용자 단말기에 의한 트래픽에 대응하여, 상기 보안 모듈의 개수를 조절하는 관리 모듈을 더 포함할 수 있다.
또한, 상기 관리 모듈은, 상기 사용자 단말기에 의한 트래픽에 대응하여 상기 서비스 모듈의 개수를 조절할 수 있다.
또한, 상기 인메모리 클러스터는, 상기 인증 키 및 상기 이벤트 데이터를 캐쉬에 저장하는 컨테이너 구조의 슬레이브 노드, 상기 슬레이브 노드의 상태를 감시하는 컨테이너 구조의 마스터 노드, 및 상기 인메모리 클러스터의 정보를 저장하는 컨테이터 구조의 매니저 노드를 포함할 수 있다.
또한, 상기 마스터 노드는, 확보된 자원의 활용량이 임계치에 도달한 경우 네트워크 연결된 관리자 단말기로 알림을 전송하고, 상기 매니저 노드는, 상기 관리자 단말기로부터 전송된 요청에 대응하여 상기 슬레이브 노드를 추가 생성할 수 있다.
본 발명의 실시예에 의한 확장성 및 자율성을 갖는 컨테이너 기반 클라우드 서비스 제공 방법은, 네트워크 연결된 사용자 단말기 별 인증 키를 생성하고, 상기 인증 키를 클라우드 내에서 할당된 영역을 가지는 컨테이너 기반의 인메모리 클러스터에 저장하는 단계, 컨테이너 구조의 보안 모듈에 의해, 상기 사용자 단말기가 상기 클라우드 서비스를 이용하는 동안 상기 인메모리 클러스터에 저장된 인증 키를 이용하여 상기 사용자 단말기의 인증을 주기적으로 수행하는 단계, 및 컨테이너 구조의 서비스 모듈을 통해 인증된 사용자 단말기로 클라우드 서비스를 제공하는 단계를 포함하고, 상기 사용자 단말기로 클라우드 서비스를 제공하는 단계는, 컨테이너 구조의 데이터 접근 제어 모듈에 의해, 상기 서비스 모듈이 Web API(Application Programming Interface)를 통해 제1 데이터베이스 및 제2 데이터베이스에 대한 접근이 가능하도록 하는 단계, 및 컨테이너 구조의 데이터 분산 모듈에 의해, 상기 제1 데이터베이스에 저장된 정보를 다른 상기 제2 데이터베이스로 복제하는 단계를 포함할 수 있다.
또한, 상기 데이터 접근 제어 모듈은, POST, GET, PUT, 및 DELETE를 포함하는 HTTP 메소드(Method) 중 어느 하나와 상기 서비스 모듈이 필요로 하는 데이터의 URL(Uniform Resource Locator)을 포함하는 Web API를 상기 서비스 모듈로 제공할 수 있다.
또한, 상기 데이터 분산 모듈은, 상기 제1 데이터베이스에 기준치 이상의 트래픽이 발생한 경우 상기 제1 데이터베이스에 저장된 데이터의 적어도 일부를 상기 제2 데이터베이스로 복제할 수 있다.
또한, 관리 모듈에 의해, 상기 사용자 단말기에 의한 트래픽에 대응하여 상기 보안 모듈의 개수를 조절하는 단계를 더 포함할 수 있다.
또한, 상기 관리 모듈에 의해, 상기 사용자 단말기에 의한 트래픽에 대응하여 상기 서비스 모듈의 개수를 조절하는 단계를 더 포함할 수 있다.
또한, 상기 인메모리 클러스터는, 상기 인증 키 및 상기 이벤트 데이터를 캐쉬에 저장하는 컨테이너 구조의 슬레이브 노드, 상기 슬레이브 노드의 상태를 감시하는 컨테이너 구조의 마스터 노드, 및 상기 인메모리 클러스터의 정보를 저장하는 컨테이터 구조의 매니저 노드를 포함할 수 있다.
또한, 상기 마스터 노드는, 확보된 자원의 활용량이 임계치에 도달한 경우 네트워크 연결된 관리자 단말기로 알림을 전송하고, 상기 매니저 노드는, 상기 관리자 단말기로부터 전송된 요청에 대응하여 상기 슬레이브 노드를 추가 생성할 수 있다.
이상 살펴본 바와 같은 본 발명에 따르면, 향상된 확장성과 자율성을 갖는 향상된 확장성 및 자율성을 갖는 컨테이너 기반 클라우드 시스템 및 클라우드 서비스 제공 방법을 제공할 수 있다.
도 1은 본 발명의 실시예에 의한 컨테이너 기반의 클라우드 시스템과 사용자 단말기의 연결 관계를 나타낸 도면이다.
도 2a는 기존의 가상머신 계층도이고, 도 2b는 본 발명의 실시예에 의한 컨테이너 계층도이다.
도 3은 본 발명의 실시예에 의한 컨테이너 기반 클라우드 시스템의 아키텍쳐(Architecture)를 나타낸 도면이다.
도 4는 기존 애플리케이션의 분산처리 방식을 나타낸 도면이다.
도 5는 본 발명의 실시예에 의한 컨테이너 기반 클라우드 시스템을 나타낸 도면이다.
도 6은 본 발명의 실시예에 의한 데이터베이스의 접근 방식을 예시적으로 나타낸 도면이다.
도 7은 본 발명의 실시예에 의한 인메모리 클러스터를 나타낸 도면이다.
도 8은 본 발명의 실시예에 의한 애플리케이션 규약을 나타낸 도면이다.
도 9는 본 발명의 실시예에 의한 클라우드 시스템 아키텍쳐를 개념적으로 나타낸 도면이다.
도 10a 및 도 10b는 본 발명의 실시예에 의한 컨테이너 기반 클라우드 서비스 제공 방법을 나타낸 도면이다.
이하에서는 본 발명과 관련된 실시예들을 도면에 예시하고 이를 상세한 설명을 통해 구체적으로 설명하고자 한다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
본 발명의 구성 요소를 설명하는 데 있어서, 제 1, 제 2, A, B, (a), (b) 등의 용어를 사용할 수 있다. 이러한 용어는 그 구성 요소를 다른 구성 요소와 구별하기 위한 것일 뿐, 그 용어에 의해 해당 구성 요소의 본질이나 차례 또는 순서 등이 한정되지 않는다. 또한, 본 명세서에서, 어떤 구성 요소가 다른 구성 요소에 "연결", "결합" 또는 "접속"된다고 기재된 경우, 그 구성 요소는 그 다른 구성 요소에 직접적으로 연결되거나 또는 접속될 수 있지만, 각 구성 요소 사이에 또 다른 구성 요소가 "연결", "결합" 또는 "접속"될 수도 있다고 이해되어야 할 것이다. "연결", "결합" 또는 "접속"의 경우, 물리적으로 "연결", "결합" 또는 "접속"되는 것뿐만 아니라 필요에 따라 전기적으로 "연결", "결합" 또는 "접속"되는 것으로 이해될 수 있다.
본 명세서에 기재된 "~부(유닛)", "~기", "~자", "~모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어나 소프트웨어 또는 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다. 또한, 본 명세서에 기재된 "포함하다", "구성하다" 또는 "가지다" 등의 용어는, 특별히 반대되는 기재가 없는 한, 해당 구성 요소가 내재될 수 있음을 의미하는 것이므로, 다른 구성 요소를 제외하는 것이 아니라 다른 구성 요소를 더 포함할 수 있는 것으로 해석되어야 한다.
그리고 본 명세서에서의 구성부들에 대한 구분은 각 구성부가 담당하는 주기능 별로 구분한 것에 불과함을 명확히 하고자 한다. 즉, 이하에서 설명할 2개 이상의 구성부가 하나의 구성부로 합쳐지거나 또는 하나의 구성부가 보다 세분화된 기능별로 2개 이상으로 분화되어 구비될 수도 있다. 그리고 이하에서 설명할 구성부 각각은 자신이 담당하는 주 기능 이외에도 다른 구성부가 담당하는 기능 중 일부 또는 전부의 기능을 추가적으로 수행할 수도 있으며, 구성부 각각이 담당하는 주기능 중 일부 기능이 다른 구성부에 의해 전담되어 수행될 수도 있음은 물론이다.
이하, 본 발명의 실시예들과 관련된 도면들을 참고하여, 본 발명의 실시예에 의한 향상된 확장성 및 자율성을 갖는 컨테이너 기반 클라우드 시스템 및 클라우드 서비스 제공 방법에 대해 설명하도록 한다.
도 1은 본 발명의 실시예에 의한 컨테이너 기반의 클라우드 시스템과 사용자 단말기의 연결 관계를 나타낸 도면이다.
도 1을 참조하면, 본 발명의 실시예에 의한 향상된 확장성 및 자율성을 갖는 컨테이너 기반의 클라우드 시스템(100, 이하 컨테이너 기반의 클라우드 시스템)은 다수의 사용자 단말기(10)와 네트워크 연결될 수 있으며, 이를 통하여 다양한 클라우드 서비스를 사용자에게 제공할 수 있다.
여기서, 네트워크는 단말 및 서버와 같은 각각의 노드 상호 간에 정보 교환이 가능한 연결 구조를 의미하는 것으로, 이러한 네트워크의 일 예는, 인터넷(Internet), LAN(Local Area Network), Wireless LAN(Wireless Local Area Network), WAN(Wide Area Network), PAN(Personal Area Network), 3G, 4G, 5G, LTE, Wi-Fi 등이 포함되나 이에 한정되지는 않는다.
최근 다양한 분야에서 생성되는 데이터들은 데이터의 크기와 종류로 인해 클라우드 컴퓨팅 환경을 도입하고 있으며, 특히 소프트웨어의 경우 대부분 클라우드 환경을 기반으로 하는 서비스 형태로 배포되고 있다.
또한, 대화형 메신저, 포털(Portal), 지식 블로그 등과 같은 서비스 역시 클라우드 환경을 기반으로 하여 제공되고 있다.
사용자 단말기(10)는 네트워크를 통해 컨테이너 기반의 클라우드 시스템(100)에 접속할 수 있으며, 이를 통해 사용자는 컨테이너 기반의 클라우드 시스템(100)이 제공하는 다양한 클라우드 서비스를 이용할 수 있다.
또한, 사용자 단말기(10)는 컨테이너 기반의 클라우드 시스템(100)과 연결되는 통신 기능과 이미지나 텍스트를 출력할 수 있는 디스플레이 기능을 갖춘 장치라면 특별히 한정되지 않는다. 예를 들어, 사용자 단말기(10)는, 데스크탑 컴퓨터(desktop computer), 랩탑 컴퓨터(laptop computer), 태블릿(tablet) PC, 무선전화기(wireless phone), 모바일폰(mobile phone), 스마트폰(smart phone), 스마트 워치(smart watch), 스마트 글래스(smart glass), 웨어러블 장치(wearable device) 등을 포함할 수 있으나, 이에 한정되는 것은 아니다.
도 2a는 기존의 가상머신 계층도이고, 도 2b는 본 발명의 실시예에 의한 컨테이너 계층도이다.
클라우드를 구성하는 기존의 전통적인 방식인 서버 가상화 기술은 하이퍼바이저를 통한 가상머신 생성을 통해 구현되어 왔다. 도 2a를 참조하면, 가상머신은 하나의 컴퓨터이기 때문에 호스트 OS와 하이퍼바이저 위에 항상 게스트 OS를 설치해야 한다. 따라서, 이미지 안에 OS가 포함되기 때문에 이미지 용량이 커지는 단점이 있을 뿐만 아니라 가상화 이미지를 인터넷을 통해 전송하기 위해서는 많은 트래픽이 유발되는 문제가 있다. 특히, 가상머신은 OS를 가상화하는 것에만 초점이 맞춰져 있기 때문에, 이미지를 생성하고 실행하는 기능만 있을 뿐 배포와 관리 기능은 부족하다.
그에 반해, 도 2b에 도시된 바와 같이 컨테이너는 가상머신에 비해 상대적으로 경량화된 계층 구조를 갖는데, 이러한 컨테이너에는 호스트 OS 위에 컨테이너 엔진만 존재할 뿐 별도의 게스트 OS가 존재하지 않는다. 따라서, 컨테이너에 설치되는 이미지에 서버 운영을 위한 프로그램과 라이브러리만 격리해서 설치할 수 있으며, OS 자원은 호스트 OS와 공유하는 방법으로 이미지 용량을 크게 줄일 수 있다. 또한, 컨테이너는 가상머신과 달리 하드웨어를 가상화하는 계층이 별도로 없기 때문에 메모리 접근, 파일시스템 및 네트워크 속도가 가상머신에 비해 상대적으로 빠른 장점을 가질 수 있다.
도 3은 본 발명의 실시예에 의한 컨테이너 기반 클라우드 시스템의 아키텍쳐(Architecture)를 나타낸 도면이다.
컨테이너 기반 클라우드 시스템(100)은 다양한 서버 환경 및 웹 기반의 애플리케이션(Application)을 지원하는 시스템으로, 도 3에 도시된 형태의 아키텍쳐 환경을 보유하고 있다.
즉, 컨테이너 기반 클라우드 시스템(100)은 컨테이너가 배포되는 가상 또는 물리 머신인 워커 노드(Worker Node), 워커 노드 전체를 관리하는 관리 노드(또는 마스터 노드(Master Node)), 및 컨테이너 이미지가 저장되는 컨테이너 레파지토리(Container Repository)로 이루어진다.
또한, 각 워커 노드는 하나 또는 다수의 컨테이너 애플리케이션을 포함하며, 같은 워커 노드에 속한 컨테이너들은 서로 로컬 통신이 가능하고 디스크 자원도 공유할 수 있다.
관리 노드는 클라우드 시스템의 설정 환경을 저장하고, 워커 노드로 이루어진 클러스터 전체에 대한 관리를 수행할 수 있다. 이를 위하여, 관리 노드는 네트워크 프록시(Network Proxy), API 서버(API Server), 제어 관리기(Controller Manager), 이벤트 관리기(Event Manager), 스케줄러(Scheduler)를 포함할 수 있다.
네트워크 프록시는 컴퓨터 네트워크에서 다른 서버 상의 자원을 찾는 클라이언트로부터 요청을 받아 중계하며, 이를 통해 분산 시스템의 구조를 단순화하고 캡슐화하여 서비스의 복잡도를 줄이는 역할을 한다.
API 서버는 사용자로부터의 요청이나 노드 간의 통신을 담당하고, 스케줄러는 컨테이너(또는 포드(Pod))의 배포 및 서비스에 필요한 리소스를 적절한 노드에 할당한다.
또한, 제어 관리기는 컨테이너(또는 포드)의 저장 공간 조절, 동적으로 추가 또는 삭제되는 컨테이너(또는 포드)에 대한 라벨(Label) 할당, 복제, 여러 컨테이너(포드)의 그룹핑 서비스 시 로드 밸런싱 등을 관리하며, 이벤트 관리기는 클라우드 시스템 내에서 특정 상황(또는 이벤트) 발생 시 이를 관리자 단말기로 통지하는 역할을 수행한다.
워커 노드는 관리 노드에 의해 명령을 받고 실제 작업을 수행하는 서비스 컴포넌트로, 적어도 하나 이상의 컨테이너 애플리케이션을 보유할 수 있다.
도 4는 기존 애플리케이션의 분산처리 방식을 나타낸 도면이다.
도 4를 참조하면, 기존 애플리케이션은 사용자 클라이언트(client) 및 뷰(View) 환경, 컨트롤러 레벨(Controller Level), 서비스 레벨(Service Level), DAO(Data Access Object), 데이터베이스(DB)로 구성된다. 이러한 종래 애플리케이션의 경우 L4 등과 같은 로드밸런서(Load Balancer)를 통해 부하(Load)에 대한 분산 처리를 수행하였다.
그러나, 클라우드의 특징인 확장성 및 서버 자율성을 구성하기에는 기존의 애플리케이션은 데이터베이스를 포함하고 있기 때문에 접근방법이나 역할에서 어려움이 존재한다.
이를 해결하기 위해, 본 발명은 데이터베이스를 애플리케이션에서 분리하고 데이터베이스에 대한 접근을 별도의 모듈을 통해 API(Application Programming Interface) 형태로 서비스하도록 구성한다. 즉, 데이터를 애플리케이션에서 분리하고 이를 동기화 하는 별도의 모듈을 활용하며, 데이터에 대한 접근을 API를 통해 접근하도록 한다.
도 5는 본 발명의 실시예에 의한 컨테이너 기반 클라우드 시스템을 나타낸 도면이다.
도 5를 참조하면, 컨테이너 기반 클라우드 시스템(100)은 액세스 서버(Access Server, 110), 인메모리 클러스터(In-Memory Cluster, 120), 서버 모듈(Server Module, 130), 관리 모듈(Manager Module, 140), 및 데이터베이스(Database, 150)를 포함할 수 있다.
액세스 서버(110)는 다수의 사용자 단말기(10)와 웹 소켓(Web Socket)을 통해 네트워크 연결될 수 있다. 이때, 도시되지는 않았으나 사용자 단말기(10)는 L7 스위치를 통해 액세스 서버(110)에 접속할 수 있다.
웹 소켓은 웹 브라우저와 웹 서버 사이에서 전이중(full-duplex) 통신을 가능하게 하는 통신 프로토콜로, 서버와 클라이언트가 한 번 연결된 후에는 필요한 통신 모두를 그 연결상에서 웹 소켓 전용 프로토콜을 기반으로 수행할 수 있다. 접속 시간을 장시간 유지할 수 있고, HTTP와 달리 경량 프로토콜을 사용하기 때문에 통신 손실이 적으며, 또한 하나의 연결로 모든 데이터 송수신이 가능하므로 동일한 서버에 연결한 다른 응용 프로그램에 의한 영향이 적다는 장점이 있다.
인메모리 클러스터(120)는 컨테이너 기반으로 인증 키 및 이벤트 데이터를 저장할 수 있다. 이러한 인메모리 클러스터(120)는 클라우드 내에서 할당된 영역을 가지며, 캐시(Cache) 및 램(RAM) 메모리 등과 같은 휘발성 메모리(volatile memory) 자원을 기반으로 이루어질 수 있다.
즉, 인메모리 클러스터(120)는 인증 키 및 이벤트 데이터가 저장되는 캐쉬(Cache)를 제공하며, 이를 통하여 보다 쾌적하고 향상된 속도의 클라우드 서비스를 사용자에게 제공 가능하다.
인증 키는 컨테이너 기반 클라우드 시스템(100)을 이용하고자 하는 사용자의 인증을 위하여 사용되며, 이벤트 데이터는 클라우드 서비스의 제공을 위하여 필요한 데이터 및 클라우드 서비스의 제공 시 발생되는 데이터의 집합을 의미한다.
서버 모듈(130)은 액세스 서버(110)에 접속된 사용자 단말기(10)로 클라우드 서비스를 제공하는 역할을 수행할 수 있다. 이러한 서버 모듈(130)은 사용자의 인증 동작 및 인메모리 클러스터(120)의 이벤트 데이터를 데이터베이스(150)에 저장하는 동작을 수행할 수 있으며, 또한 세분화된 다수의 서비스 모듈(133)을 통하여 다양한 클라우드 서비스를 제공할 수 있다.
또한, 서버 모듈(130)은 데이터베이스(150)에 대한 접근을 제어하거나 데이터베이스(150)에 저장된 데이터를 다른 데이터베이스로 복제 또는 분산 처리를 수행할 수 있다.
서버 모듈(130)은 다수의 서버 자원을 기반으로 하여 이루어질 수 있으며, 컨테이너 구조의 보안 모듈(131), 컨테이너 구조의 데이터 저장 모듈(132), 컨테이너 구조의 서비스 모듈(133), 컨테이너 구조의 데이터 접근 제어 모듈(135), 및 컨테이너 구조의 데이터 분산 모듈(136)을 포함할 수 있다.
보안 모듈(131)은 도 2b와 같은 컨테이너 구조를 가지며, 사용자의 로그인 및 인증 절차를 수행할 수 있다. 예를 들어, 보안 모듈(131)은 액세스 서버(110)에 접속된 사용자 단말기(10)를 대상으로 로그인 인터페이스를 제공할 수 있으며, 로그인 절차가 완료된 사용자 단말기(10)를 대상으로 주기적인 인증을 수행할 수 있다.
예를 들어, 보안 모듈(131)은 로그인 절차가 완료된 사용자 단말기(10)에 대하여 각각 상이한 인증 키를 생성 및 부여할 수 있으며, 이러한 사용자 단말기(10) 별 인증 키를 인메모리 클러스터(120)에 저장할 수 있다.
또한, 보안 모듈(131)은 사용자 단말기(10)가 서버 모듈(130)이 제공하는 클라우드 서비스를 이용하는 동안 인메모리 클러스터(120)에 저장된 인증 키를 이용하여 사용자 단말기(10)의 인증을 주기적으로(예를 들어, 5초 간격) 수행할 수 있다.
일례로, 보안 모듈(131)이 부여한 인증 키는 사용자 단말기(10)에도 저장될 수 있으며, 보안 모듈(131)은 사용자 단말기(10)로부터 주기적으로 인증 키를 전달받아 이를 인메모리 클러스터(120)에 저장된 인증 키와 비교함으로써 인증 절차를 진행할 수 있다. 즉, 사용자 단말기(10)로부터 전송된 인증 키가 인메모리 클러스터(120)에 저장된 인증 키와 동일한 경우 인증에 성공한 것으로 판단하여 사용자의 클라우드 서비스의 이용을 지속적으로 허가하며, 사용자 단말기(10)로부터 전송된 인증 키가 인메모리 클러스터(120)에 저장된 인증 키와 상이한 경우 인증에 실패한 것으로 판단하여 사용자의 클라우드 서비스의 이용을 차단할 수 있다.
사용자 단말기(10)의 접속이 종료된 경우 보안 모듈(131)은 인메모리 클러스터(120)에 저장된 사용자 단말기(10)의 인증 키를 삭제할 수 있으며, 추후 사용자 단말기(10)가 재접속하는 경우 앞서 설명한 로그인 절차 및 인증 절차를 다시 수행할 수 있다.
보안 모듈(131)은 인메모리 클러스터(120)에 저장된 인증 키를 기반으로 인증 절차를 수행하므로, 기존 대비 향상된 속도를 갖는 인증 동작을 수행할 수 있다.
데이터 저장 모듈(132)은 도 2b와 같은 컨테이너 구조를 가지며 인메모리 클러스터(120)에 저장된 이벤트 데이터를 정기적으로 데이터베이스(150)에 저장할 수 있다.
서비스 모듈(133)은 도 2b와 같은 컨테이너 구조를 가지며, 탑재된 애플리케이션에 대응한 클라우드 서비스를 사용자 단말기(10)로 제공할 수 있다.
이때, 서비스 모듈(133)은 인메모리 클러스터(120)에 저장된 이벤트 데이터를 이용하여 클라우드 서비스를 제공하며, 이에 따라 향상된 속도 및 응답성을 갖는 서비스의 제공이 가능하다.
예를 들어, 컨테이너 기반 클라우드 시스템(100)이 대화형 메신저 서비스를 제공하는 경우, 단체 메시지 모듈, 메시지 지연에 대한 처리 모듈, 외부 모바일 알림 메시지 모듈, PC 메시지 모듈 등과 같은 서비스 모듈(133)이 설치될 수 있다.
관리 모듈(140)은 서버 모듈(130)의 관리 동작을 수행하며, 필요에 따라 서버 모듈(130)에 포함된 모듈(131, 132, 133) 등에 대한 스케일링(Scaling) 동작을 수행할 수 있다.
스케일링은 다수의 사용자 접속 등에 의해 발생되는 부하를 분산시키기 위한 것으로, 발생 부하에 대응하여 해당 모듈(131, 132, 133)의 개수를 조절하는 기능을 의미한다. 예를 들어, 사용자 단말기(10)의 세션 수 및/또는 사용자 단말기(10)에 의해 발생되는 트래픽에 대응하여 해당 모듈(131, 132, 133)의 수를 증가시키거나 감소시킬 수 있다.
일례로, 관리 모듈(140)은 하기 수식에 따라 해당 모듈(131, 132, 133)의 수를 조절할 수 있다.
Nm = a*Ns + b*Nt
여기서, Nm은 모듈의 개수, Ns는 액세스 서버(110)에 접속한 사용자 단말기(10)의 세션 수, Nt는 액세스 서버(110)에 접속한 사용자 단말기(10)에 의해 발생된 트래픽, a는 제1 조절 상수, b는 제2 조절 상수이다.
이때, 각 모듈(131, 132, 133)의 개수 결정 시, 제1 조절 상수(a)와 제2 조절 상수는 상이하게 설정될 수 있다.
예를 들어, 보안 모듈(131)은 사용자 단말기(10)의 세션 수에 의한 영향을 높게 받으므로, 관리 모듈(140)은 보안 모듈(131)의 스케일링 시 제1 조절 상수(a)가 제2 조절 상수(b)에 비하여 크게 설정된 수식을 통해 보안 모듈(131)의 개수를 산출할 수 있다.
또한, 데이터 저장 모듈(132)은 사용자 단말기(10)의 세션 수 및 사용자 단말기(10)에 의해 발생된 트래픽에 의한 영향을 동일하게 받으므로, 관리 모듈(140)은 데이터 저장 모듈(132)의 스케일링 시 제1 조절 상수(a)와 제2 조절 상수(b)가 동일하게 설정된 수식을 통해 데이터 저장 모듈(132)의 개수를 산출할 수 있다.
서비스 모듈(133)은 사용자 단말기(10)에 의해 발생된 트래픽에 의한 영향을 높게 받으므로, 관리 모듈(140)은 서비스 모듈(133)의 스케일링 시 제1 조절 상수(a)가 제2 조절 상수(b)에 비하여 작게 설정된 수식을 통해 서비스 모듈(133)의 개수를 산출할 수 있다.
한편, 서버 모듈(130)에 포함된 모듈(131, 132, 133)은 각각 컨테이너 구조를 갖기 때문에, 이러한 컨테이너 구조의 모듈(131, 132, 133)에 대한 복제 및 관리가 용이하다.
예를 들어, 관리 모듈(140)은 보안 모듈(131)의 부하 분산을 위하여 보안 모듈(131)의 스케일링을 수행할 수 있다. 구체적으로, 관리 모듈(140)은 사용자 단말기(10)에 의해 발생되는 트래픽에 대응하여 보안 모듈(131)의 개수를 조절할 수 있다.
즉, 대규모의 사용자 단말기(10)가 컨테이너 기반 제공 시스템(100)에 추가 접속되는 경우, 보안 모듈(131)의 부하가 급격히 증가하여 인증 절차 및 서비스 이용이 지연될 수 있다.
이러한 문제점을 해결하기 위하여, 관리 모듈(140)은 사용자 단말기(10)에 의한 트래픽을 검출하여 검출된 해당 트래픽이 기설정된 기준값을 초과하는 경우 보안 모듈(131)의 수를 증가시킬 수 있으며, 상기 기준값을 넘는 트래픽 양에 대응하여 보안 모듈(131)의 증가 개수를 결정할 수 있다.
마찬가지로, 대규모의 사용자 증가에 따라 인메모리 클러스터(120)에 저장된 이벤트 데이터 양도 증가될 수 있으며, 이 경우 데이터 저장 모듈(132)과 서비스 모듈(133)의 부하도 증가될 수 있다.
따라서, 관리 모듈(140)은 데이터 저장 모듈(132)과 서비스 모듈(133)의 부하 분담을 위하여, 보안 모듈(131)과 동일한 방식으로 데이터 저장 모듈(132) 및/또는 서비스 모듈(133)의 스케일링을 수행할 수 있다.
예를 들어, 관리 모듈(140)은 사용자 단말기(10)에 의한 트래픽에 대응하여 데이터 저장 모듈(132) 및 서비스 모듈(133) 중 적어도 하나의 개수를 조절할 수 있다.
데이터베이스(150)는 비휘발성 메모리(non-volatile memory) 등의 자원을 기반으로 이루어질 수 있다. 인메모리 클러스터(120)에 저장된 데이터들은 주기적으로 데이터베이스(150)에 저장될 수 있다.
또한, 데이터베이스(150)는 복수개의 데이터베이스(151, 152)로 이루어질 수 있으며, 이러한 제1 데이터베이스(151)와 제2 데이터베이스(152)로의 접근 제어 및 데이터 분산 처리 등은 데이터 접근 제어 모듈(135)와 데이터 분산 모듈(136)을 통해서 이루어질 수 있다.
데이터 접근 제어 모듈(135)은 도 2b와 같은 컨테이너 구조를 가지며, 서비스 모듈(133)이 Web API(Application Programming Interface)를 통해 제1 데이터베이스(151) 및 제2 데이터베이스(152)에 대한 접근이 가능하도록 할 수 있다.
또한, 데이터 접근 제어 모듈(135)은 서비스 모듈(133)과 함께 데이터 저장 모듈(132)도 동일한 방식으로 데이터베이스(151, 152)에 접근할 수 있도록 제어할 수 있다.
데이터 분산 모듈(136)은 도 2b와 같은 컨테이너 구조를 가지며, 제1 데이터베이스(151)에 저장된 정보를 다른 제2 데이터베이스(152)로 복제할 수 있다. 또한, 데이터 분산 모듈(136)은 필요에 따라 데이터베이스를 추가 설정할 수 있으며, 이러한 신규 데이터베이스를 이용하여 데이터의 분산 처리를 수행할 수 있다.
일례로, 데이터 분산 모듈(136)은 제1 데이터베이스(151)에 기설정된 기준치 이상의 트래픽이 발생한 경우, 제1 데이터베이스(151)에 저장된 데이터의 적어도 일부를 제2 데이터베이스(152)로 복제할 수 있다.
즉, 앞서 설명한 바와 같이 기존 애플리케이션의 경우 데이터베이스를 포함하고 있기 때문에 클라우드의 확장성 및 서버 자율성을 확보하기에 어려움이 따르는 바, 본 발명에서는 데이터베이스(151, 152)를 클라우드 서비스를 제공하기 위한 애플리케이션(예를 들어, 서비스 모듈(133))과 별도로 구성하고, 이에 대한 접근을 제어하거나 데이터의 분산 처리 등을 담당하는 데이터 접근 제어 모듈(135)과 데이터 분산 모듈(136)을 별도로 구성함으로써 클라우드의 확장성과 서버 자율성을 향상시킬 수 있다.
도 6은 본 발명의 실시예에 의한 데이터베이스의 접근 방식을 예시적으로 나타낸 도면이다.
도 6을 참조하면, 데이터 접근 제어 모듈(135)은 POST, GET, PUT, 및 DELETE를 포함하는 HTTP 메소드(Method) 중 어느 하나와 서비스 모듈(133)이 처리하고자 하는 데이터의 URL(Uniform Resource Locator)을 포함하는 Web API를 서비스 모듈(133)로 제공할 수 있다.
이에 따라, 서비스 모듈(133)은 데이터 접근 제어 모듈(135)로부터 전달된 Web API를 이용하여, 데이터베이스(150)를 대상으로 한 데이터 생성(POST), 데이터 조회(GET), 데이터 수정(PUT), 데이터 삭제(DELETE)를 수행할 수 있다.
도 7은 본 발명의 실시예에 의한 인메모리 클러스터를 나타낸 도면이다.
도 7를 참조하면, 본 발명의 실시예에 의한 인메모리 클러스터(120)는 각각 도 2b의 컨테이너 구조를 가지는 슬레이브 노드(121), 마스터 노드(122), 매니저 노드(123)을 포함할 수 있다.
슬레이브 노드(121)는 인증 키 및 이벤트 데이터를 캐쉬에 저장할 수 있다. 이를 위하여, 슬레이브 노드(121)에는 각각 데이터를 저장할 수 있는 캐쉬가 할당될 수 있다.
마스터 노드(122)는 슬레이브 노드(121)의 상태를 감시하는 역할을 수행한다. 일례로, 마스터 노드(122)는 슬레이브 노드(121)를 통해 확보된 자원의 활용량이 기설정된 임계치에 도달한 경우 관리자 단말기(미도시)로 알림을 제공할 수 있다.
이에 대응하여 관리자는 관리자 단말기를 통해 슬레이브 추가 요청을 전송할 수 있으며, 매니저 노드(123)는 해당 요청에 대응하여 슬레이브 노드(121)를 추가함으로써 필요한 자원을 추가로 확보할 수 있다.
이러한 인메모리 클러스터(120)를 위와 같은 컨테이너 기반으로 설계함으로써, 대규모 사용자가 동시 접속됨에 따라 인메모리 클러스터(120)에 예기치 못한 부하가 발생하고 이에 따른 시스템 장애 등이 발생하는 것을 방지할 수 있다. 즉, 컨테이너 기반으로 인메모리 클러스터(120)를 구성함으로써 실제 데이터 요청에 실시간으로 반응하여 원하는 자원량을 확보할 수 있는 바, 대규모의 사용자가 동시 접속하여도 성능 저하 등의 문제가 발생하지 않는 클라우드 서비스를 제공할 수 있다.
도 8은 본 발명의 실시예에 의한 애플리케이션 규약을 나타낸 도면이고, 도 9는 본 발명의 실시예에 의한 클라우드 시스템 아키텍쳐를 개념적으로 나타낸 도면이다.
도 8을 참조하면, 본 발명의 실시예에 의한 컨테이너 기반 클라우드 시스템(100)은 클라우드의 특징인 확장성 및 자율성을 향상시키기 위하여, HttpHandler 규약, 데이터 조회 규약, 및 CI(Continuous Integration)/CD(Continuous Deployment) 환경 규약을 설정하여 사용할 수 있다.
HttpHandler 규약에서는 주석(Annotation) 기반의 익숙한 URL 설정 및 기능을 추가하여 구현될 수 있다.
또한, 데이터 조회 규약에서는 이벤트 동작 방식을 클래스(class)로 설정하고, 쓰레드 풀(thread pool)의 개수로 성능을 조절할 수 있다.
한편, CI/CD 환경 규약에서는 Dockerfile 등의 CI에 필요한 설정값 모듈을 개별 조정할 수 있으며, CI를 위한 제품(Production) 별 설정파일 분리 관리 기능과 Dockerfile, native build, dcos 배포 파일 등 DevOps 관련 파일 관리 기능을 수행할 수 있다.
이러한 클라우드 확정성에 최적화된 애플리케이션의 구현을 위하여, 도 9와 같은 형태의 클라우드 시스템 아키텍쳐가 설계될 수 있다.
먼저, Virtual Dom(Document Object Model)을 구성 및 제공하기 위한 프레임워크(Framework)가 포함될 수 있다. 일례로, React.js가 프론트 프레임워크로 채용될 수 있고, 이는 사용자(User) 및 관리자(Admin)을 위한 유저 인터페이스(User Interface)와 대시보드(Dashboard) 등을 제공할 수 있으며, 이러한 인터페이스 서비스를 제공하기 위한 API 어댑터(Adapter)를 포함할 수 있다.
캐쉬 레이어(Cache Layer)는 클라우드 서비스 제공 시 발생된 메시지 정보(Messaging)와 별도 세션 및 프라이빗 데이터(Session and Private Data)가 저장될 수 있다.
또한, 마이크로 서비스 아키텍쳐(Micro Service Architecture)는 웹 소켓(Web Socket), API 매니저(API Manager), 도메인 라우터(Domain router), 권한 매니저(Authority manager), 아이덴티티(Identity Manager), 데이터 매니저(Data Manager) 등을 포함하여 구성될 수 있다.
실시간 메시징 프레임워크(Real-time Messaging framework)으로는 웹 소켓(Web Socket)이 채용될 수 있으며, 이는 버티클(Verticle), 버스모드(Busmod), 및 이벤트 버스(Event Bus) 등을 포함하여 구성될 수 있다.
도 10a 및 도 10b는 본 발명의 실시예에 의한 컨테이너 기반 클라우드 서비스 제공 방법을 나타낸 도면이다.
이하에서는 앞서 설명한 도 5와 관련된 실시예와 도 10a 및 도 10b를 함께 참고하여 본 발명의 실시예에 의한 확장성 및 자율성을 갖는 컨테이너 기반 클라우드 서비스 제공 방법(이하, 컨테이너 기반의 클라우드 서비스 제공 방법)을 설명하도록 한다.
도 10a를 참고하면, 본 발명의 실시예에 의한 컨테이너 기반의 클라우드 서비스 제공 방법은 사용자 접속 단계(S10), 인증 키 저장 단계(S20), 사용자 인증 단계(S30), 클라우드 서비스 제공 단계(S40), 데이터 저장 단계(S50), 및 스케일링 수행 단계(S60)를 포함할 수 있다.
사용자 접속 단계(S10)에서는 액세스 서버(110)와 사용자 단말기(10)가 웹 소켓을 통해 네트워크 연결될 수 있다.
인증 키 저장 단계(S20)에서는 액세스 서버(110)에 접속된 사용자 단말기(10) 별 인증 키를 생성하고, 상기 인증 키를 클라우드 내부 내에서 할당된 영역을 갖는 컨테이너 기반의 인메모리 클러스터(120)에 저장할 수 있다. 본 단계(S20)는 컨테이너 구조의 보안 모듈(131)을 통해 수행될 수 있다.
사용자 인증 단계(S30)에서는 사용자 단말기(10)가 클라우드 서비스를 이용하는 동안 인메모리 클러스터(120)에 저장된 인증 키를 이용하여 사용자 단말기(10)의 인증을 주기적으로 수행할 수 있다. 본 단계(S30)는 보안 모듈(131)을 통해 수행될 수 있다.
클라우드 서비스 제공 단계(S40)에서는 인증된 사용자 단말기(10)로 클라우드 서비스를 제공하고, 상기 클라우드 서비스 제공 시 발생된 이벤트 데이터를 인메모리 클러스터(120)에 저장할 수 있다. 본 단계(S40)은 컨테이너 구조의 서비스 모듈(133)에 의해 수행될 수 있다.
데이터 저장 단계(S50)에서는 인메모리 클러스터(120)에 저장된 이벤트 데이터를 정기적으로 데이터베이스(150)에 저장할 수 있다. 본 단계(S50)은 컨테이너 구조의 데이터 저장 모듈(132)을 통해 수행될 수 있다.
스케일링 수행 단계(S60)에서는 보안 모듈(131)의 부하 분산을 위하여 보안 모듈(131)의 스케일링을 수행될 수 있다. 본 단계(S60)는 관리 모듈(140)에 의해 수행될 수 있다.
또한, 본 단계(S60)에서는 사용자 단말기(10)에 의한 트래픽에 대응하여 보안 모듈(131)의 개수를 조절될 수 있다.
한편, 사용자 단말기(10)에 의한 트래픽에 대응하여 데이터 저장 모듈(132) 및 서비스 모듈(133) 중 적어도 하나의 개수를 조절하는 단계가 추가 수행될 수 있다. 본 단계는 관리 모듈(140)에 의해 수행될 수 있으며, 모듈(131, 132, 133)에 대한 스케일링 방식은 위에서 설명한 바 있으므로, 여기서는 그 설명을 생략하도록 한다.
또한, 본 발명의 실시예에 의한 인메모리 클러스터(120)는 각각 도 2b의 컨테이너 구조를 가지는 슬레이브 노드(121), 마스터 노드(122), 매니저 노드(123)을 포함할 수 있다.
슬레이브 노드(121)는 인증 키 및 이벤트 데이터를 캐쉬에 저장할 수 있다. 이를 위하여, 슬레이브 노드(121)에는 각각 데이터를 저장할 수 있는 캐쉬가 할당될 수 있다.
마스터 노드(122)는 슬레이브 노드(121)의 상태를 감시하는 역할을 수행한다. 일례로, 마스터 노드(122)는 슬레이브 노드(121)를 통해 확보된 자원의 활용량이 기설정된 임계치에 도달한 경우 관리자 단말기(미도시)로 알림을 제공할 수 있다.
이에 대응하여 관리자는 관리자 단말기를 통해 슬레이브 추가 요청을 전송할 수 있으며, 매니저 노드(123)는 해당 요청에 대응하여 슬레이브 노드(121)를 추가함으로써 필요한 자원을 추가로 확보할 수 있다.
한편, 도 10b를 참조하면 클라우드 서비스 제공 단계(S40)에서는 데이터 접근 제어 단계(S41) 및 데이터 분산 처리 단계(S42)를 포함할 수 있다.
데이터 접근 제어 단계(S41)에서는 서비스 모듈(133)이 Web API(Application Programming Interface)를 통해 제1 데이터베이스(151) 및 제2 데이터베이스(152)에 대한 접근이 가능하도록 제어할 수 있다. 본 단계(S41)는 데이터 접근 제어 모듈(135)을 통해 수행될 수 있다.
또한, 데이터 접근 제어 단계(S41)에서는 POST, GET, PUT, 및 DELETE를 포함하는 HTTP 메소드(Method) 중 어느 하나와 서비스 모듈(133)이 처리하고자 하는 데이터의 URL(Uniform Resource Locator)을 포함하는 Web API를 서비스 모듈(133)로 제공할 수 있다.
데이터 분산 처리 단계(S42)에서는 제1 데이터베이스(151)에 저장된 정보를 다른 제2 데이터베이스(152)로 복제할 수 있다. 본 단계(S42)는 데이터 분산 모듈(136)을 통해 수행될 수 있다.
일례로, 데이터 분산 처리 단계(S42)에서는 제1 데이터베이스(151)에 기설정된 기준치 이상의 트래픽이 발생한 경우, 제1 데이터베이스(151)에 저장된 데이터의 적어도 일부를 제2 데이터베이스(152)로 복제할 수 있다.
본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이지 아닌 것으로 이해해야만 한다. 본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구의 범위에 의하여 나타내어지며, 특허청구의 범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
10: 사용자 단말기
100: 컨테이너 기반의 클라우드 시스템
110: 액세스 서버
120: 인메모리 클러스터
130: 서버 모듈
140: 관리 모듈
150: 데이터베이스

Claims (15)

  1. 클라우드 내에서 할당된 영역을 가지며, 컨테이너 기반으로 이벤트 데이터를 저장하는 인메모리 클러스터;
    네트워크 연결된 사용자 단말기로 클라우드 서비스를 제공하기 위한 서버 모듈; 및
    제1 데이터베이스와 제2 데이터베이스; 를 포함하고,
    상기 서버 모듈은,
    상기 이벤트 데이터를 이용하여 클라우드 서비스를 제공하는 컨테이너 구조의 서비스 모듈;
    상기 서비스 모듈이 Web API(Application Programming Interface)를 통해 상기 제1 데이터베이스 및 상기 제2 데이터베이스에 대한 접근이 가능하도록 POST, GET, PUT, 및 DELETE를 포함하는 HTTP 메소드(Method) 중 어느 하나와 상기 서비스 모듈이 처리하고자 하는 데이터의 URL(Uniform Resource Locator)을 포함하는 Web API를 상기 서비스 모듈로 제공하는 컨테이너 구조의 데이터 접근 제어 모듈;
    상기 제1 데이터베이스에 저장된 정보를 다른 상기 제2 데이터베이스로 복제하는 컨테이너 구조의 데이터 분산 모듈; 및
    상기 사용자 단말기의 인증을 수행하기 위한 컨테이너 구조의 보안 모듈; 을 포함하고,
    상기 보안 모듈은,
    상기 사용자 단말기 별 인증 키를 생성하여 상기 인메모리 클러스터에 저장하고, 상기 사용자 단말기가 상기 클라우드 서비스를 이용하는 동안 상기 인메모리 클러스터에 저장된 인증 키를 이용하여 상기 사용자 단말기의 인증을 주기적으로 수행하며,
    상기 사용자 단말기에 의한 트래픽에 대응하여, 상기 보안 모듈의 개수를 조절하는 관리 모듈; 을 더 포함하고,
    상기 인메모리 클러스터는,
    상기 인증 키 및 상기 이벤트 데이터를 캐쉬에 저장하는 컨테이너 구조의 슬레이브 노드;
    상기 슬레이브 노드의 상태를 감시하는 컨테이너 구조의 마스터 노드; 및
    상기 인메모리 클러스터의 정보를 저장하는 컨테이너 구조의 매니저 노드; 를 포함하는 향상된 확장성 및 자율성을 갖는 컨테이너 기반 클라우드 시스템.
  2. 삭제
  3. 제1항에 있어서,
    상기 데이터 분산 모듈은,
    상기 제1 데이터베이스에 기준치 이상의 트래픽이 발생한 경우 상기 제1 데이터베이스에 저장된 데이터의 적어도 일부를 상기 제2 데이터베이스로 복제하는 것을 특징으로 하는 향상된 확장성 및 자율성을 갖는 컨테이너 기반 클라우드 시스템.
  4. 삭제
  5. 삭제
  6. 제1항에 있어서,
    상기 관리 모듈은,
    상기 사용자 단말기에 의한 트래픽에 대응하여 상기 서비스 모듈의 개수를 조절하는 것을 특징으로 하는 향상된 확장성 및 자율성을 갖는 컨테이너 기반 클라우드 시스템.
  7. 삭제
  8. 제1항에 있어서,
    상기 마스터 노드는,
    확보된 자원의 활용량이 임계치에 도달한 경우 네트워크 연결된 관리자 단말기로 알림을 전송하고,
    상기 매니저 노드는,
    상기 관리자 단말기로부터 전송된 요청에 대응하여 상기 슬레이브 노드를 추가 생성하는 것을 특징으로 하는 향상된 확장성 및 자율성을 갖는 컨테이너 기반 클라우드 시스템.
  9. 네트워크 연결된 사용자 단말기 별 인증 키를 생성하고, 상기 인증 키를 클라우드 내에서 할당된 영역을 가지는 컨테이너 기반의 인메모리 클러스터에 저장하는 단계;
    컨테이너 구조의 보안 모듈에 의해, 상기 사용자 단말기가 클라우드 서비스를 이용하는 동안 상기 인메모리 클러스터에 저장된 인증 키를 이용하여 상기 사용자 단말기의 인증을 주기적으로 수행하는 단계; 및
    컨테이너 구조의 서비스 모듈을 통해 인증된 사용자 단말기로 클라우드 서비스를 제공하는 단계; 를 포함하고,
    상기 사용자 단말기로 클라우드 서비스를 제공하는 단계는,
    컨테이너 구조의 데이터 접근 제어 모듈에 의해, 상기 서비스 모듈이 Web API(Application Programming Interface)를 통해 제1 데이터베이스 및 제2 데이터베이스에 대한 접근이 가능하도록 하는 단계; 및
    컨테이너 구조의 데이터 분산 모듈에 의해, 상기 제1 데이터베이스에 저장된 정보를 다른 상기 제2 데이터베이스로 복제하는 단계; 를 포함하고,
    상기 데이터 접근 제어 모듈은,
    POST, GET, PUT, 및 DELETE를 포함하는 HTTP 메소드(Method) 중 어느 하나와 상기 서비스 모듈이 필요로 하는 데이터의 URL(Uniform Resource Locator)을 포함하는 Web API를 상기 서비스 모듈로 제공하며,
    관리 모듈에 의해, 상기 사용자 단말기에 의한 트래픽에 대응하여 상기 보안 모듈의 개수를 조절하는 단계; 를 더 포함하고,
    상기 인메모리 클러스터는,
    상기 인증 키 및 이벤트 데이터를 캐쉬에 저장하는 컨테이너 구조의 슬레이브 노드;
    상기 슬레이브 노드의 상태를 감시하는 컨테이너 구조의 마스터 노드; 및
    상기 인메모리 클러스터의 정보를 저장하는 컨테이너 구조의 매니저 노드; 를 포함하는 향상된 확장성 및 자율성을 갖는 컨테이너 기반 클라우드 서비스 제공 방법.
  10. 삭제
  11. 제9항에 있어서,
    상기 데이터 분산 모듈은,
    상기 제1 데이터베이스에 기준치 이상의 트래픽이 발생한 경우 상기 제1 데이터베이스에 저장된 데이터의 적어도 일부를 상기 제2 데이터베이스로 복제하는 것을 특징으로 하는 향상된 확장성 및 자율성을 갖는 컨테이너 기반 클라우드 서비스 제공 방법.
  12. 삭제
  13. 제9항에 있어서,
    상기 관리 모듈에 의해, 상기 사용자 단말기에 의한 트래픽에 대응하여 상기 서비스 모듈의 개수를 조절하는 단계; 를 더 포함하는 향상된 확장성 및 자율성을 갖는 컨테이너 기반 클라우드 서비스 제공 방법.
  14. 삭제
  15. 제9항에 있어서,
    상기 마스터 노드는,
    확보된 자원의 활용량이 임계치에 도달한 경우 네트워크 연결된 관리자 단말기로 알림을 전송하고,
    상기 매니저 노드는,
    상기 관리자 단말기로부터 전송된 요청에 대응하여 상기 슬레이브 노드를 추가 생성하는 것을 특징으로 하는 향상된 확장성 및 자율성을 갖는 컨테이너 기반 클라우드 서비스 제공 방법.
KR1020200018698A 2020-02-16 2020-02-16 향상된 확장성 및 자율성을 갖는 컨테이너 기반 클라우드 시스템 및 클라우드 서비스 제공 방법 KR102122176B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200018698A KR102122176B1 (ko) 2020-02-16 2020-02-16 향상된 확장성 및 자율성을 갖는 컨테이너 기반 클라우드 시스템 및 클라우드 서비스 제공 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200018698A KR102122176B1 (ko) 2020-02-16 2020-02-16 향상된 확장성 및 자율성을 갖는 컨테이너 기반 클라우드 시스템 및 클라우드 서비스 제공 방법

Publications (1)

Publication Number Publication Date
KR102122176B1 true KR102122176B1 (ko) 2020-06-12

Family

ID=71088286

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200018698A KR102122176B1 (ko) 2020-02-16 2020-02-16 향상된 확장성 및 자율성을 갖는 컨테이너 기반 클라우드 시스템 및 클라우드 서비스 제공 방법

Country Status (1)

Country Link
KR (1) KR102122176B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102616104B1 (ko) * 2022-10-14 2023-12-20 주식회사 케이비시스 클라우드 서비스 제공 시스템

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101460651B1 (ko) * 2013-05-14 2014-11-14 고려대학교 산학협력단 클라우드 컴퓨팅 기반 서버 부하 분산 장치 및 방법
KR20160014518A (ko) * 2014-07-29 2016-02-11 삼성전자주식회사 데이터 공유 방법 및 이를 위한 장치
JP2018067332A (ja) * 2011-07-26 2018-04-26 オラクル・インターナショナル・コーポレイション クラウドコンピューティングのためのシステム及び方法
KR20190090037A (ko) * 2016-12-21 2019-07-31 쓰레트 스택, 인코퍼레이티드 클라우드 기반 운영 체제 이벤트 및 데이터 액세스 감시를 위한 시스템 및 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018067332A (ja) * 2011-07-26 2018-04-26 オラクル・インターナショナル・コーポレイション クラウドコンピューティングのためのシステム及び方法
KR101460651B1 (ko) * 2013-05-14 2014-11-14 고려대학교 산학협력단 클라우드 컴퓨팅 기반 서버 부하 분산 장치 및 방법
KR20160014518A (ko) * 2014-07-29 2016-02-11 삼성전자주식회사 데이터 공유 방법 및 이를 위한 장치
KR20190090037A (ko) * 2016-12-21 2019-07-31 쓰레트 스택, 인코퍼레이티드 클라우드 기반 운영 체제 이벤트 및 데이터 액세스 감시를 위한 시스템 및 방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102616104B1 (ko) * 2022-10-14 2023-12-20 주식회사 케이비시스 클라우드 서비스 제공 시스템

Similar Documents

Publication Publication Date Title
US10341251B2 (en) Method and system for securely transmitting volumes into cloud
US8606897B2 (en) Systems and methods for exporting usage history data as input to a management platform of a target cloud-based network
US8438635B2 (en) Single sign-on for remote desktops
US8812687B2 (en) Managing user state of cloud desktops
US10958633B2 (en) Method and system for securely transmitting volumes into cloud
US10990605B2 (en) Instance data replication
US20130067345A1 (en) Automated Desktop Services Provisioning
US20130074064A1 (en) Automated infrastructure provisioning
US11356531B2 (en) Data caching for cloud services
WO2014039882A1 (en) Ldap-based multi-tenant in-cloud identity management system
KR102110099B1 (ko) 퍼블릭 클라우드 및 프라이빗 클라우드를 포함하는 컨테이너 기반의 클라우드 서비스 제공 시스템
KR102090911B1 (ko) 컨테이너 기반의 클라우드 서비스 제공 시스템
KR102122176B1 (ko) 향상된 확장성 및 자율성을 갖는 컨테이너 기반 클라우드 시스템 및 클라우드 서비스 제공 방법
KR102121713B1 (ko) 컨테이너 기반의 클라우드 서비스 제공 방법
KR102209044B1 (ko) 클라우드 네이티브 데이터베이스 구조를 갖는 클라우드 시스템
Wei et al. A VDI system based on cloud stack and active directory
Hao Edge Computing on Low Availability Devices with K3s in a Smart Home IoT System
KR102616104B1 (ko) 클라우드 서비스 제공 시스템
KR20240053091A (ko) 클라우드 기반 마이크로 서비스 제공 시스템
Panarello et al. Cloud federation to elastically increase mapreduce processing resources
US20230148314A1 (en) Fast Launch Based on Hibernated Pre-launch Sessions
Marinescu Cloud infrastructure
Patil et al. Improved utilization of infrastructure of clouds by using upgraded functionalities
Kant Highly Available XenApp Cloud
Patil et al. A Novel Approach for Workload Optimization and Improving Security in Cloud Computing Environments

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant