Well, there are few ways to do it. Look at the description to methods

Class Abstract.Test [ Abstract ]
{

/// Will return status with error, if the method not implemented
ClassMethod DoAction(pActionName) As %Status
{
  Quit $$$ERROR($$$GeneralError, "DoAction not implemented by " _ ..%ClassName(1))
}

/// Will throw an exception when method called, while not implemented 
ClassMethod DoCall(pActionName)
{
  Throw ##class(%Exception.General).%New("DoCall not implemented by " _ ..%ClassName(1))
}

/// Will not allow to compile descendants without implementing the method
ClassMethod AnotherAction(pActionName) As %Status [ CodeMode = objectgenerator ]
{
  If ('%class.Abstract) {
    Quit $$$ERROR($$$GeneralError, %method.Name _ " not implemented by " _ %classname)
  }
  Quit $$$OK
}

ClassMethod TestCall()
{
  Try {
    Set tSC = ..DoAction()
    If $$$ISERR(tSC) {
      Do $System.OBJ.DisplayError(tSC)
    }
    Do ..DoCall()
  }
  Catch ex {
    Write !,"Caught exception of type: ",ex.%ClassName(1)
    Write !,"Message: ",ex.DisplayString()
  }
}

}

AWS offers EC2, and it will be just virtual machines. And it will be possible to migrate any of your instances quite easy, if you would choose the same environment. If you have windows on your server, you can have Windows there as well. It's the easiest way. You would need to install the same version of the InterSystems platform you use, and repeat the configuration, copy necessary information and that's it. But for sure, could be some other options.

But AWS also suppose support for containers, this could be more difficult. And the best would be if you would use IRIS. I can help with this migration if you wish.

Yes, it’s not possible to edit BPL and some other resources which has their own UI editor with VSCode, yet. But, most of those kinds are classes in the end, and can be stored in source control system as classes, and you can edit them as classes, with no helpful UI, yes. There are a few limitations on implementing the current web editor to VSCode, mostly by security reasons, and I hope we’ll find a way how to solve it.

1) This is how ethernet works, if your ethernet cable have not connected, no connection and no IP address there. Sharing network over USB, as I know works fine on macOS, but not sure how to configure it for Windows. With macOS, it's possible to connect RaspberryPI with MacBook with USB-c to USB-C cable, and it will power it and gives access to the network.

2) Upgrading Docker-based applications, it the topic right for Docker. It's not so easy to explain how to upgrade Container. Containers are stateless, and the process is just to stop the existing container and start a new one from the updated image.

You don't have to extract archives supposed to be used by Docker. They have to be used as-is with command

docker load -i iris_community_arm64-2021.1.0.215.0-docker.tar.gz

and this will load the image to docker, and then it can be used there

Yes, InterSystems, offers distributions of IRIS, which can be installed without Docker. And for sure, you can run as many instances of IRIS as you want, as soon as you have enough resources for it.

Yes, when you created a new class, it is just a file on your local disk. When you saved it, VSCode caught this action, and sent it to the server, and compiled it. But deleting this file, not a reason to do the same on the server.

You can delete class with Explorer view, there you may find any classes, that are stored on the server. By context menu you can Delete the item on the server, or Export it to get the local version. Icons close to class names, the same as in File Explorer view, may indicate the connection to your local file.