JP2018517189A - 仮想マシンインスタンスの中でのコマンドの実行 - Google Patents

仮想マシンインスタンスの中でのコマンドの実行 Download PDF

Info

Publication number
JP2018517189A
JP2018517189A JP2017547402A JP2017547402A JP2018517189A JP 2018517189 A JP2018517189 A JP 2018517189A JP 2017547402 A JP2017547402 A JP 2017547402A JP 2017547402 A JP2017547402 A JP 2017547402A JP 2018517189 A JP2018517189 A JP 2018517189A
Authority
JP
Japan
Prior art keywords
instance
command
computer
execute
executing
Prior art date
Legal status (The legal status 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 status listed.)
Granted
Application number
JP2017547402A
Other languages
English (en)
Other versions
JP2018517189A5 (ja
JP6564050B2 (ja
Inventor
ギャビン キング ウェスリー
ギャビン キング ウェスリー
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Amazon Technologies Inc
Original Assignee
Amazon Technologies Inc
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 Amazon Technologies Inc filed Critical Amazon Technologies Inc
Publication of JP2018517189A publication Critical patent/JP2018517189A/ja
Publication of JP2018517189A5 publication Critical patent/JP2018517189A5/ja
Application granted granted Critical
Publication of JP6564050B2 publication Critical patent/JP6564050B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5072Grid computing
    • 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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5022Mechanisms to release resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5044Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5055Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering software capabilities, i.e. software resources associated or available to the machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/541Interprogram communication via adapters, e.g. between incompatible applications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45562Creating, deleting, cloning virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45575Starting, stopping, suspending or resuming virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45583Memory management, e.g. access or allocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45587Isolation or security of virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45591Monitoring or debugging support
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances

Abstract

仮想マシン(「VM」)インスタンスの中でコマンドを実行するための技術が本明細書に開示される。VMインスタンスの中でのコマンドの実行に関係する方法を含む公共ウェブサービスのアプリケーションプログラミングインタフェース(「API」)がサービスプロバイダネットワークの中で公開される。例えば、APIは、VMインスタンスの中で実行できるコマンドのリストを入手するための方法を含む可能性がある。また、APIはVMインスタンスの中でのコマンドの実行を要求するための方法を含む可能性もある。また、APIはVMインスタンスの中でのコマンドの実行のステータスを記述するデータを要求するための方法を含む可能性もある。また、APIは他の方法を公開する可能性もある。VMインスタンスで実行するソフトウェアエージェントは、VMで実行できるコマンドのリストを提供するために、要求されたコマンドを実行するために、及びコマンドの実行のステータスを記述するデータを提供するために活用されてよい。

Description

本発明は、仮想マシンインスタンスの中でのコマンドの実行に関する。
関連出願の相互参照
本特許は、出願全体が参照により本明細書に援用される、2015年3月20日に出願された「Executing Commands Within Virtual Machine Instances」と題する米国出願第14/664,135号の優先権を主張する。
顧客が多様なタイプのコンピューティングリソースを恒久的にまたは必要な場合に応じて購入及び活用できるようにするネットワークベースのサービスプロバイダネットワークが存在する。例えば、サービスプロバイダネットワークは、顧客が仮想マシン(「VM」)インスタンス、データストレージリソース、データベースリソース、ネットワーキングリソース、ネットワークサービス等のコンピューティングリソース、及び他のタイプのコンピューティングリソースを購入し、活用できるようにしてよい。顧客はサービスプロバイダネットワークによって提供されるコンピューティングリソースを、例えばネットワークベースのアプリケーションまたは別のタイプの機能性を提供する等の所望される機能性を実装するように構成してよい。
上述されたコンピューティングリソース等のサービスプロバイダネットワークによって提供される管理コンピューティングリソースは複雑で、多大な時間を要することがある。例えば及び制限なく、VMインスタンスの中でコマンドを実行するためには、ユーザが所望されるコマンドを実行するためにVMインスタンスに遠隔でログインすることが必要な場合がある。特にコマンドを複数のVMインスタンスで実行しなければならない場合、このプロセスは、非常に多大な時間を要することがある。
本明細書で行われる開示は、これらの考慮事項及び他の考慮事項に関して提示される。
VMインスタンスの中でコマンドを実行するための機能性を提供するように構成されるサービスプロバイダネットワークの構成及び動作の態様を示すシステムアーキテクチャ図である。 VMインスタンスの中で実行できるコマンドのリストを入手するための例示的なルーチンを示す流れ図である。 VMインスタンスの中でコマンドを実行するための例示的なルーチンを示す流れ図である。 VMインスタンスの中で実行しているまたは実行を完了したコマンドのステータスを入手するための、本明細書に開示される例示的なルーチンの態様を示す流れ図である。 本明細書に説明される機能性の態様を実装するように構成されてよいサービスプロバイダネットワークを含む例示的な操作環境を示すシステム及びネットワークの図である。 本明細書に開示される技術の態様を実装するために活用されてよいデータセンタの構成を示すコンピューティングシステム図である。 本明細書に開示される1つの構成で、サービスプロバイダによって提供され、サービスプロバイダの中で活用される可能性があるいくつかのサービスの態様を示すシステム及びネットワークの図である。 本明細書に提示される多様な技術の態様を実装するために活用される可能性があるコンピューティング装置を実装するための例示的なコンピュータハードウェアアーキテクチャを示すコンピュータアーキテクチャ図である。
以下の発明を実施するための形態は、VMインスタンスの中でコマンドを実行するための技術を対象としている。また、本明細書に提示される本開示は、VMインスタンスの中で実行できるコマンドを発見するための、及びVMインスタンスの中で、実行しているまたは実行を完了したコマンドのステータスを示す情報を入手するための技術も含む。これらの技術の実装により、サービスプロバイダネットワークによって提供されるオンデマンドコンピューティングサービスのユーザはVMインスタンスに遠隔でログインする必要なく、VMインスタンスの中で迅速に且つ容易にコマンドを実行できる。
上記に簡略に説明されるように、本明細書に開示される多様な技術はサービスプロバイダネットワークで実装されてよい。サービスプロバイダネットワークは、顧客が、VMインスタンス、データストレージリソース、データベースリソース、ネットワーキングリソース、ネットワークサービス等の(本明細書で「リソース」と呼ばれることがある)コンピューティングリソース、及び他のタイプのコンピューティングリソースを購入し、活用できるようにしてよい。本明細書に開示される機能性をサポートするために、サービスプロバイダネットワークで実行するVMインスタンスは、コマンドを実行するために、及びコマンドの実行のステータスを示すデータを提供するために、特定のインスタンスで実行できるコマンドを識別する、例えばリスト等のデータの要求を受け取り、データの要求に応えるように構成される、デーモンまたは他のタイプのバックグラウンドプロセス等のソフトウェアエージェントで構成されてよい。これらの機能を実行するためには、インスタンスのために利用可能なコマンドを識別する、及びスクリプトまたはコマンドのそれぞれを実行するための他のタイプのプログラムコードを指定する構成ファイルが維持される可能性もある。構成ファイル及びスクリプトまたは他のタイプのプログラムはVMインスタンスでまたは別の場所に記憶される可能性がある。
また、公共ウェブサービスのアプリケーションプログラミングインタフェース(「API」)は、いくつかの構成で、VMインスタンスの中でのコマンドの実行に関する方法を提供するサービスプロバイダネットワークで公開される可能性もある。例えば、1つの構成では、APIは、VMインスタンスの中で実行されてよいコマンドを識別するデータを要求する方法を含む。VMインスタンスの中で実行できるコマンドを識別するデータを要求するための方法に対する呼出しの受取りに応えて、実行できるコマンドを識別するデータに対する要求は、VMインスタンスで実行するソフトウェアエージェントに送信される。VMインスタンスを実行するホストコンピュータで実行するインスタンスマネージャは、いくつかの構成では、要求を受け取り、ソフトウェアエージェントに要求を渡してよい。同様に、ソフトウェアエージェントは、VMインスタンスで実行できるコマンドを識別するデータを返すように構成される。データはユーザの選択に応えて、及び/または他の方法でコマンドを実行するためのUIコントロールを表示するように構成されたユーザインタフェース(「UI」)をポピュレートするために活用されてよい。
いくつかの構成では、呼出しは、VMインスタンスの中で実行されてよいコマンドを識別するデータを要求するための方法に対して周期的に行われてよい。コマンドを識別するデータは受け取られ、キャッシュに記憶されてよい。その後方法に対する呼出しが受け取られると、VMインスタンスでソフトウェアエージェントに対して要求を行うよりむしろ、キャッシュに記憶されたデータが活用されてよい。このようにして、VMインスタンスで実行できるコマンドを識別するデータは、VMインスタンスで実行するソフトウェアエージェントに対して呼出しが行われる場合よりも速く要求に応えて入手し、返すことができる。
また、APIはVMインスタンスの中でコマンドを実行するための方法も含む。VMインスタンスの中でコマンドを実行するための方法に対する呼出しに応えて、要求されたコマンドを実行する要求が、VMインスタンスで実行するソフトウェアエージェントに送信される。同様に、ソフトウェアエージェントは、関連付けられたスクリプトまたは他のタイプのプログラムコードを実行することによって識別されたコマンドを実行するように構成される。また、ソフトウェアエージェントは、要求に応えてコマンドと関連付けられた一意の識別子(「ID」)を返すように構成される可能性もある。以下により詳細に説明されるように、IDは、コマンドの実行及び/またはコマンドの実行の出力のステータスを記述する情報を入手するために活用されてよい。いくつかの構成では、多様な認証プロセス及び/または承認プロセスが、要求と関連付けられたユーザが特定のVMインスタンスで要求されたコマンドを実行する権限を与えられていることを保証するために実行されてよい。また、VMインスタンスの中でコマンドを実行する前に、他のタイプのセキュリティチェックが行われる可能性もある。
いくつかの構成では、APIはVMインスタンスの中でのコマンドの実行のステータスを記述するデータを入手するための方法も含む。この方法に対する呼出しは、コマンドを実行する要求が行われたときにソフトウェアエージェントによって提供されるIDを含んでよい。この方法に対する呼出しの受取りに応えて、要求は、コマンドが実行されたVMインスタンスで実行するソフトウェアエージェントに送信される。要求は、コマンドと関連付けられたIDを含んでよい。それに応えて、VMインスタンスで実行するソフトウェアエージェントはコマンドの実行のステータスを示すデータを入手し、返すように構成される。例えば及び制限なく、データは、実行が進行中であるのか、それとも完了したのか、及び完了した場合は、実行が成功したのか、それとも失敗したのかを示す可能性がある。また、いくつかの構成では、返されたデータはコマンドの実行の出力を含む可能性もある。
上述された機構の実装を使用し、多様なタイプのコマンドは、ユーザがVMインスタンスにログインすることを必要することなくVMインスタンスの中で実行できる。例えば及び制限なく、コマンドは、VMインスタンスでプロセスを再起動するために、キャッシュをフラッシュするために、バックアップ動作を実行するために、VMインスタンスを構成するために、及び/またはVMインスタンスで試験を実行するために実行できる。また、他のタイプのコマンドも実行できる。上記に簡略に説明される多様な構成要素及びプロセスに関する追加の詳細は、図1〜図8に関して以下に提示される。
本明細書に提示される主題は、コンピュータプロセス、コンピュータにより制御される装置、コンピュータシステム、またはコンピュータ可読記憶媒体等の製造品として実装され得ることが理解されるべきである。本明細書に説明される主題は1つまたは複数のコンピューティング装置で実行するプログラムモジュールの一般的な状況で提示されるが、当業者は、他のタイプのプログラムモジュールと組み合わせて他の実装が実行され得ることを認識する。概して、プログラムモジュールはルーチン、プログラム、構成要素、データ構造、及び特定のタスクを実行するまたは特定の抽象データ型を実装する他のタイプの構造を含む。
また、当業者は、本明細書に説明される主題の態様が、マルチプロセッサシステム、マイクロプロセッサベースのもしくはプログラム可能な家庭用電化製品、ミニコンピュータ、メインフレームコンピュータ、ハンドヘルドコンピュータ、パーソナルデジタルアシスタント、電子ブックリーダー、携帯電話装置、タブレットコンピューティング装置、特殊目的ハードウェア装置、ネットワーク機器等を含む、本明細書に説明されるコンピュータシステム構成を超える他のコンピュータシステム構成で、または他のコンピュータシステム構成と併せて実施され得ることも理解する。上記に簡略に言及されるように、本明細書に説明される構成は、タスクが通信ネットワークを通してリンクされるリモートコンピューティング装置によって実行されてよい、サービスプロバイダネットワーク等の分散コンピューティング環境で実施されてよい。分散コンピューティング環境では、プログラムモジュールはローカルメモリ記憶装置とリモートメモリ記憶装置の両方に位置してよい。
以下の発明を実施するための形態では、本明細書の一部を形成し、特定の構成または例を例証として示す添付図面に対して参照が行われる。本明細書の図面は原寸に比例して描かれていない。(本明細書では「1つの図」または「複数の図」として参照されてよい)いくつかの図全体で、類似する数詞は類似する要素を表す。
図1は、VMインスタンス106の中でコマンドを実行するための機能性を提供するように構成されるサービスプロバイアネットワーク102の構成及び動作の態様を示すシステムアーキテクチャ図である。サービスプロバイダネットワーク102は、顧客及び/または他のユーザが、恒久的にまたは必要に応じてVMインスタンス106等のコンピューティングリソース及び/または他のタイプのコンピューティングリソースを活用できる分散型ネットワークである。
コンピューティングリソースのそれぞれのタイプまたは構成は、異なるサイズでサービスプロバイダネットワーク102から入手可能であってよい。例えば、サービスプロバイダは物理ホスト、VMインスタンス106、または購入及び使用のために利用可能であり、プロセッサ能力、メインメモリ、ディスクストレージ、及びオペレーティングシステムの多くの異なる構成を有する他のタイプのデータ処理リソースを提供する可能性がある。また、サービスプロバイダネットワーク102を運用するサービスプロバイダは顧客による購入及び使用のために他のタイプのリソースを提供する可能性もある。例えば、サービスプロバイダは、恒久的にもしくは必要に応じて、仮想装置もしくはハードウェア装置、データベースリソース及びインスタンス、ファイル、もしくはブロックデータストレージリソース、及び/またはロードバランシングリソース、ドメインネームサービス(「DNS」)リソース、バーチャルプライベートクラウド(「VPC」)リソース、バーチャルローカルエリアネットワーク(「VPLAN」)リソース等のネットワーキングリソース、及び/または他のタイプのハードウェア及びソフトウェアのコンピューティングリソースもしくはサービス106を提供する可能性がある。また、リソースはVMインスタンス106及び画像、セキュリティグループ、オプショングループ、ゲートウェイ、オプションセット、ネットワークアクセス制御リスト(「ACL」)、サブネット、ストレージバケット、ネットワークインタフェース、スナップショット、スポットマーケット要求、ならびに記憶ボリュームも含む可能性があるが、これに限定されるものではない。
また、サービスプロバイダネットワーク102を運用するサービスプロバイダは、リソースを作成し、使用する顧客にリソースの活用の料金を請求する可能性もある。特定のコンピューティングリソースに対して請求される料金は、コンピューティングリソースのタイプ及び/または構成に基づく可能性がある。例えば、VMインスタンス106のようなデータ処理コンピューティングリソースの場合、コンピューティングリソースの使用に対する料金は、コンピューティングリソースが活用される時間の量に基づいて請求される可能性がある。データストレージコンピューティングリソースの場合、料金は記憶されるデータの量及び/またはコンピューティングリソースの中にもしくはコンピューティングリソースの中から転送されるデータの量に基づいて計算される可能性がある。また、他のタイプのリソースに対する料金は他の考慮事項に基づく可能性がある。また、サービスプロバイダはサービスプロバイダネットワーク102によって提供されるリソースの使用に対して顧客に請求する額を決定するために多様な購入モデルを活用する可能性もある。
上述されたリソースは、サービスプロバイダによって運用される1つまたは複数のデータセンタによる1つの特定の実装で提供されてよい。当業者に既知であるように、データセンタはコンピュータシステム及び関連構成要素を収容し、操作するために活用される施設である。また、データセンタは通常冗長且つ予備の電力系統、通信システム、冷却システム、及びセキュリティシステムも含む。データセンタは、地理的に異なる地域に位置する可能性があり、コロケーション施設等の多様な他の施設、及びインターネット等の多様な広域ネットワーク(「WAN」)に接続される可能性もある。
また、上記の簡略に説明されるリソースは、自動的な方法で必要に応じてプロビジョニングされ、デプロビジョニングされる(deprovisioned)可能性もある。例えば、サービスプロバイダネットワーク102は、ネットワークサービスまたは他の状況に対する需要の増加に応えて、VMインスタンス106等のコンピューティングリソースの新しいインスタンスをインスタンス化するように構成される可能性もある。また、他のタイプのコンピューティングリソースは同様にプロビジョニングされ、デプロビジョニングされる可能性もある。また、サービスプロバイダネットワーク102のサービスは、リソース及び/または他の要因に対する需要に基づいてリソースを自動的にスケーリング及び/またはデスケーリング(descaling)するための機能性を提供する可能性もある。
サービスプロバイダネットワーク102の顧客または潜在的な顧客は、適切なデータ通信ネットワーク(図1で不図示)を介してサービスプロバイダネットワーク102と通信するために適切なコンピューティングシステム(やはり図1で不図示)を活用する可能性がある。このようにして、サービスプロバイダネットワーク102の顧客は、サービスプロバイダネットワーク102によって提供されるコンピューティングリソースの動作の多様な態様を構成する、またはそれ以外の場合顧客によって活用されているあらゆるコンピューティングリソースを制御できる。例えば及び制限なく、サービスプロバイダネットワーク102の顧客によって活用されるコンピューティングシステムは、サービスプロバイダネットワーク102でコンピューティングリソースを購入し、管理コンソール114または他のタイプのインタフェースを通してコンピューティングリソースの動作の態様を構成し、本明細書に説明される多様なサービス及びシステムによって提供される機能性にアクセスし、機能性を活用し、及び/またはサービスプロバイダネットワーク102によって提供されるコンピューティングリソースの動作に関して他のタイプの機能性を実行するために構成するために活用される可能性がある。
顧客コンピューティングシステムは、ラップトップコンピュータもしくはデスクトップコンピュータ、タブレットコンピューティング装置、サーバコンピュータ、または携帯電話等であるが、これに限定されるものではない、適切なデータ通信ネットワークを介してサービスプロバイダネットワーク102に接続できる任意のタイプのコンピューティング装置である可能性がある。サービスプロバイダネットワーク102の事業者によって雇用される、サービスプロバイダネットワーク102の動作を管理するアドミニストレータ等の管理ユーザは、同様の方法でサービスプロバイダネットワーク102によって提供されるリソースと接続し、リソースを管理及び活用する可能性もある。
上記に簡略に説明されるように、サービスプロバイダネットワーク102は、内部で及び顧客によって使用するために多様なタイプのネットワークサービスを提供するように構成される可能性もある。例えば及び制限なく、サービスプロバイダネットワーク102は、オンデマンドでVMインスタンス106を提供するためのオンデマンドコンピューティングサービス104、データを記憶するためのデータストレージサービス、暗号サービス、通知サービス、認証サービス、方針管理サービス、タスクサービス、及び潜在的に他のタイプのネットワークアクセス可能サービス106を提供してよい。これらのサービス及び他のサービスならびにその関連付けられたリソースは、サービスプロバイダネットワーク102で多様なタイプのネットワークベースのアプリケーションを実装するためにともに活用されてよい。サービスプロバイダネットワーク102及びサービスプロバイダネットワーク102によって提供される可能性のある多様なタイプのネットワークサービスの1つの実装に関する追加の詳細は、図5〜図8に関して以下に説明される。
図1に示され、上記に簡略に説明されるように、オンデマンドコンピューティングサービス104は、VMインスタンス106を提供するためにいくつかの構成で活用される。例えば、図1に示されるように、オンデマンドコンピューティングサービス104は、同じホストコンピュータ107Aで実行している2つのVMインスタンス106A及び106Bを提供している。この点で、図1に示される構成が説明のために簡略化されており、多くの他のホストコンピュータ107が同様の方法で多くの他のVMインスタンス106を提供するために活用されてよいことが理解されるべきである。例えば及び制限なく、ホストコンピュータ107Bは追加のVMインスタンス106を提供するために活用される可能性がある。上述されたように、VMインスタンス106は、需要及び/または他の要因に基づいてプロビジョニングされる及び/またはデプロビジョニングされる可能性もある。
また、図1に示されるように、ホストコンピュータ107Aは、いくつかの構成で、インスタンスマネージャ108で構成される。インスタンスマネージャ108は、VMインスタンス106A及び106Bの外部で実行するソフトウェア構成要素である。インスタンスマネージャ108は、特定のホストコンピュータ107AのVMインスタンス106A及び106Bとの通信を可能にするための機能性を提供する。より詳細には、ソフトウェアエージェント120は、いくつかの構成では各VMインスタンス106の中で実行される。例えば、図1に示される例では、VMインスタンス106Aはソフトウェアエージェント120Aを実行中であり、VMインスタンス106Bはソフトウェアエージェント120Bを実行中である。ソフトウェアエージェント120Bは、インスタンスマネージャ107からの通信のために割り当てられたポートで傾聴するデーモンまたは他のタイプのバックグラウンドプロセスとして実装される可能性がある。ソフトウェアエージェント120は、他の構成では別のタイプのソフトウェア構成要素として実装される可能性がある。
構成ファイル122及び1つまたは複数のコマンドスクリプト124も、1つの構成で各VMインスタンス106にプロビジョニングされる。例えば、図1に示される例で、構成ファイル122A及びコマンドスクリプト124AはVMインスタンス106Aにプロビジョニングされ、構成ファイル122B及びコマンドスクリプト124BはVMインスタンス106Bにプロビジョニングされている。構成ファイル122は、各VMインスタンス106の中で実行できるコマンドのリストを提供する。また、構成ファイル122は、コマンドごとに、関連付けられたコマンドを実行する要求がソフトウェアエージェント120によって受け取られるときに実行されるコマンドスクリプト124を識別する。この点で、コマンドはスクリプト以外の他のタイプのプログラムコードによって実装される可能性があることが理解されるべきである。例えば及び制限なく、コマンドは、他の構成で、コンパイルされたプログラムコード、解釈されたプログラムコード、及び/または他のタイプのプログラムコードによって実装される可能性がある。構成ファイル122Aのコマンドのリスト等は、特定のVMインスタンス106で実行できるコマンドのカスタムリストを提供するために権限を与えられたユーザによって編集できることも理解されるべきである。
構成ファイル122及びコマンドスクリプト124(または他のタイプのプログラムコード)が、他の構成でVMインスタンス106の中以外の場所に記憶される可能性があることも理解されるべきである。例えば及び制限なく、構成ファイル122及びコマンドスクリプト124(または他のタイプのプログラムコード)は、VMインスタンス106による使用のためにデータベースまたは他のタイプのネットワークがアクセス可能な場所に記憶される可能性がある。さらに、いくつかの構成では、VMインスタンス106は構成ファイル122を使用することなく動作するように構成されてよい。これらの構成では、コマンドスクリプト124(または他のタイプのプログラムコード)は、VMインスタンス106の外部のデータストアに記憶される可能性がある。コマンドを実行する要求が受け取られるとき、ソフトウェアエージェント120は構成ファイル122を参考にすることなくデータストアから、実行されるコマンドスクリプト124(または他のタイプのプログラムコード)を取り出してよい。また、他の実装が活用される可能性もある。
ソフトウェアエージェント120、構成ファイル122、及びコマンドスクリプト124(または他のタイプのプログラムコード)を含むVMインスタンス106をインスタンス化するために、これらの構成要素を含むVM画像が事前に作成されてよい。VM画像は次いで上述されたソフトウェア構成要素で適切に構成されるVMインスタンス106をインスタンス化するために活用されてよい。VM画像はサービスプロバイダネットワーク102の事業者、サービスプロバイダネットワーク102の顧客、開発者、及び/または別のエンティティによって作成される可能性がある。
図1に示されるように、公共ウェブサービスのアプリケーションプログラミングインタフェース(「API」)110は、いくつかの構成では、VMインスタンス106の中でのコマンドの実行に関係する方法111を提供するサービスプロバイダネットワーク102の中で公開される可能性もある。例えば、1つの構成では、API110は、特定のVMインスタンス106の中で実行されてよいコマンドを識別するデータを要求するための方法111Aを含む。サービスプロバイダネットワーク102の中で動作する多様な構成要素はAPI110を呼び出してよい。例えば及び制限なく、VMインスタンス106の動作を管理するためのユーザインタフェース(「UI」)を提供する管理コンソール112が活用されてよい。VMインスタンス106の中で実行できるコマンドを識別するデータは、ユーザの選択に応えて及び/または他の方法でコマンドを実行するためにUI114の中でUIコントロールを生成するために活用されてよい。図1に示されるように、API110によって公開される方法111は、サービスプロバイダネットワーク102の中で動作するコマンドラインインタフェース(「CLI」)116を通して等、他の構成要素によって呼び出される可能性がある。
VMインスタンスの中で実行できるコマンドを識別するデータを要求するための方法111Aに対する呼出しの受取りに応えて、実行できるコマンドを識別するデータに対する要求が、VMインスタンス106上で実行するソフトウェアエージェント120に送信される。例えば及び制限なく、1つの構成で、API110はサービスマネージャ118に要求を送信する。同様に、サービスマネージャ118は、コマンドのリストが所望されるVMインスタンス106と同じホストコンピュータ107で実行するインスタンスマネージャ108に利用可能なコマンドの要求を送信する。インスタンスマネージャ108は要求を受け取り、VMインスタンス106の中で実行するソフトウェアエージェント120に要求を渡す。同様に、ソフトウェアエージェント120は構成ファイル122から利用可能なコマンドを読み取り、インスタンスマネージャ108に利用可能なコマンドを識別するデータを返す。インスタンスマネージャ108は、同様にAPI110にコマンドを返すサービスマネージャ118に利用可能なコマンドを返す。利用可能なコマンドを識別するデータは、次いで方法111Aに対する呼出しに応えて、例えば管理コンソール112またはCLI116に返されてよい。
いくつかの構成では、サービスマネージャ118または別の構成要素は、上述された機構を通してVMインスタンス106から利用可能なコマンドのリストの要求を周期的に呼び出すように構成されてよい。サービスマネージャ118は、コマンドを識別するデータを受け取り、図1に示されるコマンドキャッシュ124等のキャッシュにデータを記憶してよい。その後方法111Aに対する呼出しが受け取られると、サービスマネージャ118はVMインスタンス106でソフトウェアエージェント120に要求を行うよりむしろ、キャッシュに以前に記憶された利用可能なコマンドを識別するデータを返してよい。このようにして、VMインスタンス106で実行できるコマンドを識別するデータは、呼出しがVMインスタンス106で実行するソフトウェアエージェント120に対して行われる場合よりも速く、入手し、方法111Aに対する呼出しに応えて返すことができる。また、他の構成が他の実装で活用される可能性もある。方法111Aの動作に関する追加の詳細は、図2に関して以下に提供される。
また、API110は、VMインスタンス120の中でコマンドを実行するための方法111Bも含む。VMインスタンス120の中でコマンドを実行するための方法111Bに対する呼出しに応えて、API110は識別されたVMインスタンス106で指定されたコマンドを実行する要求をサービスマネージャ118に送信する。同様に、サービスマネージャ118は、指定されるコマンドが実行されるVMインスタンス106を実行するホストコンピュータ107で実行するインスタンスマネージャ108に要求を送信する。それに応えて、サービスマネージャ108は次いで、コマンドが実行されるVMインスタンス106の中で実行するソフトウェアエージェント120に要求を送信する。
ソフトウェアエージェント120は、インスタンスマネージャ108からコマンドを実行する要求を受け取る。1つの構成で、ソフトウェアエージェント120は次いで、要求されたコマンドに対応するコマンドスクリプト124(または他のタイプのプログラムコード)を識別するために構成ファイル122を調べる。いったん要求されたコマンドと関連付けられたコマンドスクリプト124が識別されると、ソフトウェアエージェント120は、コマンドスクリプト124A(またはコマンドを実装するための他のタイプのプログラムコード)をVMインスタンス106の中で実行させる。
上記に簡略に説明されるように、ソフトウェアエージェント120は、要求に応えて実行されたコマンドと関連付けられた一意の識別子(「ID」)を返すように構成される可能性もある。例えばソフトウェアエージェント120は、実行されたコマンドスクリプト124Aまたは他のタイプのプログラムコードのためのプロセスIDを返す可能性がある。また、他のタイプのIDは、他の構成で活用される可能性もある。IDは、サービスマネージャ118にIDを返すインスタンスマネージャ108に返される。サービスマネージャ118は、次いで、同様に方法111Bに対する呼出しに応えてIDを返すAPIにIDを返してよい。以下により詳細に説明されるように、返されたIDはその後コマンドの実行及び/またはコマンドの実行の出力のステータスを記述する情報を入手するために活用されてよい。
いくつかの構成では、多様な認証及び/または承認プロセスが、コマンドを実行する要求と関連付けられたユーザが特定のVMインスタンス106で要求されたコマンドを実行する権限を与えられていることを保証するために実行されてよい。例えば及び制限なく、API110及び/またはサービスマネージャ118は、コマンドの実行を要求するユーザがコマンドを実行する権限を与えられていることを検証するために、コマンドを実行する前に認証サービス120及び/または承認サービス122を呼び出す可能性がある。この認証機構を通して、ユーザはVMインスタンス106に遠隔でログインする権限を与えられていないことがあっても、VMインスタンス106の中で特定のタイプのコマンドを実行する権限を与えられてよい。この点で、他のタイプのセキュリティチェックも、VMインスタンス106の中でコマンドを実行する前に行われる可能性があることが理解されるべきである。VMインスタンス106の中でコマンドを実行するための方法111Bの動作に関する追加の詳細は、図3に関して以下に提供される。
いくつかの構成では、API110は、VMインスタンス106の中でのコマンドの実行のステータスを記述するデータを入手するための方法111Cも含む。上述されたように、方法111Cに対する呼出しは、コマンドを実行する要求が行われたときにソフトウェアエージェント120によって提供されるIDを含んでよい。この方法に対する呼出しの受取りに応えて、API110は、同様に適切なインスタンスマネージャ108に要求を送信するサービスマネージャ118に要求を送信する。インスタンスマネージャ108は、コマンドが実行されたVMインスタンス106で実行するソフトウェアエージェント120にコマンドのステータスに対する要求を送信する。それに応えて、VMインスタンス106の中で実行するソフトウェアエージェント120は、コマンドの実行のステータスを示すデータを入手し、返す。例えば及び制限なく、データは、実行が進行中であるのか、それとも完了したのか、及び完了した場合は、実行が成功したのか、それとも失敗したのかを示す可能性がある。また、返されたデータはいくつかの構成ではコマンドの実行の出力を含む可能性もある。方法111Cの動作に関する追加の詳細は、図4に関して以下に提供される。
上記に簡略に説明されるように、上述された機構の実装を使用し、多様なタイプのコマンドが、ユーザがVMインスタンス106にログインすることを必要とすることなくVMインスタンス106の中で実行できる。例えば及び制限なく、コマンドは、VMインスタンス106でプロセスを再開するために、キャッシュをフラッシュするために、バックアップ動作を実行するために、VMインスタンス106を構成するために、及び/またはVMインスタンス106で試験を実行するために実行できる。また、他のタイプのコマンドも実行できる。
API110によって公開されている上述された多様な方法111は例示的にすぎないこと、及び他のタイプの方法111が、さらにまたは代わりに他の構成で提供される可能性があることが理解されるべきである。サービスプロバイダネットワークで動作する他のサービスがAPI110によって公開される方法111を活用する可能性があることも理解されるべきである。また、サービスプロバイダネットワーク102の中で動作する図1に示されるサービス以外のサービスは、API110によって提供される機能性を実装するために活用される可能性もある。
図2は、特定のVMインスタンス106の中で実行できるコマンドを識別する、例えばリスト等のデータを入手するための例示的なルーチン200を示す流れ図である。図2及び他の図に関して本明細書で説明される論理演算は、(1)コンピューティングシステムで実行するコンピュータによって実装される行為もしくはプログラムモジュールのシーケンスとして、及び/または(2)相互接続されたマシン論理回路もしくはコンピューティングシステムの中の回路モジュールとして実装されてよいことが理解されるべきである。
本明細書に説明される多様な構成要素の実装は、コンピューティングシステムの性能及び他の要件に応じて選択できる問題である。したがって、本明細書に説明される論理演算はさまざまに、動作、構造装置、行為またはモジュールと呼ばれる。これらの動作、構造装置、行為及びモジュールは、ソフトウェアで、ファームウェアで、特殊目的デジタル論理で、及びその任意の組合せで実装されてよい。また、複数の図に示され、本明細書に説明されるよりも多いまたは少ない動作が実行され得ることも理解されるべきである。また、これらの動作は、並行して、または本明細書で説明される順序とは異なる順序で実行されてもよい。また、これらの動作のいくつかまたはすべては、特に識別された構成要素以外の構成要素によって実行される可能性もある。
ルーチン200は、公共ウェブサービスAPI110がサービスプロバイダネットワーク102の中で公開される動作202で開始する。上述されたように、API110は、特定のVMインスタンス106の中で実行できるコマンドを記述する、リスト等のデータを入手するための方法1102Aを含む。動作202から、ルーチン200は、VMインスタンス106の中で実行できるコマンドを記述するデータを入手するための方法111Aに対する呼出しが受け取られる動作204に進む。例えば及び制限なく、管理コンソール112及びCLI116は方法111Aに対する係る呼出しを行うために多様な構成で活用される可能性がある。他の構成要素は、他の構成で係る呼出しを行うために活用される可能性がある。
ルーチン200は動作204から、API110が、コマンドのリストが入手されるVMインスタンス120を実行するホストコンピュータ107のインスタンスマネージャ108に要求を送信させる、動作206に進む。上述されたように、いくつかの構成では、同様にコマンドのリストのために適切なホストコンピュータ107上のインスタンスマネージャ108を呼び出すサービスマネージャ118が呼び出される。インスタンスマネージャ108は、動作208で適切なVMインスタンス106で実行するソフトウェアエージェント120に利用可能なコマンドに対する要求を送信する。
動作210で、ソフトウェアエージェント106はインスタンスマネージャ108から利用可能なコマンドに対する要求を受け取り、1つの構成では構成ファイル122の内容に基づいて利用可能なコマンドを識別する。ソフトウェアエージェント106は、次いでインスタンスマネージャ108に実行に利用可能なコマンドを識別するデータを返す。同様に、インスタンスマネージャ108は、API110にコマンドのリストを返すサービスマネージャ118に利用可能なコマンドを返す。同様に、コマンドのリストは動作212で方法111Aに対する呼出しに応えて返される。ルーチン200は次いで動作212から、ルーチン200が終わる動作214に進む。上述されたように、キャッシング等の他の機構が、他の構成で、より迅速に利用可能なコマンドのリストを入手し、返すために活用される可能性もある。
図3は、VMインスタンス106の中でコマンドを実行するための例示的なルーチン300を示す流れ図である。ルーチン300は、API100がサービスプロバイダネットワーク102で実行するVMインスタンス106の中でコマンドを実行するための方法111Bを公開する動作302で始まる。ルーチン300は動作302から、VMインスタンス106の中でコマンドを実行するための方法111Bに対する呼出しが受け取られる動作304に進む。上述されたように、係る呼出しは、管理コンソール112、CLI116または別の構成要素によって行われる可能性がある。
ルーチン300は動作304から、認証及び/または承認が、コマンドを実行する要求と関連付けられたユーザがコマンドを実行するのを許されていることを検証するために実行される可能性がある動作306に進む。例えば及び制限なく、API110は、ユーザがコマンドを実行することを許されているかどうかを判断するために認証サービス120及び/または承認サービス122を呼び出す可能性がある。ユーザがコマンドを実行することを許されていない場合、ルーチン300は動作308から、エラーが返されることがある動作310に進んでよい。しかしながら、ユーザがコマンドを実行することを許されている場合、ルーチン300は動作308から動作312に進んでよい。
動作312で、API100は、コマンドを実行する要求を、コマンドが実行されるVMインスタンス106を実行しているホストコンピュータ107で実行するインスタンスマネージャ108に送信させてよい。同様に、インスタンスマネージャ108は、動作314で、コマンドを実行する要求をVMインスタンス106で実行する適切なソフトウェアエージェント120に送信する。ソフトウェアエージェント120は、動作318で、要求されたコマンドに対応するコマンドスクリプト124(または他のプログラム構成要素)を識別するために構成ファイル122を活用する。ソフトウェアエージェント120は次いで識別されたコマンドスクリプト124(または他のプログラム構成要素)を実行する。
ルーチン300は動作316から、ソフトウェアエージェント120がインスタンスマネージャ108にコマンドの実行と関連付けられたIDを返す動作318に進む。インスタンスマネージャ108は、同様にAPI110にIDを返すサービスマネージャ118にIDを返す。IDは次いで動作320で方法111Bに対する呼出しに応えて返すことができる。ルーチン300は次いで動作320から、ルーチン300が終わる動作322に進む。
いくつかの構成では、コマンドの実行及び/または実行の結果はソフトウェアエージェント120、インスタンスマネージャ108、API110及び/またはサービスマネージャ118によって記録されてよいことが理解されるべきである。このようにして、各VMインスタンス106に対して実行されたコマンド、及び潜在的に実行の結果の記録を残すことができる。また、他の構成では、API110に対する呼出し及び/またはVMインスタンス106でのコマンドの実行に関する他のデータが取り込まれ、維持される可能性もある。
図4は、VMインスタンス106の中で、実行しているまたは実行を完了したコマンドのステータスを入手するための、本明細書で開示される例示的なルーチン400の態様を示す流れ図である。ルーチン400は、API10がVMインスタンス106の中で実行されたコマンドのステータスを入手するための方法111Cを公開する動作402で始まる。ルーチン400は動作402から、VMインスタンス106の中で実行されるコマンドのステータスを入手するための方法111Cに対する呼出しが受け取られる動作404に進む。上述されたように、管理コンソール112、CLI116、及び/または別の構成要素が係る呼出しを行う。さらに、呼出しは、コマンドが実行されたときにソフトウェアエージェント120によって返されたIDを含んでよい。
ルーチン400は動作404から、要求が、コマンドが実行されたVMインスタンス106を含むホストコンピュータ107で実行するインスタンスマネージャ108にサービスマネージャ118を介して送信される動作406に進む。ルーチン400は次いで動作406から、インスタンスマネージャ108がコマンドの実行のステータスに対する要求を、コマンドが実行されたVMインスタンス106のソフトウェアエージェント120に送信する動作408に進む。ルーチン400は次いで、ソフトウェアエージェント120がコマンドの実行のステータスをインスタンスマネージャ108に返す動作410に進む。ステータスは、例えば、コマンドの実行が成功したこと、または実行が失敗したことを示す可能性がある。ステータスは、さらにまたは代わりに他のタイプの状況を示す可能性がある。また、ステータスはコマンドの実行のテキスト出力を含む可能性もある。コマンドの実行の出力は、UI114、CLI116で、及び/または別の方法で提示される可能性がある。
動作410から、インスタンスマネージャ108はサービスマネージャ118に、コマンドの実行のステータスを示すデータを返す。サービスマネージャ118同様には、方法111Cに対する呼出しに応えてデータを返すAPI110にデータを返す。ルーチン400は動作412から、ルーチン400が終わる動作414に進む。
図5は、本明細書に開示される1つの構成に従って、上述された方法でVMインスタンス106の中でコマンドを実行するための機能性、及び関係する機能性を提供するように構成されてよいサービスプロバイダネットワーク102を含む、本明細書に開示される構成のための1つの例示的な操作環境を示すシステム及びネットワーク図である。上述されたように、サービスプロバイダネットワーク102は、恒久的にまたは必要に応じてVMインスタンス106のようなコンピューティングリソースを提供できる。他のタイプの機能性の中で、サービスプロバイダネットワーク102によって提供されるコンピューティングリソースは上述された多様なサービスを実装するために活用できる。やはり上述されたように、サービスプロバイダネットワーク102によって提供されるコンピューティングリソースはVMインスタンス106のようなデータ処理リソース、データストレージリソース、ネットワーキングリソース、データ通信リソース、ネットワークサービス等の多様なタイプのコンピューティングリソースを含んでよい。
サービスプロバイダネットワーク102によって提供される各タイプのコンピューティングリソースは汎用であってよく、またはいくつかの特定の構成で利用可能であってよい。例えば、データ処理リソースは、いくつかの異なる構成では物理コンピュータまたはVMインスタンス106として利用可能であってよい。VMインスタンス106は、ウェブサーバ、アプリケーションサーバ、メディアサーバ、データベースサーバ、上述されたサービスのいくつかもしくはすべて、及び/または他のタイプのプログラムを含むアプリケーションを実行するように構成されてよい。データストレージリソースは、ファイル記憶装置、ブロック記憶装置等を含んでよい。また、サービスプロバイダネットワーク102は本明細書に特に言及されていない他のタイプのコンピューティングリソースを提供するように構成される可能性もある。
サービスプロバイダネットワーク102によって提供されるコンピューティングリソースは、(本明細書では単数で「データセンタ504」または複数で「複数のデータセンタ504」と参照されてよい)1つまたは複数のデータセンタ504A〜504Nによって1つの実装で可能にされる。複数のデータセンタ504は、コンピュータシステム及び関連付けられた構成要素を収容し、操作するために活用される施設である。複数のデータセンタ504は、通常、冗長且つ予備の電力系統、通信システム、冷却システム及びセキュリティシステムを含む。また、複数のデータセンタ504は地理的に異なる場所に位置する可能性もある。本明細書に開示される技術を実装するために活用される可能性のあるデータセンタ504の1つの例示的な構成は、図6に関して以下に説明される。
サービスプロバイダネットワーク102の顧客及び他のユーザは、インターネット等の広域通信ネットワーク(「WAN」)、イントラネットもしくはインターネットサービスプロバイダ(「ISP」)ネットワーク、または係るネットワークの組合せであってよいネットワーク502を介してサービスプロバイダネットワーク102によって提供されるコンピューティングリソースにアクセスしてよい。例えば及び制限なく、サービスプロバイダネットワーク102の顧客または他のユーザによって操作されるコンピューティング装置500はネットワーク502を介してサービスプロバイダネットワーク102にアクセスするために活用される可能性がある。ローカルエリアネットワーク(「LAN」)、インターネット、または複数のデータセンタ504をリモート顧客及び他のユーザに接続する、当業界で既知の任意の他のネットワーキングトポロジーが活用されてよいことが理解されるべきである。また、係るネットワークの組合せが活用される可能性があることも理解されるべきである。
図6は、VMインスタンス106の中でコマンドを実行するための本明細書に開示される技術、及び本明細書に開示される関係する機能性の態様を実装するデータセンタ504の1つの構成を示すコンピューティングシステム図である。図6に示される例のデータセンタ504は、コンピューティングリソース606A〜606Eを提供するための(本明細書で、単数で「サーバコンピュータ602」または複数で「複数のサーバコンピュータ602」と呼ばれることがある)いくつかのサーバコンピュータ602A〜602Fを含む。
サーバコンピュータ602は、(図6でコンピューティングリソース604A〜604Eとして示される)本明細書に説明されるコンピューティングリソースを提供するために適切に構成された標準的なタワーコンピュータ、ラックマウントコンピュータ、またはブレードサーバコンピュータであってよい。上記に言及されたように、サービスプロバイダネットワーク102によって提供されるコンピューティングリソースは、VMインスタンス106もしくはハードウェアコンピューティングシステム等のデータ処理リソース、データストレージリソース、データベースリソース、ネットワーキングリソース等である可能性がある。また、サーバ602のいくつかはコンピューティングリソースをインスタンス化及び/または管理することができるリソースマネージャ604を実行するように構成される可能性もある。例えばVMインスタンス106の場合、リソースマネージャ604は、ハイパーバイザ、または単一サーバ602で複数のVMインスタンス106の実行を可能にするように構成された別のタイプのプログラムである可能性がある。データセンタ504の複数のサーバコンピュータ602は、ネットワークサービス及びその内のいくつかが図7に関して以下に詳細に説明される他のタイプのサービスを提供するように構成される可能性もある。
また、図6に示されるデータセンタ504は、上述されたソフトウェア構成要素のいくつかまたはすべてを実行してよいサーバコンピュータ602Fも含む。例えば及び制限なく、サーバコンピュータ602Fは、オンデマンドコンピューティングサービス104、管理コンソール112、及び/または上述された他のソフトウェア構成要素を提供するために多様な構成要素を実行するように構成される可能性がある。また、サーバコンピュータ602Fは、他の構成要素を実行する及び/または本明細書に説明される機能性のいくつかまたはすべてを提供するためのデータを記憶するように構成される可能性もある。この点で、サーバコンピュータ602Fで実行するとして図6に示されるサービスは、多様な構成では、複数のデータセンタ504の多くの他の物理サーバまたは仮想サーバで実行する可能性があることが理解されるべきである。
図6に示される例のデータセンタ504では、適切なLAN606もサーバコンピュータ602A〜602Fを相互接続するために活用される。また、LAN606は図5に示されるネットワーク502に接続される。本明細書に説明される構成及びネットワークトポロジーは大幅に簡略化されていること、及びより多くのコンピューティングシステム、ソフトウェア構成要素、ネットワーク及びネットワーキング装置が本明細書に開示される多様なコンピューティングシステムを相互接続するために及び上述された機能性を提供するために活用されてよいことが理解されるべきである。適切なロードバランシング装置または他のタイプのネットワーク構造構成要素も、複数のデータセンタ504A〜504Nのそれぞれの間、各データセンタ504での複数のサーバコンピュータ602A〜602Fの間、及び潜在的に複数のデータセンタ504のそれぞれのコンピューティングリソースの間で負荷を平衡させるために活用される可能性もある。図6に関して説明されたデータセンタ504の構成は例示的にすぎないこと、及び他の実装が活用される可能性があることが理解されるべきである。
図7は、本明細書に開示される1つの構成で、サービスプロバイダネットワーク102にっよって提供され、サービスプロバイダネットワーク102の中で活用される可能性があるいくつかのネットワークサービスの態様を示すシステム及びネットワーク図である。特に、及び上述されたように、サービスプロバイダネットワーク102はさまざまなネットワークサービスを、オンデマンドコンピューティングサービス104を含むが、これに限定されるものではないサービスプロバイダネットワーク102の顧客及び他のユーザに提供してよい。また、サービスプロバイダネットワーク102は、それぞれが以下により詳細に説明される、ストレージサービス702A、展開サービス702B、暗号サービス702C、認証サービス120、方針管理サービス702E及び/またはタスクサービス702Fを含むが、これに限定されるものではない他のタイプのサービスを提供する可能性もある。さらに、サービスプロバイダネットワーク102は、いくつかが以下により詳細に説明される他のサービス702Gを提供する可能性もある。
サービスプロバイダネットワーク102の顧客が、サービスプロバイダネットワーク102によって提供されるサービスのいくつかまたはすべてを活用する組織または個人を含んでよいことが理解されるべきである。上述されたように、顧客または他のユーザは、図5に示されるネットワーク502等のネットワークを通してサービスプロバイダネットワーク102と通信してよい。図5に示されるコンピューティング装置500等の顧客コンピューティング装置からサービスプロバイダネットワーク102への通信は、サービスプロバイダネットワーク102によって提供されるサービスを説明されている構成またはその変形形態に従って動作させてよい。
説明されているすべての構成が図7に関して説明されるサービスを含むとは限らないこと、及び追加サービスが明示的に説明されるサービスに加えてまたは明示的に説明されるサービスの代替策として提供されてよいことに留意されたい。また、図7に示されるサービスのそれぞれは、呼出し者がウェブサービス要求によって適切に構成されたAPI呼出しを多様なサービスに提出できるようにするウェブサービスインタフェースを公開する可能性もある。さらに、サービスのそれぞれは、(例えば、オンデマンドコンピューティングサービス104によって提供される仮想コンピュータシステムが、データストレージサービス702Aにデータを記憶するまたはデータストレージサービス702Aからデータを取り出すことを可能にするために)サービスが互いにアクセスできるようにするサービスインタフェースを含んでよい。図7に示されるサービスのいくつかに関する追加の詳細は、ここで提供される。
上述されたように、オンデマンドコンピューティングサービス104は、VMインスタンス106をインスタンス化する、及びオンデマンドで他のタイプのコンピューティングリソースを提供するように構成されたコンピューティングリソースの集合体であってよい。例えば、サービスプロバイダネットワーク102の顧客または他のユーザは、サービスプロバイダネットワーク102によってホストされ、操作される物理コンピューティング装置上でインスタンス化されるVMインスタンス106をプロビジョニングし、操作するために(適切に構成され、認証されたAPI呼出しを介して)オンデマンドコンピューティングサービス104と対話してよい。VMインスタンス106は、例えばウェブサイトをサポートするサーバとして動作するために、ビジネスアプリケーションを操作するために、または概して顧客のためのコンピューティングリソースとして役立つために等多様な目的のために使用されてよい。VMインスタンス106のための他のアプリケーションは、データベースアプリケーション、電子商取引アプリケーション、ビジネスアプリケーション及び/または他のアプリケーションをサポートすることであってよい。オンデマンドコンピューティングサービス104は図7に示されているが、仮想化を利用せず、代わりに専用のまたは共用のコンピュータ/サーバ及び/または他のタイプの物理装置でコンピューティングリソースをプロビジョニングするコンピュータシステムまたはコンピュータシステムサービス等の任意の他のコンピュータシステムまたはコンピュータシステムサービスがサービスプロバイダネットワーク102で活用されてよい。
ストレージサービス702Aは、ブロック記憶装置またはファイルレベル記憶装置(及び/またはその仮想化)を使用し、データを記憶するために集合的に動作するソフトウェアリソース及びコンピューティングリソースを含む可能性がある。ストレージサービス702Aの記憶装置は、例えばコンピュータシステムのための論理ユニット(例えば、仮想ドライブ)として役立つためにオンデマンドコンピューティングサービス104によって提供される仮想コンピュータシステムに操作上取り付けられる可能性がある。また、記憶装置は、仮想コンピュータシステムサービスが一時的なデータストレージを提供するにすぎない対応する仮想コンピューティングシステムによって使用/生成されるデータの永続記憶を可能にする可能性もある。
また、サービスプロバイダネットワーク102は暗号サービス702Cを含んでもよい。暗号サービス702Cは、暗号化された形式で暗号鍵を記憶するために、ストレージサービス702A等のサービスプロバイダネットワーク102のストレージサービスを活用してよく、これによって鍵は暗号サービス702Cの特定の装置だけにアクセス可能な顧客鍵を復号するために使用可能であってよい。また、暗号サービス702Cは本明細書に特に言及されていない他のタイプの機能性を提供する可能性もある。
図7で示されるように、サービスプロバイダネットワーク102は、多様な構成では、認証サービス120及び方針管理サービス702Eも含む。認証サービス120は、一例では、ユーザの認証に関与する動作を実行するように構成されたコンピュータシステム(つまり、コンピューティングリソースの集合体)である。例えば、図7に示されるサービス702の1つは、ユーザによって提出される要求が真正であるかどうかを示す情報を見返りに受け取るためにユーザから認証サービス120に情報を提供してよい。
方針管理サービス702Eは、1つの例では、サービスプロバイダネットワーク102の顧客または内部ユーザの代わりに方針を管理するように構成されたネットワークサービスである。方針管理サービス702Eは、顧客が方針の管理に関係する要求を提出できるようにするインタフェースを含んでよい。係る要求は、例えば、既存の方針等のインベントリを提供する等、顧客、サービスもしくはシステムのために、または他の管理アクションのために方針を追加、削除、変更、またはそれ以外の場合修正する要求であってよい。
また、サービスプロバイダネットワーク102は、多様な構成では、タスクサービス702Fで構成される。タスクサービス702Fは、タスクパッケージを受け取り、タスクパッケージによって決定されるようにタスクを実行することを可能にするように構成される。タスクサービス702Fは、タスクを実行するために、インスタンス化された仮想マシンまたは仮想ホスト等のサービスプロバイダネットワーク102の任意のリソースを使用するように構成されてよい。タスクサービス702Fは、インスタンス化された仮想マシンまたは仮想ホストを、指定された要件に従って選択されたオペレーティングシステム及び/または選択された実行アプリケーションを使用し、動作するように構成してよい。
サービスプロバイダネットワーク102は、さらにその顧客のニーズに少なくとも部分的に基づいて他のサービス702Gを維持してよい。例えば、サービスプロバイダネットワーク102は、いくつかの構成ではプログラムコード及び/またはデータベースサービス(図7では不図示)を展開するための展開サービス702Bを維持してよい。データベースサービスは、クエリーを作成、維持、及びサービスプロバイダネットワーク102の中に記憶されたデータベース上で実行できるようにするために集合的に動作するコンピューティングリソースの集合体であってよい。例えば、サービスプロバイダネットワーク102の顧客または他のユーザは、適切に構成されたネットワークAPI呼出しを活用することによってデータベースサービスからデータベースを操作し、管理してよい。これは、同様に、顧客がデータベースで動作を維持し、潜在的に拡大縮小できるようにしてよい。他のサービスはオブジェクトレベルのアーカイブデータストレージサービス、及び他のサービスを管理する、監視する、他のサービスと対話する、または他のサービスをサポートするサービスを含む。また、サービスプロバイダネットワーク102は、他の構成では、本明細書に特に言及されていない他のサービスで構成される可能性もある。
本開示の実施形態は以下の条項を考慮し、説明できる。
1.装置であって、
プロセッサと、
前記プロセッサによって実行可能であり、実行時、前記装置に、
サービスプロバイダネットワークの中で公共ウェブサービスのアプリケーションプログラミングインタフェース(API)を公開させ、前記APIは前記サービスプロバイダネットワークで実行する仮想マシン(VM)インスタンスの中でコマンドを実行するための方法を含み、
前記VMインスタンスの中で前記コマンドを実行するための前記方法に対する呼出しを受け取らせ、
前記呼出しの受取りに応えて、前記コマンドを実行する要求を前記VMインスタンスで実行するソフトウェアエージェントに送信させ、前記ソフトウェアエージェントは前記要求に応えて前記VMインスタンスで前記コマンドを実行するように構成される
命令を非一過性コンピュータ可読記憶媒体に記憶された非一過性コンピュータ可読記憶媒体と、
を含む、前記装置。
2.前記公共ウェブサービスのAPIが前記VMインスタンスの中で実行できるコマンドを識別するデータを要求するための方法をさらに含み、前記非一過性コンピュータ可読記憶媒体が、
前記VMインスタンスの中で実行できる前記コマンドを識別するデータを要求するための前記方法に対する呼出しを受け取り、
前記VMインスタンスの中で実行できる前記コマンドを識別するデータを要求するための前記方法に対する前記呼出しの受取りに応えて、前記VMインスタンスの中で実行できる前記コマンドを識別するデータに対する要求を前記VMインスタンスで実行する前記ソフトウェアエージェントに送信させる
前記非一過性コンピュータ可読媒体に記憶された命令をさらに有する、条項1に記載の装置。
3.前記公共ウェブサービスAPIが、前記VMインスタンスの中で実行できるコマンドを識別するデータを要求するための方法をさらに含み、前記非一過性コンピュータ可読記憶媒体が、
前記VMインスタンスの中で実行できる前記コマンドを識別するデータに対する要求を前記VMインスタンスで実行する前記ソフトウェアエージェントに送信させ、
前記VMインスタンスの中で実行できる前記コマンドを識別する前記データを受け取り、
前記VMインスタンスの中で実行できる前記コマンドを識別する前記データをキャッシュに記憶し、
前記キャッシュに記憶された、前記VMインスタンスの中で実行できる前記コマンドを識別する前記データを使用し、前記VMインスタンスの中で実行できるコマンドを識別するデータを要求するための前記方法に対する呼出しに応える
ために、前記非一過性コンピュータ可読記憶媒体に記憶された追加の命令を有する、条項1に記載の装置。
4.前記非一過性コンピュータ可読記憶媒体が、前記VMインスタンスの中で前記コマンドを実行するためのUIコントロールを表示するように構成されたユーザインタフェース(UI)を生成するために、前記VMインスタンスの中で実行できる前記コマンドを識別する前記データを活用するために前記非一過性記憶媒体に記憶された追加の命令を有する、条項3に記載の装置。
5.前記公共ウェブサービスAPIはさらに、前記VMインスタンスの中での前記コマンドの前記実行のステータスを入手するための方法をさらに含み、前記非一過性コンピュータ可読記憶媒体は、
前記VMインスタンスの中での前記コマンドの前記実行のステータスを入手するための前記方法に対する呼出しを受け取り、
前記VMインスタンスの中で前記コマンドの前記実行のステータスを入手するための前記方法に対する前記呼出しの受取りに応えて、前記VMインスタンスの中での前記コマンドの前記実行の前記ステータスに対する要求を、前記VMで実行する前記ソフトウェアエージェントに送信させる、
ために、前記非一過性コンピュータ可読記憶媒体に記憶された追加の命令を有する、条項1に記載の装置。
6.前記非一過性コンピュータ可読記憶媒体が、前記コマンドを実行する前記要求を前記VMインスタンスで実行する前記ソフトウェアエージェントに送信させる前に、前記コマンドを実行するための前記方法に対する前記呼出しと関連付けられたユーザが前記コマンドを実行する権限を与えられていると判断するために、前記非一過性コンピュータ可読媒体に記憶された追加の命令を有する、条項1に記載の装置。
7.前記コマンドが前記VMインスタンスでプロセスを再開するためのコマンド、キャッシュをフラッシュするためのコマンド、バックアップ動作を実行するためのコマンド、前記VMインスタンスを構成するためのコマンド、または前記VMインスタンスで試験を実行するためのコマンドの1つまたは複数を含む、条項1に記載の装置。
8.コンピュータ実行可能命令を非一過性コンピュータ可読記憶媒体に記憶させた前記非一過性コンピュータ可読記憶媒体であって、コンピュータ実行可能命令は、コンピュータによる実行時に、前記コンピュータに、
仮想マシン(VM)インスタンスの中でコマンドを実行するための方法を含む公共ウェブサービスのアプリケーションプログラミングインタフェース(API)を公開させ、
前記VMインスタンスの中で前記コマンドを実行するための前記方法に対する呼出しを受け取らせ、
前記コマンドを実行する要求を前記VMインスタンスで実行するソフトウェア構成要素に送信させ、前記ソフトウェア構成要素が前記要求の受取りに応えて前記VMインスタンスで前記コマンドを実行するように構成される
前記非一過性コンピュータ可読媒体。
9.前記VMインスタンスでの前記コマンドの前記実行を記録するために前記非一過性コンピュータ可読記憶媒体に記憶された追加のコンピュータ実行可能命令を有する、条項8に記載の非一過性コンピュータ可読記憶媒体。
10.前記公共ウェブサービスAPIが、前記VMインスタンスの中で実行できるコマンドを識別するデータを要求するための方法をさらに含む、条項8に記載の非一過性コンピュータ可読記憶媒体。
11.前記VMインスタンスの中で実行できる前記コマンドを識別するデータを要求するための前記方法に対する呼出しを受け取り、
前記VMインスタンスの中で実行できる前記コマンドを識別する前記データに対する要求を、前記VMインスタンスで実行する前記ソフトウェア構成要素に送信させる
ために、前記非一過性コンピュータ可読記憶媒体に記憶された追加のコンピュータ実行可能命令を有する、条項10に記載の非一過性コンピュータ可読記憶媒体。
12.前記VMインスタンスの中で実行できる前記コマンドを識別する前記データに対する要求を、前記VMインスタンスで実行する前記ソフトウェア構成要素に送信させ、
前記VMインスタンスの中で実行できる前記コマンドを識別する前記データを受け取り、
前記VMインスタンスの中で実行できる前記コマンドを識別する前記データをキャッシュに記憶し、
前記VMインスタンスの中で実行できるコマンドを識別するデータを要求するための前記方法に対する呼出しに応えるために、前記キャッシュに記憶される、前記VMインスタンスの中で実行できる前記コマンドを識別する前記データを活用する
ために、前記非一過性コンピュータ可読記憶媒体に記憶された追加のコンピュータ実行可能命令を有する、条項10に記載の非一過性コンピュータ可読記憶媒体。
13.前記VMインスタンスの中で実行できる前記コマンドを識別する前記データを活用して、前記VMインスタンスの中で前記コマンドを実行するためのUIコントロールを表示するように構成されたユーザインタフェース(UI)を生成するために、前記銭非一過性コンピュータ可読記憶媒体に記憶された追加のコンピュータ実行可能命令を有する、条項10に記載の非一過性コンピュータ可読記憶媒体。
14.前記公共ウェブサービスAPIが、前記VMインスタンスの中での前記コマンドの前記実行のステータスを入手するための方法をさらに含む、条項8に記載の非一過性コンピュータ可読記憶媒体。
15.前記VMインスタンスの中での前記コマンドの前記実行のステータスを入手するための前記方法に対する呼出しを受け取り、
前記VMインスタンスの中での前記コマンドの前記実行の前記ステータスに対する要求を、前記VMインスタンスで実行する前記ソフトウェア構成要素に送信させる
ために、前記非一過性コンピュータ可読記憶媒体に記憶された追加のコンピュータ実行可能命令を有する、条項14に記載の非一過性コンピュータ可読記憶媒体。
16.仮想マシン(VM)インスタンスの中でコマンドを実行するためのコンピュータ実装方法であって、
サービスプロバイダネットワークの中でアプリケーションプログラミングインタフェース(API)を公に公開することであって、前記APIが前記サービスプロバイダネットワークの中で実行する仮想マシン(VM)インスタンスの中でコマンドを実行するための方法を備える、APIを公に公開することと、
前記VMインスタンスの中で前記コマンドを実行するための前記方法に対する呼出しを受け取ることと、
前記コマンドを実行する要求を、前記VMインスタンスで実行するソフトウェア構成要素に送信させることであって、前記ソフトウェア構成要素が前記要求の受取りに応えて前記VMインスタンスで前記コマンドを実行するように構成される、送信させることと、
を含む、前記コンピュータ実装方法。
17.前記APIが、前記VMインスタンスの中で実行できるコマンドを識別するデータを要求するための方法をさらに含む、条項15に記載のコンピュータ実装方法。
18.前記APIが、前記VMインスタンスの中での前記コマンドの前記実行のステータスを入手するための方法をさらに含む、条項15に記載のコンピュータ実装方法。
19.前記コマンドを実行する前記要求を、前記VMインスタンスで実行する前記ソフトウェア構成要素に送信させる前に、前記コマンドを実行するための前記方法に対する前記呼出しと関連付けられたユーザが前記コマンドを実行する権限を与えられていると判断することをさらに含む、条項15に記載のコンピュータ実装方法。
20.前記コマンドが、前記VMインスタンスでプロセスを再開するためのコマンド、キャッシュをフラッシュするためのコマンド、バックアップ動作を実行するためのコマンド、前記VMインスタンスを構成するためのコマンド、または前記VMインスタンスで試験を実行するためのコマンドの1つまたは複数を備える、条項15に記載のコンピュータ実装方法。
図8は、上述された機能性を実装するためのプログラム構成要素を実行できるコンピュータ800のための例のコンピュータアーキテクチャを示す。図8に示されるコンピュータアーキテクチャは、従来のサーバコンピュータ、ワークステーション、デスクトップコンピュータ、ラップトップ、タブレット、ネットワークアプライアンス、電子ブックリーダー、スマートフォンまたは他のコンピューティング装置を示し、本明細書に提示されるソフトウェア構成要素のいずれかを実行するために活用されてよい。
コンピュータ800は、システムバスまたは他の電気通信経路を介して多数の構成要素または装置が接続されてよいプリント基板であるベースボード802、つまり「マザーボード」を含む。1つの例示的な構成では、1つまたは複数の中央演算処理装置(「CPU」)804がチップセット806と連動して動作する。CPU804は、コンピュータ800の動作に必要な算術演算及び論理演算を実行する標準的なプログラム可能プロセッサであってよい。
CPU804は、これらの状態を区別し、変更するスイッチング素子の操作を通してある離散した物理状態から次の離散した物理状態に遷移することによって演算を実行する。スイッチング素子は概して、フリップフロップ等の2つのバイナリ状態の1つを維持する電子回路、及び論理ゲート等の1つまたは複数の他のスイッチング素子の状態の論理的な組合せに基づいて出力状態を提供する電子回路を含んでよい。これらの基本的なスイッチング素子は、レジスタ、加算器−減算器、演算論理ユニット、浮動小数点ユニット等を含んだより複雑な論理回路を作成するために結合されてよい。
チップセット806は、CPU804と、ベースボード802上の構成要素及び装置の残りとの間にインタフェースを提供する。チップセット806は、コンピュータ800でメインメモリとして使用されるRAM808にインタフェースを提供してよい。チップセット806はさらに、コンピュータ800を起動するため、ならびに多様な構成要素及び装置の間で情報を転送するために役立つ基本ルーチンを記憶するための、読出し専用メモリ(「ROM」)810または不揮発性RAM(「NVRAM」)等のコンピュータ可読記憶媒体にインタフェースを提供してよい。また、ROM810またはNVRAMは、本明細書に説明される構成に従ってコンピュータ800の動作に必要な他のソフトウェア構成要素を記憶してもよい。
コンピュータ800は、ネットワーク606等のネットワークを通してリモートコンピューティング装置及びコンピュータシステムに対する論理接続を使用し、ネットワーク化された環境で動作してよい。チップセット806は、ギガビットイーサネットアダプタ等のNIC812を通してネットワーク接続性を提供するための機能性を含んでよい。NIC812はネットワーク606を介して他のコンピューティング装置にコンピュータ800を接続できる。複数のNIC812はコンピュータ800に存在し、コンピュータを他のタイプのネットワーク及びリモートコンピュータシステムに接続してよいことが理解されるべきである。
コンピュータ800は、不揮発性記憶をコンピュータに提供する大量記憶装置818に接続されてよい。大量記憶装置818は、本明細書でより詳細に説明されたオペレーティングシステム820、プログラム822及びデータを記憶してよい。大量記憶装置818は、チップセット806に接続されたストレージコントローラ814を通してコンピュータ800に接続されてよい。大量記憶装置818は、1つまたは複数の物理記憶ユニットから成り立ってよい。ストレージコントローラ814は、シリアルアタッチドSCSI(「SAS」)インタフェース、シリアルATA(「SATA」)インタフェース、ファイバチャネル(「FC」)インタフェース、またはコンピュータと物理記憶装置との間で物理的にデータを接続し、転送するための他のタイプのインタフェースを通して物理記憶装置と連動してよい。
コンピュータ800は、物理記憶装置の物理状態を、記憶されている情報を反映するために変換することによって大量記憶装置818でデータを記憶してよい。物理状態の特定の変形は、本明細書の異なる実施態様で、多様な要因に依存してよい。係る要因の例は、大量記憶装置818が一次記憶または二次記憶等として特徴付けられるかどうかに関わりなく、物理記憶装置を実装するために使用される技術を含むことがあるが、これに限定されるものではない。
例えば、コンピュータ800は、磁気ディスク駆動装置の中の特定の場所の磁気特性、光記憶装置の特定の場所の反射特性もしくは屈折特性、または特定のコンデンサ、トランジスタ、もしくはソリッドステート記憶装置の他の離散構成要素の電気特性を改変するためにストレージコントローラ814を通して命令を発行することによって大量記憶装置818に情報を記憶してよい。物理媒体の他の変形は、本明細書を容易にするためだけに提供される上述の例により、本発明の範囲及び精神から逸脱することなく可能である。コンピュータ800は、物理記憶装置の中の1つまたは複数の特定の場所の物理的な状態または特性を検出することによって大量記憶装置818から情報をさらに読み取ってよい。
上述された大量記憶装置818に加えて、コンピュータ800は、プログラムモジュール、データ構造、または他のデータ等の情報を記憶し、取り出すために他のコンピュータ可読記憶媒体にアクセスできてよい。コンピュータ可読記憶媒体がデータの非一過性記憶を提供し、コンピュータ800によってアクセス可能であってよい任意の利用可能な媒体であることが当業者によって理解されるべきである。
一例として及び制限ではなく、コンピュータ可読記憶媒体は任意の方法または技術で実装される揮発性及び不揮発性の、取外し可能な媒体及び取外しできない媒体を含んでよい。コンピュータ可読記憶媒体は、RAM、ROM、消去可能ROM(「EPROM」)、電気的消去可能ROM(「EEPROM」)、フラッシュメモリ、または他のソリッドステートメモリ技術、コンパクトディスクROM(「CD−ROM」)、デジタル多用途ディスク(「DVD」)、高解像度DVD(「HD−DVD」)、BLU−RAY、または他の光学式記憶、磁気カセット、磁気テープ、磁気ディスク記憶装置もしくは他の磁気記憶装置、または非一過性式で所望される情報を記憶するために使用できる他の媒体を含むが、これに限定されない。
上記に簡略に言及されたように、大量記憶装置818は、コンピュータ800の動作を制御するために活用されるオペレーティングシステム820を記憶してよい。1つの構成によると、オペレーティングシステムはLINUXオペレーティングシステムを含む。別の構成によると、オペレーティングシステムはMICROSOFT CorporationからのWINDOWS(登録商標)SERVERオペレーティングシステムを含む。追加の構成によると、オペレーティングシステムはUNIXオペレーティングシステムまたはその変形の1つを含んでよい。他のオペレーティングシステムも活用されてよいことが理解されるべきである。大量記憶装置818は、コンピュータ800によって活用される他のシステムまたはアプリケーションのプログラム及びデータを記憶してよい。
1つの構成では、大量記憶装置818または他のコンピュータ可読記憶媒体は、コンピュータ800にロードされるときに、コンピュータを汎用コンピューティングシステムから、本明細書に説明される構成を実装できる特殊目的コンピュータに変形するコンピュータ実行可能命令で符号化される。これらのコンピュータ実行可能命令は、上述されたように、CPU804が状態の間でどのように遷移するのかを指定することによってコンピュータ800を変形する。1つの構成によると、コンピュータ800は、コンピュータ800によって実行されるときに、図2〜図4に関して上述された多様なプロセスを実行するコンピュータ実行可能命令を記憶するコンピュータ可読記憶媒体にアクセスできる。また、コンピュータ800は本明細書に説明される他のコンピュータ実装動作のいずれかを実行するためのコンピュータ可読記憶媒体を含む可能性もある。
また、コンピュータ800は、キーボード、マウス、タッチパッド、タッチスクリーン、電子スタイラス等のいくつかの入力装置または他のタイプの入力装置からの入力を受け取り、処理するための1つまたは複数の入出力コントローラ816を含んでもよい。同様に、入出力コントローラ816は、コンピュータモニタ、フラットパネルディスプレイ等のディスプレイ、デジタルプロジェクタ、プリンタ、プロッタ、または他のタイプの出力装置に出力を提供してよい。コンピュータ800は図8に示される構成要素のすべてを含まないことがある、図8に明示的に示されない他の構成要素を含むことがある、または図8に示されるアーキテクチャとは完全に異なったアーキテクチャを活用することがあることが理解される。
上述に基づいて、VMインスタンスの中でコマンドを実行するための技術が本明細書に提示されていることが理解されるべきである。さらに、本明細書に提示される主題はコンピュータの構造上の特徴、方法論的な行為、及びコンピュータ可読媒体に特有の言語で説明されてきたが、添付の特許請求の範囲に定義される本発明は、必ずしも本明細書に説明される特定の特徴、行為、または媒体に制限されないことが理解されるべきである。むしろ、特定の特徴、行為、及び媒体は特許請求の範囲を実施する例の形として開示される。
上述された主題は実例としてのみ提供され、制限的として解釈されるべきではない。さらに、主張される主題は本開示のいずれかの部分で留意されるあらゆるまたはすべての不利な点を解決する実施態様に制限されない。多様な修正及び変更は、示され、説明される例の構成及び応用に従うことなく、ならびに以下の特許請求の範囲に述べられる本発明の真の精神及び範囲から逸脱することなく、本明細書に説明される主題に加えられてよい。

Claims (15)

  1. システムであって、
    1つまたは複数のコンピュータシステムであって、前記1つまたは複数のコンピュータシステムの各コンピュータシステムが1つまたは複数のメモリに接続された1つまたは複数のプロセッサを含み、前記1つまたは複数のメモリが、前記1つまたは複数のプロセッサによって実行されるときに、前記システムに、
    仮想マシン(VM)インスタンスの中でコマンドを実行するように構成された実行可能コードを備える公共ウェブサービスのアプリケーションプログラミングインタフェース(API)を公開させ、
    前記VMインスタンスの中で前記コマンドを実行するための呼出しを受け取らせ、
    前記コマンドを実行する要求を、前記VMインスタンスで実行するソフトウェア構成要素に送信させ、前記ソフトウェア構成要素が、前記要求の受取りに応えて前記VMインスタンスで前記コマンドを実行するように構成され、
    前記1つまたは複数のメモリに記憶されたコンピュータ実行可能命令を有する、1つまたは複数のコンピュータシステム
    を備える、前記システム。
  2. 前記1つまたは複数のメモリが、前記VMインスタンスでの前記コマンドの前記実行を記録するために、前記1つまたは複数のメモリに記憶された追加のコンピュータ実行可能命令を有する、請求項1に記載のシステム。
  3. 前記公共ウェブサービスAPIが、前記VMインスタンスの中で実行できるコマンドを識別するデータを要求するように構成された実行可能コードをさらに備える、請求項1に記載のシステム。
  4. 前記1つまたは複数のメモリが、
    前記VMインスタンスの中で実行できる前記コマンドを識別するデータを要求する呼出しを受け取り、
    前記VMインスタンスの中で実行できる前記コマンドを識別する前記データに対する要求を、前記VMインスタンスで実行する前記ソフトウェア構成要素に送信させる
    ために、前記1つまたは複数のメモリに記憶された追加のコンピュータ実行可能命令を有する、請求項2に記載のシステム。
  5. 前記1つまたは複数のメモリが、
    前記VMインスタンスの中で実行できる前記コマンドを識別する前記データに対する要求を、前記VMインスタンスで実行する前記ソフトウェア構成要素に送信させ、
    前記VMインスタンスの中で実行できる前記コマンドを識別する前記データを受け取り、
    前記VMインスタンスの中で実行できる前記コマンドを識別する前記データをキャッシュに記憶し、
    前記VMインスタンスの中で実行できる前記コマンドを識別するデータを要求する呼出しに応えるために、前記キャッシュに記憶される、前記VMインスタンスの中で実行できる前記コマンドを識別する前記データを活用する
    ために、前記1つまたは複数のメモリに記憶された追加のコンピュータ実行可能命令を有する、請求項3に記載のシステム。
  6. 前記1つまたは複数のメモリが、前記VMインスタンスの中で前記コマンドを実行するためのUIコントロールを表示するように構成されたユーザインタフェース(UI)を生成するために、前記VMインスタンスの中で実行できる前記コマンドを識別する前記データを活用するために、前記1つまたは複数のメモリに記憶された追加のコンピュータ実行可能命令を有する、請求項3に記載のシステム。
  7. 前記公共ウェブサービスAPIが、前記VMインスタンスの中での前記コマンドの前記実行のステータスを入手するように構成された実行可能コードをさらに備える、請求項1に記載のシステム。
  8. 前記1つまたは複数のメモリが、
    前記VMインスタンスの中での前記コマンドの前記実行のステータスを入手するために呼出しを受け取り、
    前記VMインスタンスの中での前記コマンドの前記実行の前記ステータスに対する要求を、前記VMインスタンスで実行する前記ソフトウェア構成要素に送信させる
    ために、前記1つまたは複数のメモリに記憶された追加のコンピュータ実行可能命令を有する、請求項7に記載のシステム。
  9. 前記1つまたは複数のメモリが、前記コマンドを実行する前記要求を前記VMインスタンスで実行する前記ソフトウェア構成要素に送信させる前に、前記呼出しと関連付けられたユーザが前記コマンドを実行する権限を与えられていると判断するために、前記1つまたは複数のメモリに記憶されたコンピュータ実行可能命令をさらに有する、請求項8に記載のシステム。
  10. 前記コマンドが、前記VMインスタンスでプロセスを再開するためのコマンド、キャッシュをフラッシュするためのコマンド、バックアップ動作を実行するためのコマンド、前記VMインスタンスを構成するためのコマンド、または前記VMインスタンスで試験を実行するためのコマンドの1つまたは複数を備える、請求項8に記載のシステム。
  11. 仮想マシン(VM)インスタンスの中でコマンドを実行するためのコンピュータ実装方法であって、
    サービスプロバイダネットワークの中でアプリケーションプログラミングインタフェース(API)を公に公開することであって、前記APIが前記サービスプロバイダネットワークで実行する仮想マシン(VM)インスタンスの中でコマンドを実行するための方法を備える、APIを公に公開することと、
    前記VMインスタンスの中で前記コマンドを実行するための前記方法に対する呼出しを受け取ることと、
    前記コマンドを実行する要求を、前記VMインスタンスで実行するソフトウェア構成要素に送信させることであって、前記ソフトウェア構成要素が前記要求の受取りに応えて前記VMインスタンスで前記コマンドを実行するように構成される、送信させることと、
    を含む、前記コンピュータ実装方法。
  12. 前記APIが、前記VMインタフェースの中で実行できるコマンドを識別するデータを要求するための方法をさらに備える、請求項11に記載のコンピュータ実装方法。
  13. 前記APIが、前記VMインスタンスの中での前記コマンドの前記実行のステータスを入手するための方法をさらに備える、請求項11に記載のコンピュータ実装方法。
  14. 前記コマンドを実行する前記要求を前記VMインスタンスで実行する前記ソフトウェア構成要素に送信させる前に、前記コマンドを実行するための前記方法に対する前記呼出しと関連付けられたユーザが前記コマンドを実行する権限を与えられていると判断することをさらに含む、請求項11に記載のコンピュータ実装方法。
  15. 前記コマンドが、前記VMインスタンスでプロセスを再開するためのコマンド、キャッシュフラッシュするためのコマンド、バックアップ動作を実行するためのコマンド、前記VMインスタンスを構成するためのコマンド、または前記VMインスタンスで試験を実行するためのコマンドの1つまたは複数を備える、請求項11に記載のコンピュータ実装方法。
JP2017547402A 2015-03-20 2016-03-16 仮想マシンインスタンスの中でのコマンドの実行 Active JP6564050B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/664,135 2015-03-20
US14/664,135 US9582298B2 (en) 2015-03-20 2015-03-20 Executing commands within virtual machine instances
PCT/US2016/022686 WO2016153881A1 (en) 2015-03-20 2016-03-16 Executing commands within virtual machine instances

Publications (3)

Publication Number Publication Date
JP2018517189A true JP2018517189A (ja) 2018-06-28
JP2018517189A5 JP2018517189A5 (ja) 2019-03-22
JP6564050B2 JP6564050B2 (ja) 2019-08-21

Family

ID=55702074

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017547402A Active JP6564050B2 (ja) 2015-03-20 2016-03-16 仮想マシンインスタンスの中でのコマンドの実行

Country Status (8)

Country Link
US (3) US9582298B2 (ja)
EP (1) EP3271819B1 (ja)
JP (1) JP6564050B2 (ja)
CN (1) CN107408064B (ja)
AU (1) AU2016235759B2 (ja)
CA (1) CA2978183C (ja)
SG (1) SG11201706848VA (ja)
WO (1) WO2016153881A1 (ja)

Families Citing this family (63)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7991910B2 (en) 2008-11-17 2011-08-02 Amazon Technologies, Inc. Updating routing information based on client location
US8028090B2 (en) 2008-11-17 2011-09-27 Amazon Technologies, Inc. Request routing utilizing client location information
US8606996B2 (en) 2008-03-31 2013-12-10 Amazon Technologies, Inc. Cache optimization
US8321568B2 (en) 2008-03-31 2012-11-27 Amazon Technologies, Inc. Content management
US8447831B1 (en) 2008-03-31 2013-05-21 Amazon Technologies, Inc. Incentive driven content delivery
US7970820B1 (en) 2008-03-31 2011-06-28 Amazon Technologies, Inc. Locality based content distribution
US8601090B1 (en) 2008-03-31 2013-12-03 Amazon Technologies, Inc. Network resource identification
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
US8073940B1 (en) 2008-11-17 2011-12-06 Amazon Technologies, Inc. Managing content delivery network service providers
US8688837B1 (en) 2009-03-27 2014-04-01 Amazon Technologies, Inc. Dynamically translating resource identifiers for request routing using popularity information
US8756341B1 (en) 2009-03-27 2014-06-17 Amazon Technologies, Inc. Request routing utilizing popularity information
US8412823B1 (en) 2009-03-27 2013-04-02 Amazon Technologies, Inc. Managing tracking information entries in resource cache components
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
US8433771B1 (en) 2009-10-02 2013-04-30 Amazon Technologies, Inc. Distribution network with forward resource propagation
US9495338B1 (en) 2010-01-28 2016-11-15 Amazon Technologies, Inc. Content distribution network
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
US10958501B1 (en) 2010-09-28 2021-03-23 Amazon Technologies, Inc. Request routing information based on client IP groupings
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
US9323577B2 (en) 2012-09-20 2016-04-26 Amazon Technologies, Inc. Automated profiling of resource usage
US10205698B1 (en) 2012-12-19 2019-02-12 Amazon Technologies, Inc. Source-dependent address resolution
US9294391B1 (en) 2013-06-04 2016-03-22 Amazon Technologies, Inc. Managing network computing components utilizing request routing
US10097448B1 (en) 2014-12-18 2018-10-09 Amazon Technologies, Inc. Routing mode and point-of-presence selection service
US9582298B2 (en) 2015-03-20 2017-02-28 Amazon Technologies, Inc. Executing commands within virtual machine instances
US10225326B1 (en) 2015-03-23 2019-03-05 Amazon Technologies, Inc. Point of presence based data uploading
US9819567B1 (en) 2015-03-30 2017-11-14 Amazon Technologies, Inc. Traffic surge management for points of presence
US9832141B1 (en) 2015-05-13 2017-11-28 Amazon Technologies, Inc. Routing based request correlation
US9774619B1 (en) 2015-09-24 2017-09-26 Amazon Technologies, Inc. Mitigating network attacks
US10270878B1 (en) 2015-11-10 2019-04-23 Amazon Technologies, Inc. Routing for origin-facing points of presence
US10257307B1 (en) 2015-12-11 2019-04-09 Amazon Technologies, Inc. Reserved cache space in content delivery networks
US10348639B2 (en) 2015-12-18 2019-07-09 Amazon Technologies, Inc. Use of virtual endpoints to improve data transmission rates
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
US9992086B1 (en) 2016-08-23 2018-06-05 Amazon Technologies, Inc. External health checking of virtual private cloud network environments
US10033691B1 (en) * 2016-08-24 2018-07-24 Amazon Technologies, Inc. Adaptive resolution of domain name requests in virtual private cloud network environments
US10616250B2 (en) 2016-10-05 2020-04-07 Amazon Technologies, Inc. Network addresses with encoded DNS-level information
US10831549B1 (en) 2016-12-27 2020-11-10 Amazon Technologies, Inc. Multi-region request-driven code execution system
US10372499B1 (en) 2016-12-27 2019-08-06 Amazon Technologies, Inc. Efficient region selection system for executing request-driven code
US10938884B1 (en) 2017-01-30 2021-03-02 Amazon Technologies, Inc. Origin server cloaking using virtual private cloud network environments
US10503613B1 (en) 2017-04-21 2019-12-10 Amazon Technologies, Inc. Efficient serving of resources during server unavailability
CN107291809B (zh) * 2017-05-17 2019-09-03 四川新网银行股份有限公司 一种开放平台的文档管理方法及装置
US11075987B1 (en) 2017-06-12 2021-07-27 Amazon Technologies, Inc. Load estimating content delivery network
US10447648B2 (en) 2017-06-19 2019-10-15 Amazon Technologies, Inc. Assignment of a POP to a DNS resolver based on volume of communications over a link between client devices and the POP
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
WO2019232725A1 (en) * 2018-06-06 2019-12-12 Huawei Technologies Co., Ltd. System and method for controlling management operations and shared memory space for multi-tenant cache service in cloud computing
US10996973B2 (en) 2018-11-13 2021-05-04 International Business Machines Corporation Executing commands in a virtual environment
US10862852B1 (en) * 2018-11-16 2020-12-08 Amazon Technologies, Inc. Resolution of domain name requests in heterogeneous network environments
US11025747B1 (en) 2018-12-12 2021-06-01 Amazon Technologies, Inc. Content request pattern-based routing system
US11537424B2 (en) * 2019-05-10 2022-12-27 Kontain Inc. Scalable and secure containers
CN111158776B (zh) * 2019-12-12 2023-12-26 杭州安恒信息技术股份有限公司 一种Web应用防护系统平滑重启方法
US11588801B1 (en) * 2020-03-12 2023-02-21 Amazon Technologies, Inc. Application-centric validation for electronic resources
US11681550B2 (en) * 2020-09-28 2023-06-20 Western Digital Technologies, Inc. Command management using allocated command identifier pools
KR102491362B1 (ko) * 2021-02-01 2023-01-26 주식회사 드림에이스 차량 가상화 구조 기반의 디바이스 제어 방법 및 장치
IL305657A (en) * 2021-03-04 2023-11-01 Profisea Labs Ltd A system and method for managing the life cycle of temporary resources
US11422927B1 (en) 2021-06-04 2022-08-23 Bank Of America Corporation Application resiliency via context aware scriptless auditing equilibrium
CN117271169A (zh) * 2023-11-03 2023-12-22 广东保伦电子股份有限公司 一种面向容器调用宿主机命令的通讯方法

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0612347A (ja) * 1992-06-25 1994-01-21 Hitachi Ltd 分散コンピュータシステム上での遠隔操作コマンド実行制御方式
JPH11312190A (ja) * 1998-04-28 1999-11-09 Hitachi Ltd 商品情報表示方法
US6865679B1 (en) * 1999-10-01 2005-03-08 International Business Machines Corporation Method, system, and program for accessing a system without using a provided login facility
US20070094367A1 (en) * 2005-10-19 2007-04-26 Esfahany Kouros H Object-based virtual infrastructure management
JP2009217497A (ja) * 2008-03-10 2009-09-24 Oki Electric Ind Co Ltd 汎用サーバおよびそのコマンドガード方法
JP2010026706A (ja) * 2008-07-17 2010-02-04 Hitachi Software Eng Co Ltd プログラムの遠隔テスト実行システム
JP2010122855A (ja) * 2008-11-19 2010-06-03 Oki Networks Co Ltd オペレーション装置及びオペレーション方法
WO2014116619A1 (en) * 2013-01-22 2014-07-31 Amazon Technologies, Inc. Instance host configuration

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7962545B2 (en) * 2002-12-27 2011-06-14 Intel Corporation Dynamic service registry for virtual machines
US7536370B2 (en) * 2004-06-24 2009-05-19 Sun Microsystems, Inc. Inferential diagnosing engines for grid-based computing systems
US7747755B2 (en) * 2005-09-30 2010-06-29 Sap Ag Method and apparatus for session management in an enterprise java bean session bean
US20070174429A1 (en) * 2006-01-24 2007-07-26 Citrix Systems, Inc. Methods and servers for establishing a connection between a client system and a virtual machine hosting a requested computing environment
US7934222B2 (en) * 2006-06-06 2011-04-26 International Business Machines Corporation Adapting command line interface messaging in a virtual operating system environment
US8612971B1 (en) * 2006-10-17 2013-12-17 Manageiq, Inc. Automatic optimization for virtual systems
US8949825B1 (en) * 2006-10-17 2015-02-03 Manageiq, Inc. Enforcement of compliance policies in managed virtual systems
US8280431B2 (en) * 2006-12-29 2012-10-02 Intel Corporation Apparatus for end-user transparent utilization of computational, storage, and network capacity of mobile devices, and associated methods
US8650570B2 (en) * 2008-06-02 2014-02-11 Microsoft Corporation Method of assigning instructions in a process to a plurality of scheduler instances based on the instruction, in which each scheduler instance is allocated a set of negoitaited processor resources
US9569240B2 (en) * 2009-07-21 2017-02-14 Adobe Systems Incorporated Method and system to provision and manage a computing application hosted by a virtual instance of a machine
US20110126193A1 (en) * 2009-11-20 2011-05-26 Dell Products, Lp System and Method for Imaging and Provisioning of Information Handling System
US8607054B2 (en) * 2010-10-15 2013-12-10 Microsoft Corporation Remote access to hosted virtual machines by enterprise users
US8793323B2 (en) * 2010-11-16 2014-07-29 Successfactors, Inc. System and method for interoperability
US20120174096A1 (en) 2010-12-30 2012-07-05 Matthew Conover Systems and methods to load applications and application data into a virtual machine using hypervisor-attached volumes
CN103034453B (zh) * 2011-09-30 2015-11-25 国际商业机器公司 管理虚拟机实例中预安装应用的持久数据的方法和装置
US9143467B2 (en) * 2011-10-25 2015-09-22 Mellanox Technologies Ltd. Network interface controller with circular receive buffer
US20130283263A1 (en) 2012-04-19 2013-10-24 Dincloud, Inc. System and method for managing resources in a virtual machine environment
CN102855138B (zh) * 2012-07-20 2015-12-09 腾讯科技(深圳)有限公司 一种api的拦截方法、装置及移动终端
US9559896B2 (en) * 2013-07-08 2017-01-31 Cisco Technology, Inc. Network-assisted configuration and programming of gateways in a network environment
US20150074659A1 (en) * 2013-09-06 2015-03-12 Vmware, Inc. Methods and Apparatus to Perform Web-Based Installations and/or Upgrade Architectures for Enterprise Software
US10908937B2 (en) * 2013-11-11 2021-02-02 Amazon Technologies, Inc. Automatic directory join for virtual machine instances
US10747620B2 (en) * 2013-11-15 2020-08-18 Netapp, Inc. Network storage management at scale using service level objectives
US9519513B2 (en) * 2013-12-03 2016-12-13 Vmware, Inc. Methods and apparatus to automatically configure monitoring of a virtual machine
US9532103B2 (en) * 2013-12-16 2016-12-27 Vmware, Inc. Multi-user support for set top boxes and game consoles
CN103984589A (zh) * 2014-04-25 2014-08-13 北京大学 一种基于虚拟机实现计算机实验教学的上机环境建立方法
US20150332351A1 (en) * 2014-05-16 2015-11-19 Centurylink Intellectual Property Llc System and Method for Service Provider Cloud Services - Cloud Marketplace
US20160216988A1 (en) * 2015-01-28 2016-07-28 Microsoft Technology Licensing, Llc Exposing storage entity consistency capability status
US9582298B2 (en) 2015-03-20 2017-02-28 Amazon Technologies, Inc. Executing commands within virtual machine instances

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0612347A (ja) * 1992-06-25 1994-01-21 Hitachi Ltd 分散コンピュータシステム上での遠隔操作コマンド実行制御方式
JPH11312190A (ja) * 1998-04-28 1999-11-09 Hitachi Ltd 商品情報表示方法
US6865679B1 (en) * 1999-10-01 2005-03-08 International Business Machines Corporation Method, system, and program for accessing a system without using a provided login facility
US20070094367A1 (en) * 2005-10-19 2007-04-26 Esfahany Kouros H Object-based virtual infrastructure management
JP2009217497A (ja) * 2008-03-10 2009-09-24 Oki Electric Ind Co Ltd 汎用サーバおよびそのコマンドガード方法
JP2010026706A (ja) * 2008-07-17 2010-02-04 Hitachi Software Eng Co Ltd プログラムの遠隔テスト実行システム
JP2010122855A (ja) * 2008-11-19 2010-06-03 Oki Networks Co Ltd オペレーション装置及びオペレーション方法
WO2014116619A1 (en) * 2013-01-22 2014-07-31 Amazon Technologies, Inc. Instance host configuration

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
倉敷 悟: "第2特集 Debianを使い倒せ! 第3章:cowbuilderではじめるお手軽sandbox", SOFTWAREDESIGN, vol. 通巻322号(発刊256号), JPN6018043912, 18 February 2012 (2012-02-18), JP, pages 72 - 73, ISSN: 0003914517 *
末安泰三: "特集1 編集部お薦め特選フリーソフト:SSHによるサービスをscpやsftpに限定できる rssh", 日経LINUX, vol. 第7巻,第1号(通巻64号), JPN6018043910, 8 January 2005 (2005-01-08), JP, pages 50, ISSN: 0003914515 *
矢口竜太郎: "AWSの新サービスが続々登場 ログ取得や災害対策を強化 仮想デスクトップサービスも提供開始", 日経SYSTEMS, vol. 第249号, JPN6018043908, 26 December 2013 (2013-12-26), JP, pages 12 - 13, ISSN: 0003914513 *
神崎俊郎: "知られざるメインフレームの真実 最終回:メインフレームの安定した運用性の確保", 月刊アスキードットテクノロジーズ, vol. 第16巻,第1号(通巻177号), JPN6018043911, 24 November 2010 (2010-11-24), JP, pages 89, ISSN: 0003914516 *
黒住幸光: "Jakarta活用指南 第25回:「Apache FtpServer」の使い方", JAVA WORLD, vol. 第9巻,第4号(通巻95号), JPN6018043909, 1 April 2005 (2005-04-01), JP, pages 144, ISSN: 0003914514 *

Also Published As

Publication number Publication date
US9582298B2 (en) 2017-02-28
CA2978183A1 (en) 2016-09-29
EP3271819A1 (en) 2018-01-24
US10768955B1 (en) 2020-09-08
CN107408064A (zh) 2017-11-28
EP3271819B1 (en) 2019-09-04
US10120703B2 (en) 2018-11-06
US20160274929A1 (en) 2016-09-22
WO2016153881A1 (en) 2016-09-29
CN107408064B (zh) 2020-10-30
JP6564050B2 (ja) 2019-08-21
SG11201706848VA (en) 2017-10-30
AU2016235759A1 (en) 2017-09-07
US20170192813A1 (en) 2017-07-06
AU2016235759B2 (en) 2018-11-01
CA2978183C (en) 2021-01-26

Similar Documents

Publication Publication Date Title
JP6564050B2 (ja) 仮想マシンインスタンスの中でのコマンドの実行
JP2018517189A5 (ja)
US11108655B2 (en) Automated application deployment in a managed services domain
US11290336B1 (en) Controlling permissions for remote management of computing resources
US10379838B1 (en) Update and rollback of code and API versions
JP5476487B2 (ja) クラウド・コンピューティング環境内における仮想インスタンスの起動
US11093289B2 (en) Provisioning disaster recovery resources across multiple different environments based on class of service
JP6291034B2 (ja) 仮想マシンインスタンスの、ユーザから影響を受けた配置
US9912759B2 (en) Dynamically generating solution stacks
US11032213B1 (en) Centralized management of computing resources across service provider networks
US10361995B2 (en) Management of clustered and replicated systems in dynamic computing environments
US10791021B1 (en) Storage and retrieval of parameters for infrastructure-as-code computing services
US10223218B2 (en) Disaster recovery of managed systems
US11113186B1 (en) Testing and publishing of resource handlers in a cloud environment
US10346373B1 (en) Merging and vending partial database schemas
US11442781B2 (en) Master image for deploying workloads in a heterogeneous computing environment
US10782952B1 (en) Generating machine images from software packages
US10419527B2 (en) Surgical corruption repair in large file systems
US11425140B1 (en) Secure and efficient cross-service sharing of subscriber data
Le et al. OpenStack
US10057365B1 (en) Asynchronous provision of resource status data
US10951473B1 (en) Asynchronous fleet configuration service
JP2024505417A (ja) クラスタ・リソース署名検証

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180926

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20181106

A524 Written submission of copy of amendment under article 19 pct

Free format text: JAPANESE INTERMEDIATE CODE: A524

Effective date: 20190205

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20190625

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190725

R150 Certificate of patent or registration of utility model

Ref document number: 6564050

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250