KR101862274B1 - 클라우드 컴퓨팅 환경에서의 작업공간으로의 낮은 레이턴시 커넥션 - Google Patents

클라우드 컴퓨팅 환경에서의 작업공간으로의 낮은 레이턴시 커넥션 Download PDF

Info

Publication number
KR101862274B1
KR101862274B1 KR1020167035651A KR20167035651A KR101862274B1 KR 101862274 B1 KR101862274 B1 KR 101862274B1 KR 1020167035651 A KR1020167035651 A KR 1020167035651A KR 20167035651 A KR20167035651 A KR 20167035651A KR 101862274 B1 KR101862274 B1 KR 101862274B1
Authority
KR
South Korea
Prior art keywords
client
network
instance
virtual desktop
virtual
Prior art date
Application number
KR1020167035651A
Other languages
English (en)
Other versions
KR20170008293A (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 아마존 테크놀로지스, 인크.
Publication of KR20170008293A publication Critical patent/KR20170008293A/ko
Application granted granted Critical
Publication of KR101862274B1 publication Critical patent/KR101862274B1/ko

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
    • 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/451Execution arrangements for user interfaces
    • G06F9/452Remote windowing, e.g. X-Window System, desktop virtualisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • 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/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Multimedia (AREA)
  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Information Transfer Between Computers (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

가상 컴퓨팅 서비스를 제공하는 컴퓨팅 시스템은 서비스 제공자의 네트워크 상에서 호스팅되는 가상 데스크톱 인스턴스(작업공간)와 클라이언트 디바이스 간 원격 컴퓨팅 세션을 발생 및 관리할 수 있다. 시스템은 다수의 지리적으로 분산된 접속 거점(POP) 위치에서의 게이트웨이 컴포넌트로까지 확장되는 작업공간 서비스를 위한 가상 사설 클라우드를 구현할 수 있다. 가상 데스크톱 세션에 대한 클라이언트 요청에 응답하여, 서비스는 세션에 대한 가상 컴퓨팅 자원 인스턴스를 구성하고 세션에 대한 2-방향 대화형 비디오 스트림의 통신을 위해 클라이언트에 가까운 POP 위치에서의 게이트웨이 컴포넌트와 자원 인스턴스 간 (가상 사설 네트워크를 통하여) 보안, 신뢰할만한, 낮은 레이턴시 통신 채널을 확립할 수 있다. POP 위치를 포함하고 있는 가용성 구역은 세션에 대한 자원 인스턴스를 호스팅하고 있는 것과 다를 수 있다. 클라이언트 디바이스는 공중 네트워크를 통하여 게이트웨이 컴포넌트에 접속할 수 있다.

Description

클라우드 컴퓨팅 환경에서의 작업공간으로의 낮은 레이턴시 커넥션{LOW LATENCY CONNECTIONS TO WORKSPACES IN A CLOUD COMPUTING ENVIRONMENT}
많은 회사 및 다른 조직은, (예를 들어, 로컬 네트워크의 일부분으로서) 병설되거나 또는 대신에 (예를 들어, 하나 이상의 사설 또는 공중 중간 네트워크를 통하여 접속된) 다수의 구별되는 지리적 위치에 위치하는 컴퓨팅 시스템과와 같이, 그들 연산을 지원하기 위해 수많은 컴퓨팅 시스템을 상호접속하는 컴퓨터 네트워크를 운용한다. 예를 들어, 상당한 수의 상호접속된 컴퓨팅 시스템을 수용하는 데이터 센터는, 단일 조직에 의해 그리고 그것을 대리하여 운용되는 사설 데이터 센터, 및 컴퓨팅 자원을 고객 또는 클라이언트에 제공하기 위한 사업으로서 개체에 의해 운용되는 공중 데이터 센터와 같이, 아주 흔하게 되었다. 일부 공중 데이터 센터 운용자는 다양한 클라이언트에 의해 소유된 하드웨어에 네트워크 액세스, 전력 및 보안 설치 설비를 제공하는 한편, 다른 공중 데이터 센터 운용자는 그들 클라이언트에 의한 사용에 이용가능하게 된 하드웨어 자원도 포함하는 "풀 서비스" 설비를 제공한다. 그렇지만, 전형적 데이터 센터의 규모 및 범위가 증가함에 따라, 물리적 컴퓨팅 자원을 프로비저닝하고, 집행하고, 관리하는 태스크가 점점 복잡하게 되었다.
상품 하드웨어에 대한 가상화 기술의 출현은 다양한 요구를 갖는 많은 클라이언트를 위해 대규모 컴퓨팅 자원을 관리하는 것에 관하여 이점을 제공하여, 다양한 컴퓨팅 자원이 다수의 클라이언트에 의해 효율적으로 보안 공유 가능하게 하였다. 예를 들어, 가상화 기술은 각각의 사용자에게 단일 물리적 컴퓨팅 머신에 의해 호스팅되는 하나 이상의 가상 머신을 제공함으로써 단일 물리적 컴퓨팅 머신이 다수의 사용자 간에 공유 가능하게 할 수 있으며, 각각의 그러한 가상 머신은 사용자에게 그들이 소정 하드웨어 컴퓨팅 자원의 유일한 운용자 및 관리책임자라는 착각을 제공하는 한편, 다양한 가상 머신 간 애플리케이션 격리 및 보안도 제공하는 구별되는 논리적 컴퓨팅 시스템으로서 역할하는 소프트웨어 시뮬레이션이다. 더욱, 일부 가상화 기술은, 다수의 구별되는 물리적 컴퓨팅 시스템에 걸치는 다수의 가상 프로세서를 갖는 단일 가상 머신과 같이, 2개 이상의 물리적 자원에 걸치는 가상 자원을 제공할 수 있다. 가상화로, 단일 물리적 컴퓨팅 디바이스는 동적 방식으로 가상 머신을 생성, 유지 또는 삭제할 수 있다. 순차로, 사용자는 데이터 센터로부터 컴퓨터 자원을 요청할 수 있고 "필요에 따른" 기반으로 또는 적어도 "요청에 따른" 기반으로 가변 수의 가상 머신 자원을 제공받을 수 있다. 일부 시스템에서, 가상화된 컴퓨팅 자원은 가상 데스크톱을 구현하도록 사용될 수 있다.
도 1은, 적어도 일부 실시형태에 따라, 일례의 제공자 네트워크 환경을 예시하는 블록 선도;
도 2는, 적어도 일부 실시형태에 따라, 저장소 가상화 서비스 및 하드웨어 가상화 서비스를 클라이언트에 제공하는 일례의 제공자 네트워크를 예시하는 블록 선도;
도 3은, 적어도 일부 실시형태에 따라, 서비스 제공자 컴퓨터 네트워크와 통신하고 있는 클라이언트 컴퓨팅 디바이스를 포함하는 네트워킹된 컴퓨팅 환경을 예시하는 블록 선도;
도 4는, 적어도 일부 실시형태에 따라, 일례의 서비스 제공자 데이터 센터를 예시하는 블록 선도;
도 5는, 적어도 일부 실시형태에 따라, 사설 네트워크를 클라이언트에 제공하는 일례의 제공자 네트워크를 예시하는 블록 선도;
도 6은, 적어도 일부 실시형태에 따라, 가상 데스크톱 서비스가 클라이언트에 제공되는 일례의 네트워킹된 환경을 예시하는 블록 선도;
도 7a는, 적어도 일부 실시형태에 따라, 접속 거점 위치에서의 게이트웨이 컴포넌트가 가상 데스크톱 서비스의 가상 사설 클라우드 내에서 동작하는 일례의 네트워킹된 환경을 예시하는 블록 선도;
도 7b는, 적어도 일부 실시형태에 따라, 접속 거점 위치에서의 일부 게이트웨이 컴포넌트가 가상 데스크톱 서비스의 가상 사설 클라우드 내에서 동작하고 다른 것들이 피어 VPC 내에서 동작하는 일례의 네트워킹된 환경을 예시하는 블록 선도;
도 8은 접속 거점 위치에서의 게이트웨이 컴포넌트를 통해 클라이언트에 가상 데스크톱 서비스를 제공하기 위한 방법의 일 실시형태를 예시하는 순서도;
도 9는 접속 거점 위치에서의 게이트웨이 컴포넌트를 통해 작업공간 제공자와 클라이언트 간 대화형 비디오 트래픽을 관리하기 위한 방법의 일 실시형태를 예시하는 순서도;
도 10은 클라이언트가 접속 거점 위치에서의 게이트웨이 컴포넌트를 통해 작업공간 서비스에 접속하여 그와 통신하기 위한 방법의 일 실시형태를 예시하는 순서도; 및
도 11은, 여러 다른 실시형태에 따라, 여기에서 설명된 기술 중 일부 또는 전부를 구현하는 일례의 컴퓨터 시스템을 예시하는 블록 선도.
여기에서는 수개의 실시형태 및 예시적 도면에 대하여 예로서 실시형태가 설명되고 있기는 하지만, 당업자는 실시형태가 설명된 실시형태 또는 도면으로 한정되는 것은 아님을 인식할 것이다. 거기에서의 도면 및 상세한 설명은 개시된 특정 형태로 실시형태를 한정하려는 의도가 아니라, 반대로, 첨부 청구범위에 의해 정의되는 바와 같은 취지 및 범위 내에 드는 모든 수정물, 균등물 및 대안물을 망라하려는 의도임을 이해하여야 한다. 여기에서 사용되는 제목은 단지 편성 목적일 뿐이고 청구범위 또는 설명의 범위를 제한하도록 사용됨을 의미하지는 않는다. 본 출원의 곳곳에서 사용될 때, 단어 "할 수 있다"는 의무적 의미(즉, 필수를 의미)보다는 허용적 의미(즉, 잠재성을 가짐을 의미)로 사용된다. 유사하게, 단어 "포함한다" 및 그 활용형은 포함하지만 국한되지는 않음을 의미한다.
클라이언트에 가상화된 컴퓨팅 자원을 제공하는 시스템에서 작업공간(예를 들어, 가상 데스크톱 인스턴스)에 낮은 레이턴시 커넥션(또는 통신 채널)을 제공하기 위한 방법 및 시스템의 다양한 실시형태가 여기에서 설명된다. 가상 컴퓨팅 서비스를 제공하는 컴퓨팅 시스템은 서비스 제공자의 네트워크 상에서 호스팅되는 가상 데스크톱 인스턴스(작업공간)와 클라이언트 컴퓨팅 디바이스 간 원격 컴퓨팅 세션을 발생 및 관리할 수 있다. 예를 들어, 시스템은 대화형 비디오 스트림이 통해 그들 자신의 컴퓨팅 디바이스 상의 최종 사용자에 전달되는 작업공간 서비스를 구현할 수 있다. 작업공간 서비스의 성능의 큰 요소(예를 들어, 대화형 비디오 스트림을 전달함에 있어서의 레이턴시 및/또는 전달된 비디오 스트림의 품질)는 대화형 비디오 스트림이 통하여 최종 사용자에 전달되는 커넥션(예를 들어, 서비스 제공자의 네트워크 상에 호스팅된 가상 컴퓨팅 자원 인스턴스로부터 최종 사용자의 사무실에 놓여 있는 클라이언트 디바이스로까지의 통신 채널)을 제공하는 네트워크(또는 일련의 네트워크)에 종속할 수 있다. 일반적으로, 대화형 비디오 스트림의 전달은, 어느 종류의 네트워크 악영향이라도 최종 사용자에 대한 커넥션의 품질에 영향을 미칠 수 있다는 점에서, 매우 시간-민감할 수 있다. 일부 실시형태에서, 여기에서 설명되는 시스템 및 방법은 공중 네트워크(예를 들어, 공중 인터넷)를 순회하고 그리하여 작업공간 서비스가 제어를 거의 갖지 않는 비교적 낮은-품질 네트워크에 대화형 비디오 스트림을 노출시키는 그 경로의 부분을 최소화할 수 있다.
일부 실시형태에서, 여기에서 설명되는 시스템은 다수의 지리적으로 분산된 접속 거점(POP) 위치에서의 보안 게이트웨이 또는 액세스 게이트웨이 컴포넌트(때로는 여기에서 "게이트웨이 컴포넌트" 또는 단순히 "게이트웨이"라고 지칭됨)로까지 확장되는 작업공간 서비스를 위한 가상 사설 클라우드(VPC)를 구현할 수 있다. 환언하면, 이들 시스템은 작업공간 서비스의 VPC 내에서 동작하면서 최종 사용자의 클라이언트 디바이스에 가까이 물리적으로 위치하는 컴퓨팅 노드 상에서 실행되고 있는 게이트웨이 컴포넌트(및 작업공간 서비스의 제어 하에 있는 나머지)를 포함할 수 있다. 일부 실시형태에서, 이러한 접근법은 게이트웨이 컴포넌트와 클라이언트 디바이스 간 잠재적으로 더 적은 신뢰성, 더 높은 레이턴시 공중 네트워크 커넥션으로의 스위칭 전에 가능한 클라이언트 디바이스에 가까운 포인트로까지 가상 데스크톱 세션에 대한 대화형 비디오 스트림을 통신하기 위한 보안, 신뢰할만한, 낮은 레이턴시, 높은 대역폭, 낮은 손실 및 낮은 지터 통신 채널의 사용을 통해 높은 품질 커넥션 및 최종-사용자 경험을 제공할 수 있다. 용어 "커넥션" 및 "통신 채널"은 이하의 설명에서는 다소 호환가능하게 사용될 수 있음을 주목한다. 그렇지만, 다양한 실시형태에서, 게이트웨이 컴포넌트를 통한 가상 데스크톱 인스턴스와 클라이언트 디바이스 간 커넥션 또는 통신 채널은 높은-레벨 핸드셰이킹 프로토콜을 구현(그에 의존)할 수도 있고 그렇지 않을 수도 있고 그리고 네트워킹 컴포넌트 간 특정 유형의 가상 또는 물리적 커넥션으로 또는 특정 유형의 네트워킹 컴포넌트로 한정되지 않는다.
일부 실시형태에서, 서비스 제공자의 네트워킹된 환경은 다수의 가상 데스크톱 인스턴스를 포함할 수 있으며, 그 각각은 가상 데스크톱 (작업공간) 서비스를 집합적으로 구현하는 다수의 컴퓨팅 노드 중 각각의 하나 상에 호스팅된다. 이들 컴퓨팅 노드는 (예를 들어, 여러 다른 빌딩, 도시, 지역 또는 영역에서) 다수의 가용성 구역에서 데이터 센터 내에 위치할 수 있다. 일부 실시형태에서, 이러한 네트워킹된 환경은 다수의 게이트웨이 컴포넌트를 포함할 수 있으며, 그 각각은 가용성 구역 중 하나에서의 POP 위치에서의 각각의 컴퓨팅 노드 상에 호스팅된다. 여기에서 더 상세히 설명되는 바와 같이, 가상 데스크톱 서비스의 관리 컴포넌트 및 이들 게이트웨이 컴포넌트는 가상 데스크톱 서비스의 가상 사설 클라우드 내에서 서로 상호운용될 수 있고, 가상 사설 네트워크를 통하여 서로 통신할 수 있다. 일부 실시형태에서, 게이트웨이 컴포넌트는 POP 위치에서의 컴퓨팅 노드 상에서 호스팅되는 가상화된 자원 인스턴스를 사용하여 구현될 수 있다.
일부 실시형태에서, 가상 데스크톱 세션에 대한 클라이언트 요청에 응답하여, 서비스는 가상 데스크톱 세션을 구현할 가상 데스크톱 인스턴스로서 가상 컴퓨팅 자원 인스턴스를 구성할 수 있다. 이러한 가상 컴퓨팅 자원 인스턴스는 대리에 의해 그것들이 인스턴스화되고 그리고/또는 구성되는 클라이언트(예를 들어, 대리에 의해 요청이 클라이언트 디바이스로부터 수신된 클라이언트)의 가상 사설 클라우드 내에서 동작(또는 참가)하는 다수의 가상 자원 인스턴스 중 하나일 수 있다. 하나 이상의 다른 가상 컴퓨팅 자원 인스턴스는 서비스의 관리 컴포넌트를 구현하도록 구성될 수 있다.
가상 데스크톱 세션에 대한 클라이언트 요청에 응답하여, 서비스는 또한 세션에 대한 2-방향 대화형 비디오 스트림의 통신을 위해 클라이언트 디바이스에 가까운 POP 위치에서의 게이트웨이 컴포넌트와 가상 컴퓨팅 자원 인스턴스 간 (예를 들어, 가상 사설 네트워크를 통하여) 보안, 신뢰할만한, 낮은 레이턴시 커넥션을 확립할 수 있다. 예를 들어, 대화형 비디오 스트림은 가상 데스크톱 인스턴스로부터 클라이언트 디바이스로 통신되는 픽셀의 스트림 및 가상 데스크톱 인스턴스와의 사용자 상호작용을 표현하는 클라이언트 디바이스로부터 가상 데스크톱 인스턴스로 통신되는 입력을 포함할 수 있다. 일부 실시형태에서, 대화형 비디오 스트림은 (예를 들어, 픽셀의 스트림에 부가하여 또는 그 대신에) 가상 데스크톱 인스턴스로부터 클라이언트 디바이스로 통신되는 그리고 클라이언트 디바이스에 의한 디스플레이를 위해 픽셀을 발생 및/또는 렌더링하도록 클라이언트 디바이스에 지시하는 명령어를 표현하는 커맨드를 포함할 수 있다. 여기에서 더 상세히 설명되는 바와 같이, 게이트웨이 컴포넌트는 다양한 POP 위치에서 호스팅되는 다수의 그러한 게이트웨이 컴포넌트 중 하나일 수 있고, 적어도 부분적으로, 클라이언트에 대한 그 근접도에 기인하여 세션을 제공하는데 사용하기 위해 선택될 수 있다. 예를 들어, 게이트웨이 컴포넌트는 수신된 요청이 유래한 클라이언트 디바이스와 동일한 도시, 지역 또는 영역에서의 POP 위치에서 호스팅되는 다수의 게이트웨이 컴포넌트 중 하나일 수 있다. 또한, 게이트웨이 컴포넌트가 호스팅되는 가용성 구역은 세션에 대한 자원 인스턴스가 있는 가용성 구역과는 다를 수 있음을 주목한다. 일부 실시형태에서, 게이트웨이 컴포넌트는 서비스의 관리 컴포넌트(예를 들어, 서비스의 VPC 내에서 동작하는 것)에 의해 자동으로 선택될 수 있는 한편, 다른 실시형태에서 서비스의 클라이언트 부분은 게이트웨이 컴포넌트를 선택할 수 있다. 가상 컴퓨팅 자원 인스턴스와 게이트웨이 컴포넌트 간 커넥션이 서비스에 의해 확립(그리고 클라이언트 디바이스와 게이트웨이 컴포넌트 간 커넥션이 확립)되고 나면, 서비스는 가상 데스크톱 세션 상에서 가상 데스크톱 세션을 시작하고 세션에 대한 대화형 비디오 스트림의 통신을 개시할 수 있다.
여기에서 설명되는 방법 및 시스템은, 여러 다른 실시형태에서, 네트워크 환경 내에서의 하나 이상의 컴퓨팅 시스템 상에서 또는 그에 의해 구현될 수 있다. 여기에서 설명되는 클라우드 컴퓨팅 환경에서 작업공간을 보안하기 위한 기술의 실시형태가 구현될 수 있는 일례의 컴퓨터 시스템은 도 11에 예시된다. 이들 기술을 구현하기 위한 다양한 방법 및 시스템의 실시형태는 일반적으로 여기에서는, 서비스 제공자의 제공자 네트워크 상에 구현된 가상화된 자원(예를 들어, 가상화된 컴퓨팅 및 저장 자원)을, 인터넷과 같은 중간 네트워크를 통하여, 클라이언트에 제공하는 서비스 제공자의 맥락에서 설명된다. 도 1 내지 도 7 및 도 11(및 그 대응하는 설명)은 여기에서 설명되는 방법 및 시스템의 실시형태가 구현될 수 있는 예의 환경을 예시 및 설명하지만, 한정적인 것으로 의도되지는 않는다. 적어도 일부 실시형태에서, 제공자 네트워크를 통하여 서비스 제공자의 클라이언트에 제공되는 자원 중 적어도 일부는 특정 클라이언트에 전용인 하드웨어 상에서 그리고/또는 다른 클라이언트(들)와 공유되는 멀티-테넌트 하드웨어 상에서 구현된 가상화된 컴퓨팅 자원일 수 있다. 각각의 가상화된 컴퓨팅 자원은 자원 인스턴스라고 지칭될 수 있다. 자원 인스턴스는, 예를 들어, 서비스 제공자의 클라이언트에 임대 또는 대여될 수 있다. 예를 들어, 서비스 제공자의 클라이언트는 자원 인스턴스를 획득 및 구성하고 자원 인스턴스를 포함하는 가상 네트워크 구성, 예를 들어 가상화된 사설 네트워크를 확립 및 관리하도록 서비스로의 API를 통하여 제공자 네트워크의 하나 이상의 서비스에 액세스할 수 있다.
일부 실시형태에서, 자원 인스턴스는, 예를 들어, 다수의 운영 체제가 호스트 컴퓨터 상에서 병행하여 실행 가능하게 하는 하드웨어 가상화 기술에 따라, 즉, 호스트 상의 가상 머신(VM)으로서 구현될 수 있다. 호스트 상의 하이퍼바이저 또는 가상 머신 모니터(VMM)는 호스트 상의 VM에 가상 플랫폼을 제시할 수 있고 VM의 실행을 모니터링한다. 각각의 VM에는 하나 이상의 사설 IP 주소가 제공될 수 있다; 호스트 상의 VMM은 호스트 상의 VM의 사설 IP 주소를 알고 있을 수 있다. 그러한 하드웨어 가상화 기술을 채용하는 시스템의 일례는 도 4에 예시되고 아래에서 상세히 설명된다.
다양한 실시형태에서, 가상 컴퓨팅 서비스를 제공하기 위한 여기에서 설명되는 시스템은 다수의 "가용성 구역"에 걸쳐 전개될 수 있으며, 그 각각은 컴퓨팅 노드의 집합이 구현되는 그 자신의 물리적으로 구별되는 독립적 기반구조를 포함할 수 있다. 일부 실시형태에서, 각각의 가용성 구역은 다른 지리적 위치 또는 영역에 거처할 수 있는 한편, 다른 실시형태에서 다수의 가용성 구역은 동일한 지리적 위치 또는 영역에 거처할 수 있다.
예시적 제공자 네트워크 환경
이 절은 여기에서 설명되는 방법의 실시형태가 구현될 수 있는 예시적 제공자 네트워크 환경을 설명한다. 그렇지만, 이들 예시적 제공자 네트워크 환경은 한정하고 있다고 의도되지는 않는다. 다양한 실시형태에서, 이들 제공자 네트워크 환경에서, 서비스 제공자는 최종 사용자에 의해 액세스될 수 있는 가상화된 자원 인스턴스를 고객을 대리하여 호스팅할 수 있다. 예를 들어, 대리에 의해 가상화된 자원 인스턴스가 호스팅되는 고객과 연관되는 최종 사용자(예를 들어, 동일한 조직 또는 기업의 구성원)는 클라이언트 디바이스 상의 클라이언트 애플리케이션을 사용하여 가상화된 자원 인스턴스에 액세스할 수 있을 수 있다. 일부 실시형태에서, 가상화된 자원 인스턴스는 가상 데스크톱 인스턴스를 구현하도록 구성될 수 있다.
도 1은, 적어도 일부 실시형태에 따라, 일례의 제공자 네트워크 환경을 예시한다. 제공자 네트워크(100)는 하나 이상의 데이터 센터에서 제공자 네트워크 또는 네트워크들 내에서의 디바이스 상에 구현된, 국한되는 것은 아니지만 계산 및 저장 자원을 포함하는, 가상화된 자원의 인스턴스(112)를 클라이언트가 구입, 임차, 아니면 획득할 수 있게 하는 하나 이상의 가상화 서비스(110)를 통하여 클라이언트에 자원 가상화를 제공할 수 있다. 사설 IP 주소(116)는 자원 인스턴스(112)와 연관될 수 있다; 사설 IP 주소는 제공자 네트워크(100) 상의 자원 인스턴스(112)의 내부 네트워크 주소이다. 일부 실시형태에서, 제공자 네트워크(100)는 또한 클라이언트가 제공자(100)로부터 획득할 수 있는 공중 IP 주소(114) 및/또는 공중 IP 주소 범위(예를 들어, 인터넷 프로토콜 버전 4(IPv4) 또는 인터넷 프로토콜 버전 6(IPv6) 주소)를 제공할 수 있다.
관용적으로, 제공자 네트워크(100)는, 가상화 서비스(110)를 통하여, 서비스 제공자의 클라이언트(예를 들어, 각각 하나 이상의 클라이언트 디바이스(152)를 포함할 수 있는 클라이언트 네트워크(150A, 150B, 또는 150C)를 운용하는 클라이언트)가 클라이언트에 배정 또는 할당된 적어도 일부 공중 IP 주소(114)를 클라이언트에 배정된 특정 자원 인스턴스(112)와 동적으로 연관시킬 수 있게 할 수 있다. 제공자 네트워크(100)는 또한 클라이언트가 클라이언트에 할당된 하나의 가상화된 컴퓨팅 자원 인스턴스(112)에 이전에 매핑된 공중 IP 주소(114)를 클라이언트에 또한 할당되는 다른 가상화된 컴퓨팅 자원 인스턴스(112)에 리매핑할 수 있게 할 수 있다. 예를 들어, 서비스 제공자에 의해 제공된 가상화된 컴퓨팅 자원 인스턴스(112) 및 공중 IP 주소(114)를 사용하여, 클라이언트 네트워크(150A)의 운용자와 같은 서비스 제공자의 클라이언트는 클라이언트-특정 애플리케이션을 구현하고 인터넷과 같은 중간 네트워크(140) 상에 클라이언트의 애플리케이션을 제시할 수 있다. 중간 네트워크(140) 상의 다른 네트워크 개체(120)는, 그 후, 클라이언트 네트워크(150A)에 의해 발간된 수신지 공중 IP 주소(114)로의 트래픽을 발생시킬 수 있다; 트래픽은 서비스 제공자 데이터 센터로 라우팅되고, 데이터 센터에서는 수신지 공중 IP 주소(114)에 현재 매핑된 가상화된 컴퓨팅 자원 인스턴스(112)의 사설 IP 주소(116)로, 네트워크 서브스트레이트를 통하여, 라우팅된다. 유사하게, 가상화된 컴퓨팅 자원 인스턴스(112)로부터의 응답 트래픽은 네트워크 서브스트레이트를 통하여 다시 중간 네트워크(140) 상으로 소스 개체(120) 상으로 라우팅될 수 있다.
사설 IP 주소는, 여기에서 사용될 때, 제공자 네트워크에서 자원 인스턴스의 내부 네트워크 주소를 지칭한다. 사설 IP 주소는 제공자 네트워크 내에서만 라우팅 가능하다. 제공자 네트워크 외부에서 기원하는 네트워크 트래픽은 사설 IP 주소로 직접 라우팅되지 않는다; 대신에, 트래픽은 자원 인스턴스에 매핑되는 공중 IP 주소를 사용한다. 제공자 네트워크는 공중 IP 주소로부터 사설 IP 주소로 그리고 그 역으로도 매핑을 수행하기 위해 네트워크 주소 변환(NAT) 또는 유사한 기능성을 제공하는 네트워크 디바이스 또는 기기를 포함할 수 있다.
공중 IP 주소는, 여기에서 사용될 때, 서비스 제공자에 의해서든 클라이언트에 의해서든 자원 인스턴스에 배정되는 인터넷 라우팅 가능한 네트워크 주소이다. 공중 IP 주소로 라우팅된 트래픽은, 예를 들어 1:1 네트워크 주소 변환(NAT)을 통하여, 변환되고 자원 인스턴스의 각각의 사설 IP 주소로 포워딩된다.
일부 공중 IP 주소는 제공자 네트워크 기반구조에 의해 특정 자원 인스턴스에 배정될 수 있다; 이들 공중 IP 주소는 표준 공중 IP 주소, 또는 단순히 표준 IP 주소라고 지칭될 수 있다. 적어도 일부 실시형태에서, 자원 인스턴스의 사설 IP 주소에 표준 IP 주소의 매핑은 모든 자원 인스턴스 유형에 대한 디폴트 론칭 구성이다.
적어도 일부 공중 IP 주소는 제공자 네트워크(100)의 클라이언트에 할당되거나 그에 의해 획득될 수 있다; 그 후 클라이언트는 클라이언트에 할당된 특정 자원 인스턴스에 그들 할당된 공중 IP 주소를 배정할 수 있다. 이들 공중 IP 주소는 클라이언트 공중 IP 주소, 또는 단순히 클라이언트 IP 주소라고 지칭될 수 있다. 표준 IP 주소의 경우에서와 같이 제공자 네트워크(100)에 의해 자원 인스턴스에 배정되는 대신에, 클라이언트 IP 주소는, 예를 들어 서비스 제공자에 의해 제공된 API를 통하여, 클라이언트에 의해 자원 인스턴스에 배정될 수 있다. 표준 IP 주소와는 달리, 클라이언트 IP 주소는 클라이언트 계정에 할당되고 필요 또는 소망에 따라 각각의 클라이언트에 의해 다른 자원 인스턴스에 리매핑될 수 있다. 일부 실시형태에서, 클라이언트 IP 주소는, 특정 자원 인스턴스가 아니라, 클라이언트의 계정과 연관되고, 그리고 클라이언트는 클라이언트가 그것을 해제하기로 선택할 때까지 그 IP 주소를 제어한다. 관용적 정적 IP 주소와는 달리, 클라이언트 IP 주소는 클라이언트가 클라이언트의 공중 IP 주소를 클라이언트의 계정과 연관된 어느 자원 인스턴스에라도 리매핑함으로써 자원 인스턴스 또는 가용성 구역 장애를 마스킹할 수 있게 할 수 있다. 클라이언트 IP 주소는, 예를 들어, 클라이언트가 클라이언트 IP 주소를 대체 자원 인스턴스에 리매핑함으로써 클라이언트의 자원 인스턴스 또는 소프트웨어와의 문제를 둘러 엔지니어링 가능하게 할 수 있다.
일부 실시형태에서, 가상화 서비스(들)(110)를 통하여 클라이언트(예를 들어, 클라이언트 디바이스(152))가 이용가능하게 되는 자원 인스턴스(112)는 다수의 네트워크 인터페이스를 포함할 수 있음을 또한 주목한다. 예를 들어, (가상 데스크톱 인스턴스를 구현하도록 구성되는 것들을 포함하는) 그들 중 적어도 일부 가상화된 컴퓨팅 자원 인스턴스는 클라이언트 네트워크(150)의 다양한 컴포넌트와 통신하기 위한 하나의 네트워크 인터페이스 및 제공자 네트워크(100) 외부에 있는 다른 네트워크(도시되지 않음) 상의 자원 또는 다른 네트워크 개체와 통신하기 위한 다른 네트워크 인터페이스를 포함할 수 있다.
도 2는, 적어도 일부 실시형태에 따라, 저장소 가상화 서비스 및 하드웨어 가상화 서비스를 클라이언트에 제공하는 다른 일례의 제공자 네트워크 환경의 블록 선도이다. 이 예에서, 하드웨어 가상화 서비스(220)는 다수의 계산 자원(224)(예를 들어, VM)을 클라이언트에 제공한다. 계산 자원(224)은, 예를 들어, 제공자 네트워크(200)의 클라이언트에(예를 들어, 클라이언트 네트워크(250)를 구현하는 클라이언트에) 임대 또는 대여될 수 있다. 각각의 계산 자원(224)에는 하나 이상의 사설 IP 주소가 제공될 수 있다. 제공자 네트워크(200)는 계산 자원(224)의 사설 IP 주소로부터 공중 인터넷 수신지로 그리고 공중 인터넷 소스로부터 계산 자원(224)으로 패킷을 라우팅하도록 구성될 수 있다.
제공자 네트워크(200)는, 중간 네트워크(240)에 그리고 제공자 네트워크(200)에 결합된 하드웨어 가상화 서비스(220)를 통하여 가상 컴퓨팅 시스템(292)을 구현할 수 있는 능력을, 예를 들어, 로컬 네트워크(256)를 통하여 중간 네트워크(240)에 결합된 클라이언트 네트워크(250)에 제공할 수 있다. 일부 실시형태에서, 하드웨어 가상화 서비스(220)는 클라이언트 네트워크(250)가, 예를 들어 콘솔(294)을 통하여, 하드웨어 가상화 서비스(220)에 의해 제공된 기능성에 액세스할 수 있게 하는 하나 이상의 API(202), 예를 들어 웹 서비스 인터페이스를 제공할 수 있다. 적어도 일부 실시형태에서, 제공자 네트워크(200)에서는, 클라이언트 네트워크(250)에서의 각각의 가상 컴퓨팅 시스템(292)은 클라이언트 네트워크(250)에 대여, 임대, 아니면 제공되는 계산 자원(224)에 대응할 수 있다.
가상 컴퓨팅 시스템(292) 및/또는 다른 클라이언트 디바이스(290) 또는 콘솔(294)의 인스턴스로부터, 클라이언트는 제공자 네트워크(200)에 의해 제공된 가상 데이터 스토어(216)로부터 데이터에 액세스하고 그에 데이터를 저장하기 위해, 예를 들어 하나 이상의 API(202)를 통하여, 저장소 가상화 서비스(210)의 기능성에 액세스할 수 있다. 일부 실시형태에서, 가상화된 데이터 스토어 게이트웨이(도시되지 않음)는 적어도 일부 데이터, 예를 들어 빈번하게 액세스되는 또는 임계 데이터를 로컬 캐싱할 수 있는, 그리고 데이터의 일차적 스토어(가상화된 데이터 스토어(216))가 유지되고 있도록 로컬 캐시로부터 새로운 또는 수정된 데이터를 업로드하기 위해 하나 이상의 통신 채널을 통하여 가상화된 데이터 스토어 서비스(210)와 통신할 수 있는 클라이언트 네트워크(250)에서 제공될 수 있다. 적어도 일부 실시형태에서, 사용자는, 가상 컴퓨팅 시스템(292)을 통하여 그리고/또는 다른 클라이언트 디바이스(290) 상에서, 가상 데이터 스토어(216)의 하나 이상의 저장 볼륨(218)을 마운트 및 액세스할 수 있으며, 그 각각은 로컬 가상화된 저장소(298)로서 사용자에게 보인다.
도 2에 도시되지는 않지만, 가상화 서비스(들)는 또한 API(들)(202)를 통하여 제공자 네트워크(200) 내에서의 자원 인스턴스로부터 액세스될 수 있다. 예를 들어, 클라이언트, 기기 서비스 제공자, 또는 다른 개체는 사설 네트워크 내에서의 또는 다른 사설 네트워크 내에서의 하나 이상의 자원 인스턴스의 할당을 요청하기 위해 API(202)를 통하여 제공자 네트워크(200) 상의 각각의 사설 네트워크 내로부터의 가상화 서비스에 액세스할 수 있다. 일부 실시형태에서, 하드웨어 가상화 서비스(220)는, (가상 컴퓨팅 시스템(292)에 의해 구현된) 로컬 데스크톱으로서 사용자에게 보일 수 있는, 가상 데스크톱 인스턴스를 구현하도록 구성된 계산 자원(224)을 제공하도록 구성될 수 있음을 주목한다. 일부 실시형태에서, 하드웨어 가상화 서비스(220)를 통하여 클라이언트가 이용가능하게 되는 계산 자원(224)은 다수의 네트워크 인터페이스를 포함할 수 있음을 또한 주목한다. 예를 들어, 그들 중 적어도 일부는 클라이언트 네트워크(250)의 다양한 컴포넌트와 통신하기 위한 하나의 네트워크 인터페이스 및 제공자 네트워크(200) 외부에 있는 다른 네트워크(도시되지 않음) 상의 계산 자원 또는 다른 네트워크 개체와 통신하기 위한 다른 네트워크 인터페이스를 포함할 수 있다.
일부 실시형태에서, 서비스 제공자 네트워크의 다양한 컴포넌트는 프로그램 실행 서비스(PES) 플랫폼의 하나 이상의 원격 데이터 센터 컴퓨터에 의해 호스팅된 가상 데스크톱 인스턴스와 클라이언트 컴퓨팅 디바이스 간 원격 컴퓨팅 세션의 발생 및 관리를 위해 구성될 수 있다. 여러 데이터 센터는 PES의 고객에 의해 데이터 센터의 자원의 이용을 용이하게 할 수 있는 단일 PES 플랫폼의 일부분으로서 조직될 수 있다. 일부 실시형태에서, PES는 수백 또는 수천의 데이터 센터 컴퓨터를 포함할 수 있다. 예를 들어, 일부 실시형태에서, 클라이언트 컴퓨팅 디바이스는 하나 이상의 원격 컴퓨팅 세션 동안 가상 데스크톱 인스턴스에 액세스할 수 있고, 그리고 가상 데스크톱 인스턴스는 클라이언트 데스크톱 환경의 능력 전부를 그러나 클라이언트에 의해 액세스된 서비스의 중앙집중형 프로비저닝을 사용자에게 제공할 수 있다.
일부 실시형태에서, 사용자는, 클라이언트 컴퓨팅 디바이스를 통하여, 원격 컴퓨팅 애플리케이션과 같은 애플리케이션을 로딩하라는 요청을 송신할 수 있다. 요청의 수신에 후속하여, 클라이언트 컴퓨팅 디바이스는 원격 컴퓨팅 세션을 시작하기 위해 PES 플랫폼과 통신할 수 있다. 일 실시형태에서, 클라이언트 컴퓨팅 디바이스와 PES 플랫폼 간 통신은 로그인 정보를 포함할 수 있다. 다른 실시형태에서, 통신은 또한 자원 사용 정보를 식별시키는 정보, 프로세싱 요건, 또는 클라이언트 컴퓨팅 디바이스의 사용자에 대한 원격 컴퓨팅 세션의 듀레이션 또는 조건에 관한 규칙을 포함할 수 있다. 클라이언트 컴퓨팅 디바이스는, 국한되는 것은 아니지만, 디바이스 자원의 현재 또는 장래 가용성을 포함하는, 디바이스 상태에 관한 다양한 정보를 더 통신할 수 있다(예를 들어, 프로세싱 능력, 메모리, 저장, 네트워크 사용 등). 수신된 정보를 사용하여, PES 플랫폼은 하나 이상의 원격 컴퓨팅 세션에서의 실행을 위한 하나 이상의 가상 데스크톱 인스턴스를 식별할 수 있다. 일례에서, PES 플랫폼은 데이터 센터 컴퓨터 상에서 가상 머신 인스턴스를 인스턴스화하거나, 인스턴스화되게 야기할 수 있고, 가상 머신 인스턴스는 운영 체제를 포함할 수 있다. 클라이언트 컴퓨팅 디바이스는 그 후 가상 머신과의 원격 컴퓨팅 세션을 확립할 수 있고, 운영 체제의 사용자 인터페이스(예를 들어, 그래픽 사용자 인터페이스, 음향 등과 같은, 운영 체제의 출력)는 가상 머신 인스턴스 또는 가상 데스크톱 인스턴스의 특정 네트워크 인터페이스를 통하여 클라이언트 컴퓨팅 디바이스에 보내지고 사용자에게 제시될 수 있다(예를 들어, 그래픽 사용자 인터페이스는 클라이언트 컴퓨팅 디바이스의 디스플레이 상에 렌더링될 수 있다). 운영 체제는 데스크톱 배경, 스크린 세이버, 데스크톱 레이아웃, 포인터 선호도, 음향 설정 등을 설정함으로써 사용자에 대한 가상 데스크톱 인스턴스를 구성하도록 사용자와 연관된 그리고 PES에 의해 액세스가능한 데스크톱 스토어 상에 저장된 데스크톱 프로파일을 사용할 수 있다. 마우스 및 키보드 활동과 같은 사용자 입력은 그 후 (가상 머신 인스턴스 또는 가상 데스크톱 인스턴스의 특정 네트워크 인터페이스를 통하여) 가상 머신에 보내지고 활동이 가상 머신에서 직접 사용자에 의해 수행되는 것처럼 운영 체제에 인젝팅될 수 있다.
일부 실시형태에서, PES 플랫폼은 원격 컴퓨팅 세션 동안 클라이언트 컴퓨팅 디바이스 상에서 가상 데스크톱 인스턴스와 클라이언트 컴퓨팅 디바이스의 상호작용과 연관된 데이터를 수신 또는 발생시킬 수 있다. 데이터는 사용자 데이터 및 선호도, 파일 등을 포함할 수 있다. 데이터를 수신시, PES 플랫폼은 가상 데스크톱 인스턴스와 연관된 데스크톱 스토어에 데이터를 저장할 수 있다. 일부 실시형태에서, 데스크톱 스토어는 볼륨 상에, 또는 다른 논리적 블록 저장 디바이스 상에 구현될 수 있다. 일부 실시형태에서, PES는 데이터의 백업 사본을 생성하거나 또한 중앙 리파지토리에 데이터를 저장할 수 있다. 저장된 데이터는, 그 후, 가상 데스크톱 인스턴스, 가상 데스크톱 인스턴스를 호스팅하는 서버, 네트워크 등의 장애와 같은 장애에 기인하여 인터럽트된 원격 컴퓨팅 세션을 복원하도록 사용될 수 있다. 사용자 데이터를 저장함으로써, PES 플랫폼은 원격 컴퓨팅 세션의 재-확립이 클라이언트 컴퓨팅 디바이스의 사용자에 최소 지연 및 중단으로 일어남을 보장할 수 있다.
일부 실시형태에서, 제공된 가상 데스크톱 인스턴스는 PES의 사용자 프로파일 스토어에서 저장된 사용자 프로파일에 따라 구성될 수 있다. 가상 데스크톱 인스턴스의 구성은 또한 인스턴스의 모니터링된 사용에 따라 조절될 수 있다. 일부 실시형태에서, 사용자 프로파일은 사용자의 사용을 통제하는 개체와 연관된 관리책임자에 의해 설정될 수 있다. 사용자 프로파일은 하나 이상의 가상 데스크톱 인스턴스를 실행하는 PES 컴퓨터와 연관된 다양한 메모리 및 프로세싱 요건뿐만 아니라 가상 데스크톱 인스턴스에 대한 요건도 표시할 수 있다. 예를 들어, 사용자 프로파일은 가상 데스크톱 인스턴스를 사용하는 동안 사용자가 액세스를 부여받는 프로그램을 표시할 수 있다. 사용자 프로파일은 또한 원격 컴퓨팅 세션과 연관된 최대 시간 또는 비용을 표시할 수 있다. PES는 가상 데스크톱 인스턴스를 배치 및 구성할 때 사용자에 대한 사용자 프로파일을 고려할 수 있다. 부가적으로, 배치 및 구성 결정은 또한 시간의 흐름에 따른 가상 데스크톱과 사용자의 상호작용에 기반하여 조절될 수 있다.
도 3은 통신 네트워크(304)를 통하여 서비스 제공자 컴퓨터 네트워크(305)와 통신하고 있는 클라이언트 컴퓨팅 디바이스(306)를 포함하는 일례의 네트워킹된 컴퓨팅 환경(300)을 예시하는 블록 선도이다. 클라이언트 컴퓨팅 디바이스(306)는 원격 운영 체제 및 애플리케이션으로의 액세스를 사용자에게 제공하도록 사용될 수 있다. 다양한 실시형태에서, 클라이언트 컴퓨팅 디바이스(306)는 퍼스널 컴퓨팅 디바이스, 랩톱 컴퓨팅 디바이스, 핸드헬드 컴퓨팅 디바이스, 단말 컴퓨팅 디바이스, 모바일 디바이스(예를 들어, 모바일 폰, 태블릿 컴퓨팅 디바이스, 전자책 리더 등), 무선 디바이스, 다양한 전자 디바이스 및 기기 등을 포함하는 광범위한 각종 컴퓨팅 디바이스에 대응할 수 있다. 일부 실시형태에서, 클라이언트 컴퓨팅 디바이스(306)는 광역 통신망 또는 근거리 통신망과 같은 통신 네트워크(304)를 통한 통신을 확립하는데 필요한 하드웨어 및 소프트웨어 컴포넌트를 포함한다. 예를 들어, 클라이언트 컴퓨팅 디바이스(306)는 인터넷 또는 인트라넷을 통한 통신을 용이하게 하는 네트워킹 장비 및 브라우저 소프트웨어 애플리케이션을 구비하고 있을 수 있다. 클라이언트 컴퓨팅 디바이스(306)는 중앙 처리 장치 및 아키텍처, 메모리, 대용량 저장소, 그래픽 처리 장치, 통신 네트워크 가용성 및 대역폭 등과 같은 다양한 로컬 컴퓨팅 자원을 갖고 있을 수 있다.
일 실시형태에서, 클라이언트 컴퓨팅 디바이스(306)는 원격 컴퓨팅 애플리케이션(330)을 실행할 수 있다. 원격 컴퓨팅 애플리케이션(330)은 서비스 제공자 컴퓨터 네트워크(305)에 의해 호스팅된 가상 데스크톱 인스턴스로의 액세스를 요청할 수 있다. 원격 컴퓨팅 애플리케이션(330)은 또한 클라이언트 컴퓨팅 디바이스(306)와 서비스 제공자 컴퓨터 네트워크(305) 간 원격 컴퓨팅 세션을 관리할 수 있다. 도 3에 예시된 바와 같이, 서비스 제공자 컴퓨터 네트워크(305)는 또한 PES 플랫폼(302)을 포함할 수 있다. 도 3에 예시된 PES 플랫폼(302)은 서비스 제공자와 연관된 하나 이상의 데이터 센터의 논리적 연관에 대응한다. PES 플랫폼(302)은, 예를 들어, 데이터 센터 컴퓨터(310)와 같은 여러 데이터 센터 컴퓨터와 연관될 수 있다. 각각의 데이터 센터 컴퓨터(310)는 하나 이상의 가상 데스크톱 인스턴스(314)를 호스팅할 수 있다. 예를 들어, 데이터 센터 컴퓨터(310)는 물리적 디바이스 상에서 가상 머신을 실행함으로써 가상 데스크톱 인스턴스를 호스팅할 수 있다. 가상 머신은 가상 데스크톱 인스턴스를 생성하기 위한 운영 체제 및 애플리케이션 소프트웨어의 인스턴스를 실행할 수 있다. PES(302)에 의해 실행된 각각의 가상 데스크톱 인스턴스는 클라이언트 컴퓨팅 디바이스(306)와 같은 하나 이상의 클라이언트 컴퓨팅 디바이스에 의해 액세스될 수 있다.
일부 실시형태에서, 데이터 센터 컴퓨터(310)는 그것들이 클라이언트 컴퓨팅 디바이스(306)에 의해 직접 액세스가능하지 않을 수 있도록 서비스 제공자 컴퓨터 네트워크(305) 내에서의, IP 주소와 같은, 사설 네트워크 주소와 연관될 수 있다. 가상 데스크톱 인스턴스(314)는 서비스 제공자 컴퓨터 네트워크(305)의 에지에서의 게이트웨이가 이용가능하게 될 수 있는 공중 네트워크 주소와 연관될 수 있다. 따라서, 가상 데스크톱 인스턴스(314)는 공중 네트워크 주소를 통하여 클라이언트 컴퓨팅 디바이스(306)에 의해 직접 주소지정가능할 수 있다. 관련 분야의 당업자는 각각의 데이터 센터 컴퓨터(310)가 다수의 가상 데스크톱 인스턴스(314)를 실행하기 위한 또는 가상 데스크톱 인스턴스(314)를 동적으로 인스턴스화하기 위한 물리적 컴퓨팅 디바이스 자원 및 소프트웨어를 포함할 것임을 인식할 것이다. 그러한 인스턴스화는 클라이언트 컴퓨팅 디바이스(306)로부터와 같은 특정 요청에 기반할 수 있다.
도 3에 예시된 바와 같이, 데이터 센터 컴퓨터(310)는 하나 이상의 인스턴스 매니저(322)를 포함할 수 있다. 인스턴스 매니저(322)는 각각의 인스턴스(314)와 동일한 컴퓨터 상에, 또는 별개의 컴퓨터 상에 있을 수 있다. 인스턴스 매니저(322)는 데이터 센터 컴퓨터(310) 상에서 실행된 인스턴스의 추이를 추적하고, 클라이언트 컴퓨팅 디바이스를 통하여 인스턴스(314)와 상호작용하는 동안 사용자에 의해 생성된 데이터의 저장을 모니터링 및 조정하고, 그리고 데이터 센터 컴퓨터(310)의 그리고 클라이언트 컴퓨팅 디바이스(306) 상에서 실행 중인 원격 컴퓨팅 애플리케이션의 전반적 건전 및 상태를 모니터링할 수 있다. 인스턴스 매니저(322)는 데이터 센터 컴퓨터(310)와 클라이언트 컴퓨팅 디바이스(306) 간 다양한 원격 컴퓨팅 세션을 효율적으로 관리하기 위해 추적 및 모니터링을 통해 수집된 정보를 PES 플랫폼(302)의 데이터 센터 관리 컴포넌트(301)와 통신할 수 있다.
도 3에 예시된 바와 같이, 서비스 제공자 네트워크(305)는 또한 저장 서비스 플랫폼(303)을 포함할 수 있다. 저장 서비스 플랫폼(303)은 하나 이상의 저장 서버(307)를 포함하거나, 그것에 접속될 수 있다. 저장 서버(307)는 가상 데스크톱 인스턴스(314)에 의해 발생 또는 이용된 데이터를 저장하도록 사용될 수 있다. 가상 데스크톱 인스턴스(314)에 의해 발생 또는 이용된 데이터는 하나 이상의 원격 컴퓨팅 세션을 통한 클라이언트 컴퓨팅 디바이스(306)와 PES(302) 간 상호작용에 기반할 수 있다.
일부 실시형태에서, 저장 서비스 플랫폼(303)은 호스팅된 가상 데스크톱 인스턴스(314)와 연관된 정보를 논리적으로 조직하고 데스크톱 스토어에 유지하고 있을 수 있다. 데스크톱 스토어에 유지된 가상 데스크톱 인스턴스(314)와 연관된 정보는, 국한되는 것은 아니지만, 사용자 선호도, 사용자 또는 고객-특정 정책, 프로그램 데이터의 실행과 연관된 정보, 사용자 콘텐츠, 사용자 콘텐츠에 대한 참조 등을 포함할 수 있다. 예를 들어, 저장 서비스 제공자를 통해서를 포함하여, 다른 저장 디바이스 상에 음악, 파일 등을 저장하도록 사용자에 의해 사용된 폴더는 또한 그들 저장 장소에 대한 참조를 통하여 데스크톱 스토어에 매핑될 수 있다. 즉, 이들 폴더에서 파일을 열라는 요청과 같은 입/출력 연산은 데스크톱 스토어로 전향될 수 있다. 그리하여, 사용자가 그 또는 그녀의 문서 폴더에 저장된 파일을 열려고 시도할 때, 요청은 가상 데스크톱 인스턴스에서 실행 중인 운영 체제에 의해 데스크톱 스토어로 전향될 수 있다. 사용자에 의해 생성된 데이터에 부가하여, 예를 들어, 배경 화면, 폰트, 아이콘 배열 등과 같은 데스크톱에 대한 구성 정보를 포함할 수 있는 사용자의 데스크톱 프로파일도 사용자의 가상 데스크톱 인스턴스와 연관된 데스크톱 스토어 상에 저장될 수 있다. 일부 실시형태에서, 서비스 제공자 컴퓨터 네트워크(305)는 데이터 센터 컴퓨터(310)로부터 독립적인 저장 서버 상에 데이터를 저장함으로써 가상 데스크톱 인스턴스(314)를 실행 중인 데이터 센터 컴퓨터(들)(310)의 장애 또는 데이터 센터 컴퓨터(들)(310) 상에서의 가상 데스크톱 인스턴스(314)의 실행과 연관된 오류의 효과를 경감할 수 있을 수 있다. 부가적으로, 서비스 제공자 네트워크(305)는 또한 데스크톱 스토어에 정보를 유지하고 있음으로써 다수의 가상 데스크톱 인스턴스(314)와의 클라이언트 상호작용을 용이하게 할 수 있다. 일부 실시형태에서, 하나의 가상 데스크톱 인스턴스(314)가 장애가 있으면, 새로운 인스턴스가 론칭되어 장애가 있는 가상 데스크톱 인스턴스(314)에 이전에 배속되었던 동일한 데스크톱 스토어에 배속될 수 있다.
다양한 실시형태에서, 데스크톱 스토어는 다수의 서버에 걸쳐 분산될 수도 있고, 그것들은 성능 목적으로 여러 다른 네트워크 구역에서의 서버 상에 복제될 수도 있고, 그것들은 백업 또는 결함 성능 목적으로 독립적 장애 프로파일을 갖는 다수의 서버에 걸쳐 복제될 수도 있다. 예를 들어, 서버는 여러 다른 전원 또는 냉각 시스템에 배속될 수 있고, 서버는 데이터 센터의 여러 다른 방에 또는 여러 다른 데이터 센터에 위치할 수 있고, 그리고/또는 서버는 여러 다른 라우터 또는 네트워크 스위치에 배속될 수 있다. 일부 실시형태에서, 데스크톱 스토어는 하나의 저장 서버 상에 위치할 수 있고, 그리고 데스크톱 스토어에 이루어진 변경은 다른 저장 서버 상의 다른 데스크톱 스토어에 복제될 수 있다. 그러한 복제는 사용자의 데이터의 백업 사본을 생성할 수 있다. 데스크톱 스토어가 장애가 있거나 가상 데스크톱 인스턴스(314)가 데스크톱 스토어로의 그 접속을 상실하면, PES(302)는 가상 데스크톱 인스턴스(314)의 접속을 데스크톱 스토어로부터 백업 데스크톱 스토어로 스위칭할 수 있다.
도 3에 예시된 바와 같이, PES 플랫폼(302)은 또한 저장 서버(307) 상의 다양한 데스크톱 스토어 및 백업 스토어에 의해 저장된 데이터를 저장하기 위한 PES 리파지토리(340)와 같은 중앙 저장 디바이스를 포함할 수 있다. 데이터 센터 컴퓨터(310) 및 저장 서버(307)는, 국한되는 것은 아니지만, 요청된 애플리케이션을 지원하는 가상 머신의 인스턴스를 선택하고 그리고/또는 요청 라우팅을 용이하게 하도록 정보를 DNS 이름 서버에 제공하기 위한 부하 밸런싱 또는 부하 공유 소프트웨어/하드웨어 컴포넌트를 포함하여 통신을 용이하게 하는 부가적 소프트웨어 또는 하드웨어 컴포넌트를 더 포함할 수 있다.
이 예에 예시된 바와 같이, 서비스 제공자 컴퓨터 네트워크(305)는 사용자 프로파일 스토어(308)를 포함할 수 있다. 사용자 프로파일 스토어(308)는, 예를 들어, 가상 데스크톱 인스턴스(314)를 사용하는 동안 사용자가 액세스를 부여받는 다양한 프로그램을 저장하도록 사용될 수 있다. 사용자 프로파일은 또한 여러 다른 사용자의 원격 컴퓨팅 세션과 연관된 최대 시간 또는 비용을 표시할 수 있다. PES 플랫폼(302)은 가상 데스크톱 인스턴스(314)를 배치, 구성 및/또는 관리할 때 사용자 프로파일을 고려할 수 있다. PES 플랫폼(302)은 또한 가상 데스크톱 이미지 스토어(309)를 포함하거나, 그것에 접속될 수 있다. 가상 데스크톱 이미지 스토어(309)는 사용자 프로파일에 따라 적용된 고객맞춤 없이 운영 체제의 템플릿 이미지를 포함할 수 있다.
일부 실시형태에서, 데이터 센터 컴퓨터(310) 및 저장 서버(307)는, 컴포넌트, 또는 컴포넌트의 일부가 물리적으로 별개인지와 무관하게, 논리적으로 그룹화된다고 생각될 수 있다. 예를 들어, 서비스 제공자 컴퓨터 네트워크(305)는 가상 데스크톱 인스턴스(314) 및 저장 컴포넌트를 제공하기 위한 별개의 장소를 유지하고 있을 수 있다. 부가적으로, 데이터 센터 컴퓨터(310)는 PES 플랫폼(302)과 논리적으로 연관된 것으로 도 3에 예시되기는 하지만, 데이터 센터 컴퓨터(310)는 그 사용자들의 다양한 인구통계에 최상으로 서비스 제공하는 방식으로 지리적으로 분산될 수 있다. 부가적으로, 관련 분야의 당업자는 서비스 제공자 컴퓨터 네트워크(305)가 콘텐츠 및 자원의 집행을 위한 부가적 컴퓨팅 디바이스 등과 같은 다양한 부가적 컴퓨팅 자원과 연관될 수 있음을 인식할 것이다. 예를 들어, 서비스 제공자 컴퓨터 네트워크(305)(및/또는 거기에 구현된 가상 데스크톱 인스턴스(314) 중 다양한 것들)는 통신 네트워크(304)를 통하여 또는 다른 통신 네트워크를 통하여 다른 네트워크 개체(320)와 통신하도록 구성될 수 있다(예를 들어, 가상 데스크톱 인스턴스(314) 중 적어도 일부는 클라이언트 컴퓨팅 디바이스(306)와 통신하는데 사용가능한 네트워크 인터페이스와는 별개의 구별되는 하나 이상의 다른 네트워크 개체(320)에 액세스하는데 사용가능한 네트워크 인터페이스를 포함할 수 있다). 이들 다른 네트워크 개체(320)는, 예를 들어, 다른 클라이언트 네트워크 또는 그 컴퓨팅 디바이스, 클라이언트 컴퓨팅 디바이스(306)로부터 수신된 요청에 서비싱하기 위한 자원을 제공하는 컴퓨팅 시스템, 및/또는 인터넷을 통하여 다른 서비스, 애플리케이션 또는 데이터에 액세스하는 네트워크 또는 그 컴퓨팅 디바이스를 포함할 수 있다.
일부 실시형태에서, 사용자 또는 클라이언트 컴퓨팅 디바이스와 연관된 프로세싱 요건은 다양한 시나리오에 기반하여 결정될 수 있다. 일부 실시형태에서, 결정은 원격 컴퓨팅 애플리케이션(330)의 론칭시 사용자 요청에 기반할 수 있다. 예를 들어, 사용자에게는 자원 및 애플리케이션에 대한 다양한 옵션을 디스플레이하는 그래픽 사용자 인터페이스(GUI)가 제시될 수 있다. 그때 사용자는 그들이 액세스하기를 바라는 애플리케이션, 또는 대안으로 그 애플리케이션의 버전을 선택할 수 있다. 예를 들어, 하나의 사용자는 애플리케이션의 기본 버전에 액세스하기를 바라는 한편 다른 사용자는 동일한 애플리케이션의 전문가 버전에 액세스하기를 바랄 수 있다. 또한, 결정은 사용자와 연관된 개체의 관리책임자에 의해 결정된 바와 같이 특정 사용자에 대해 미리-선택된 옵션에 기반할 수 있다. 예를 들어, 미리-선택된 옵션은 사용자가 액세스하기를 바랄 수 있는 애플리케이션의 여러 다른 패키지의 목록으로서 사용자에게 제시될 수 있다. 일부 경우에서, 결정은, 요청이 사용자로부터 수신되고 나면 PES 플랫폼(302)이 결정할 수 있는, 사용자의 이력상의 사용 데이터에 기반할 수 있다. 다른 경우에서, 프로세싱 요건의 결정은 원격 컴퓨팅 세션이 개시되고 나면 사용자에 의한 프로세스의 사용의 진행 중 모니터링에 기반할 수 있다. 그러한 경우에, 충분한 자원 인스턴스의 선택은 세션이 확립된 후에 동적으로 변경될 수 있고, 새로운 인스턴스(들)로의 동적 전환은 위의 도 3에 관하여 설명된 바와 같이 수행될 수 있다. 일부 실시형태에서, 원격 컴퓨팅 애플리케이션(330)은 클라이언트를 대리하여 가상 데스크톱 세션이 열리도록 요청할 수 있고, 그에 응답하여 가상 데스크톱 인스턴스(314)는 인스턴스화되고, 클라이언트의 사용을 위해 구성되고, 그리고/또는 네트워크(304)를 통하여 (예를 들어, 가상 데스크톱 인스턴스(314)의 2개의 네트워크 인터페이스 중 하나를 통하여) 클라이언트 컴퓨팅 디바이스(306)에 접속될 수 있다.
일부 실시형태에서, VM 및 VMM을 구현하는 서비스 제공자 네트워크는 클라이언트 데이터 패킷을 캡슐화하고 제공자 네트워크 내에서의 여러 다른 호스트 상의 클라이언트 자원 인스턴스들 간에 네트워크 서브스트레이트를 통하여 라우팅하도록 인터넷 프로토콜(IP) 터널링 기술을 사용할 수 있다. 제공자 네트워크는, 라우터, 스위치, 네트워크 주소 변환기(NAT) 등과 같은 네트워킹 디바이스는 물론, 그 디바이스들 간 물리적 커넥션도 포함하는 물리적 네트워크 서브스트레이트를 포함할 수 있다. 제공자 네트워크는 캡슐화된 패킷(즉, 국한되는 것은 아니지만, 오버레이 네트워크를 통한 라우팅을 위한 오버레이 네트워크 주소 정보를 포함하는 오버레이 네트워크 메타데이터로 태깅된 클라이언트 패킷)이 터널 또는 오버레이 네트워크 루트를 통하여 네트워크 서브스트레이트를 통해 통과될 수 있게 하는 오버레이 네트워크를 제공하도록 IP 터널링 기술을 채용할 수 있다. IP 터널링 기술은 네트워크 서브스트레이트 상에 오버레이 네트워크를 생성하기 위한 매핑 및 캡슐화 시스템을 제공할 수 있고, 오버레이 네트워크 계층(공중 IP 주소) 및 네트워크 서브스트레이트 계층(사설 IP 주소)에 대해 별개의 이름공간을 제공할 수 있다. 적어도 일부 실시형태에서, 오버레이 네트워크 계층에서의 캡슐화된 패킷은 그들 터널 서브스트레이트 표적(사설 IP 주소)이 무엇이어야 하는지 결정하도록 매핑 디렉터리에 대비하여 체크될 수 있다. IP 터널링 기술은 물리적 네트워크 서브스트레이트 상에 오버레잉된 가상 네트워크 토폴로지를 제공할 수 있다; 클라이언트에 제시되는 인터페이스(예를 들어, 서비스 API)는, 클라이언트 자원 인스턴스가 패킷이 보내져야 하는 IP 주소를 제공할 때, IP 오버레이 주소가 어디에 있는지 결정할 수 있는 매핑 서비스와 통신함으로써 IP 주소가 가상 공간에서 실행되도록 오버레이 네트워크에 배속된다. 오버레이 네트워크 기술의 일례의 사용은 도 4에 예시되고 아래에서 상세히 설명된다.
다양한 실시형태에서, 호스트 상의 클라이언트 자원 인스턴스는 전송 제어 프로토콜(TCP)과 같은 상태 기반 프로토콜에 따라 그리고/또는 사용자 데이터그램 프로토콜(UDP)과 같은 무상태 프로토콜에 따라 동일한 호스트 상의 또는 다른 호스트 상의 다른 클라이언트 자원 인스턴스와 통신할 수 있다. 그렇지만, 클라이언트 패킷은 보내는 VMM에 의해 오버레이 네트워크 프로토콜에 따라 캡슐화되고 수신하는 VMM에 의해 캡슐화 해제된다. 호스트 상의 VMM은, 호스트 상의 클라이언트 자원 인스턴스로부터 그리고 다른 클라이언트 자원 인스턴스의 IP 주소로 겨냥된 클라이언트 패킷(예를 들어, TCP 또는 UDP)을 수신시, 오버레이 네트워크(또는 IP 터널링) 프로토콜에 따라 클라이언트 패킷을 캡슐화 또는 태깅하고 캡슐화된 패킷을 전달을 위해 오버레이 네트워크 상으로 보낸다. 캡슐화된 패킷은, 그 후, IP 터널링 기술에 따라 오버레이 네트워크를 통하여 다른 VMM으로 라우팅될 수 있다. 다른 VMM은 패킷으로부터 오버레이 네트워크 캡슐화를 벗기고 표적 클라이언트 자원 인스턴스를 구현하는 호스트 상의 적합한 VM으로 클라이언트 패킷(예를 들어, TCP 또는 UDP 패킷)을 전달한다. 환언하면, 일부 실시형태에서, 서비스 제공자 컴퓨팅 환경(예를 들어, 서비스 제공자 데이터 센터)에 단일 기저 물리적 네트워크가 있을 수 있기는 하지만, 여기에서 설명된 캡슐화는 그것이 각각의 클라이언트 애플리케이션(또는 하나 이상의 클라이언트 애플리케이션이 실행되는 각각의 클라이언트 자원 인스턴스)이 그 자신의 가상 네트워크 상에서 실행 중인 것처럼 보이게 할 수 있다(예를 들어, 다수의 클라이언트 애플리케이션에 대한 데이터 패킷은 동일한 물리적 네트워크 상에서 다닐 수 있지만 그것은 클라이언트 애플리케이션의 각각으로 지향된 트래픽이 사설 네트워크 상에서 다니고 있는 것처럼 보일 수 있다).
일부 실시형태에서, 오버레이 네트워크는 비연결형(또는 무상태) IP 프로토콜에 따라 구현된 무상태 네트워크일 수 있다. 일부 그러한 실시형태에서, 보내는 VMM은 캡슐화된 패킷을 라우팅 및 전달을 위해 오버레이 네트워크 상으로 보내지만, 패킷의 전달에 관한 긍정응답(ACK) 또는 다른 응답을 수신하지 않는다. 다른 실시형태에서, VMM은 캡슐화된 패킷의 전달에 관한 ACK 또는 다른 응답을 수신할 수 있다.
도 4는, 적어도 일부 실시형태에 따라, 일례의 데이터 센터(예를 들어, IP 터널링 기술을 사용하여 네트워크 서브스트레이트 상에 오버레이 네트워크를 구현하는 것)를 예시한다. 이 예에 예시된 바와 같이, 제공자 데이터 센터(400)는 라우터, 스위치, 네트워크 주소 변환기(NAT) 등과 같은 네트워킹 디바이스(412)를 포함하는 네트워크 서브스트레이트를 포함할 수 있다. 적어도 일부 실시형태는 캡슐화된 패킷이 터널을 사용하여 네트워크 서브스트레이트(410)를 통해 통과될 수 있게 하는 오버레이 네트워크를 제공하도록 인터넷 프로토콜(IP) 터널링 기술을 채용할 수 있다. IP 터널링 기술은 네트워크(예를 들어, 도 4의 데이터 센터(400)에서의 로컬 네트워크) 상에 오버레이 네트워크를 생성하기 위한 매핑 및 캡슐화 시스템을 제공할 수 있고 오버레이 계층(공중 IP 주소) 및 네트워크 서브스트레이트(410) 계층(사설 IP 주소)에 대해 별개의 이름공간을 제공할 수 있다. 오버레이 계층에서의 패킷은 그들 터널 서브스트레이트 표적(사설 IP 주소)이 무엇이어야 하는지 결정하도록 (예를 들어, 매핑 서비스(430)에 의해 제공된) 매핑 디렉터리에 대비하여 체크될 수 있다. IP 터널링 기술은 가상 네트워크 토폴로지(오버레이 네트워크)를 제공한다; 클라이언트에 제시되는 인터페이스(예를 들어, 서비스 API)는, 클라이언트가 패킷을 보내기를 원하는 IP 주소를 클라이언트가 제공할 때, IP 오버레이 주소가 어디에 있는지 알고 있는 매핑 서비스(예를 들어, 매핑 서비스(430))와 통신함으로써 IP 주소가 가상 공간에서 실행되도록 오버레이 네트워크에 배속된다.
적어도 일부 실시형태에서, IP 터널링 기술은 IP 오버레이 주소(공중 IP 주소)를 서브스트레이트 IP 주소(사설 IP 주소)에 매핑하고, 2개의 이름공간 간 터널에서 패킷을 캡슐화하고, 그리고 패킷을 터널을 통하여 올바른 종단점에 전달하며, 거기서 캡슐화는 패킷으로부터 벗겨진다. 도 4에는, 호스트(420A) 상의 가상 머신(VM)(424A)으로부터 중간 네트워크(440) 상의 디바이스(예를 들어, 컴퓨팅 시스템(470), 로컬 네트워크(450) 상의 컴퓨팅 시스템(452), 또는 데이터 센터(46))로의 일례의 오버레이 네트워크 터널(434A), 및 호스트(420B) 상의 VM(424B)과 호스트(420A) 상의 VM(424A) 간 일례의 오버레이 네트워크 터널(434B)이 도시되어 있다. 일부 실시형태에서, 패킷은 보내기 전에 오버레이 네트워크 패킷 포맷으로 캡슐화될 수 있고, 그리고 오버레이 네트워크 패킷은 수신 후에 벗겨질 수 있다. 다른 실시형태에서, 오버레이 네트워크 패킷으로 패킷을 캡슐화하는 대신에, 오버레이 네트워크 주소(공중 IP 주소)는 보내기 전에 패킷의 서브스트레이트 주소(사설 IP 주소)에 매립되고, 수신시 패킷 주소로부터 벗겨질 수 있다. 일례로서, 오버레이 네트워크는 공중 IP 주소로서 32-비트 IPv4(인터넷 프로토콜 버전 4) 주소를 사용하여 구현될 수 있고, IPv4 주소는 사설 IP 주소로서 서브스트레이트 네트워크 상에서 사용된 128-비트 IPv6(인터넷 프로토콜 버전 6) 주소의 일부분으로서 매립될 수 있다.
클라우드 컴퓨팅 환경에서 작업공간을 보안하기 위한 여기에서 설명된 기술의 실시형태가 구현될 수 있는 적어도 일부 네트워크는 다수의 운영 체제가 호스트 컴퓨터(예를 들어, 도 4의 호스트(420A, 420B)) 상에서 병행하여, 즉, 호스트(420)들 상의 가상 머신(VM)(424)들로서 실행 가능하게 하는 하드웨어 가상화 기술을 포함할 수 있다. VM(424)(그 중 일부는 클라이언트의 사용을 위한 가상 데스크톱 인스턴스를 구현하도록 구성될 수 있음)은, 예를 들어, 네트워크 제공자의 클라이언트에 임대 또는 대여될 수 있다. 호스트(420) 상의 하이퍼바이저 또는 가상 머신 모니터(VMM)(422)는 호스트(420) 상의 VM(424) 및/또는 다른 가상화된 자원 인스턴스에 대한 인스턴스 매니저로서 역할할 수 있으며, 호스트 상의 VM(424)에 가상 플랫폼을 제시하는 것 및 VM(424)의 실행을 모니터링하는 것을 포함할 수 있다. 각각의 VM(424)에는 하나 이상의 사설 IP 주소가 제공될 수 있다; 호스트(420) 상의 VMM(422)은 호스트 상의 VM(424)의 사설 IP 주소를 알고 있을 수 있다. 매핑 서비스(430)는 로컬 네트워크 상에서 IP 주소를 서비스 제공하는 라우터 또는 다른 디바이스의 IP 주소 및 모든 네트워크 IP 프리픽스를 알고 있을 수 있다. 이것은 다수의 VM(424)을 서비스 제공하는 VMM(422)의 IP 주소를 포함한다. 매핑 서비스(430)는, 예를 들어, 서버 시스템 상에 중앙집중화될 수도 있고, 대안으로, 네트워크 상의 2개 이상의 서버 시스템 또는 다른 디바이스 간 분산될 수도 있다. 네트워크는, 예를 들어, 데이터 센터(400) 네트워크 내에서의 여러 다른 호스트(420) 상의 VM(424)들 간에 데이터 패킷을 라우팅하도록, 예를 들어, 매핑 서비스 기술 및 IP 터널링 기술을 사용할 수 있다; 내부 게이트웨이 프로토콜(IGP)은 그러한 로컬 네트워크 내에서 라우팅 정보를 교환하도록 사용될 수 있음을 주목한다.
부가적으로, (때로는 자율 시스템(AS)이라고 지칭되는) 제공자 데이터 센터(400) 네트워크와 같은 네트워크는 VM(424)으로부터 인터넷 수신지로, 그리고 인터넷 소스로부터 VM(424)으로 패킷을 라우팅하도록 매핑 서비스 기술, IP 터널링 기술, 및 라우팅 서비스 기술을 사용할 수 있다. 외부 게이트웨이 프로토콜(EGP) 또는 보더 게이트웨이 프로토콜(BGP)은 전형적으로는 인터넷 상에서 수신지와 소스 간 인터넷 라우팅에 사용됨을 주목한다. 도 4는, 적어도 일부 실시형태에 따라, 인터넷 트랜싯 제공자에 접속하는 에지 라우터(들)(414)를 통하여 풀 인터넷 액세스를 제공하는 그리고 인터넷 자원 가상화 기술을 제공하는 네트워크를 구현하는 일례의 제공자 데이터 센터(400)를 도시한다. 제공자 데이터 센터(400)는, 예를 들어, (도 2에서의 하드웨어 가상화 서비스(220)와 같은) 하드웨어 가상화 서비스를 통하여 가상 컴퓨팅 시스템(VM(424))을 구현할 수 있는 능력 및 (도 2에서의 저장소 가상화 서비스(210)와 같은) 저장소 가상화 서비스를 통하여 저장 자원(418) 상에 가상화된 데이터 스토어(416)를 구현할 수 있는 능력을 클라이언트에 제공할 수 있다.
일부 실시형태에서, 데이터 센터(400) 네트워크는 트래픽을 가상화된 자원으로 그리고 그로부터 라우팅하도록, 예를 들어, 패킷을 데이터 센터(400)에서의 호스트(420) 상의 VM(424)으로부터 인터넷 수신지로, 그리고 인터넷 소스로부터 VM(424)으로 라우팅하도록 IP 터널링 기술, 매핑 서비스 기술, 및 라우팅 서비스 기술을 구현할 수 있다. 인터넷 소스 및 수신지는, 예를 들어, 중간 네트워크(440)에 접속된 컴퓨팅 시스템(470) 및 (예를 들어, 네트워크(450)를 인터넷 트랜싯 제공자에 접속시키는 에지 라우터(들)(414)를 통하여) 중간 네트워크(440)에 접속하는 로컬 네트워크(450)에 접속된 컴퓨팅 시스템(452)을 포함할 수 있다. 제공자 데이터 센터(400) 네트워크는 또한 패킷을 데이터 센터(400)에서의 자원들 간에, 예를 들어 데이터 센터(400)에서의 호스트(420) 상의 VM(424)으로부터 데이터 센터(400)에서의 동일한 호스트 상의 또는 다른 호스트(420) 상의 다른 VM(424)으로 라우팅할 수 있다. 일부 실시형태에서, VM(424) 중 적어도 일부는 2개 이상의 네트워크 인터페이스를 포함할 수 있다. 예를 들어, 그것들은 VM(424)과 대리에 의해 VM(424)이 제공자에 의해 호스팅되는 클라이언트 간 통신에 사용가능한 하나의 네트워크 인터페이스, 및 제공자 네트워크 및 클라이언트 네트워크 이외의 네트워크 상의 외부 자원, 컴퓨팅 시스템, 데이터 센터, 또는 인터넷 수신지에 액세스하는데 사용가능한 제2(별개의 구별되는) 네트워크 인터페이스를 포함할 수 있으며, 그 중 어느 하나 또는 둘 다는, 여기에서 설명된 바와 같은, IP 터널링 기술을 채용할 수 있다.
또한, 데이터 센터(400)를 제공하는 서비스 제공자는 데이터 센터(400)와 유사한 하드웨어 가상화 기술을 포함하는 그리고 중간 네트워크(440)에 또한 접속될 수 있는 부가적 데이터 센터(들)(460)를 제공할 수 있다. 패킷은 데이터 센터(400)로부터 다른 데이터 센터(460)로, 예를 들어, 데이터 센터(400)에서의 호스트(420) 상의 VM(424)으로부터 다른 유사한 데이터 센터(460)에서의 다른 호스트 상의 다른 VM으로, 그리고 그 역으로도 포워딩될 수 있다.
위에서는 다수의 운영 체제가, VM이 네트워크 제공자의 클라이언트에 임대 또는 대여될 수 있는, 호스트 상의 가상 머신(VM)으로서 호스트 컴퓨터 상에서 병행하여 실행 가능하게 하는 하드웨어 가상화 기술을 설명하고 있지만, 하드웨어 가상화 기술은 또한 가상화된 자원으로서 다른 컴퓨팅 자원, 예를 들어, 저장 자원(418)을 유사한 방식으로 네트워크 제공자의 클라이언트에 제공하도록 사용될 수 있다.
공중 네트워크는 복수의 개체로의 개방형 액세스 및 그들 간 상호접속성을 제공하는 네트워크로서 폭넓게 정의될 수 있음을 주목한다. 인터넷, 또는 월드 와이드 웹(WWW)은 공중 네트워크의 일례이다. 공유된 네트워크는, 액세스가 일반적으로는 제한되지 않는 공중 네트워크와는 대조적으로, 액세스가 2개 이상의 개체로 제한되는 네트워크로서 폭넓게 정의될 수 있다. 공유된 네트워크는, 예를 들어, 하나 이상의 근거리 통신망(LAN) 및/또는 데이터 센터 네트워크, 또는 광역 통신망(WAN)을 형성하도록 상호접속되는 2개 이상의 LAN 또는 데이터 센터 네트워크를 포함할 수 있다. 공유된 네트워크의 예는, 국한되는 것은 아니지만, 회사 네트워크 및 다른 기업 네트워크를 포함할 수 있다. 공유된 네트워크는 범위가 근거리를 포함하는 네트워크로부터 전역 네트워크로까지 어디에라도 있을 수 있다. 공유된 네트워크는 공중 네트워크와 적어도 일부 네트워크 기반구조를 공유할 수 있음과, 공유된 네트워크는, 공중 네트워크를 포함할 수 있는 하나 이상의 다른 네트워크에, 공유된 네트워크와 다른 네트워크(들) 간 제어된 액세스로, 결합될 수 있음을 주목한다. 공유된 네트워크는 또한, 인터넷과 같은 공중 네트워크와는 대조적으로, 사설 네트워크로 여겨질 수 있다. 실시형태에서, 공유된 네트워크든 공중 네트워크든 제공자 네트워크와 클라이언트 네트워크 간, 또는 제공자 네트워크와 다른 네트워크 개체(예를 들어, 대리에 의해 VM(424)이 제공자에 의해 호스팅되는 클라이언트 네트워크 및 제공자 네트워크 이외의 네트워크 상의 외부 자원, 컴퓨팅 시스템, 데이터 센터, 또는 인터넷 수신지) 간 중간 네트워크로서 역할할 수 있다.
일부 실시형태에서는, 여기에서 설명된 클라이언트 애플리케이션 및 다른 프로세스를 실행하는 물리적 컴퓨터가 있기는 하지만, 클라이언트 애플리케이션은 물리적 컴퓨터 상의 가상 머신으로서 실행되고 있을 수 있다. 예를 들어, 이들 가상 머신의 생성을 관리하고, 이들 가상 머신에 대한 자원을 프로비저닝하고, 그리고/또는 클라이언트 및/또는 그들 애플리케이션을 대리하여 다른 집행 태스크(예를 들어, 자원 사용 모니터링, 고객 회계, 서비스에 대한 과금 등)를 수행하도록 구성되는 클라우드 컴퓨팅 환경의 내부 프로세스는 클라우드 컴퓨팅 환경에서의 제어 평면 계층(또는 하이퍼바이저)에서 실행될 수 있다. 대조적으로, 클라이언트 애플리케이션(예를 들어, 애플리케이션 컴포넌트를 구현하는 각각의 자원 인스턴스)은 클라우드 컴퓨팅 환경의 데이터 평면 계층에서 실행될 수 있다. 이들 계층 밑에는, 일부 실시형태에서는, 각각의 호스트 노드에 대해(또는 다수의 호스트 노드에 대해) 하나의 물리적 네트워크 카드만이 있을 수 있지만, 각각의 자원 인스턴스는 그것이 그 자신의 네트워크(예를 들어, 가상 네트워크)를 갖는 것처럼 실행될 수 있다. 일부 실시형태에서, 각각의 자원 인스턴스는 그 자신의 데이터 평면 네트워크 커넥션(들)을 가질 수 있지만, 이들 데이터 평면 네트워크 커넥션에 의존할 필요 없이 로컬 API 호출(예를 들어, 동일한 노드 상의 컴포넌트로의 호출)을 할 수 있다.
일부 실시형태에서, 고객은 로컬 머신 상에서 실행 중인 애플리케이션을 가질 수 있지만, 로컬 머신 상에서의 장애의 경우에 사용되도록 클라우드 컴퓨팅 환경에서의 자원 인스턴스를 프로비저닝할 수 있다. 일부 실시형태에서, 다수의 자원 인스턴스는 클라이언트를 대리하여 분산형 애플리케이션을 구현하도록 클라우드 컴퓨팅 환경에서 실행되고 있을 수 있다. 여러 다른 실시형태에서, 클라우드 컴퓨팅 환경은 각각의 애플리케이션(및/또는 각각의 가상 사설 네트워크)이 그 자신의 이름공간을 가질 수 있는 멀티-테넌트 환경일 수 있다. 일부 실시형태에서, 각각의 클라이언트는 네트워크 접속성 및/또는 처리율 용량(대역폭)의 그 자신의 할당을 가질 수 있다. 예를 들어, 데이터 평면 네트워크에서의 네트워크 접속성 및/또는 처리율 용량은 다양한 클라이언트의 사용자에 대해 프로비저닝(예를 들어, 지정 또는 예약)될 수 있다.
도 5는, 적어도 일부 실시형태에 따라, 제공자 네트워크 상의 사설 네트워크를 적어도 일부 클라이언트에 제공하는 일례의 제공자 네트워크를 예시한다. 제공자 네트워크(500) 상의 클라이언트의 가상화된 사설 네트워크(560)는, 예를 들어, 클라이언트가 클라이언트 네트워크(550) 상의 그들 기존 기반구조(예를 들어, 클라이언트 디바이스(552))를 논리적으로 격리된 자원 인스턴스 세트(예를 들어, VM(524A, 524B) 및 저장소(518A, 518B))에 접속 가능하게, 그리고 그들 자원 인스턴스를 포함하도록 보안 서비스, 방화벽, 및 침입 탐지 시스템과 같은 관리 능력을 확장 가능하게 할 수 있다.
일부 실시형태에서, 클라이언트의 가상화된 사설 네트워크(560)는 사설 통신 채널(542)을 통하여 클라이언트 네트워크(550)에 접속될 수 있다. 사설 통신 채널(542)은, 예를 들어, 중간 네트워크(540)를 통하여 네트워크 터널링 기술 또는 어떤 다른 피어링 커넥션(peering connection)에 따라 구현된 터널일 수 있다. 중간 네트워크는, 예를 들어, 공유된 네트워크 또는 인터넷과 같은 공중 네트워크일 수 있다. 대안으로, 사설 통신 채널(542)은 가상화된 사설 네트워크(560)와 클라이언트 네트워크(550) 간 직접적 전용 커넥션을 통하여 구현될 수 있다.
공중 네트워크는 복수의 개체로의 개방형 액세스 및 그들 간 상호접속성을 제공하는 네트워크로서 폭넓게 정의될 수 있다. 인터넷, 또는 월드 와이드 웹(WWW)은 공중 네트워크의 일례이다. 공유된 네트워크는, 액세스가 일반적으로는 제한되지 않는 공중 네트워크와는 대조적으로, 액세스가 2개 이상의 개체로 제한되는 네트워크로서 폭넓게 정의될 수 있다. 공유된 네트워크는, 예를 들어, 하나 이상의 근거리 통신망(LAN) 및/또는 데이터 센터 네트워크, 또는 광역 통신망(WAN)을 형성하도록 상호접속되는 2개 이상의 LAN 또는 데이터 센터 네트워크를 포함할 수 있다. 공유된 네트워크의 예는, 국한되는 것은 아니지만, 회사 네트워크 및 다른 기업 네트워크를 포함할 수 있다. 공유된 네트워크는 범위가 근거리를 포함하는 네트워크로부터 전역 네트워크로까지 어디에라도 있을 수 있다. 공유된 네트워크는 공중 네트워크와 적어도 일부 네트워크 기반구조를 공유할 수 있음과, 공유된 네트워크는, 공중 네트워크를 포함할 수 있는 하나 이상의 다른 네트워크에, 공유된 네트워크와 다른 네트워크(들) 간 제어된 액세스로, 결합될 수 있음을 주목한다. 공유된 네트워크는 또한, 인터넷과 같은 공중 네트워크와는 대조적으로, 사설 네트워크로 여겨질 수 있다. 실시형태에서, 공유된 네트워크든 공중 네트워크든 제공자 네트워크와 클라이언트 네트워크 간 중간 네트워크로서 역할할 수 있다.
제공자 네트워크(500) 상의 클라이언트에 대한 가상화된 사설 네트워크(560)를 확립하기 위해, 하나 이상의 자원 인스턴스(예를 들어, VM(524A, 524B) 및 저장소(518A, 518B))는 가상화된 사설 네트워크(560)에 할당될 수 있다. 다른 자원 인스턴스(예를 들어, 저장소(518C) 및 VM(524C))는 다른 클라이언트 사용을 위해 제공자 네트워크(500) 상에서 이용가능한 채로 있을 수 있음을 주목한다. 소정 범위의 공중 IP 주소도 가상화된 사설 네트워크(560)에 할당될 수 있다. 부가적으로, 제공자 네트워크(500)의 하나 이상의 네트워킹 디바이스(라우터, 스위치 등)가 가상화된 사설 네트워크(560)에 할당될 수 있다. 사설 통신 채널(542)은 가상화된 사설 네트워크(560)에서의 사설 게이트웨이(562)와 클라이언트 네트워크(550)에서의 게이트웨이(556) 간에 확립될 수 있다.
적어도 일부 실시형태에서, 사설 게이트웨이(562)에 부가하여 또는 그 대신에, 가상화된 사설 네트워크(560)는 가상화된 사설 네트워크(560) 내에서의 자원이, 사설 통신 채널(542)을 통하는 대신에 또는 그에 부가하여, 중간 네트워크(540)를 통하여 개체(예를 들어, 네트워크 개체(544))와 직접, 그리고 그 역으로도, 통신 가능하게 하는 공중 게이트웨이(564)를 포함할 수 있다.
일부 실시형태에서, 가상화된 사설 네트워크(560)는, 반드시는 아니지만, 2개 이상의 서브넷(도시되지 않음)으로 세분될 수 있다. 예를 들어, 사설 게이트웨이(562)와 공중 게이트웨이(564) 양자를 포함하는 구현에서, 사설 네트워크는 사설 게이트웨이(562)를 통해 도달가능한 자원(이 예에서는, VM(524A) 및 저장소(518A))을 포함하는 서브넷, 및 공중 게이트웨이(564)를 통해 도달가능한 자원(이 예에서는, VM(524B) 및 저장소(518B))을 포함하는 서브넷으로 세분될 수 있다. 다른 실시형태에서, VM(524) 중 하나 이상은 (예를 들어, VM(524)과 클라이언트 디바이스(552) 간 통신을 위해 구성되는 네트워크 인터페이스를 통하여) 사설 게이트웨이(562)를 통해 사설 통신 채널(542)을 통하여 클라이언트 네트워크(550)에 액세스하고 그리고 (예를 들어, 어느 하나 또는 양자가 여기에서 설명된 바와 같은 IP 터널링 기술을 채용할 수 있는, 제공자 네트워크(500) 및 클라이언트 네트워크(550) 이외의 네트워크 상의 외부 자원, 컴퓨팅 시스템, 데이터 센터, 또는 인터넷 수신지와 VM(524) 간 통신을 위해 구성되는 네트워크 인터페이스를 통하여) 공중 게이트웨이(564)를 통해 대체 통신 채널(546)을 통하여 다른 네트워크 개체(544)에 액세스하도록 구성될 수 있다. 또 다른 실시형태에서, (사설 게이트웨이(562), 공중 게이트웨이(564), 사설 통신 채널(542), 대체 통신 채널(546), 및/또는 중간 네트워크(540)를 포함하는) 사설 및/또는 공중 게이트웨이 및 통신 채널은 VM(524), 클라이언트 네트워크(550), 및 다른 네트워크 개체(544) 간 통신을 위한 다양한 다른 조합 중 어느 것으로라도 사용될 수 있다.
일부 실시형태에서, 클라이언트는 특정 클라이언트 공중 IP 주소를 가상화된 사설 네트워크(560)에서의 특정 자원 인스턴스에 배정할 수 있다. 그 후, 중간 네트워크(540) 상의 네트워크 개체(544)는 클라이언트에 의해 발간된 공중 IP 주소로 트래픽을 보낼 수 있다; 트래픽은, 제공자 네트워크(500)에 의해, 연관된 자원 인스턴스로 라우팅된다. 자원 인스턴스로부터의 반환 트래픽은, 제공자 네트워크(500)에 의해, 중간 네트워크(540)를 통하여 다시 네트워크 개체(544)로 라우팅될 수 있다. 자원 인스턴스와 네트워크 개체(544) 간 트래픽을 라우팅하는 것은 네트워크 주소 변환이 공중 IP 주소와 자원 인스턴스의 사설 IP 주소 간을 변환할 것을 요구할 수 있음을 주목한다.
적어도 일부 실시형태는 클라이언트가 도 5에 예시된 바와 같은 클라이언트의 가상화된 사설 네트워크(560)에서의 공중 IP 주소를 클라이언트의 외부 네트워크(550) 상의 디바이스에 리매핑할 수 있게 할 수 있다. (예를 들어, 네트워크 개체(544)로부터) 패킷이 수신될 때, 네트워크(500)는 패킷에 의해 표시된 수신지 IP 주소가 외부 네트워크(550) 상의 종단점으로 리매핑되었다고 결정하고, 사설 통신 채널(542)이든, 대체 통신 채널(546)이든, 중간 네트워크(540)든 통하여, 각각의 종단점으로의 패킷의 라우팅을 취급할 수 있다. 응답 트래픽은 제공자 네트워크(500)를 통해 종단점으로부터 네트워크 개체(544)로 라우팅될 수 있거나, 또는 대안으로는 클라이언트 네트워크(550)에 의해 네트워크 개체(544)로 직접 라우팅될 수 있다. 네트워크 개체(544)의 관점에서, 그것은 네트워크 개체(544)가 제공자 네트워크(500) 상의 클라이언트의 공중 IP 주소와 통신하고 있는 것처럼 보일 수 있다. 그렇지만, 네트워크 개체(544)는 실제로는 클라이언트 네트워크(550) 상의 종단점과 통신하고 있을 수 있다.
도 5는 제공자 네트워크(500) 외부에 그리고 중간 네트워크(540) 상에 있는 네트워크 개체(544)를 도시하고 있기는 하지만, 다른 실시형태에서, 네트워크 개체는 제공자 네트워크(500) 상의 개체일 수 있다. 예를 들어, 제공자 네트워크(500)에 의해 제공된 자원 인스턴스 중 하나는 클라이언트에 의해 발간된 공중 IP 주소로 트래픽을 보내는 네트워크 개체일 수 있다. 일부 실시형태에서, 이러한 트래픽은 VM(524)과 클라이언트 네트워크(550) 간 트래픽이 통하여 보내지는 네트워크 인터페이스와는 별개의 구별되는 VM(524)의 네트워크 인터페이스를 통하여 보내질 수 있다.
가상 데스크톱 인스턴스
다양한 실시형태에서, 서비스 제공자는 클라우드 컴퓨팅 환경에서 호스팅된 데스크톱 서비스를 구현하도록 위에서 설명된 예의 제공자 네트워크(또는 다른 적합한 제공자 네트워크 환경) 중 하나를 채용할 수 있다. 그러한 실시형태에서, 고객은 클라우드에서 하나 이상의 가상 데스크톱 인스턴스의 인스턴스화 및/또는 구성을 요청하기 위해 클라우드 컴퓨팅 환경에서의 제공자 네트워크에 액세스할 수 있고, 그 후 그들 가상 데스크톱으로의 액세스를 (예를 들어, 클라이언트 애플리케이션을 통해) 하나 이상의 최종 사용자에게 제공할 수 있다. 예를 들어, 조직 또는 기업 내에서의 관리책임자는 서비스 제공자와 계정을 셋업할 수 있고, ("가상 작업공간" 또는 단순히 "작업공간"이라고도 지칭될 수 있는) 소정 수의 가상 데스크톱 인스턴스를 셋업하도록 서비스 제공자와 계약할 수 있고, 그리고 (가상 데스크톱 인스턴스가 셋업되고 나면) 이들 가상 데스크톱 인스턴스에 액세스하도록 크리덴셜을 제공할 수 있다. 이 예에서, 가상 데스크톱 인스턴스가 셋업되고 크리덴셜이 제공되고 나면, 하나 이상의 최종 사용자는 그들 클라이언트 디바이스(예를 들어, 컴퓨터, 태블릿 디바이스, 또는 다른 모바일 디바이스) 상의 클라이언트 애플리케이션을 론칭하고 가상 데스크톱 인스턴스에 대한 크리덴셜을 입력할 수 있으며, 그 후 그들은 가상 작업공간 환경에 로그인될 수 있다. 가상 작업공간 환경은 클라우드 컴퓨팅 환경에서의 가상화된 자원 인스턴스에 의해 구현되기는 하지만, 그것은 최종 사용자에게는 그것이 로컬 데스크톱인 것처럼 보일 수 있고 그리고 그것은 그것이 사용자가 접속되는 독립적 컴퓨터인 것처럼 동작할 수 있다. 일부 실시형태에서, 가상 작업공간 환경은 사용자가 조직 또는 기업에 의해 소유된 물리적 컴퓨터에 로그온 되면 사용자가 전형적으로 액세스를 가질 생산성 소프트웨어 및 다른 소프트웨어 프로그램으로의 액세스를 제공할 수 있다.
일부 실시형태에서, 이들 가상 작업공간은 데스크톱 컴퓨터를 대체하도록 의도될 수 있다, 예를 들어, 그것들은 대리에 의해 그것들이 인스턴스화 및 구성된 조직 또는 기업의 구성원이 사무실 환경에서 데스크톱 컴퓨터 상에서 액세스할 동일한 소프트웨어 프로그램(예를 들어, 최종-사용자 생산성 태스크를 수행하는 애플리케이션)을 실행하도록 의도될 수 있다. 이들 애플리케이션은 자립형 애플리케이션일 수도 있고 그렇지 않을 수도 있음을 주목한다. 예를 들어, 일부 경우에서, 가상 작업공간(및/또는 거기에서 실행 중인 애플리케이션)의 각각은 조직 또는 기업의 액티브 디렉터리 프레임워크의 일부분일 수 있고 그리고 가상 작업공간에 로그인시 사용자에 의해 제시된 크리덴셜이 인증되고 나면 조직 또는 기업의 기존 네트워크 상의 공유된 파일 또는 다른 자원에 액세스할 수 있을 수 있다.
일부 실시형태에서, 서비스 제공자 네트워크 상에서 인스턴스화된 각각의 가상 데스크톱 인스턴스는, 각각 특정 목적으로 사용되는, 2개(또는 그 이상)의 네트워크 인터페이스를 포함할 수 있다. 일부 실시형태에서, 이들 가상 네트워크 인터페이스는 사용자 의도 및/또는 다양한 적용가능한 정책(예를 들어, 서비스 제공자의 디폴트 정책, 고객-특정 정책, 또는 애플리케이션-특정 정책) 중 어느 하나에 기반하여 제어될 수 있다. (때로는 여기에서 "E0" 인터페이스라고 지칭되는) 인터페이스 중 하나는 대화형 비디오 스트림을 시작하라는 들어오는 최종-사용자 요청을 수락하도록(예를 들어, 가상 데스크톱 인스턴스에 접속하도록) 구성될 수 있다. 요청이 수락되고 나면, 이러한 인터페이스는 최종 사용자로의 비디오 스트림에 대한 인터페이스로서 사용될 수 있다. 예를 들어, 가상 데스크톱 인스턴스 상에서 실행되는 애플리케이션 또는 운영 체제의 사용자 인터페이스(예를 들어, 그래픽 사용자 인터페이스, 음향 등과 같은 애플리케이션 또는 운영 체제의 출력)를 묘사하는 이미지는 클라이언트 컴퓨팅 디바이스에 스트리밍되고 사용자에게 제시될 수 있다(예를 들어, 그래픽 사용자 인터페이스를 묘사하는 이미지는 클라이언트 컴퓨팅 디바이스의 디스플레이 상에서 렌더링될 수 있다). (때로는 여기에서 "E1" 인터페이스라고 지칭되는) 다른 네트워크 인터페이스는 (브라우저 요청과 같은) 최종-사용자 웹 트래픽을 가상 데스크톱 인스턴스로부터 다양한 인터넷 수신지로 보내고 그리고/또는 대리에 의해 가상 데스크톱 인스턴스가 인스턴스화된 조직 또는 기업의 내부 네트워크 상의 공유된 자원에 접속하도록 사용될 수 있다. 예를 들어, 일부 실시형태에서, 가상 데스크톱 인스턴스의 E1 인터페이스는 고객(예를 들어, 대리에 의해 가상 데스크톱 인스턴스가 인스턴스화된 조직 또는 기업)의 내부 네트워크로의 커넥션을 갖는 가상 사설 클라우드(VPC)의 일부분일 수 있다. 그리하여, 가상 데스크톱 인스턴스는 고객의 도메인에 합류될 수 있고, 어느 공유된 애플리케이션 및/또는 데이터를 포함하여, 고객의 웹 서버로의 액세스를 가질 수 있다.
일부 실시형태에서, 각각의 가상 데스크톱 인스턴스의 제1 네트워크 인터페이스(E0 인터페이스)는 서비스 제공자에 의해 완전히 제어될 수 있다. 예를 들어, 일부 실시형태에서, 그 인터페이스 상에서 허용되는 유일한 트래픽은 최종 사용자에 보내지는 비디오 스트림 및 서비스 제공자의 제어 하에 있는 관리 기능과 관련된 트래픽일 수 있다. 제2 인터페이스(E1 인터페이스)는 가상 데스크톱 인스턴스의 최종 사용자에 의해 직접 사용되지는 않을 수 있지만, 가상 데스크톱 인스턴스(또는 거기에서 실행되는 애플리케이션 또는 프로세싱)가 다른 네트워크 및 다른 네트워크 상의 네트워크 개체에 액세스할 수 있게 하는 그리고 비디오 스트림에 사용된 커넥션과는 별개인 네트워크 커넥션을 가상 데스크톱 인스턴스를 호스팅하고 있는 가상화된 컴퓨팅 자원 인스턴스에 제공할 수 있다. 일부 실시형태에서, E0 인터페이스는 가상 데스크톱 인스턴스 상의 브라우저 애플리케이션을 론칭하라는 커맨드를 통신하도록 사용될 수 있지만, 그 브라우저 애플리케이션으로부터 밖으로 인터넷으로의 통신은 E1 인터페이스를 통하여 일어날 수 있다.
앞서 언급된 바와 같이, 일부 실시형태에서, 여기에서 설명된 시스템은 다수의 지리적으로 분산된 접속 거점(POP) 위치에서의 액세스 게이트웨이로까지 확장되는 작업공간 서비스를 위한 가상 사설 클라우드(VPC)를 구현할 수 있다. 다양한 실시형태에서, 게이트웨이 컴포넌트는 픽셀 스트림을 발생시키는 가상 데스크톱 인스턴스(작업공간)와 스트림을 수신하는 클라이언트 디바이스 간 경로를 따른 브리지로서 역할할 수 있다. 일부 실시형태에서, 그러한 경로는 (예를 들어, 픽셀 스트림 대신에 또는 그에 부가하여) 클라이언트 디바이스에 의한 디스플레이를 위해 픽셀을 발생 및/또는 렌더링하라고 클라이언트 디바이스에 지시하는 명령어를 표현하는 그리고 가상 데스크톱 인스턴스로부터 클라이언트 디바이스로 통신되는 커맨드를 반송하도록 사용될 수 있다. 일례에서, 클라이언트 디바이스에 의해 디스플레이될 텍스트 또는 그래픽을 표현하는 데이터는 가상 데스크톱 인스턴스로부터 클라이언트 디바이스로 픽셀 스트림으로서 보내질 수 있다. 그렇지만, 비디오가 클라이언트 디바이스에 의해 디스플레이되어야 하면, 가상 데스크톱 인스턴스는, 클라이언트 디바이스가 디스플레이를 위해 비디오를 렌더링하여야 한다고 표시하는 커맨드와 함께, 비디오의 위치를 찾아내고 그에 액세스하는데 사용가능한 링크를 클라이언트 디바이스에 보낼 수 있다. 다른 실시형태에서, 그래픽 프로세싱 커맨드를 표현하는 데이터는 가상 데스크톱 인스턴스로부터 클라이언트 디바이스로 통신될 수 있으며, 그것은 클라이언트 디바이스가 클라이언트 디바이스 상에서의 디스플레이를 위해 픽셀을 발생 및 렌더링하게 야기할 수 있다.
일부 실시형태에서, 동일한 게이트웨이는 또한 클라이언트 디바이스로부터 다시 가상 데스크톱 인스턴스로 가상 데스크톱 인스턴스와의 사용자 상호작용(예를 들어, 키보드, 터치 스크린/패드, 및/또는 마우스 이벤트)을 표현하는 데이터를 반송하는 중첩하는 반환 경로를 브리징할 수 있다. 서비스 제공자로부터의 출구 상에서, 이들 액세스 게이트웨이는 픽셀 스트림이 공중 네트워크를 통하여 반송되기 전에(예를 들어, 그것이 공중 인터넷에 진입하기 전에) 서비스에 의해 제어되는 마지막 포인트일 수 있다. 게이트웨이를 클라이언트 디바이스에 더 가까이 이동시킴으로써, 작업공간 서비스의 VPC의 일부분으로서 그것들에 대한 제어를 보유하면서, 더 높은 품질 접속 및/또는 최종-사용자 경험이 서비스에 의해 제공될 수 있다. 예를 들어, (예를 들어, 가상 사설 네트워크를 통하여) 보안, 신뢰할만한, 낮은 레이턴시, 높은 대역폭, 낮은 손실, 및/또는 낮은 지터 커넥션은 게이트웨이 컴포넌트와 클라이언트 디바이스 간 잠재적으로 더 적은 신뢰성, 더 높은 레이턴시 공중 네트워크 커넥션으로의 스위칭 전에 가능한 클라이언트 디바이스에 가까운 포인트로까지 가상 데스크톱 세션에 대한 2-방향 대화형 비디오 스트림을 반송하도록 사용될 수 있다.
일부 실시형태에서, 게이트웨이 컴포넌트는 대리에 의해 가상 데스크톱 인스턴스가 서비스에 의해 호스팅되는 다수의 다른 작업공간 클라이언트(예를 들어, 여러 다른 고객 또는 서비스 가입자)에 게이트웨이 기능성을 제공하는 멀티-테넌트 액세스 게이트웨이일 수 있다. 일부 실시형태에서, 게이트웨이 컴포넌트는 가상 데스크톱 세션에 대한 대화형 비디오 스트림의 전달에서만 수반되고, (예를 들어, 보안, 인증 또는 디렉터리 서비스와 같은 다른 목적으로) 가상 데스크톱 인스턴스와 클라이언트 디바이스 간 다른 유형의 트래픽에 대해서는 또는 가상 데스크톱 인스턴스와 작업공간 클라이언트를 대리하는 다른 네트워크 개체 간 트래픽에 대해서는 그렇지 않을 수 있다. 대신에, (전형적으로는 대화형 비디오 스트림만큼 다양한 네트워크 효과에 민감하거나 시간-민감하지 않은) 이들 다른 유형의 트래픽은 가상 데스크톱 인스턴스에 대한 다른 인터페이스를 통해 (예를 들어, 위에서 설명된 바와 같은, E1 유형 인터페이스를 통하여) 반송될 수 있다.
앞서 언급된 바와 같이, 가상 데스크톱 인스턴스로서 구성되는 가상 컴퓨팅 자원 인스턴스는 다수의 가용성 구역에 걸쳐 분산되는 다수의 데이터 센터에서의 컴퓨팅 노드 상에서 호스팅될 수 있다. 유사하게, (가상 컴퓨팅 자원에 의해 또한 구현될 수 있는) 작업공간 서비스의 게이트웨이 컴포넌트는 지리적으로 분산되는 접속 거점(POP) 위치에서의 컴퓨팅 노드 상에서 호스팅될 수 있다. 아래에서 더 상세히 설명되는 바와 같이, 일부 실시형태에서, 서비스는 특정 클라이언트(예를 들어, 특정 최종 사용자)에 대해 게이트웨이 컴포넌트를 자동으로 배정할 수 있다. 클라이언트가 작업공간 서비스에 서명 입장하려고 시도할 때, 서비스는 동일한 영역(예를 들어, 클라이언트가 물리적으로 위치하는 영역)에서 호스팅되는 액세스 게이트웨이 주소를 제공할 수 있고 가상 데스크톱 인스턴스로부터 그 게이트웨이 컴포넌트로의 매핑을 수행할 수 있다.
여기에서 설명된 바와 같이, 일부 실시형태에서, 게이트웨이 컴포넌트는 작업공간 서비스에 의해 관리되는 그리고 모든 클라이언트(예를 들어, 고객 또는 서비스 가입자)에 대해 공통적인 멀티-테넌트 VPC 내에 참가한다. 이러한 VPC는 작업공간 서비스를 위한 관리 네트워크로서 역할할 수 있고, (예를 들어, 가상 사설 네트워크를 통하여) 다양한 POP 위치에서의 게이트웨이 컴포넌트로 밖으로 대화형 비디오 트래픽을 반송하는 네트워크로서 또한 역할할 수 있다. 작업공간 서비스는 클라이언트-특정 VPC를 제공할 수 있고, 각각의 클라이언트를 대리하여 생성 및 관리되는 가상 컴퓨팅 자원 인스턴스는 이들 VPC 중 하나에 참가할 수 있다. 예를 들어, 이들 클라이언트-특정 VPC는 클라이언트 자신에 의해 생성(또는 그들 생성이 개시)될 수도 있고 또는 그들은 그들을 대리하여 서비스에 의해 생성될 수도 있다. 이들 클라이언트 VPC는 가상 데스크톱 세션의 대화형 비디오 스트림 이외의 네트워크 트래픽(예를 들어, 도메인에 합류하는 것 또는 최종 사용자가 인터넷 사이트를 브라우징할 수 있게 하는 것과 같은 연산에 대한 네트워크 트래픽)을 반송할 수 있다. 일부 실시형태에서, 가상 데스크톱 인스턴스를 구현하는 가상 컴퓨팅 자원의 컴포넌트는 또한 작업공간 서비스의 VPC(즉, 서비스를 위한 관리 네트워크)에 배속될 수 있다(또는 그에 참가할 수 있다).
아래에서 더 상세히 설명되는 바와 같이, 일부 실시형태에서, 대화형 비디오 스트림은 UDP 네트워크 프로토콜을 통하여 통신될 수 있고 특정 포트(예를 들어, 포트 4172) 상에서 실행될 수 있다. 그렇지만, 이것은 고객의 방화벽 상에서 일반적으로 열리지 않을 수 있는 네트워크 프로토콜 및 포트이다. 고객의 방화벽 상에서 일반적으로 열릴 수 있는 다른 포트는, 보안 TCP 포트인, TCP 443이다. 일부 실시형태에서, 게이트웨이 컴포넌트는, 고객이 대화형 비디오 스트림을 수신하도록 그들 방화벽 상에서 어느 부가적 포트라도 열어 놓아야 하도록, UDP로부터 TCP 443으로 변환하도록 구성되는 고객의 비보안(또는 DMZ) 네트워크에 배치될 수 있다. 그러한 실시형태에서, 최종 사용자는 그들 구내 상의 네트워크까지 (TCP의 오버헤드 없이, 대화형 비디오 스트림과 같은, 실시간 트래픽에 대해 매우 효율적 전달 프로토콜인) UDP의 혜택을 거둘 수 있고 그 후 끝에 스트림을 TCP 443으로 변환할 수 있다. 예를 들어, 클라이언트 디바이스 상에서 실행 중인 로컬 프로세스(로컬 게이트웨이)는 작업공간 게이트웨이 컴포넌트로부터 UDP 트래픽을 수신할 수 있고 그 후 (바로 고객의 방화벽의 비보안측에서) 그것을 포트 443에 대한 TCP로 변환할 수 있다.
클라우드 컴퓨팅 환경에서의 작업공간으로의 낮은 레이턴시 커넥션을 제공하기 위한 여기에서 설명되는 기술은 도 6 내지 도 11에서 그리고 아래에서 설명되는 예의 실시형태에 의해 더 예시될 수 있다. 예를 들어, 도 6은, 적어도 일부 실시형태에 따라, 가상 데스크톱 서비스가 클라이언트에 제공되는 일례의 네트워킹된 환경을 예시하는 블록 선도이다. 이 예에 예시된 바와 같이, 네트워킹된 컴퓨팅 환경(600)은 적어도 부분적으로 공중 네트워크(650)를 통하여 2개의 클라이언트 컴퓨팅 디바이스(670, 680)와 그리고 다른 네트워크 개체(660)와 통신하고 있는 가상 컴퓨팅 서비스 제공자(610)를 포함할 수 있다. 가상 컴퓨팅 서비스 제공자(610)는 다수의 가상 컴퓨팅 자원 인스턴스를 포함할 수 있으며, 그 중 일부는 가상 데스크톱 (작업공간) 인스턴스(632, 642)와 같은 가상 데스크톱 (작업공간) 인스턴스로서 구성된다. 이들 가상 데스크톱 (작업공간) 인스턴스는 클라이언트를 대리하여 가상 데스크톱 세션을 호스팅하도록 사용될 수 있다. 일부 실시형태에서, 다른 가상 컴퓨팅 자원 인스턴스(예를 들어, 위에서 설명된 바와 같은, 가상 머신의 인스턴스)는 데이터 스트리밍 애플리케이션과 같은 애플리케이션을 호스팅하도록 구성될 수 있다. 이들 가상 컴퓨팅 자원 인스턴스 중 어느 것이라도 가상 머신의 다수의 인스턴스를 제공하기 위해 또는 가상 머신의 인스턴스의 생성을 동적으로 야기하기 위해 물리적 컴퓨팅 디바이스 자원 및 소프트웨어를 포함할 수 있다. 그러한 생성은 클라이언트 컴퓨팅 디바이스로부터와 같은 특정 요청에 기반할 수 있거나, 또는 작업공간 서비스(또는 그 작업공간 서비스 관리 컴포넌트)는 스스로 가상 머신의 인스턴스의 동적 생성을 개시할 수 있다. 각각의 가상 컴퓨팅 자원 인스턴스는 일부 실시형태에서는, 국한되는 것은 아니지만, 사용자 데이터, 상태 정보, 프로세싱 요건, 이력상의 사용 데이터, 및 가상 컴퓨팅 자원 인스턴스 중 하나 이상에 의해 프로세싱되고 다양한 클라이언트 컴퓨터에 송신될 콘텐츠 제공자로부터의 자원을 포함하는, 네트워크 또는 컴퓨팅 자원의 전달 및 프로세싱에서 사용되는 어느 유형의 데이터라도 저장하기 위한 하나 이상의 저장 디바이스를 포함할 수 있음을 주목한다. 일부 실시형태에서, 하나 이상의 가상 컴퓨팅 자원 인스턴스(또는 작업공간 서비스 VPC(620) 내에서의 그리고/또는 고객 VPC(630 또는 640)의 각각 내에서의 다른 컴포넌트)는, 국한되는 것은 아니지만, 부하 밸런싱 또는 부하 공유 소프트웨어/하드웨어 컴포넌트를 포함하여 통신을 용이하게 하는 부가적 소프트웨어 및/또는 하드웨어 컴포넌트를 포함할 수 있다.
이 예에서 예시되는 바와 같이, 가상 데스크톱 (작업공간) 인스턴스(632) 및 하나 이상의 다른 컴퓨팅 및/또는 네트워크 저장 자원 인스턴스(638)는 클라이언트를 대리하여 가상 컴퓨팅 서비스 제공자(610)의 물리적 자원 상의 가상 사설 클라우드(630) 내에서 동작(참가)할 수 있고 가상 사설 네트워크(VPN)를 통하여 서로 통신할 수 있다. 유사하게, 가상 데스크톱 (작업공간) 인스턴스(642) 및 하나 이상의 다른 컴퓨팅 및/또는 네트워크 저장 자원 인스턴스(648)는 클라이언트(예를 들어, 동일한 클라이언트 또는 다른 클라이언트)를 대리하여 가상 컴퓨팅 서비스 제공자(610)의 물리적 자원 상의 가상 사설 클라우드(640) 내에서 동작할 수 있고 가상 사설 네트워크(VPN)를 통하여 서로 통신할 수 있다. 여기에서 설명된 바와 같이, 이들 가상 데스크톱 (작업공간) 인스턴스의 각각은 다른 목적을 서비스 제공하는 2개의 별개의 구별되는 네트워크 인터페이스를 포함할 수 있다. 예를 들어, 가상 데스크톱 (작업공간) 인스턴스(632)는 (예를 들어, 작업공간 게이트웨이(626) 중 하나를 통하여) 클라이언트와 통신하기 위한 E0 인터페이스(634) 및 다른 네트워크 개체(660)와 통신하기 위한 E1 인터페이스(636)를 포함하는 한편, 가상 데스크톱 (작업공간) 인스턴스(642)는 (예를 들어, 작업공간 게이트웨이(626) 중 하나를 통하여) 클라이언트와 통신하기 위한 E0 인터페이스(644) 및 다른 네트워크 개체(660)와 통신하기 위한 E1 인터페이스(646)를 포함한다.
도 6에서의 예에 의해 예시된 바와 같이, 가상 컴퓨팅 서비스 제공자(610)는, 작업공간 서비스 VPC(620)로서 도시된, 작업공간 서비스를 위한 가상 사설 클라우드 내에서의 에지 노드에 대응하는 소정 수의 "접속 거점"(또는 "POP") 위치(624)를 포함할 수 있다. 일반적으로, 접속 거점은 하나 이상의 물리적 컴퓨팅 노드(예를 들어, 서버, 라우터, 스위치, 및/또는 다른 컴포넌트)가 인터넷으로의 액세스 포인트로서 역할하도록 구성되는 물리적 장소이다. 가상 컴퓨팅 서비스 제공자(610)는 작업공간 서비스 VPC(620) 내에서 동작하는 하나 이상의 작업공간 서비스 관리 컴포넌트(622)를 또한 포함할 수 있으며, 그 각각은 클라이언트를 대리하여 가상 데스크톱 인스턴스(작업공간)를 구현하는 컴퓨팅 자원 인스턴스를 관리한다. 예를 들어, 일부 실시형태에서, 작업공간 서비스 관리 컴포넌트(622)는 다양한 가상 데스크톱 (작업공간) 인스턴스 및/또는 다른 가상 컴퓨팅 자원 인스턴스와 대리에 의해 가상 컴퓨팅 서비스 제공자가 이들 자원 인스턴스를 호스팅하는 클라이언트 간 커넥션을 확립하기 위한 컴퓨팅 자원을 포함할 수 있다. 일부 실시형태에서, 작업공간 서비스 관리 컴포넌트(622)는 콘텐츠 및 자원의 집행 등을 위한 컴퓨팅 자원을 포함할 수 있다. 이 예에서 예시된 바와 같이, 가상 데스크톱 인스턴스(630, 640)의 E0 인터페이스((634) 및 (644)로 도시됨)는, 각각, 고객 VPC(630, 640) 내에서는 물론 작업공간 서비스 VPC(620) 내에서도 동작할 수 있다.
이 예에서 예시된 바와 같이, 각각의 작업공간 POP 위치(624)는 하나 이상의 작업공간 게이트웨이 컴포넌트(626)를 포함할 수 있으며, 그것을 통해 클라이언트는 가상 데스크톱 (작업공간) 인스턴스와 통신한다. 각각의 작업공간 POP 위치(624)는 클라이언트 컴퓨터(670, 680)로부터의 DNS 질의를 해결하기 위한 DNS 컴포넌트 및/또는 콘텐츠 제공자로부터의 자원을 저장하고 다양한 요청된 자원을 다양한 클라이언트 컴퓨터에 송신하기 위한 자원 캐시 컴포넌트를 포함할 수 있다(도시되지 않음). 일부 실시형태에서, 이들 컴포넌트(또는 작업공간 POP 위치(624)의 각각 내에서의 다른 컴포넌트)는, 국한되는 것은 아니지만, 부하 밸런싱 또는 부하 공유 소프트웨어/하드웨어 컴포넌트를 포함하여 통신을 용이하게 하는 부가적 소프트웨어 및/또는 하드웨어 컴포넌트를 포함할 수 있다. 작업공간 서비스 관리 컴포넌트(622) 및 작업공간 POP 위치(624)의 다양한 컴포넌트(작업공간 게이트웨이 컴포넌트(626)를 포함함)는, 컴포넌트, 또는 컴포넌트의 부분들이 물리적으로 별개인지에 무관하게, 논리적으로 그룹화된다고 생각될 수 있다(그리고 작업공간 서비스 VPC(620) 내에서 서로 상호운용되고 가상 사설 네트워크를 통하여 서로 통신할 수 있다). 예를 들어, 작업공간 서비스 관리 컴포넌트(622) 및 작업공간 POP 위치(624)의 다양한 컴포넌트는 (클라이언트(670, 680)와 같은) 클라이언트 컴퓨팅 디바이스의 다양한 인구통계에 최상으로 서비스 제공하는 방식으로 네트워킹된 환경(600) 곳곳에 지리적으로 분산될 수 있다. 부가적으로, 관련 분야의 당업자는 CDN 서비스 제공자(106)가 콘텐츠 및 자원의 집행 등을 위한 부가적 컴퓨팅 디바이스와 같은 다양한 부가적 컴퓨팅 자원과 연관될 수 있음을 인식할 것이다. 다양한 실시형태에서, 가상 데스크톱 (작업공간) 인스턴스(632, 642)는 클라이언트를 대리하여 다른 유형의 가상 컴퓨팅 자원 인스턴스(예를 들어, 다른 가상 컴퓨팅 및/또는 저장 자원 인스턴스(638 또는 648))를 관리하는 컴포넌트와 동일하거나 다른 컴포넌트를 사용하는 관리일 수 있다.
이 예에서 예시된 바와 같이, 가상 컴퓨팅 서비스 제공자(610)로부터 가상 컴퓨팅 및/또는 저장 서비스(예를 들어, 가상 데스크톱 서비스)를 받는 각각의 클라이언트는 클라이언트 디바이스 상에서 실행되는 작업공간 서비스의 클라이언트-측 컴포넌트를 포함할 수 있다. 일부 실시형태에서, 작업공간 서비스의 이러한 클라이언트-측 컴포넌트는 클라이언트의 방화벽 컴포넌트 뒤에서 동작할 수 있다. 예를 들어, 클라이언트(670)는 방화벽(672) 뒤에서 동작하는 작업공간 서비스 클라이언트 컴포넌트(675)를 포함하고 클라이언트(680)는 방화벽(682) 뒤에서 동작하는 작업공간 서비스 클라이언트 컴포넌트(685)를 포함한다. 예를 들어, 대화형 비디오 트래픽은 작업공간 POP 위치(624)에서의 작업공간 게이트웨이 컴포넌트(626) 중 하나를 통해 그리고 가상 데스크톱 인스턴스의 E0 네트워크 인터페이스(예를 들어, E0 인터페이스(634 또는 644))를 통해 클라이언트(670 또는 680) 중 하나와 가상 데스크톱 인스턴스(예를 들어, 가상 데스크톱 인스턴스(632 또는 642)) 간에 통신될 수 있다. 일부 실시형태에서, 작업공간 서비스는 대화형 비디오 스트림의 스트리밍을 보안, 신뢰할만한, 및 낮은 레이턴시 커넥션을 통하여 가상 데스크톱 인스턴스로부터 POP 위치에서의 게이트웨이 컴포넌트로 제공(및 제어)할 수 있지만, 그 너머로는 아니다. 환언하면, 작업공간 POP 위치에서의 게이트웨이 컴포넌트는 통신이 그 최종 수신지(클라이언트)에 도달하기 위해 더 적은 신뢰성 및/또는 더 높은 레이턴시 공중 네트워크를 통하여 반송되기 전에 작업공간 서비스에 의해 제어되는 가상 데스크톱 인스턴스와 클라이언트 간 커넥션에서의 마지막 포인트를 표현할 수 있다. 그렇지만, 작업공간 서비스의 게이트웨이 컴포넌트를 클라이언트 디바이스에 더 가까이 위치시킴으로써, 대화형 비디오 스트림을 전달할 때 서비스의 성능에 대한 그러한 공중 네트워크의 기여는 감축될 수 있다.
여기에서 설명되는 바와 같이, 일부 실시형태에서, 작업공간 서비스의 가상 사설 클라우드는 네트워킹된 환경에 걸쳐 지리적으로 분산될 수 있는 작업공간 접속 거점 위치에서의 게이트웨이 컴포넌트를 포함하도록 확장될 수 있다. 접속 거점 위치에서의 게이트웨이 컴포넌트가 가상 데스크톱 (작업공간) 서비스의 가상 사설 클라우드 내에서 동작(참가)하고 가상 사설 네트워크(VPN)를 통하여 서로 (그리고 작업공간 서비스의 다른 컴포넌트와) 통신하는 네트워킹된 환경의 일례는, 적어도 일부 실시형태에 따라, 도 7a에서의 블록 선도에 의해 예시된다. 이 예에서, 네트워킹된 환경(700)은 적어도 2개의 가용성 구역 또는 영역을 포함한다. 위에서 언급된 바와 같이, 각각의 가용성 구역/영역은 (예를 들어, 하나 이상의 데이터 센터 내에서) 컴퓨팅 노드의 집합이 구현되는 그 자신의 물리적으로 구별되는 독립적 기반구조를 포함할 수 있다. 일부 실시형태에서, 각각의 가용성 구역/영역은 다른 지리적 위치 또는 영역에 거처할 수 있는 한편, 다른 실시형태에서 다수의 가용성 구역/영역은 동일한 지리적 위치 또는 영역에 거처할 수 있다. 이 예에 있어서, 네트워킹된 환경(700)은 데이터 센터(712)를 포함하는 가용성 구역 또는 영역(710)을 포함하고, 데이터 센터(712)는 하나 이상의 작업공간 인스턴스(714) 및/또는 작업공간 관리 컴포넌트(716)를 (예를 들어, 데이터 센터(712) 내에서의 하나 이상의 컴퓨팅 노드 상에서) 호스팅한다. 유사하게, 네트워킹된 환경(700)은 데이터 센터(722)를 포함하는 가용성 구역 또는 영역(720)을 포함하고, 데이터 센터(722)는 하나 이상의 작업공간 인스턴스(724) 및/또는 작업공간 관리 컴포넌트(726)를 (예를 들어, 데이터 센터(722) 내에서의 하나 이상의 컴퓨팅 노드 상에서) 호스팅한다.
위에서 설명된 바와 같이, (작업공간 인스턴스를 구현하는 어느 그리고 모든 가상 컴퓨팅 및/또는 저장 자원을 포함하는) 하나 이상의 작업공간 인스턴스는 그것이 호스팅되는 각각의 데이터 센터에서의 고객 VPC 내에서 동작할 수 있고 그리고 작업공간 인스턴스(예를 들어, 작업공간 인스턴스(714 및/또는 724)) 중 일부 또는 전부는, 여기에서 설명되는 E0 및 E1 인터페이스(도시되지 않음)와 같은, 2개의 별개의 구별되는 네트워크 인터페이스를 포함할 수 있다.
도 7a에 예시된 바와 같이, 다른 가용성 구역 또는 영역에 위치하는 작업공간 관리 컴포넌트(716, 726)는 작업공간 서비스 VPC(730) 내에서 동작할 수 있고, 그리고 가상 데스크톱 인스턴스를 생성 및/또는 구성하고, 대화형 비디오 스트림이 통해 가상 데스크톱 인스턴스와 클라이언트 간에 통신되는 게이트웨이 컴포넌트를 선택하고, 가상 데스크톱 인스턴스와 클라이언트 간 커넥션을 확립하고, 그리고/또는 작업공간 서비스의 다른 집행 또는 통신 기능을 수행하기 위한 기능성을 제공할 수 있다. 부가적으로, (WS POP 게이트웨이 컴포넌트(731-736)로서 도시된) 다수의 작업공간 접속 거점(POP) 게이트웨이 컴포넌트는, 그것들이 2개의 가용성 구역/영역(710, 720) 간 분산되어 있기는 하지만, 작업공간 서비스 VPC 내에서 동작할 수 있고 작업공간 서비스 VPC(730) 내에서 (예를 들어, VPN을 통하여) 작업공간 서비스의 다른 컴포넌트와 상호운용될 수 있다. 일부 실시형태에서, 작업공간 인스턴스(714 및/또는 724) 중 어느 것 또는 전부의 E0 인터페이스는 또한 작업공간 관리 컴포넌트(716 및/또는 726)와, 그리고/또는 작업공간 서비스 VPC(730) 내에서의 WS POP 게이트웨이 컴포넌트(731-736) 중 어느 것과 상호운용될 수 있다(도시되지 않음). 이 예에서 예시된 바와 같이, 작업공간 서비스의 작업공간 POP 게이트웨이 컴포넌트 중 일부 또는 전부는 클라이언트를 대리하여 작업공간 인스턴스를 호스팅하는 데이터 센터 밖에 위치할 수 있다. 다른 실시형태에서, 작업공간 서비스의 작업공간 POP 게이트웨이 컴포넌트 중 일부 또는 전부는 클라이언트를 대리하여 작업공간 인스턴스를 호스팅하는 데이터 센터 내에 위치할 수 있다. 다양한 실시형태에서, 각각의 가용성 구역 또는 영역에는 2개 이상의 데이터 센터가 있을 수 있으며, 그 각각은 각각의 작업공간 인스턴스를 호스팅하는 다수의 컴퓨팅 노드를 포함할 수 있음을 주목한다.
일부 실시형태에서, 클라이언트는 인근 작업공간 게이트웨이 컴포넌트(예를 들어, 클라이언트에 가까운 접속 거점 위치에서의 작업공간 게이트웨이 컴포넌트)를 통해 접속함으로써 그들 작업공간(즉, 클라이언트를 대리하여 작업공간 서비스에 의해 생성 및 관리되는 작업공간 인스턴스)에 액세스할 수 있다. 그렇지만, 이들 게이트웨이 컴포넌트는 그들 작업공간 인스턴스가 호스팅되는 데이터 센터 또는 가용성 구역/영역에 반드시 호스팅되지는 않을 수 있다. 도 7a에 예시된 예에서, 4개의 클라이언트(예를 들어, 클라이언트(752, 754, 756, 758))는 WS POP 게이트웨이 컴포넌트(731-726) 중 다양한 것들을 통해 다양한 작업공간 인스턴스(예를 들어, 가용성 구역/영역(710) 내에서의 데이터 센터(712)에 호스팅된 작업공간 인스턴스(714) 중 다양한 것들 또는 가용성 구역/영역(720) 내에서의 데이터 센터(722)에 호스팅된 작업공간 인스턴스(724) 중 다양한 것들)에 액세스할 수 있다. 여기에서, 클라이언트(752, 754, 756, 758)는, 그들 작업공간이 어디에 호스팅되는지에 무관하게, (공중 네트워크(740)로서 도시된) 인터넷과 같은 공중 네트워크를 통하여 이들 작업공간 POP 게이트웨이 컴포넌트 중 어느 것에라도 접속(그리고 그와 통신)할 수 있다. 이 예에서 예시된 바와 같이, 예를 들어, 클라이언트(752)가 통해 그 작업공간 인스턴스에 액세스하는 클라이언트 디바이스가 물리적으로 가용성 구역/영역(710)에 또는 그 가까이에 위치하면, 클라이언트(752)는 가용성 구역/영역(710)에서의 WS POP 게이트웨이 컴포넌트(732)를 통해 (가용성 구역/영역(710)에서의 데이터 센터(712)에서의) 작업공간 인스턴스(714) 또는 (가용성 구역/영역(720)에서의 데이터 센터(722)에서의) 작업공간 인스턴스(724) 중 어느 것에라도 액세스할 수 있다. 다른 한편, 후속하여 클라이언트(752)가 다른 가용성 구역/영역에 물리적으로 위치하는 클라이언트 디바이스를 통해 그 작업공간 인스턴스에 액세스하면, 그것은 다른 작업공간 POP 게이트웨이 컴포넌트를 통해 그 작업공간 인스턴스에 액세스할 수 있다.
앞서 언급된 바와 같이, (WS POP 게이트웨이 컴포넌트(732)와 같은) WS POP 게이트웨이 컴포넌트는 대리에 의해 작업공간 인스턴스가 서비스에 의해 호스팅되는 다수의 다른 작업공간 클라이언트(예를 들어, 여러 다른 고객 또는 서비스 가입자)에 게이트웨이 기능성을 제공하는 멀티-테넌트 액세스 게이트웨이일 수 있다. 이 예에서, 클라이언트(758)는 (예를 들어, 클라이언트(758)가 통해 그 작업공간 인스턴스에 액세스하는 클라이언트 디바이스가 물리적으로 가용성 구역/영역(710)에 또는 그 가까이에 위치하면) 가용성 구역/영역(710)에서의 WS POP 게이트웨이 컴포넌트(732)를 통해 (가용성 구역/영역(710)에서의 데이터 센터(712)에서의) 작업공간 인스턴스(714) 또는 (가용성 구역/영역(720)에서의 데이터 센터(722)에서의) 작업공간 인스턴스(724) 중 어느 것에라도 액세스할 수 있고, 후속하여 (예를 들어, 그것이 다른 가용성 구역/영역에 물리적으로 위치하는 클라이언트 디바이스를 통해 그 작업공간 인스턴스에 액세스하면) 다른 작업공간 POP 게이트웨이 컴포넌트를 통해 그 작업공간 인스턴스에 액세스할 수 있다.
도 7a에 예시된 예에서, 클라이언트(754)는 가용성 구역/영역(720)에서의 WS POP 게이트웨이 컴포넌트(734)를 통해 (가용성 구역/영역(710)에서의 데이터 센터(712)에서의) 작업공간 인스턴스(714) 또는 (가용성 구역/영역(720)에서의 데이터 센터(722)에서의) 작업공간 인스턴스(724) 중 어느 것에라도 액세스할 수 있다. 유사하게, 클라이언트(756)는 가용성 구역/영역(720)에서의 WS POP 게이트웨이 컴포넌트(736)를 통해 (가용성 구역/영역(710)에서의 데이터 센터(712)에서의) 작업공간 인스턴스(714) 또는 (가용성 구역/영역(720)에서의 데이터 센터(722)에서의) 작업공간 인스턴스(724) 중 어느 것에라도 액세스할 수 있다. 일부 실시형태에서, 클라이언트는 우선 하나의 게이트웨이 컴포넌트를 통해 그들 작업공간 인스턴스 중 하나에 액세스하려고 시도할 수 있고, 후속하여 (예를 들어, 작업공간 인스턴스에 접속하려는 시도가 성공적이지 않으면, 커넥션 상의 레이턴시가 허용가능하지 않으면, 또는 클라이언트가 통해 작업공간 인스턴스에 액세스하는 클라이언트 디바이스가 변경되면) 작업공간 POP 게이트웨이 컴포넌트 중 다른 하나를 통해 작업공간 인스턴스에 액세스하려고 시도할 수 있다.
도 7b는, 적어도 일부 실시형태에 따라, 클라이언트에 작업공간 서비스를 제공하는 다른 일례의 네트워킹된 환경을 예시하는 블록 선도이다. 네트워킹된 환경(705)은 도 7a에 예시된 네트워킹된 환경(700)과 유사하다. 그렇지만, 이 예에서, 접속 거점 위치에서의 게이트웨이 컴포넌트 중 일부는 가상 데스크톱 서비스의 가상 사설 클라우드(예를 들어, 작업공간 서비스 VPC(730)) 내에서 동작하는 한편, 다른 것들은 가상 데스크톱 서비스의 가상 사설 클라우드에 밀 결합되는 피어 VPC(예를 들어, 피어 VPC(760)) 내에서 동작할 수 있다. 더 구체적으로, 이 예에서, WS POP 게이트웨이 컴포넌트(731, 732, 733, 734)는 가상 데스크톱 서비스의 가상 사설 클라우드(예를 들어, 작업공간 서비스 VPC(730)) 내에서 동작하는 한편, WS POP 게이트웨이 컴포넌트(735, 736)는 피어 커넥션(765)을 통해 작업공간 서비스 VPC(730)에 통신가능하게 결합되는 피어 VPC(760)로 동작한다. 이전 예에서와 같이, 클라이언트(756)는 가용성 구역/영역(720)에서의 WS POP 게이트웨이 컴포넌트(736)를 통해 (가용성 구역/영역(710)에서의 데이터 센터(712)에서의) 작업공간 인스턴스(714) 또는 (가용성 구역/영역(720)에서의 데이터 센터(722)에서의) 작업공간 인스턴스(724) 중 어느 것에라도 액세스할 수 있다. 그렇지만, 이 예에서, WS POP 게이트웨이 컴포넌트(736)는 작업공간 서비스 VPC(730) 내에서라기보다는 피어 VPC(760) 내에서 동작한다. WS POP 게이트웨이 컴포넌트(736)가 피어 VPC(760) 내에서 동작하더라도, 클라이언트(756)에 의해 액세스되는 어느 작업공간 인스턴스와 WS POP 게이트웨이 컴포넌트(736) 간 통신 채널은 클라이언트(752, 754, 756, 또는 758) 중 어느 것에 의해서라도 액세스되는 작업공간 인스턴스와 작업공간 서비스 VPC(730) 내에서 동작하는 WS POP 게이트웨이 컴포넌트 간 통신 채널의 그것과 실질적으로 유사한 신뢰성 및 레이턴시를 가질 수 있음을 주목한다. 일부 실시형태에서, (피어 VPC(760)와 같은) 피어 VPC는 다수의 가용성 구역 또는 영역에서의 컴퓨팅 노드 상에서 호스팅되는 WS POP 게이트웨이 컴포넌트를 포함할 수 있음을 주목한다. 또한, 또 다른 실시형태에서, 작업공간 서비스를 제공하는 네트워킹된 환경의 WS POP 게이트웨이 컴포넌트 전부는, 작업공간 서비스 VPC 자체 내에서 동작하기보다는, 작업공간 서비스 VPC에 밀 결합되는 하나 이상의 피어 VPC 내에서 동작할 수 있다.
앞서 언급된 바와 같이, 일부 실시형태에서, 작업공간 서비스는 가상 데스크톱 세션에 대한 대화형 비디오 스트림을 취급하는데 사용될 특정 POP 위치에서의 게이트웨이 컴포넌트를 그 위치(예를 들어, 대화형 비디오 스트림이 통신될 클라이언트 디바이스에 대한 POP 위치의 근접도)에 종속하여 선택하도록 구성될 수 있다. 예를 들어, 클라이언트(예를 들어, 고객 또는 서비스 가입자)가 뉴욕시에서의 클라이언트 컴퓨팅 디바이스로부터 가상 데스크톱 세션에 접속하고 있으면, 세션에 대한 대화형 비디오 스트림은 클라이언트를 대리하여 세션에 대한 가상 데스크톱 인스턴스를 호스팅하는 물리적 컴퓨팅 자원(예를 들어, 하나 이상의 컴퓨팅 노드)이 어디에 위치하는지에 무관하게 (적합한 게이트웨이 컴포넌트가 호스팅되는 위치에 종속하여) 클라이언트가 상하이 클라이언트 컴퓨팅 디바이스로부터 가상 데스크톱 세션에 접속하고 있는 경우와는 다른 액세스 게이트웨이를 통해 취급될 수 있다. 이러한 접근법을 사용하여, 클라이언트는 그들 물리적 장소에 무관하게 (작업공간 서비스 자체에 의해, 적어도 선택된 POP 위치 게이트웨이까지, 제어되는) 양호한 네트워크 성능을 경험할 수 있다. 환언하면, 일부 실시형태에서, 클라이언트가 그들이 통해 가상 데스크톱 인스턴스에 접속하는 디바이스를 물리적으로 이동시킴에 따라, 서비스는 세션에 대한 대화형 비디오 트래픽을 최상으로 이용가능한 게이트웨이(예를 들어, 클라이언트 디바이스에 가까운 것)로 자동으로 전향시킬 수 있다.
일부 실시형태에서, (예를 들어, 여러 다른 지리적 지역에서의 에지 위치에서의) 여러 다른 접속 거점에서의 적어도 일부 자원(예를 들어, 물리적 컴퓨팅 자원 및/또는 가상 컴퓨팅 자원 인스턴스)은 동일한(또는 인근) 도시, 지역 또는 영역에서의 클라이언트에 의한 그들 사용을 예상하여 작업공간 서비스의 VPC 내에서의 게이트웨이 컴포넌트로서 프로비저닝될 수 있다. 일부 실시형태에서, 서비스(또는 그 관리 컴포넌트)는 동일한 지리적 지역에서의 클라이언트 디바이스로부터 작업공간 서비스에 접속하는 사용자의 수가 그러한 증가를 타당하게 하면 그리고 그때 (예를 들어, 클라이언트에 의한 커넥션을 지원하도록 용량을 업 스케일링하여) 특정 접속 거점 위치에서의 게이트웨이 컴포넌트로서 부가적 가상 컴퓨팅 자원을 프로비저닝할 수 있다. 게이트웨이 인스턴스의 이러한 자동-스케일링은 여러 다른 실시형태에서, 필요에 따라, 특정 POP 위치에서 또는 작업공간 서비스에 대해 중앙에서 수행될 수 있다. 일부 실시형태에서, 서비스는 하나 이상의 게이트웨이 컴포넌트와의 통신 손실, 또는 하나 이상의 게이트웨이 컴포넌트가 특정 POP 위치에서 호스팅되는 컴퓨팅 노드의 장애에 뒤이어 클라이언트 디바이스와 작업공간 인스턴스 간 트래픽이 (예를 들어, 클라이언트 디바이스에 가장 가까운 POP 위치에서 호스팅되지 않는) 대체 게이트웨이 컴포넌트로 지향(또는 전향)될 수 있게 하는 페일오버 메커니즘을 구현할 수 있다. 유사하게, 서비스는 게이트웨이 컴포넌트(또는 POP 위치)에 의해 경험되는 상대적 작업부하에서의 변화에 응답하여 클라이언트 디바이스와 작업공간 인스턴스 간 트래픽을 특정 게이트웨이 컴포넌트(및/또는 POP 위치)로 지향(또는 전향)시킬 수 있다. 일부 실시형태에서, 클라이언트 디바이스로부터의 트래픽이 (예를 들어, 장애에 기인하여, 부하-밸런싱을 위해, 또는 어느 다른 이유로) 클라이언트 디바이스에 가까운 게이트웨이 컴포넌트(또는 POP 위치)로부터 떨어진 쪽으로 전향될 필요가 있으면, 시스템은 다음의 가장 가까운 게이트웨이 컴포넌트(또는 POP 위치)로 트래픽을 자동으로 전향시킬 수 있다. 다른 실시형태에서, 그러한 트래픽이 전향되는 게이트웨이 컴포넌트 및/또는 POP 위치는, 클라이언트에 가까운 접속 거점 위치에서 호스팅되는 게이트웨이 컴포넌트 및 클라이언트로부터 더 멀리 떨어진 접속 거점 위치에서 호스팅되는 게이트웨이 컴포넌트를 포함할 수 있는, 가용 게이트웨이 컴포넌트 중으로부터 게이트웨이 컴포넌트를 선택하기 위한 부하-밸런싱 정책 또는 어떤 다른 유형의 우선순위 정책에 종속할 수 있다.
일부 실시형태에서, 서비스는 어느 게이트웨이가 특정 클라이언트의 사용에 이용가능한지 표시하는 정보를 유지하고 있을 수 있고, (특정 POP 위치에서의) 가용 게이트웨이 컴포넌트에 대한 수신지 주소의 목록을 그들 클라이언트에 제공할 수 있다. 예를 들어, 서비스는 클라이언트와 가상 컴퓨팅 서비스 간 네트워크 인터페이스를 제공하는데 이용가능한 2개 이상의 게이트웨이 컴포넌트 세트, 및 그것들이 호스팅되는 접속 거점 위치를 자동으로 결정하고, 그것을 작업공간 서비스의 클라이언트-측 컴포넌트(예를 들어, 특정 클라이언트를 대리하여 실행되고 있는 작업공간 클라이언트 프로세스)에 제공하도록 구성될 수 있다. 그러한 실시형태에서, 작업공간 서비스의 클라이언트-측 컴포넌트는 목록으로부터 가용 게이트웨이 컴포넌트를 선택하도록 구성될 수 있고, 선택된 게이트웨이 컴포넌트를 통해 가상 데스크톱 인스턴스에 접속하여 가상 데스크톱 세션을 시작하려는 시도가 실패하면, 세션을 접속 및 시작하려는 시도로 가용 게이트웨이 컴포넌트의 목록을 통해 순환하도록 구성될 수 있다. 일부 실시형태에서, 서비스는 부하 정보 또는 가용성 정보에 기반하여 (예를 들어, 이전의 가용 게이트웨이 컴포넌트가 호스팅되는 컴퓨팅 노드 중 하나 이상에서 경험되는 작업부하에서의 증가 또는 감소, 이전의 가용 게이트웨이 컴포넌트 중 하나 이상과의 통신 손실, 또는 이전의 가용 게이트웨이 컴포넌트 중 하나 이상이 호스팅되는 컴퓨팅 노드의 장애에 응답하여) (특정 POP 위치에서의) 가용 게이트웨이 컴포넌트에 대한 수신지 주소의 목록을 수정하도록 구성될 수 있고 업데이트된 리스트를 작업공간 서비스의 클라이언트-측 컴포넌트에 제공할 수 있다.
도 8은 접속 거점 위치에서의 게이트웨이 컴포넌트를 통해 클라이언트에 가상 데스크톱 서비스를 제공하기 위한 방법의 일 실시형태를 예시하는 순서도이다. (810)에서 예시된 바와 같이, 이 예에서, 방법은 (예를 들어, 가상 데스크톱 인스턴스를 인스턴스화하고 그리고/또는 가상 데스크톱 인스턴스에 접속하기 위해) 가상 데스크톱 서비스에 서명 입장하고 가상 데스크톱 세션을 시작하라는 클라이언트로부터의 요청을 수신하는 것을 포함할 수 있다. (820)으로부터 부정적 출구로서 도시된 바와 같이, 요청이 인증되지 않으면(예를 들어, 클라이언트가 유효한 크리덴셜을 내놓지 않으면), 방법은, (825)에서와 같이, 실패의 표시를 클라이언트에 반환하는 것을 포함할 수 있다. 그렇지만, (820)으로부터 긍정적 출구로서 도시된 바와 같이, 요청이 인증되면, 방법은, (830)에서와 같이, 클라이언트의 사용을 위해 가상 데스크톱 (작업공간) 인스턴스에 대한 가상 컴퓨팅 자원을 구성하는 것을 포함할 수 있다. 예를 들어, 방법은 가상 자원 인스턴스를 인스턴스화하고 그것을 클라이언트를 대리하여 가상 데스크톱(작업공간)을 구현하도록 구성하는 것을 포함할 수 있다.
이 예에서 예시된 바와 같이, 방법은, (840)에서와 같이, 가상 데스크톱 세션에 대한 대화형 비디오 스트림이 통해 클라이언트에 통신되어야 하는 적합한 접속 거점(POP) 위치를 결정하는 것을 포함할 수 있다. 일부 실시형태에서, 클라이언트(또는 최종 사용자)는 가상 데스크톱 인스턴스와 통신하는데 사용하기 위한 특정 POP(또는 그 게이트웨이 컴포넌트)를 선택할 수 있다. 다른 실시형태에서, 가상 데스크톱 서비스는 다수의 가용 POP 위치(및/또는 그 게이트웨이 컴포넌트) 중 어느 것이 가상 데스크톱 인스턴스와 클라이언트 간 대화형 비디오 스트림 트래픽을 취급하는데 사용되어야 하는지 (예를 들어, 요청이 통해 수신된 클라이언트 디바이스의 위치, 다양한 게이트웨이 컴포넌트의 작업부하, 또는 다른 기준 또는 정책 사용에 기반하여, 자동으로) 결정하도록 구성될 수 있다.
적합한 POP 위치(및/또는 그 게이트웨이 컴포넌트)가 결정되고 나면, 방법은, (850)에서와 같이, 작업공간 서비스의 가상 사설 클라우드 내에 있는 선택된 POP 위치에서의 게이트웨이 컴포넌트를 통해 작업공간 인스턴스와 클라이언트 간 커넥션(또는 통신 채널)을 셋업하는 것을 포함할 수 있다. 예를 들어, 일부 실시형태에서, 방법은, 가상 데스크톱 인스턴스에 대한 대화형 스트림이 통하여 반송되는 신뢰할만한 그리고 낮은 레이턴시 커넥션이 POP 위치로까지 내내 작업공간 서비스에 의해 제어될 수 있고, 그리고 더 적은 신뢰성 그리고/또는 더 높은 레이턴시 공중 네트워크를 통하여 반송되는 커넥션의 부분(예를 들어, 공중 인터넷을 통한 게이트웨이 컴포넌트와 클라이언트 간 커넥션)이 최소화될 수 있도록, 가상 사설 네트워크를 통하여 가상 데스크톱 인스턴스로부터 POP 위치에서의 게이트웨이 컴포넌트로의 터널 또는 파이프를 확립하는 작업공간 서비스의 관리 컴포넌트를 포함할 수 있다. POP 위치에서의 게이트웨이 컴포넌트를 통해 클라이언트와 작업공간 인스턴스 간 커넥션 또는 통신 채널을 확립하는 관리 컴포넌트는, 여러 다른 실시형태에서, 게이트웨이 컴포넌트를 호스팅하는 컴퓨팅 노드 또는 작업공간 인스턴스를 호스팅하는 컴퓨팅 노드와 동일한 영역 또는 가용성 구역에 물리적으로 위치하는 컴퓨팅 노드 상에 호스팅될 수도 있고 그렇지 않을 수도 있음을 유념한다.
커넥션이 확립되고 나면, 방법은, (860)에서와 같이, 클라이언트와 가상 데스크톱 인스턴스 간 대화형 비디오 트래픽에 대한 커넥션의 사용을 개시하는 것을 포함할 수 있다. 예를 들어, 방법은 작업공간 서비스가 가상 데스크톱 인스턴스를 클라이언트에 이용가능하게 하는 것(가상화된 컴퓨팅 자원 인스턴스에 액세스하도록 클라이언트에 의해 사용가능한 크리덴셜을 제공하는 것을 포함할 수 있음), 디스플레이를 위해 클라이언트에 픽셀의 스트림(및/또는 픽셀을 발생 및 렌더링하기 위한 커맨드)의 통신을 개시하는 것, 및/또는 이러한 커넥션을 통하여 클라이언트로부터 수신된 입력(예를 들어, 키보드 입력, 마우스 입력, 또는 터치-기반 인터페이스 입력과 같은, 가상 데스크톱 인스턴스와의 사용자 상호작용을 표현하는 입력)을 수신 및 프로세싱하도록 준비하는 것을 포함할 수 있다.
도 9는 접속 거점 위치에서의 게이트웨이 컴포넌트를 통해 작업공간 제공자와 클라이언트 간 대화형 비디오 트래픽을 관리하기 위한 방법의 일 실시형태를 예시하는 순서도이다. (910)에서 예시된 바와 같이, 이 예에서, 방법은, 데이터 센터 내에서, 작업공간 서비스가 가상화된 컴퓨팅 자원 인스턴스를 인스턴스화하고, 그것을 클라이언트를 대리하여 가상 데스크톱 (작업공간) 인스턴스로서의 사용을 위해 구성하고, 그리고 가상 데스크톱 (작업공간) 세션을 시작하는 것을 포함할 수 있다. 일부 실시형태에서, 가상 데스크톱 (작업공간) 인스턴스로서의 사용을 위해 가상 데스크톱 인스턴스를 구성하고 작업공간 세션을 시작하는 것은 대리에 의해 가상 데스크톱 (작업공간) 인스턴스가 작업공간 POP 위치에서의 게이트웨이 컴포넌트를 통해 구성된 클라이언트와 가상 데스크톱 (작업공간) 인스턴스 간 통신 채널을 확립하는 단계를 포함할 수 있다. 여기에서 설명되는 바와 같이, 가상 데스크톱 (작업공간) 인스턴스와 게이트웨이 컴포넌트 간 통신 채널의 부분은 가상 사설 네트워크를 통하여 구현될 수 있는 한편, 게이트웨이 컴포넌트와 클라이언트 간 통신 채널의 부분은 공중 네트워크를 통하여 구현될 수 있다. 가상 데스크톱 인스턴스가 가상 데스크톱 (작업공간) 인스턴스로서의 사용을 위해 구성되고 통신 채널이 확립되고 나면, 방법은, 양자가 게이트웨이 컴포넌트를 포함할 수 있는, 병렬 경로 상의 클라이언트와 가상 데스크톱 (작업공간) 인스턴스 간 2-방향 대화형 비디오 트래픽을 관리하는 것을 포함할 수 있다. 예를 들어, 하나의 경로는 클라이언트의 가상 데스크톱 (작업공간) 인스턴스로부터 클라이언트로의 픽셀의 스트림(및/또는 픽셀을 발생 및 렌더링하기 위한 커맨드)을 통신하는데 사용될 수 있고, 다른 경로는 클라이언트로부터 가상 데스크톱 (작업공간) 인스턴스로의 입력을 통신하는데 사용될 수 있다. 이들 2개의 병렬 경로는, 각각, 도 9에서의 순서도의 좌측 및 우측 상의 병렬 경로에 의해 예시된다.
이 예에서 예시된 바와 같이, 방법은, (920)에서와 같이, 작업공간 인스턴스가 클라이언트 디바이스 상의 클라이언트 작업공간의 디스플레이를 위해 UDP 네트워크 프로토콜을 통하여 비디오 스트림을 발생시키는 것을 포함할 수 있다. 예를 들어, 방법은 작업공간 인스턴스(또는 그 가상화된 컴퓨팅 자원)가 클라이언트를 대리하여 작업공간 인스턴스 상의 애플리케이션의 실행에 응답하여 UDP 네트워크 프로토콜을 통하여 픽셀의 스트림을 발생시키는 것을 포함할 수 있다. 방법은 또한, (940)에서와 같이, 작업공간 인스턴스가 클라이언트 디바이스의 위치에 가까운 POP 위치에서의 게이트웨이 컴포넌트에 비디오 스트림을 제공하는 것을 포함할 수 있다. 앞서 언급된 바와 같이, 일부 실시형태에서, 작업공간 인스턴스는 또한 클라이언트 디바이스에 의한 디스플레이를 위해 픽셀을 발생 및/또는 렌더링하도록 클라이언트 디바이스에 지시하는 명령어를 표현하는 커맨드를 클라이언트 디바이스에 제공할 수 있다(도시되지 않음). 위에서 설명된 바와 같이, 게이트웨이 컴포넌트는 (예를 들어, 가상 사설 네트워크를 통하여 통신하여) 작업공간 서비스의 가상 사설 클라우드 내에서의 작업공간 관리 컴포넌트와 통신 및 상호운용되는 다수의 게이트웨이 컴포넌트 중 하나일 수도 있고, 그것은 VPC 피어링 메커니즘을 사용하여 작업공간 서비스의 가상 사설 클라우드에 통신가능하게 결합되는 별개의 가상 사설 클라우드 내에서 동작할 수도 있음을 주목한다. 예를 들어, 게이트웨이 컴포넌트가 작업공간 서비스의 VPC에 밀 결합되는 피어 VPC 내에서 동작하는 실시형태에서, (픽셀 데이터 및/또는 클라이언트 디바이스에서 픽셀을 발생 및/또는 렌더링하기 위한 커맨드를 포함하는) 비디오 스트림은 2개의 VPC에 걸쳐 이어지는 보안, 신뢰할만한, 낮은 레이턴시 통신 채널을 통하여 작업공간 인스턴스로부터 게이트웨이 컴포넌트로 통신될 수 있다.
방법은, (960)에서와 같이, 클라이언트 디바이스 상에서 실행되고 있는 작업공간 서비스의 클라이언트 컴포넌트가 게이트웨이 컴포넌트로부터 UDP 비디오 스트림을 수신하고 그것을 TCP로 변환하는 것을 포함할 수 있다. 예를 들어, 일부 실시형태에서, 클라이언트 디바이스는 클라이언트 디바이스 상에서의 방화벽을 통해 포트 4172 상에서 UDP 스트림을 수신하고, 그 방화벽 뒤에서, 작업공간 서비스의 클라이언트 컴포넌트는 그것을 포트 443에 대한 TCP로 변환할 수 있다. 이 예에서 예시된 바와 같이, 방법은, (980)에서와 같이, 클라이언트-측 애플리케이션이 변환된 비디오 스트림을 클라이언트 디바이스 상에서 렌더링 및 디스플레이하는 것을 포함할 수 있다.
그러는 동안(예를 들어, 요소(920-980)에서 예시된 동작이 수행되고 있는 동안), 방법은, (930)에서와 같이, 작업공간 서비스의 클라이언트 컴포넌트가 클라이언트 디바이스의 위치에 가까운 POP 위치에서의 게이트웨이 컴포넌트(예를 들어, 픽셀 스트림을 취급하는 것과 동일한 게이트웨이 컴포넌트)에 입력을 제공하는 것을 포함할 수 있다. 예를 들어, 클라이언트는 로컬 데스크톱을 수반하는 사용자 상호작용과 유사한 가상 데스크톱 인스턴스와의 사용자 상호작용을 표현하는 입력(예를 들어, 키보드, 터치-기반 인터페이스, 및/또는 마우스를 수반하는 상호작용)을 제공할 수 있다.
이 예에서 예시된 바와 같이, 방법은, (950)에서와 같이, 게이트웨이 컴포넌트가 클라이언트로부터 작업공간 인스턴스로의 반환 경로를 브리징하는 것을 포함할 수 있다. 이러한 경로는, 일부 경우에서, 가용성 구역 및/또는 지리적 영역 경계를 횡단할 수 있음을 주목한다. 방법은 또한, (970)에서와 같이, 작업공간 인스턴스가 클라이언트 입력을 수신하고, 요청된 조치를 수행하고, 취해진 조치에 응답하여 (예를 들어, UDP 네트워크 프로토콜을 통하여) 비디오 스트림을 발생시키는 것을 포함할 수 있다. 비디오 스트림이 발생되고 나면, 방법은, 이 예에서, (940)에서와 같이 계속될 수 있다.
이 예에서 예시된 바와 같이, 대화형 비디오 스트림의 취급에 대응하는 그리고 도 9에서 예시된 동작은 클라이언트로부터 입력이 수신됨에 따라 반복될 수 있고 그리고 응답하여 새로운 픽셀 스트림(및/또는 픽셀을 발생 및 렌더링하기 위한 커맨드)은 발생되어 클라이언트 디바이스에 통신되고(요소(930, 950, 970, 920, 940, 960, 980), 및 (980 내지 930)의 피드백을 통한 경로로서 도시됨), 그리고 작업공간 인스턴스 상에서 다양한 클라이언트 애플리케이션의 실행에 응답하여 작업공간 인스턴스에 의해 발생되는 비디오 스트림으로서 클라이언트 디바이스에 통신된다(요소(920, 940, 960, 980), 및 (980 내지 920)의 피드백을 포함하는 경로로서 도시됨).
도 10은 클라이언트가 접속 거점 위치에서의 게이트웨이 컴포넌트를 통해 작업공간 서비스에 접속하여 그와 통신하기 위한 방법의 일 실시형태를 예시하는 순서도이다. (1010)에서 예시된 바와 같이, 이 예에서, 방법은 최종 사용자를 대리하여 원격 데이터 센터에서 작업공간 인스턴스를 호스팅하는 작업공간 서비스의 클라이언트 컴포넌트가 게이트웨이 컴포넌트가 호스팅되는 POP 위치에 대한 수신지 주소의 목록을 수신하는 것을 포함할 수 있다. 예를 들어, 일부 실시형태에서, 작업공간 서비스의 클라이언트 컴포넌트는 클라이언트 디바이스 상의 클라이언트 컴포넌트의 인스턴스화(설치) 또는 구성(초기화) 동안 작업공간 서비스로부터 (작업공간 서비스의 클라이언트 컴포넌트가 실행되고 있는 클라이언트 디바이스와 작업공간 서비스 간 통신 인터페이스를 제공하는데 이용가능한 2개 이상의 게이트웨이 컴포넌트 세트 및 그것들이 호스팅되는 접속 거점 위치를 식별시킬 수 있는) 그러한 목록을 수신할 수 있다. 일부 그러한 실시형태에서, 클라이언트 컴포넌트는 (예를 들어, 게이트웨이 컴포넌트의 수 또는 구성에서의 변경에 응답하여) 주기적으로 또는 필요에 따른 또는 요청에 따른 기반으로 업데이트된 목록(또는 목록에 적용될 업데이트)을 수신할 수 있다.
이 예에서 예시된 바와 같이, 방법은, 작업공간 서비스의 클라이언트 컴포넌트가 작업공간 서비스로부터 수신된 목록 상에 포함된 것들 중으로부터 ((1020)에서와 같이) 게이트웨이 컴포넌트가 호스팅되는 POP 위치에 대한 수신지 주소를 선택하는 것을 포함할 수 있다. 예를 들어, 다양한 실시형태에서, 수신지 주소는 자동으로 또는 사용자 입력으로 선택될 수 있고, 선택 자체는 클라이언트 컴포넌트가 실행되고 있는 클라이언트 디바이스의 위치, 하나 이상의 POP 위치에서 그리고/또는 그 다양한 게이트웨이 컴포넌트에 의해 경험되는 작업부하, 및/또는 다른 기준 또는 선호도에 기반할 수 있다(그 중 일부는 작업공간 서비스의 디폴트 정책으로 또는 클라이언트-특정 정책으로 특정될 수 있음). 도 10에 예시된 바와 같이, 방법은, (1030)에서와 같이, 작업공간 서비스의 클라이언트 컴포넌트가 선택된 POP 위치에서의 게이트웨이 컴포넌트를 통해 작업공간 인스턴스와 접속하려고 시도하는 것을 포함할 수 있다.
((1040)으로부터 긍정적 출구로서 도시된 바와 같이) 작업공간 인스턴스에 접속하려는 시도가 성공적이면, 방법은, 여기에서 설명되는 바와 같이, ((1050)에서와 같이), 클라이언트 컴포넌트가 선택된 POP 위치에서의 게이트웨이 컴포넌트를 통해 작업공간 인스턴스와 대화형 비디오 스트림 데이터의 교환을 시작하는 것을 포함할 수 있으며, 작업공간 인스턴스로부터 픽셀 스트림을 수신하고 (병렬로) 사용자 입력을 반환하는 것을 포함할 수 있다. 앞서 언급된 바와 같이, 일부 실시형태에서, 대화형 비디오 스트림은 또한 작업공간 인스턴스로부터 클라이언트 컴포넌트로 통신되는 그리고 클라이언트 디바이스에 의한 디스플레이를 위해 픽셀을 발생 및/또는 렌더링하도록 클라이언트 컴포넌트에 지시하는 명령어를 표현하는 커맨드를 포함할 수 있다. 그렇지만, ((1040)으로부터 부정적 출구로서 도시된 바와 같이) 작업공간 인스턴스에 접속하려는 시도가 성공적이지 않으면, 방법은 작업공간 서비스의 클라이언트 컴포넌트가 게이트웨이 컴포넌트가 호스팅되는 POP 위치에 대한 다른 수신지 주소를 선택하는 것 및 작업공간 인스턴스와 접속하려고 다시 시도하는 것을 포함할 수 있다. 이것은 (1040)의 부정적 출구로부터 (1020)으로의 피드백에 의해 도 10에 예시되어 있다. 여기에서 설명되는 바와 같이, 대화형 비디오 스트림 이외에 클라이언트와 작업공간 인스턴스 간 트래픽(예를 들어, 접속 요청 또는 다른 유형의 요청 또는 데이터)은 대화형 비디오 스트림을 반송하는데 사용된 것과는 다른 작업공간 인스턴스 인터페이스를 통하여 통신될 수 있음을 주목한다. 예를 들어, (위에서 설명된 것과 같은) E0-유형 인터페이스는 대화형 비디오 스트림을 반송하는데 사용될 수 있는 한편, (위에서 설명된 것과 같은) E1-유형 인터페이스는 다른 유형의 정보를 통신하는데 그리고/또는 대리에 의해 작업공간 인스턴스가 생성된 작업공간 서비스 클라이언트와는 다른 네트워크 개체와 통신하는데 사용될 수 있다. 또한, 일부 실시형태에서, 클라이언트(예를 들어, 고객 또는 서비스 가입자)는, 클라이언트가 통해 그들 작업공간 인스턴스에 액세스하는 클라이언트 디바이스의 물리적 장소에 무관하게, 그들 작업공간 인스턴스로의 모든 액세스가 특정 게이트웨이 컴포넌트를 통해 통신되어야 함을 (예를 들어, 작업공간 서비스의 클라이언트 컴포넌트의 인터페이스를 통해) 특정할 수 있을 수 있음을 주목한다. 다른 실시형태에서, 클라이언트는 (그들 위치에 무관하게) 사용을 위한 디폴트 게이트웨이 컴포넌트를 특정할 수 있을 수 있지만, 이러한 디폴트는, 특정 상황 하에서 오버라이딩될 수 있게 할 수 있다. 또 다른 실시형태에서, 클라이언트는 클라이언트가 통해 그들 작업공간 인스턴스에 액세스하는 클라이언트 디바이스의 물리적 장소에 적어도 부분적으로 종속하여 게이트웨이 컴포넌트가 사용을 위해 선택되어야 함을 특정할 수 있을 수 있다.
서비스 제공자 네트워크의 에지에 대응하는 POP 위치에 위치하는 게이트웨이 컴포넌트의 관점에서 많은 예의 실시형태가 설명되었음을 주목한다. 그렇지만, 다른 실시형태에서, 클라우드 컴퓨팅 환경에서 작업공간으로의 낮은 레이턴시 커넥션을 제공하기 위한 여기에서 설명된 기술은 작업공간 인스턴스로부터 클라이언트 디바이스로의 다양한 경로를 따라 네트워크 기능을 수행하는 다른 유형의 게이트웨이 컴포넌트 또는 라우터에 적용될 수 있다. 예를 들어, 작업공간 서비스의 가상 사설 클라우드는, 에지 위치에 있지는 않지만, 작업공간 인스턴스가 호스팅되는 컴퓨팅 노드가 물리적으로 위치하는 데이터 센터보다 클라이언트 디바이스에 더 가까이 위치하는 유사한 원격 네트워킹 컴포넌트로까지 확장될 수 있다. 그러한 실시형태에서, 성능은 그들 원격 네트워킹 컴포넌트로까지 보안, 신뢰할만한, 그리고 낮은 레이턴시 커넥션을 통하여(예를 들어, 작업공간 서비스에 의해 제어되는 가상 사설 네트워크를 통하여) 가상 데스크톱 세션에 대한 대화형 비디오 스트림을 제공하여, 클라이언트 디바이스로의 경로를 따른 다른 네트워크(예를 들어, 잠재적으로 더 낮은 품질 네트워크)의 기여도를 감축함으로써 개선될 수 있다.
예시적 시스템
적어도 일부 실시형태에서, 여기에서 설명되는 바와 같은 클라우드 컴퓨팅 환경에서의 작업공간으로의 낮은 레이턴시 커넥션을 제공하기 위한 기술 중 일부 또는 전부를 구현하는 시스템은 도 11에 예시된 컴퓨터 시스템(1100)과 같은 비-일시적 컴퓨터-액세스가능한(예를 들어, 컴퓨터-판독가능한) 매체에 액세스하도록 구성되거나 그것을 포함하는 범용 컴퓨터 시스템을 포함할 수 있다. 예를 들어, 다양한 실시형태에서, (예를 들어, 가상 컴퓨팅 서비스 및/또는 가상 저장 서비스, 가상화된 컴퓨팅 자원 인스턴스, 가상 머신, 가상 머신 모니터 또는 하이퍼바이저, 작업공간 관리 컴포넌트, 및/또는 가상 데스크톱 인스턴스를 집합적으로 제공하는 서비스 제공자 네트워크 상의 데이터 센터 컴퓨터 및/또는 다른 컴포넌트; 접속 거점 위치에서의 게이트웨이 컴포넌트 또는 다른 컴포넌트; 또는 클라이언트 컴퓨팅 디바이스, 작업공간 서비스의 클라이언트-측 컴포넌트, 방화벽, 또는 클라이언트 네트워크 상의 다른 컴포넌트를 포함하는) 여기에서 설명된 컴퓨터 시스템 컴포넌트 중 어느 것 또는 전부는 그들 컴포넌트의 기능성을 제공하도록 구성된 컴퓨터 시스템(1100)과 유사한 컴퓨터 시스템을 사용하여 구현될 수 있다. 예시된 실시형태에 있어서, 컴퓨터 시스템(1100)은 입/출력(I/O) 인터페이스(1130)를 통하여 시스템 메모리(1120)에 결합된 하나 이상의 프로세서(1110)를 포함한다. 컴퓨터 시스템(1100)은 I/O 인터페이스(1130)에 결합된 하나 이상의 네트워크 인터페이스(1140)를 더 포함한다. 일부 실시형태에서, 네트워크 인터페이스(1140)는, 예를 들어, 컴퓨터 시스템(1100) 상에 호스팅된 가상화된 컴퓨팅 자원과 그 클라이언트 간 통신을 위해 구성된 것, 및 제공자 네트워크 이외의 네트워크 상의 가상화된 컴퓨팅 자원 및 외부 자원, 컴퓨팅 시스템, 데이터 센터, 또는 인터넷 수신지와 대리에 의해 가상화된 컴퓨팅 자원이 호스팅되는 클라이언트 네트워크 간 통신을 위해 구성되는 것을 포함하는 2개 이상의 네트워크 인터페이스를 포함할 수 있다.
다양한 실시형태에서, 컴퓨터 시스템(1100)은 하나의 프로세서(1110)를 포함하는 유니프로세서 시스템, 또는 수 개의 프로세서(1110)(예를 들어, 2개, 4개, 8개 또는 다른 적합한 수)를 포함하는 멀티프로세서 시스템일 수 있다. 프로세서(1110)는 명령어를 실행할 수 있는 어느 적합한 프로세서라도 될 수 있다. 예를 들어, 다양한 실시형태에서, 프로세서(1110)는, x86, PowerPC, SPARC, 또는 MIPS ISA, 또는 어느 다른 적합한 ISA와 같은 각종 명령어 세트 아키텍처(ISA) 중 어느 것이라도 구현하는 범용 또는 내장 프로세서일 수 있다. 멀티프로세서 시스템에서, 프로세서(1110)의 각각은, 반드시는 아니지만, 공통으로 동일한 ISA를 구현할 수 있다.
시스템 메모리(1120)는 프로세서(들)(1110)가 액세스가능한 데이터 및 명령어를 저장하도록 구성될 수 있다. 다양한 실시형태에서, 시스템 메모리(1120)는, 정적 램(SRAM), 동기식 동적 RAM(SDRAM), 비휘발성/플래시-유형 메모리, 또는 어느 다른 유형의 메모리와 같은, 어느 적합한 메모리 기술이라도 사용하여 구현될 수 있다. 예시된 실시형태에서, 클라우드 컴퓨팅 환경에서의 작업공간으로의 낮은 레이턴시 커넥션을 제공하기 위한 위에서 설명된 그들 방법, 기술 및 데이터와 같은, 하나 이상의 소망 기능을 구현하는 프로그램 명령어 및 데이터는 코드(1125) 및 데이터(1126)로서 시스템 메모리(1120) 내 저장되는 것으로 도시되어 있다.
일 실시형태에서, I/O 인터페이스(1130)는 프로세서(1110)와, 시스템 메모리(1120)와, 네트워크 인터페이스(들)(1140) 또는 다른 주변 인터페이스 중 어느 것이라도 포함하는, 디바이스 내 어느 주변 디바이스 간 I/O 트래픽을 조정하도록 구성될 수 있다. 일부 실시형태에서, I/O 인터페이스(1130)는 어느 필요한 프로토콜, 타이밍, 또는 다른 데이터 변환이라도 수행하여 하나의 컴포넌트(예를 들어, 시스템 메모리(1120))로부터의 데이터 신호를 다른 컴포넌트(예를 들어, 프로세서(1110))에 의한 사용에 적합한 포맷으로 변환할 수 있다. 일부 실시형태에서, I/O 인터페이스(1130)는, 예를 들어, 주변 컴포넌트 상호접속(PCI) 버스 표준 또는 범용 직렬 버스(USB) 표준의 변종과 같이 다양한 유형의 주변 버스를 통해 배속된 디바이스에 대한 지원을 포함할 수 있다. 일부 실시형태에서, I/O 인터페이스(1130)의 기능은, 예를 들어, 노스 브리지 및 사우스 브리지와 같은 2개 이상의 별개 컴포넌트로 나뉠 수 있다. 또한, 일부 실시형태에서, 시스템 메모리(1120)로의 인터페이스와 같은, I/O 인터페이스(1130)의 기능성 중 일부 또는 전부는 프로세서(1110)에 직접 편입될 수 있다.
네트워크 인터페이스(들)(1140)는 컴퓨터 시스템(1100)과, 예를 들어, 도면들에 예시된 바와 같은 다른 컴퓨터 시스템 또는 디바이스와 같이 네트워크 또는 네트워크들(1150)에 배속된 다른 디바이스(1160) 간 데이터가 교환될 수 있게 하도록 구성될 수 있다. 다양한 실시형태에서, 네트워크 인터페이스(들)(1140)는, 예를 들어, 이더넷 네트워크 유형과 같은 어느 적합한 유선 또는 무선 일반 데이터 네트워크라도 통하여 통신을 지원할 수 있다. 부가적으로, 네트워크 인터페이스(들)(1140)는 아날로그 음성 네트워크 또는 디지털 광섬유 통신 네트워크와 같은 원격통신/전화 네트워크를 통하여, 광섬유 채널 SAN과 같은 저장소 영역 네트워크를 통하여, 또는 어느 다른 적합한 유형의 네트워크 및/또는 프로토콜이라도 통하여 통신을 지원할 수 있다.
일부 실시형태에서, 시스템 메모리(1120)는 여기에서 설명된 클라우드 컴퓨팅 환경에서의 작업공간으로의 낮은 레이턴시 커넥션을 제공하기 위한 기술의 다양한 실시형태를 구현하기 위해 위에서 설명된 바와 같은 프로그램 명령어 및 데이터를 저장하도록 구성된 컴퓨터-액세스가능한 매체의 일 실시형태일 수 있다. 그렇지만, 다른 실시형태에서, 프로그램 명령어 및/또는 데이터는 여러 다른 유형의 컴퓨터-액세스가능한 매체 상에서 수신, 송신 또는 저장될 수 있다. 일반적으로 말하면, 컴퓨터-액세스가능한(예를 들어, 컴퓨터-판독가능한) 매체는 자기 또는 광학 매체, 예를 들어, I/O 인터페이스(1130)를 통하여 컴퓨터 시스템(1100)에 결합된 디스크 또는 DVD/CD와 같은 메모리 매체 또는 비-일시적 저장 매체를 포함할 수 있다. 비-일시적 컴퓨터-액세스가능한(예를 들어, 컴퓨터-판독가능한) 저장 매체는 또한 시스템 메모리(1120) 또는 다른 유형의 메모리로서 컴퓨터 시스템(1100)의 일부 실시형태에 포함될 수 있는 RAM(예를 들어, SDRAM, DDR SDRAM, RDRAM, SRAM 등), ROM 등과 같은 어느 휘발성 또는 비-휘발성 매체라도 포함할 수 있다. 더욱, 컴퓨터-액세스가능한 매체는 네트워크 인터페이스(들)(1140)를 통하여 구현될 수 있는 바와 같은 네트워크 및/또는 무선 링크와 같은 통신 매체를 통하여 전해지는 전기, 전자기 또는 디지털 신호와 같은 신호 또는 전송 매체를 포함할 수 있다.
본 발명의 실시형태는 이하의 조항을 고려하여 설명될 수 있다:
1. 시스템으로서,
하나 이상의 클라이언트에 가상 컴퓨팅 서비스를 집합적으로 제공하는 다수의 지리적 영역에 위치하는 복수의 컴퓨팅 노드로서, 컴퓨팅 노드의 각각은 적어도 하나의 프로세서 및 메모리를 포함하는 복수의 컴퓨팅 노드;
복수의 가상화된 컴퓨팅 자원 인스턴스로서, 각각은 영역의 각각의 하나에서의 데이터 센터 내의 컴퓨팅 노드의 각각의 하나 상에서 실행되는 복수의 가상화된 컴퓨팅 자원 인스턴스; 및
복수의 게이트웨이 컴포넌트로서, 게이트웨이 컴포넌트의 각각은 영역의 각각의 하나에서의 접속 거점 위치에서의 컴퓨팅 노드의 각각의 하나 상에서 호스팅되는 복수의 게이트웨이 컴포넌트를 포함하되,
가상화된 컴퓨팅 자원 인스턴스 중 하나 이상은 가상 데스크톱 서비스의 관리 컴포넌트를 구현하도록 구성되고,
복수의 게이트웨이 컴포넌트 중 적어도 일부 및 가상 데스크톱 서비스의 관리 컴포넌트는 가상 데스크톱 서비스의 가상 사설 클라우드 내에서 서로 상호운용되고,
가상화된 컴퓨팅 자원 인스턴스 중 하나는 가상 데스크톱 인스턴스를 구현하도록 구성되고,
복수의 게이트웨이 컴포넌트 중 2개 이상은 클라이언트 디바이스와 가상 데스크톱 서비스 간 통신을 위한 네트워크 인터페이스로서 구성되되, 클라이언트 디바이스는 공중 네트워크를 통하여 2개 이상의 게이트웨이 컴포넌트와 통신하고,
가상 데스크톱 인스턴스에 접속하라는 클라이언트 디바이스로부터의 요청을 수신하는 것에 응답하여, 가상 데스크톱 서비스의 관리 컴포넌트는 클라이언트 디바이스와 가상 데스크톱 인스턴스 간 대화형 비디오 스트림의 2-방향 통신을 위해 게이트웨이 컴포넌트 중 2개 이상 중 하나와 가상 데스크톱 인스턴스 간 통신 채널을 확립하도록 구성되되, 대화형 비디오 스트림은 가상 데스크톱 인스턴스로부터 클라이언트 디바이스로 통신되는 픽셀의 스트림 및 가상 데스크톱 인스턴스와의 사용자 상호작용을 표현하는 클라이언트 디바이스로부터 가상 데스크톱 인스턴스로 통신되는 복수의 입력을 포함하는 시스템.
2. 제1 조항에 있어서, 게이트웨이 컴포넌트 중 2개 이상 중 하나 및 가상 데스크톱 인스턴스가 실행되고 있는 가상화된 컴퓨팅 자원 인스턴스는 영역 중 다른 영역에 위치하는 시스템.
3. 선행하는 조항 중 어느 한 조항에 있어서, 가상 데스크톱 서비스의 관리 컴포넌트는, 통신 채널을 확립하기 이전에, 게이트웨이 컴포넌트 중 2개 이상 중 어느 것이 클라이언트 디바이스와 가상 데스크톱 인스턴스 간 대화형 비디오 스트림의 2-방향 통신에 사용되어야 하는지, 클라이언트 디바이스가 위치하는 영역에 적어도 부분적으로 종속하여, 결정하도록 더 구성되는 시스템.
4. 선행하는 조항 중 어느 한 조항에 있어서, 가상 데스크톱 인스턴스가 실행되고 있는 가상화된 컴퓨팅 자원 인스턴스는 클라이언트의 가상 사설 클라우드 내에서 동작하는 다수의 가상화된 컴퓨팅 자원 인스턴스 중 하나인 시스템.
5. 방법으로서,
하나 이상의 컴퓨터에 의해,
가상 데스크톱 인스턴스 상의 가상 데스크톱 세션을 시작하라는 요청을, 클라이언트 디바이스로부터, 수신하는 단계로서, 가상 데스크톱 인스턴스는 다수의 가용성 구역에 위치하는 그리고 가상 데스크톱 서비스를 집합적으로 구현하는 복수의 컴퓨팅 노드 중 하나 상에 호스팅되는 수신하는 단계;
가상 데스크톱 인스턴스와 게이트웨이 컴포넌트 간 통신 채널을 확립하는 단계로서, 게이트웨이 컴포넌트는 클라이언트 디바이스와 가상 데스크톱 서비스 간 통신 인터페이스를 제공하도록 구성되는 복수의 게이트웨이 컴포넌트 중 하나이되, 복수의 게이트웨이 컴포넌트의 각각은 다수의 가용성 구역의 각각의 하나에서의 접속 거점 위치에서의 각각의 컴퓨팅 노드 상에 호스팅되고, 그리고 복수의 게이트웨이 컴포넌트 중 적어도 일부는 가상 데스크톱 서비스의 가상 사설 클라우드 내에서 가상 데스크톱 서비스의 하나 이상의 다른 컴포넌트와 상호운용되는 확립하는 단계; 및
가상 데스크톱 인스턴스 상의 가상 데스크톱 세션을 시작하는 단계로서, 상기 시작하는 단계는 클라이언트 디바이스가 공중 네트워크를 통하여 게이트웨이 컴포넌트와 통신하도록 게이트웨이 컴포넌트를 통하여 가상 데스크톱 인스턴스와 클라이언트 디바이스 간 대화형 비디오 스트림의 통신을 개시하는 단계를 포함하되, 대화형 비디오 스트림은 가상 데스크톱 인스턴스로부터 클라이언트 디바이스로 통신되는 픽셀의 스트림 및 가상 데스크톱 인스턴스와의 사용자 상호작용을 표현하는 클라이언트 디바이스로부터 가상 데스크톱 인스턴스로 통신되는 복수의 입력을 포함하는 시작하는 단계를 포함하는 방법.
6. 제5 조항에 있어서, 가상 데스크톱 인스턴스는 요청이 대리에 의해 클라이언트 디바이스로부터 수신되는 클라이언트의 가상 사설 클라우드 내에서 동작하는 다수의 가상화된 컴퓨팅 자원 인스턴스 중 하나에 의해 구현되는 방법.
7. 제5 조항 또는 제6 조항에 있어서, 복수의 게이트웨이 컴포넌트의 각각은 다수의 클라이언트를 대리하여 클라이언트 디바이스와 가상 데스크톱 서비스 간 통신 인터페이스를 제공하는 멀티-테넌트 게이트웨이 컴포넌트인 방법.
8. 제5 조항 내지 제7 조항 중 어느 한 조항에 있어서, 상기 확립하는 단계 이전에,
복수의 게이트웨이 컴포넌트 중 적어도 하나가 호스팅되는 접속 거점 위치 대 클라이언트 디바이스의 근접도에 적어도 부분적으로 종속하여 복수의 게이트웨이 컴포넌트 중 어느 것이 클라이언트 디바이스와 가상 데스크톱 인스턴스 간 대화형 비디오 스트림의 통신을 취급하도록 사용되어야 하는지 결정하는 단계를 더 포함하는 방법.
9. 제8 조항에 있어서,
상기 결정하는 단계는 게이트웨이 컴포넌트가 위치하는 가용성 구역 이외의 가용성 구역에 위치하는 데이터 센터에서의 컴퓨팅 노드 상에서 실행되고 있는 가상 데스크톱 서비스의 관리 컴포넌트에 의해 자동으로 수행되는 방법.
10. 제8 조항에 있어서,
상기 결정하는 단계는 클라이언트 디바이스 상에서 실행되는 가상 데스크톱 서비스의 클라이언트-측 컴포넌트에 의해 수행되는 방법.
11. 제10 조항에 있어서, 상기 결정하는 단계 이전에,
클라이언트 디바이스와 가상 데스크톱 서비스 간 통신 인터페이스를 제공하는데 이용가능한 2개 이상의 게이트웨이 컴포넌트의 세트를 식별시키고 그것들이 호스팅되는 접속 거점 위치를 식별시키는 정보를 가상 데스크톱 서비스의 클라이언트-측 컴포넌트에 통신하는 단계를 더 포함하는 방법.
12. 제5 조항 내지 제11 조항 중 어느 한 조항에 있어서,
게이트웨이 컴포넌트를 통하여 가상 데스크톱 인스턴스와 클라이언트 디바이스 간 대화형 비디오 스트림의 통신을 개시하는 상기 단계는 무상태, 데이터그램-기반 네트워크 프로토콜을 통하여 가상 데스크톱 인스턴스로부터 게이트웨이 컴포넌트로 대화형 비디오 스트림의 통신을 개시하는 단계를 포함하는 방법.
13. 제12 조항에 있어서,
대화형 비디오 스트림을 무상태 데이터그램-기반 프로토콜 네트워크 프로토콜로부터 상태 기반 네트워크 프로토콜로, 공중 네트워크 상의 컴포넌트에 의해, 변환하는 단계; 및
변환된 대화형 비디오 스트림을 클라이언트 디바이스 상의 논리적 종단점에 제공하는 단계를 더 포함하는 방법.
14. 제5 조항 내지 제13 조항 중 어느 한 조항에 있어서, 복수의 게이트웨이 컴포넌트 중 적어도 일부의 각각은 가상 데스크톱 서비스의 가상 사설 클라우드 내에서 실행되는 하나 이상의 가상화된 컴퓨팅 자원 인스턴스에 의해 구현되는 방법.
15. 제5 조항 내지 제14 조항 중 어느 한 조항에 있어서, 게이트웨이 컴포넌트는 가상 데스크톱 서비스의 가상 사설 클라우드와 다른 가상 사설 클라우드 내에서 동작하고, 그리고 다른 가상 사설 클라우드는 가상 사설 클라우드 피어링 메커니즘을 사용하여 가상 데스크톱 서비스의 가상 사설 클라우드에 통신가능하게 결합되는 방법.
16. 제5 조항 내지 제15 조항 중 어느 한 조항에 있어서, 대화형 비디오 스트림은 가상 데스크톱 인스턴스로부터 클라이언트 디바이스로 통신되는 그리고 클라이언트 디바이스에 의한 디스플레이를 위해 픽셀을 발생 또는 렌더링하도록 클라이언트 디바이스에 지시하는 명령어를 표현하는 하나 이상의 커맨드를 더 포함하는 방법.
17. 비-일시적 컴퓨터-판독가능한 저장 매체로서, 하나 이상의 컴퓨터 상에서 실행될 때, 하나 이상의 컴퓨터로 하여금,
하나 이상의 클라이언트를 대리하여 가상 데스크톱 세션을 제공하도록 가상화된 컴퓨팅 자원 인스턴스를 구성하는 단계로서, 가상화된 컴퓨팅 자원 인스턴스는 다수의 영역에 위치하는 그리고 가상 컴퓨팅 서비스를 집합적으로 제공하는 복수의 컴퓨팅 노드 중 하나 상에 호스팅되는 구성하는 단계;
가상화된 컴퓨팅 자원 인스턴스 상의 가상 데스크톱 세션을 열라는 클라이언트로부터의 요청을 수신하는 단계;
클라이언트와 가상 컴퓨팅 서비스 간 네트워크 인터페이스를 제공하도록 구성되는 복수의 게이트웨이 컴포넌트 중 어느 것이 가상화된 컴퓨팅 자원 인스턴스와 클라이언트 간 대화형 비디오 스트림의 통신을 취급하도록 사용되어야 하는지 결정하는 단계로서, 복수의 게이트웨이 컴포넌트의 각각은 영역의 각각의 하나에서의 접속 거점 위치에서의 각각의 컴퓨팅 노드 상에 호스팅되고, 그리고 복수의 게이트웨이 컴포넌트 중 적어도 일부 및 가상 컴퓨팅 서비스의 하나 이상의 다른 컴포넌트는 가상 사설 클라우드 내에 참가하고, 그리고 상기 결정하는 단계는 클라이언트가 위치하는 영역에 적어도 부분적으로 종속하는 결정하는 단계;
클라이언트를 대리하여 가상화된 컴퓨팅 자원 인스턴스와 결정된 게이트웨이 컴포넌트 간 통신 채널을 확립하는 단계를 수행하게 하는 프로그램 명령어를 저장하는 비-일시적 컴퓨터-판독가능한 저장 매체.
18. 제17 조항에 있어서, 하나 이상의 컴퓨터 상에서 실행될 때, 프로그램 명령어는 하나 이상의 컴퓨터로 하여금
가상화된 컴퓨팅 자원 인스턴스 상의 가상 데스크톱 세션을 시작하는 단계로서, 상기 시작하는 단계는 클라이언트가 공중 네트워크를 통하여 게이트웨이 컴포넌트와 통신하도록 게이트웨이 컴포넌트를 통하여 가상화된 컴퓨팅 자원과 클라이언트 간 대화형 비디오 스트림의 통신을 개시하는 단계를 포함하되, 대화형 비디오 스트림은 가상화된 컴퓨팅 자원 인스턴스로부터 클라이언트로 통신되는 픽셀의 스트림 및 가상 데스크톱 인스턴스와의 사용자 상호작용을 표현하는 클라이언트로부터 가상화된 컴퓨팅 자원 인스턴스로 통신되는 복수의 입력을 포함하는 시작하는 단계를 수행하게 하는 비-일시적 컴퓨터-판독가능한 저장 매체.
19. 제17 조항 또는 제18 조항에 있어서, 클라이언트와 가상 컴퓨팅 서비스 간 네트워크 인터페이스를 제공하도록 구성되는 복수의 게이트웨이 컴포넌트 중 어느 것이 가상화된 컴퓨팅 자원 인스턴스와 클라이언트 간 대화형 비디오 스트림의 통신을 취급하도록 사용되어야 하는지 결정하는 상기 단계는 클라이언트에 가장 가까운 접속 거점 위치인 접속 거점 위치에서의 컴퓨팅 노드 상에 호스팅되는 게이트웨이 컴포넌트를 자동으로 식별하는 단계를 포함하는 비-일시적 컴퓨터-판독가능한 저장 매체.
20. 제17 조항 내지 제19 조항 중 어느 한 조항에 있어서, 클라이언트와 가상 컴퓨팅 서비스 간 네트워크 인터페이스를 제공하도록 구성되는 복수의 게이트웨이 컴포넌트 중 어느 것이 가상화된 컴퓨팅 자원 인스턴스와 클라이언트 간 대화형 비디오 스트림의 통신을 취급하도록 사용되어야 하는지 결정하는 상기 단계는 클라이언트에 가까운 접속 거점 위치에서의 하나 이상의 컴퓨팅 노드 상에 호스팅되는 복수의 게이트웨이 컴포넌트 중 2개 이상 중으로부터 게이트웨이 컴포넌트를 선택하기 위한 부하-밸런싱 정책 또는 우선순위 정책에 종속하여 클라이언트에 가장 가까운 접속 거점 위치 이외의 접속 거점 위치에서의 컴퓨팅 노드 상에 호스팅되는 게이트웨이 컴포넌트를 선택하는 단계를 포함하는, 비-일시적 컴퓨터-판독가능한 저장 매체.
21. 제17 조항 내지 제20 조항 중 어느 한 조항에 있어서, 하나 이상의 컴퓨터 상에서 실행될 때, 프로그램 명령어는, 하나 이상의 컴퓨터로 하여금,
클라이언트와 가상 컴퓨팅 서비스 간 네트워크 인터페이스를 제공하는데 이용가능한 2개 이상의 게이트웨이 컴포넌트의 세트, 및 그것들이 호스팅되는 접속 거점 위치를 자동으로 결정하는 단계; 및
2개 이상의 게이트웨이 컴포넌트가 호스팅되는 컴퓨팅 노드 중 하나 이상에서 경험되는 작업부하에서의 증가 또는 감소, 2개 이상의 게이트웨이 컴포넌트 중 하나와의 통신 손실, 또는 2개 이상의 게이트웨이 컴포넌트 중 하나가 호스팅되는 컴퓨팅 노드의 장애 중 하나 이상의 종속하여 클라이언트와 가상 컴퓨팅 서비스 간 네트워크 인터페이스를 제공하는데 이용가능한 2개 이상의 게이트웨이 컴포넌트의 세트를 수정하는 단계를 수행하게 하는, 비-일시적 컴퓨터-판독가능한 저장 매체.
22. 제17 조항 내지 제21 조항 중 어느 한 조항에 있어서, 하나 이상의 컴퓨터 상에서 실행될 때, 프로그램 명령어는, 하나 이상의 컴퓨터로 하여금,
클라이언트와 가상 컴퓨팅 서비스 간 네트워크 인터페이스를 제공하도록 구성되는 복수의 게이트웨이 컴포넌트 중 다른 하나가 가상화된 컴퓨팅 자원 인스턴스와 클라이언트 간 대화형 비디오 스트림의 통신을 취급하도록 사용되어야 한다고, 장애 또는 오류 조건의 검출에 응답하여, 결정하는 단계; 및
클라이언트를 대리하여 다른 게이트웨이 컴포넌트와 가상화된 컴퓨팅 자원 인스턴스 간 통신 채널을 확립하는 단계를 수행하게 하는, 비-일시적 컴퓨터-판독가능한 저장 매체.
여기에서 설명되고 도면에서 예시된 바와 같은 다양한 방법은 방법의 대표적 실시형태를 표현한다. 방법은 소프트웨어, 하드웨어, 또는 그 조합으로 구현될 수 있다. 방법의 순서는 변경될 수 있고, 다양한 요소가 부가, 순서변경, 조합, 생략, 수정 등이 될 수 있다.
본 개시가 유익한 당업자에게 자명할 바와 같이 다양한 수정 및 변경이 이루어질 수 있다. 모든 그러한 수정 및 변경을 포괄하려는 의도이고, 그에 따라, 위 설명은 제한적 의미라기보다는 예시적으로 간주되려는 의도이다.

Claims (15)

  1. 방법으로서,
    하나 이상의 컴퓨터에 의해,
    가상 데스크톱 인스턴스 상의 가상 데스크톱 세션을 시작하라는 요청을, 클라이언트 디바이스로부터, 수신하는 단계로서, 상기 가상 데스크톱 인스턴스는 다수의 가용성 구역에 위치하는 그리고 가상 데스크톱 서비스를 집합적으로 구현하는 복수의 컴퓨팅 노드 중 하나 상에 호스팅되는 상기 수신하는 단계;
    복수의 게이트웨이 컴포넌트 중 적어도 하나가 상기 클라이언트 디바이스로 호스팅되는 접속 거점 위치의 근접도에 적어도 부분적으로 종속하여 상기 복수의 게이트웨이 컴포넌트 중 어느 것이 상기 클라이언트 디바이스와 상기 가상 데스크톱 인스턴스 간의 대화형 비디오 스트림의 통신을 취급하도록 사용되기 위한 것인지 결정하는 단계로서, 상기 복수의 게이트웨이 컴포넌트는 상기 클라이언트 디바이스와 상기 가상 데스크톱 서비스 간 통신 인터페이스를 제공하도록 구성되고, 상기 복수의 게이트웨이 컴포넌트의 각각은 상기 다수의 가용성 구역의 각각의 하나에서의 접속 거점 위치에서의 각각의 컴퓨팅 노드 상에 호스팅되고, 그리고 상기 복수의 게이트웨이 컴포넌트 중 적어도 일부는 상기 가상 데스크톱 서비스의 가상 사설 클라우드 내에서 상기 가상 데스크톱 서비스의 하나 이상의 다른 컴포넌트와 상호운용되는 상기 결정하는 단계;
    상기 가상 데스크톱 인스턴스와 결정된 상기 게이트웨이 컴포넌트 간 통신 채널을 확립하는 단계; 및
    상기 가상 데스크톱 인스턴스 상의 가상 데스크톱 세션을 시작하는 단계로서, 상기 시작하는 단계는 상기 클라이언트 디바이스가 공중 네트워크를 통하여 상기 게이트웨이 컴포넌트와 통신하도록 상기 게이트웨이 컴포넌트를 통하여 상기 가상 데스크톱 인스턴스와 상기 클라이언트 디바이스 간 대화형 비디오 스트림의 통신을 개시하는 단계를 포함하되, 상기 대화형 비디오 스트림은 상기 가상 데스크톱 인스턴스로부터 상기 클라이언트 디바이스로 통신되는 픽셀의 스트림 및 상기 가상 데스크톱 인스턴스와의 사용자 상호작용을 표현하는 상기 클라이언트 디바이스로부터 상기 가상 데스크톱 인스턴스로 통신되는 복수의 입력을 포함하는 상기 시작하는 단계를 수행하는 것을 포함하는 방법.
  2. 제1항에 있어서, 상기 가상 데스크톱 인스턴스는 상기 요청이 대리에 의해 상기 클라이언트 디바이스로부터 수신되는 클라이언트의 가상 사설 클라우드 내에서 동작하는 다수의 가상화된 컴퓨팅 자원 인스턴스 중 하나에 의해 구현되는, 방법.
  3. 제1항 또는 제2항에 있어서, 상기 복수의 게이트웨이 컴포넌트의 각각은 다수의 클라이언트를 대리하여 클라이언트 디바이스와 상기 가상 데스크톱 서비스 간 통신 인터페이스를 제공하는 멀티-테넌트 게이트웨이 컴포넌트인, 방법.
  4. 삭제
  5. 제1항 또는 제2항에 있어서,
    상기 결정하는 단계는 상기 게이트웨이 컴포넌트가 위치하는 가용성 구역 이외의 가용성 구역에 위치하는 데이터 센터에서의 컴퓨팅 노드 상에서 실행되고 있는 상기 가상 데스크톱 서비스의 관리 컴포넌트에 의해 자동으로 수행되는, 방법.
  6. 제1항 또는 제2항에 있어서,
    상기 결정하는 단계는 상기 클라이언트 디바이스 상에서 실행되는 상기 가상 데스크톱 서비스의 클라이언트-측 컴포넌트에 의해 수행되는, 방법.
  7. 제6항에 있어서, 상기 결정하는 단계 이전에,
    상기 클라이언트 디바이스와 상기 가상 데스크톱 서비스 간 통신 인터페이스를 제공하는데 이용가능한 2개 이상의 게이트웨이 컴포넌트의 세트를 식별시키고 그것들이 호스팅되는 상기 접속 거점 위치를 식별시키는 정보를 상기 가상 데스크톱 서비스의 상기 클라이언트-측 컴포넌트에 통신하는 단계를 더 포함하는, 방법.
  8. 제1항 또는 제2항에 있어서,
    상기 게이트웨이 컴포넌트를 통하여 상기 가상 데스크톱 인스턴스와 상기 클라이언트 디바이스 간 상기 대화형 비디오 스트림의 통신을 개시하는 단계는 무상태, 데이터그램-기반 네트워크 프로토콜을 통하여 상기 가상 데스크톱 인스턴스로부터 상기 게이트웨이 컴포넌트로 상기 대화형 비디오 스트림의 통신을 개시하는 단계를 포함하는, 방법.
  9. 제8항에 있어서,
    상기 대화형 비디오 스트림을 상기 무상태, 데이터그램-기반 프로토콜 네트워크 프로토콜로부터 상태 기반 네트워크 프로토콜로, 상기 공중 네트워크 상의 컴포넌트에 의해, 변환하는 단계; 및
    변환된 상기 대화형 비디오 스트림을 상기 클라이언트 디바이스 상의 포트에 제공하는 단계를 더 포함하는, 방법.
  10. 제1항 또는 제2항에 있어서, 복수의 게이트웨이 컴포넌트 중 상기 적어도 일부의 각각은 상기 가상 데스크톱 서비스의 상기 가상 사설 클라우드 내에서 실행되는 하나 이상의 가상화된 컴퓨팅 자원 인스턴스에 의해 구현되는, 방법.
  11. 제1항 또는 제2항에 있어서, 상기 게이트웨이 컴포넌트는 상기 가상 데스크톱 서비스의 상기 가상 사설 클라우드와 다른 가상 사설 클라우드 내에서 동작하고, 그리고 상기 다른 가상 사설 클라우드는 가상 사설 클라우드 피어링 메커니즘을 사용하여 상기 가상 데스크톱 서비스의 상기 가상 사설 클라우드에 통신가능하게 결합되는, 방법.
  12. 비-일시적 컴퓨터-판독가능한 저장 매체로서, 하나 이상의 컴퓨터 상에서 실행될 때, 상기 하나 이상의 컴퓨터로 하여금,
    하나 이상의 클라이언트를 대리하여 가상 데스크톱 세션을 제공하도록 가상화된 컴퓨팅 자원 인스턴스를 구성하는 단계로서, 상기 가상화된 컴퓨팅 자원 인스턴스는 다수의 영역에 위치하는 그리고 가상 컴퓨팅 서비스를 집합적으로 제공하는 복수의 컴퓨팅 노드 중 하나 상에 호스팅되는 상기 구성하는 단계;
    상기 가상화된 컴퓨팅 자원 인스턴스 상의 가상 데스크톱 세션을 열라는 클라이언트로부터의 요청을 수신하는 단계;
    클라이언트와 상기 가상 컴퓨팅 서비스 간 네트워크 인터페이스를 제공하도록 구성되는 복수의 게이트웨이 컴포넌트 중 어느 것이 상기 가상화된 컴퓨팅 자원 인스턴스와 상기 클라이언트 간 대화형 비디오 스트림의 통신을 취급하도록 사용되어야 하는지 결정하는 단계로서, 상기 복수의 게이트웨이 컴포넌트의 각각은 상기 영역의 각각의 하나에서의 접속 거점 위치에서의 각각의 컴퓨팅 노드 상에 호스팅되고, 그리고 상기 복수의 게이트웨이 컴포넌트 중 적어도 일부 및 상기 가상 컴퓨팅 서비스의 하나 이상의 다른 컴포넌트는 가상 사설 클라우드 내에 참가하고, 그리고 상기 결정하는 단계는 상기 클라이언트가 위치하는 상기 영역에 적어도 부분적으로 종속하는 상기 결정하는 단계;
    상기 클라이언트를 대리하여 상기 가상화된 컴퓨팅 자원 인스턴스와 결정된 상기 게이트웨이 컴포넌트 간 통신 채널을 확립하는 단계를 수행하게 하는 프로그램 명령어를 저장하는, 비-일시적 컴퓨터-판독가능한 저장 매체.
  13. 제12항에 있어서, 상기 하나 이상의 컴퓨터 상에서 실행될 때, 상기 프로그램 명령어는, 상기 하나 이상의 컴퓨터로 하여금,
    상기 가상화된 컴퓨팅 자원 인스턴스 상의 상기 가상 데스크톱 세션을 시작하는 단계로서, 상기 시작하는 단계는 상기 클라이언트가 공중 네트워크를 통하여 상기 게이트웨이 컴포넌트와 통신하도록 상기 게이트웨이 컴포넌트를 통하여 상기 가상화된 컴퓨팅 자원과 상기 클라이언트 간 대화형 비디오 스트림의 통신을 개시하는 단계를 포함하되, 상기 대화형 비디오 스트림은 상기 가상화된 컴퓨팅 자원 인스턴스로부터 상기 클라이언트로 통신되는 픽셀의 스트림 및 상기 가상화된 컴퓨팅 자원 인스턴스와의 사용자 상호작용을 표현하는 상기 클라이언트로부터 상기 가상화된 컴퓨팅 자원 인스턴스로 통신되는 복수의 입력을 포함하는 상기 시작하는 단계를 수행하게 하는, 비-일시적 컴퓨터-판독가능한 저장 매체.
  14. 제12항 또는 제13항에 있어서, 상기 하나 이상의 컴퓨터 상에서 실행될 때, 상기 프로그램 명령어는, 상기 하나 이상의 컴퓨터로 하여금, 상기 결정하는 단계 이전에,
    클라이언트와 상기 가상 컴퓨팅 서비스 간 네트워크 인터페이스를 제공하는데 이용가능한 2개 이상의 게이트웨이 컴포넌트의 세트, 및 그것들이 호스팅되는 상기 접속 거점 위치를 자동으로 결정하는 단계; 및
    상기 2개 이상의 게이트웨이 컴포넌트가 호스팅되는 컴퓨팅 노드 중 하나 이상에서 경험되는 작업부하에서의 증가 또는 감소, 상기 2개 이상의 게이트웨이 컴포넌트 중 하나와의 통신 손실, 또는 상기 2개 이상의 게이트웨이 컴포넌트 중 하나가 호스팅되는 컴퓨팅 노드의 장애 중 하나 이상의 종속하여 클라이언트와 상기 가상 컴퓨팅 서비스 간 네트워크 인터페이스를 제공하는데 이용가능한 2개 이상의 게이트웨이 컴포넌트의 상기 세트를 수정하는 단계를 수행하게 하는, 비-일시적 컴퓨터-판독가능한 저장 매체.
  15. 시스템으로서,
    하나 이상의 클라이언트에 가상 컴퓨팅 서비스를 집합적으로 제공하는 다수의 지리적 영역에 위치하는 복수의 컴퓨팅 노드로서, 상기 컴퓨팅 노드의 각각은 적어도 하나의 프로세서 및 메모리를 포함하는 상기 복수의 컴퓨팅 노드;
    복수의 가상화된 컴퓨팅 자원 인스턴스로서, 각각은 상기 영역의 각각의 하나에서의 데이터 센터 내의 상기 컴퓨팅 노드의 각각의 하나 상에서 실행되는 상기 복수의 가상화된 컴퓨팅 자원 인스턴스; 및
    복수의 게이트웨이 컴포넌트로서, 상기 게이트웨이 컴포넌트의 각각은 상기 영역의 각각의 하나에서의 접속 거점 위치에서의 상기 컴퓨팅 노드의 각각의 하나 상에서 호스팅되는 상기 복수의 게이트웨이 컴포넌트를 포함하되,
    상기 가상화된 컴퓨팅 자원 인스턴스 중 하나 이상은 가상 데스크톱 서비스의 관리 컴포넌트를 구현하도록 구성되고,
    상기 복수의 게이트웨이 컴포넌트 중 적어도 일부 및 상기 가상 데스크톱 서비스의 상기 관리 컴포넌트는 상기 가상 데스크톱 서비스의 가상 사설 클라우드 내에서 서로 상호운용되고,
    상기 가상화된 컴퓨팅 자원 인스턴스 중 하나는 가상 데스크톱 인스턴스를 구현하도록 구성되고,
    상기 복수의 게이트웨이 컴포넌트 중 2개 이상은 클라이언트 디바이스와 상기 가상 데스크톱 서비스 간 통신을 위한 네트워크 인터페이스로서 구성되되, 클라이언트 디바이스는 공중 네트워크를 통하여 상기 2개 이상의 게이트웨이 컴포넌트와 통신하고,
    상기 가상 데스크톱 인스턴스에 접속하라는 클라이언트 디바이스로부터의 요청을 수신하는 것에 응답하여, 상기 가상 데스크톱 서비스의 상기 관리 컴포넌트는 상기 클라이언트 디바이스와 상기 가상 데스크톱 인스턴스 간 대화형 비디오 스트림의 2-방향 통신을 위해 상기 게이트웨이 컴포넌트 중 상기 2개 이상 중 특정 게이트웨이 컴포넌트와 상기 가상 데스크톱 인스턴스 간 통신 채널을 확립하도록 구성되되, 상기 2개 이상의 게이트웨이 컴포넌트 중 상기 특정 게이트웨이 컴포넌트는, 상기 특정 게이트웨이 컴포넌트가 상기 클라이언트 디바이스에 호스트되는 접속 거점 위치의 근접도에 적어도 부분적으로 종속하여 결정되고, 상기 대화형 비디오 스트림은 상기 가상 데스크톱 인스턴스로부터 상기 클라이언트 디바이스로 통신되는 픽셀의 스트림 및 상기 가상 데스크톱 인스턴스와의 사용자 상호작용을 표현하는 상기 클라이언트 디바이스로부터 상기 가상 데스크톱 인스턴스로 통신되는 복수의 입력을 포함하는, 시스템.
KR1020167035651A 2014-05-20 2015-05-20 클라우드 컴퓨팅 환경에서의 작업공간으로의 낮은 레이턴시 커넥션 KR101862274B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/283,179 US10268492B2 (en) 2014-05-20 2014-05-20 Low latency connections to workspaces in a cloud computing environment
US14/283,179 2014-05-20
PCT/US2015/031761 WO2015179508A1 (en) 2014-05-20 2015-05-20 Low latency connections to workspaces in a cloud computing environment

Publications (2)

Publication Number Publication Date
KR20170008293A KR20170008293A (ko) 2017-01-23
KR101862274B1 true KR101862274B1 (ko) 2018-06-29

Family

ID=53277109

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020167035651A KR101862274B1 (ko) 2014-05-20 2015-05-20 클라우드 컴퓨팅 환경에서의 작업공간으로의 낮은 레이턴시 커넥션

Country Status (9)

Country Link
US (2) US10268492B2 (ko)
EP (1) EP3146425A1 (ko)
JP (1) JP6322727B2 (ko)
KR (1) KR101862274B1 (ko)
CN (1) CN106462408B (ko)
AU (1) AU2015264246B2 (ko)
CA (1) CA2949429C (ko)
SG (1) SG11201609655TA (ko)
WO (1) WO2015179508A1 (ko)

Families Citing this family (126)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8028090B2 (en) 2008-11-17 2011-09-27 Amazon Technologies, Inc. Request routing utilizing client location information
US7991910B2 (en) 2008-11-17 2011-08-02 Amazon Technologies, Inc. Updating routing information based on client location
US8606996B2 (en) 2008-03-31 2013-12-10 Amazon Technologies, Inc. Cache optimization
US7970820B1 (en) 2008-03-31 2011-06-28 Amazon Technologies, Inc. Locality based content distribution
US8447831B1 (en) 2008-03-31 2013-05-21 Amazon Technologies, Inc. Incentive driven content delivery
US8321568B2 (en) 2008-03-31 2012-11-27 Amazon Technologies, Inc. Content management
US7962597B2 (en) 2008-03-31 2011-06-14 Amazon Technologies, Inc. Request routing based on class
US9407681B1 (en) 2010-09-28 2016-08-02 Amazon Technologies, Inc. Latency measurement in resource requests
US8782236B1 (en) 2009-06-16 2014-07-15 Amazon Technologies, Inc. Managing resources using resource expiration data
US8397073B1 (en) 2009-09-04 2013-03-12 Amazon Technologies, Inc. Managing secure content in a content delivery network
US9495338B1 (en) 2010-01-28 2016-11-15 Amazon Technologies, Inc. Content distribution network
US10958501B1 (en) 2010-09-28 2021-03-23 Amazon Technologies, Inc. Request routing information based on client IP groupings
US9003035B1 (en) 2010-09-28 2015-04-07 Amazon Technologies, Inc. Point of presence management in request routing
US9712484B1 (en) 2010-09-28 2017-07-18 Amazon Technologies, Inc. Managing request routing information utilizing client identifiers
US8468247B1 (en) 2010-09-28 2013-06-18 Amazon Technologies, Inc. Point of presence management in request routing
US8452874B2 (en) 2010-11-22 2013-05-28 Amazon Technologies, Inc. Request routing processing
US10467042B1 (en) 2011-04-27 2019-11-05 Amazon Technologies, Inc. Optimized deployment based upon customer locality
US10623408B1 (en) 2012-04-02 2020-04-14 Amazon Technologies, Inc. Context sensitive object management
US9154551B1 (en) 2012-06-11 2015-10-06 Amazon Technologies, Inc. Processing DNS queries to identify pre-processing information
US10205698B1 (en) 2012-12-19 2019-02-12 Amazon Technologies, Inc. Source-dependent address resolution
US10568975B2 (en) 2013-02-05 2020-02-25 The Johns Hopkins University Nanoparticles for magnetic resonance imaging tracking and methods of making and using thereof
CN103607426B (zh) * 2013-10-25 2019-04-09 中兴通讯股份有限公司 安全服务订制方法和装置
US9503367B2 (en) * 2013-12-10 2016-11-22 Fujitsu Limited Risk mitigation in data center networks using virtual machine sharing
US10057325B2 (en) * 2014-03-31 2018-08-21 Nuvestack, Inc. Remote desktop infrastructure
US10268492B2 (en) 2014-05-20 2019-04-23 Amazon Technologies, Inc. Low latency connections to workspaces in a cloud computing environment
US9787499B2 (en) 2014-09-19 2017-10-10 Amazon Technologies, Inc. Private alias endpoints for isolated virtual networks
US10078425B2 (en) 2014-11-19 2018-09-18 Imprivata, Inc. Strong authentication via distributed stations
US10097448B1 (en) 2014-12-18 2018-10-09 Amazon Technologies, Inc. Routing mode and point-of-presence selection service
AU2016211696B2 (en) 2015-01-27 2018-05-10 The Johns Hopkins University Hypotonic hydrogel formulations for enhanced transport of active agents at mucosal surfaces
US10225326B1 (en) 2015-03-23 2019-03-05 Amazon Technologies, Inc. Point of presence based data uploading
US20160306531A1 (en) * 2015-04-16 2016-10-20 Microsoft Technology Licensing, Llc Dynamic Launch Behavior Based on Context Information
US9832141B1 (en) 2015-05-13 2017-11-28 Amazon Technologies, Inc. Routing based request correlation
WO2017073050A1 (ja) * 2015-10-28 2017-05-04 日本電気株式会社 サーバ端末装置、クライアント端末装置、シンクライアントシステム、制御方法およびプログラム記録媒体
US10270878B1 (en) 2015-11-10 2019-04-23 Amazon Technologies, Inc. Routing for origin-facing points of presence
US9760472B2 (en) * 2015-12-02 2017-09-12 Veeva Systems Inc. Tenant code debugging in multi-tenant systems
US10452518B2 (en) 2015-12-02 2019-10-22 Veeva Systems Inc. Uploading tenant code to a multi-tenant system
US9674108B1 (en) 2015-12-30 2017-06-06 Accenture Global Solutions Limited Hub-and-spoke connection architecture
US10367655B2 (en) * 2016-01-25 2019-07-30 Alibaba Group Holding Limited Network system and method for connecting a private network with a virtual private network
US10659349B2 (en) * 2016-02-04 2020-05-19 Twilio Inc. Systems and methods for providing secure network exchanged for a multitenant virtual private cloud
US10412168B2 (en) 2016-02-17 2019-09-10 Latticework, Inc. Implementing a storage system using a personal user device and a data distribution device
US10075551B1 (en) 2016-06-06 2018-09-11 Amazon Technologies, Inc. Request management for hierarchical cache
US10110694B1 (en) 2016-06-29 2018-10-23 Amazon Technologies, Inc. Adaptive transfer rate for retrieving content from a server
GB2551792B (en) * 2016-06-30 2019-02-13 Sophos Ltd Elastic outbound gateway
US10034407B2 (en) * 2016-07-22 2018-07-24 Intel Corporation Storage sled for a data center
US10193749B2 (en) 2016-08-27 2019-01-29 Nicira, Inc. Managed forwarding element executing in public cloud data compute node without overlay network
US10333959B2 (en) 2016-08-31 2019-06-25 Nicira, Inc. Use of public cloud inventory tags to configure data compute node for logical network
US10616250B2 (en) 2016-10-05 2020-04-07 Amazon Technologies, Inc. Network addresses with encoded DNS-level information
US10560431B1 (en) * 2016-12-05 2020-02-11 Amazon Technologies, Inc. Virtual private gateway for encrypted communication over dedicated physical link
US10831549B1 (en) 2016-12-27 2020-11-10 Amazon Technologies, Inc. Multi-region request-driven code execution system
US10938884B1 (en) * 2017-01-30 2021-03-02 Amazon Technologies, Inc. Origin server cloaking using virtual private cloud network environments
US10860342B2 (en) * 2017-01-30 2020-12-08 Citrix Systems, Inc. Computer system providing cloud-based session prelaunch features and related methods
US10623370B1 (en) * 2017-03-30 2020-04-14 Amazon Technologies, Inc. Secure data flow for virtual workspaces
US10498810B2 (en) 2017-05-04 2019-12-03 Amazon Technologies, Inc. Coordinating inter-region operations in provider network environments
US11075987B1 (en) 2017-06-12 2021-07-27 Amazon Technologies, Inc. Load estimating content delivery network
US10666606B2 (en) * 2017-06-28 2020-05-26 Amazon Technologies, Inc. Virtual private network service endpoints
US20190020969A1 (en) * 2017-07-11 2019-01-17 At&T Intellectual Property I, L.P. Systems and methods for provision of virtual mobile devices in a network environment
US10581995B1 (en) 2017-07-13 2020-03-03 Parallels International Gmbh High availability virtual desktop infrastructure
US10834210B1 (en) * 2017-08-03 2020-11-10 Amazon Technologies, Inc. Synchronizing a personal workspace across multiple computing systems in a coding environment
US10567482B2 (en) 2017-08-24 2020-02-18 Nicira, Inc. Accessing endpoints in logical networks and public cloud service providers native networks using a single network interface and a single routing table
US10778579B2 (en) 2017-08-27 2020-09-15 Nicira, Inc. Performing in-line service in public cloud
CN107580065B (zh) * 2017-09-15 2019-06-14 中国联合网络通信集团有限公司 一种私有云接入方法及设备
US10742593B1 (en) 2017-09-25 2020-08-11 Amazon Technologies, Inc. Hybrid content request routing system
US10592578B1 (en) 2018-03-07 2020-03-17 Amazon Technologies, Inc. Predictive content push-enabled content delivery network
US10630638B2 (en) 2018-03-09 2020-04-21 Palo Alto Networks, Inc. Maintaining communications in a failover instance via network address translation
US10776174B2 (en) * 2018-05-24 2020-09-15 Amazon Technologies, Inc. Managing hosted resources across different virtualization platforms
US11343229B2 (en) 2018-06-28 2022-05-24 Vmware, Inc. Managed forwarding element detecting invalid packet addresses
US11374794B2 (en) 2018-08-24 2022-06-28 Vmware, Inc. Transitive routing in public cloud
US11196591B2 (en) 2018-08-24 2021-12-07 Vmware, Inc. Centralized overlay gateway in public cloud
US20200099961A1 (en) * 2018-09-24 2020-03-26 Dice Corporation Networked video management system
US10708382B2 (en) * 2018-11-08 2020-07-07 Citrix Systems, Inc. Systems and methods for latency masking via prefix caching
US10862852B1 (en) 2018-11-16 2020-12-08 Amazon Technologies, Inc. Resolution of domain name requests in heterogeneous network environments
US11115478B2 (en) 2018-11-19 2021-09-07 Citrix Systems, Inc. Computer system and methods providing virtual computing session connections and re-directs based upon ordered list of virtual delivery agents
US11025747B1 (en) 2018-12-12 2021-06-01 Amazon Technologies, Inc. Content request pattern-based routing system
EP3864514B1 (en) * 2018-12-21 2023-09-06 Huawei Cloud Computing Technologies Co., Ltd. Mechanism to reduce serverless function startup latency
US11240160B2 (en) 2018-12-28 2022-02-01 Alibaba Group Holding Limited Method, apparatus, and computer-readable storage medium for network control
CN111435943B (zh) * 2019-01-14 2022-07-19 阿里巴巴集团控股有限公司 数据处理方法、设备、系统及存储介质
US10764363B2 (en) 2019-01-24 2020-09-01 Oracle International Corporation Network peering discovery system and method
US11451435B2 (en) * 2019-03-28 2022-09-20 Intel Corporation Technologies for providing multi-tenant support using one or more edge channels
US11188372B2 (en) * 2019-04-29 2021-11-30 Citrix Systems, Inc. Computing system with dual VDA registration and related methods
US11362943B2 (en) * 2019-05-20 2022-06-14 Citrix Systems, Inc. System and method for validating virtual session requests
US10862975B1 (en) * 2019-06-04 2020-12-08 Citrix Systems, Inc. Computing system providing direct routing for desktop as a service (DaaS) sessions to a private network and related methods
US11411771B1 (en) 2019-06-28 2022-08-09 Amazon Technologies, Inc. Networking in provider network substrate extensions
US11374789B2 (en) 2019-06-28 2022-06-28 Amazon Technologies, Inc. Provider network connectivity to provider network substrate extensions
CN116010035B (zh) * 2019-06-28 2024-06-25 亚马逊技术股份有限公司 云提供者底层扩展部分中的虚拟化的块存储服务器
US10949131B2 (en) 2019-06-28 2021-03-16 Amazon Technologies, Inc. Control plane for block storage service distributed across a cloud provider substrate and a substrate extension
US10949125B2 (en) 2019-06-28 2021-03-16 Amazon Technologies, Inc. Virtualized block storage servers in cloud provider substrate extension
US10949124B2 (en) 2019-06-28 2021-03-16 Amazon Technologies, Inc. Virtualized block storage servers in cloud provider substrate extension
US11044118B1 (en) 2019-06-28 2021-06-22 Amazon Technologies, Inc. Data caching in provider network substrate extensions
CN112217771B (zh) * 2019-07-11 2022-08-23 奇安信科技集团股份有限公司 基于租户信息的数据转发方法及数据转发装置
US11449393B2 (en) * 2019-08-06 2022-09-20 Citrix Systems, Inc. Automatic restore for a failed virtual computing session
US11075844B2 (en) * 2019-08-15 2021-07-27 Netsia, Inc. Apparatus and method for providing hybrid access coordination
US11240156B2 (en) 2019-09-06 2022-02-01 Netflix, Inc. Techniques for steering network traffic to regions of a cloud computing system
US11611549B2 (en) * 2019-10-03 2023-03-21 Fset Inc System and method of securing access to a secure remote server and database on a mobile device
EP4049211A4 (en) * 2019-10-21 2023-07-26 Taskhuman, Inc. LIVE CALL SCHEDULING PROCESS WITH AN UNAVAILABLE SERVICE PROVIDER
US11475067B2 (en) 2019-11-27 2022-10-18 Amazon Technologies, Inc. Systems, apparatuses, and methods to generate synthetic queries from customer data for training of document querying machine learning models
US11314819B2 (en) 2019-11-27 2022-04-26 Amazon Technologies, Inc. Systems, apparatuses, and method for document ingestion
US11366855B2 (en) 2019-11-27 2022-06-21 Amazon Technologies, Inc. Systems, apparatuses, and methods for document querying
US11526557B2 (en) 2019-11-27 2022-12-13 Amazon Technologies, Inc. Systems, apparatuses, and methods for providing emphasis in query results
US11418995B2 (en) 2019-11-29 2022-08-16 Amazon Technologies, Inc. Mobility of cloud compute instances hosted within communications service provider networks
US11336528B2 (en) 2019-11-29 2022-05-17 Amazon Technologies, Inc. Configuration and management of scalable global private networks
US11533231B2 (en) 2019-11-29 2022-12-20 Amazon Technologies, Inc. Configuration and management of scalable global private networks
US10979534B1 (en) * 2019-11-29 2021-04-13 Amazon Technologies, Inc. Latency-based placement of cloud compute instances within communications service provider networks
US10999169B1 (en) * 2019-11-29 2021-05-04 Amazon Technologies, Inc. Configuration and management of scalable global private networks
US11729077B2 (en) 2019-11-29 2023-08-15 Amazon Technologies, Inc. Configuration and management of scalable global private networks
US11171843B2 (en) 2019-11-29 2021-11-09 Amazon Technologies, Inc. Multi-carrier access to provider substrate extensions
CN113162779B (zh) * 2020-01-07 2024-03-05 华为云计算技术有限公司 一种多云互联的方法及设备
CN111262864B (zh) * 2020-01-16 2022-07-08 广州酷狗计算机科技有限公司 直播状态数据的发送方法、装置、系统及存储介质
US12106081B1 (en) 2020-01-24 2024-10-01 Veeva Systems Inc. Uploading tenant code to a multi-tenant system
CA3116392A1 (en) * 2020-02-19 2021-08-19 Citrix Systems, Inc. Migration of a desktop workload
US11349936B2 (en) * 2020-05-28 2022-05-31 Citrix Systems, Inc. System and related methods providing channel switching between appliances
AU2020444463A1 (en) 2020-08-01 2022-02-17 Citrix Systems, Inc. Desktop as a service system
CN114124944B (zh) * 2020-08-27 2024-07-12 阿里巴巴集团控股有限公司 混合云的数据处理方法、装置及电子设备
CN112764943B (zh) * 2020-12-31 2021-09-28 橙色云互联网设计有限公司 信息处理方法、系统、电子设备和计算机可读存储介质
US11240318B1 (en) * 2021-05-11 2022-02-01 Integrity Security Services Llc Systems and methods for virtual multiplexed connections
CN113395272B (zh) * 2021-06-09 2023-02-28 广东省城乡规划设计研究院有限责任公司 一种基于数据安全的远程办公系统
CN118511486A (zh) * 2021-10-18 2024-08-16 艾维卓斯系统公司 多云覆盖网络的专有管理
WO2023096811A1 (en) * 2021-11-24 2023-06-01 Amazon Technologies, Inc. Tag-based cross-region segment management
US11855893B2 (en) 2021-11-24 2023-12-26 Amazon Technologies, Inc. Tag-based cross-region segment management
US11799755B2 (en) 2021-11-24 2023-10-24 Amazon Technologies, Inc. Metadata-based cross-region segment routing
US11936558B1 (en) 2021-12-10 2024-03-19 Amazon Technologies, Inc. Dynamic evaluation and implementation of network mutations
US11991211B1 (en) 2021-12-10 2024-05-21 Amazon Technologies, Inc. Symmetric cross-region network data flow management
US12021902B1 (en) 2021-12-10 2024-06-25 Amazon Technologies, Inc. Network configuration analysis and management
CN114915420B (zh) * 2022-03-03 2024-04-26 阿里巴巴(中国)有限公司 用于云桌面的通信方法及系统
CN114666125B (zh) * 2022-03-21 2024-03-22 阿里云计算有限公司 资源管理方法、装置及服务器
US20230388180A1 (en) * 2022-05-31 2023-11-30 Microsoft Technology Licensing, Llc Techniques for provisioning workspaces in cloud-based computing platforms
CN116915867A (zh) * 2023-09-13 2023-10-20 北京嗨飞科技有限公司 一种网络数据传输方法、装置及系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090276771A1 (en) 2005-09-15 2009-11-05 3Tera, Inc. Globally Distributed Utility Computing Cloud
CN103650458A (zh) * 2013-08-16 2014-03-19 华为技术有限公司 媒体流的传输方法、装置与系统

Family Cites Families (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9438662B2 (en) 2007-04-30 2016-09-06 Microsoft Technology Licensing, Llc Enabling secure remote assistance using a terminal services gateway
US20090204964A1 (en) * 2007-10-12 2009-08-13 Foley Peter F Distributed trusted virtualization platform
US8776188B2 (en) 2008-03-13 2014-07-08 Microsoft Corporation Remote desktop access
EP2304584A4 (en) * 2008-05-13 2011-11-09 Cyandia Inc APPARATUS AND METHODS FOR INTERACTING WITH MULTIPLE FORMS OF INFORMATION ON MULTIPLE TYPES OF COMPUTER DEVICES
KR101062654B1 (ko) 2008-12-16 2011-09-06 한국전자통신연구원 이동 단말 환경에서 가상 머신을 이용한 지속적인 데스크톱제공 시스템 및 방법
US9270785B2 (en) * 2008-12-18 2016-02-23 Citrix Systems, Inc. System and method for a distributed virtual desktop infrastructure
EP2433217B1 (en) * 2009-05-19 2019-10-16 VMware, Inc. Shortcut input/output in virtual machine systems
US8490087B2 (en) * 2009-12-02 2013-07-16 International Business Machines Corporation System and method for transforming legacy desktop environments to a virtualized desktop model
US8468455B2 (en) * 2010-02-24 2013-06-18 Novell, Inc. System and method for providing virtual desktop extensions on a client desktop
CN102413150B (zh) * 2010-09-20 2015-04-29 联想(北京)有限公司 服务器、虚拟桌面控制方法以及虚拟桌面控制系统
US8972485B1 (en) * 2011-03-22 2015-03-03 Cisco Technology, Inc. Distributing execution of applications between a local client system and a remote virtual environment
JP5699755B2 (ja) * 2011-03-31 2015-04-15 富士通株式会社 割当方法、割当装置、および割当プログラム
US8612641B1 (en) * 2011-05-31 2013-12-17 Amazon Technologies, Inc. Portable computing device as control mechanism
CN102215265B (zh) * 2011-06-14 2013-12-18 杭州思福迪信息技术有限公司 实现远程虚拟桌面访问统一管理和监控的系统及方法
US8706860B2 (en) 2011-06-30 2014-04-22 Amazon Technologies, Inc. Remote browsing session management
KR101507919B1 (ko) * 2011-07-01 2015-04-07 한국전자통신연구원 가상 데스크탑 서비스를 위한 방법 및 장치
US10129211B2 (en) * 2011-09-15 2018-11-13 Stephan HEATH Methods and/or systems for an online and/or mobile privacy and/or security encryption technologies used in cloud computing with the combination of data mining and/or encryption of user's personal data and/or location data for marketing of internet posted promotions, social messaging or offers using multiple devices, browsers, operating systems, networks, fiber optic communications, multichannel platforms
CN103001992B (zh) * 2011-09-19 2018-01-09 中兴通讯股份有限公司 虚拟桌面实现系统及其使用方法
CN103858102B (zh) * 2011-10-13 2018-09-18 茨特里克斯系统公司 用于分布式虚拟桌面基础设施的系统和方法
CN103092670A (zh) * 2011-11-02 2013-05-08 佳都新太科技股份有限公司 一种云计算环境下跨平台的虚拟计算资源管理方法
US9038083B2 (en) * 2012-02-09 2015-05-19 Citrix Systems, Inc. Virtual machine provisioning based on tagged physical resources in a cloud computing environment
US8990898B2 (en) 2012-02-16 2015-03-24 Citrix Systems, Inc. Connection leasing for hosted services
US8760679B2 (en) * 2012-02-27 2014-06-24 Ricoh Company, Ltd. Cloud print service
US9055139B1 (en) * 2012-03-12 2015-06-09 Cisco Technology, Inc. Display protocol interception in the network for services and network-based multimedia support for VDI
CN102647456A (zh) * 2012-03-23 2012-08-22 普华基础软件股份有限公司 构建桌面云的方法及系统
CN102638460B (zh) 2012-03-26 2016-08-10 华为终端有限公司 家庭网关、云服务器及两者之间进行通信的方法
WO2013149343A1 (en) * 2012-04-03 2013-10-10 Gridcentric Inc. Method and system for memory oversubscription for virtual machines
US8893258B2 (en) * 2012-06-11 2014-11-18 Cisco Technology, Inc. System and method for identity based authentication in a distributed virtual switch network environment
KR101694297B1 (ko) * 2012-08-30 2017-01-23 한국전자통신연구원 가상화 시스템을 위한 데스크탑 가상화 매니저 장치 및 클라이언트 장치
US20140073370A1 (en) * 2012-09-07 2014-03-13 Electronics And Telecommunications Research Institute Method of mobile device resource reuse in mobile cloud
CN103905927B (zh) * 2012-12-26 2016-08-10 华为技术有限公司 虚拟桌面场景下视频重定向的方法、桌面服务器和系统
CN103414605A (zh) * 2013-08-14 2013-11-27 上海兆民云计算科技有限公司 基于交换网关的桌面云监控方法
CN103475726B (zh) * 2013-09-17 2017-03-15 北京京东尚科信息技术有限公司 一种虚拟桌面管理方法、服务器和客户端
US10057325B2 (en) * 2014-03-31 2018-08-21 Nuvestack, Inc. Remote desktop infrastructure
US10268492B2 (en) 2014-05-20 2019-04-23 Amazon Technologies, Inc. Low latency connections to workspaces in a cloud computing environment
US10122828B1 (en) * 2014-11-19 2018-11-06 Amazon Technologies, Inc. Geographic-aware virtual desktops

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090276771A1 (en) 2005-09-15 2009-11-05 3Tera, Inc. Globally Distributed Utility Computing Cloud
CN103650458A (zh) * 2013-08-16 2014-03-19 华为技术有限公司 媒体流的传输方法、装置与系统

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
PRASAD CALYAM 외 6명. ‘Leveraging OpenFlow for resource placement of virtual desktop cloud applications’. 2013 IFIP/IEEE International Symposium on Integrated Network Management, 2013.05, pp.1-9.
S. Ma, Ed. 외. ‘Survey of Virtual Desktop Infrastructure System draft-ma-clouds-vdi-survey-00'. Internet Engineering Task Force, IETF, 2011, pp.1-27.

Also Published As

Publication number Publication date
AU2015264246A1 (en) 2016-12-08
US11409550B2 (en) 2022-08-09
CN106462408B (zh) 2020-05-08
US20190317781A1 (en) 2019-10-17
JP2017525177A (ja) 2017-08-31
CA2949429C (en) 2020-04-14
AU2015264246B2 (en) 2017-11-23
WO2015179508A1 (en) 2015-11-26
US10268492B2 (en) 2019-04-23
CN106462408A (zh) 2017-02-22
JP6322727B2 (ja) 2018-05-09
SG11201609655TA (en) 2016-12-29
KR20170008293A (ko) 2017-01-23
CA2949429A1 (en) 2015-11-26
EP3146425A1 (en) 2017-03-29
US20150339136A1 (en) 2015-11-26

Similar Documents

Publication Publication Date Title
KR101862274B1 (ko) 클라우드 컴퓨팅 환경에서의 작업공간으로의 낮은 레이턴시 커넥션
CN112470436B (zh) 用于提供多云连通性的系统、方法、以及计算机可读介质
US11063819B2 (en) Managing use of alternative intermediate destination computing nodes for provided computer networks
US11277471B2 (en) Managing replication of computing nodes for provided computer networks
US10075459B1 (en) Securing workspaces in a cloud computing environment
US9736016B2 (en) Managing failure behavior for computing nodes of provided computer networks
US9794116B2 (en) Managing use of intermediate destination computing nodes for provided computer networks
US9864727B1 (en) Providing dynamically scaling computing load balancing
US9491002B1 (en) Managing communications involving external nodes of provided computer networks
US9356860B1 (en) Managing external communications for provided computer networks
US11153194B2 (en) Control plane isolation for software defined network routing services
US12010024B2 (en) Transparent migration of virtual network functions
CN117561705A (zh) 用于图形处理单元的路由策略
Ibn-Khedher et al. Network issues in virtual machine migration
CN118541674A (zh) 发布用于图形处理单元工作负载的物理拓扑网络局部性信息
WO2024178351A1 (en) Intelligent multi-carrier network edge application deployment
CN117597894A (zh) 用于图形处理单元的路由策略

Legal Events

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