title: In GCP, what is the difference between SSH'ing into a VM and using Cloud Shell?
body: <p>I'm trying to learn ML on GCP. Some of the Qwiklabs and Tutorials start with Cloud Shell to setup things like env variables and install Python packages, while others start by opening an SSH terminal into a VM to do those preliminary steps. </p>
  
  <p>I can't really tell the difference between the two approaches, other than the fact that in the second case a VM needs to be provisioned first. Presumably, when you use Cloud Shell some sort of VM instance is being provisioned for you behind the scenes anyway. </p>
  
  <p>So how are the two approaches different? </p>