在 GCP 中,通过 SSH 连接到 VM 和使用 Cloud Shell 之间有什么区别?

In GCP, what is the difference between SSH'ing into a VM and using Cloud Shell?

我正在尝试在 GCP 上学习机器学习。一些 Qwiklabs 和教程从 Cloud Shell 开始,以设置 env 变量和安装 Python 包,而其他一些则从打开 SSH 终端进入 VM 开始,以执行这些初步步骤。

除了在第二种情况下需要先配置 VM 之外,我真的无法分辨这两种方法之间的区别。据推测,当您使用 Cloud Shell 时,无论如何都会在幕后为您配置某种 VM 实例。

那么这两种方法有何不同?

Cloud Shell 是一款旨在提供大量预配置工具的产品,这些工具会不断更新,并且可以快速启动,可从 UI 访问,并且免费。基本上,它是获得交互式 shell 的快速方法。您可以从 its documentation.

了解有关此环境的更多信息

还有 limits 到 Cloud Shell -- 您每周只能使用它 60 小时,如果闲置,您的会话将终止,并且只有 5GB 的存储空间。它也只是一个 f1-micro 实例,IIRC。因此,虽然它是为您提供的(而且是免费的!),但除了交互式 shell.

之外,它并没有什么用处

另一方面,通过 SSH 连接到 VM 会将您直接置于该 VM 上的终端中,就像您在任何特定主机上一样——您只有安装到该 VM 上的映像提供的任何工具(以及许多虚拟机非常简单,这取决于图像)。但是,您现在位于主机上的一个终端中,该终端可能正在执行您要使用的代码,并且它具有与您在该实例中配置的一样多的 CPU 和 RAM。

至于指南将您指向一个或另一个 - 这真的取决于他们,但我怀疑他们会将客户端/工具类型的工作指向云 shell(因为它很容易并且相当标准的环境,甚至可以是 scripted with tutorials),而他们可能会指出如何将生产中使用的必要软件安装到 "real" VM。