What is an Instance?
An instance is simply a virtual machine running in your project (virtual datacenter). Instance features are identical to those you can expect from a hypervisor-based Virtual Machine:
- An instance has one or multiple virtual CPUs and a certain amount of RAM.
- An instance runs a guest operating system inside - the guest operating system is coming from the image used during the instance creation.
- An instance has its own isolated networking.
- An instance may have a public IP assigned (it is called a floating ip), which makes it accessible from the public internet (don't forget about security - keeping the packages up to date and proper configuration of the security groups are essential)
Creating new instances
When creating a new instance, you will need to specify the following parameters:
- Instance name (if needed, you can always change it later). Note using unique names is not a requirement, but a good practice - for example, if several instances have the same name, then using command line tools you will not be able to refer to an instance by its name, and will have to use the ID.
- Choose the disk configuration. Default disk configuration uses root disk size specified in the flavor. If you need to customize it (for example, select larger root disk or choose disk type with different performance), choose Boot from Volume option.
Select an image. The image contains a guest operating system that will be running in your instance. This can be a Linux (like Ubuntu or CentOS), Windows, a custom image (the one you uploaded just for yourself) or a snapshot.
Select the flavor which defines size and performance of your instance.
Select the networks to connect your instances to, a security group and an SSH keypair.
Note: Instance billing begins from the time the instance is launched until the time it is terminated. A stopped instance is still billed at the same rate as a running one, since it still stored on a server with resources reserved. If you want to place an instance for long term storage and stop billing, use "Shelve" function. For more information, see the billing section.
Important: For Linux instances, the password is auto-generated (unlike Windows instances, where you will be given an opportunity to set the password during the instance configuration stage).Make sure you take note of this password as it cannot be retrieved once the information window is closed. For security reasons, password is not stored on the platform, and thus cannot be seen again.
Booting instance from a volume
Every flavor, besides virtual CPUs and RAM, also specifies amount of storage provisioned as the instance boot disk. This amount is usually sufficient for most instances, and more can be added as extra volumes when required.
However, there are cases when you may need to customize the instance boot disk. Most common example is using a large custom image, which does not fit the storage size defined in the flavor. Another example is a need to customize the boot disk performance and put it on a higher performance tier (see Volume types for more details). In these cases, bootable volumes should be used
To create an instance based on a bootable volume, you first need to create a bootable volume (you can do it via Create new volume button in the Volumes section. Once such volume exists, you can use it for an instance creation (instead of image).
If later on you delete an instance based on a boot volume, the volume not deleted with the instance and may be reused for another instance creation. Or, you can also delete it manually in the Volumes section of the portal.
Note that when you use a volume to boot your instance, an additional volume will be created (and billed as a regular volume). You will not be credited for the amount of unused disk space from the flavor.
Connecting to an instance
Few moments after your instance enters an active state, you can access your instance and connect to it. Generally, there are three ways to connect to your instance:
If the instance has a floating ip assigned, you can connect to this instance directly from the Internet, using SSH (Linux), or RDP (Windows). Note that your security group must allow this connection to go through - TCP port 22 for SSH, and port 3389 for RDP. Also note that by default, Linux instances are configured not to accept password based authentication - so you must use SSH key pairs to connect (RDP will allow you to use a password).
When the instance does not have a floating IP assigned, you can SSH or RDP to another instance that does, and if that instance is connected to the same network as your target instance, you can connect though that intermediate host.
Finally, you can always access your instance through the web based console, with or without instance networking configured. Note however that you will need to provide a user password to log in - there is no way to login via the console with SSH keys.
Power On: When you start an instance, it is automatically powered on. You will know when an instance is powered on because the server status field will display "Active" in green. You can stop and start a virtual machine at any time later on.
Shutdown: This action will power off your instance. On a typical computer, this is the same as shutting down your computer through the Operating System's GUI or command line. Note that the applications that are running on a virtual machine are automatically shut down when the virtual machine is stopped. When the virtual machine is stopped, its status is "Shut off". If you set up load balancing for your cloud service, you should consider how stopping the virtual machine will affect your application.
Reboot: When you reboot a physical computer at your desk, it gracefully shuts down the system, and then boots it back up. An equivalent operation would be initiating a reboot from the inside of the guest OS.
Reset: This action will power cycle your instance with a hard reset. Usually, this would be done in a situation where the instance is frozen and graceful shutdown or reboot does not work.
Resize: This action will let you to choose a new flavor for your instance, larger or smaller. During the resize procedure, your instance will be shut down for a short amount of time and will be turned back on automatically with the new instance settings. At the end if the action, you will be able to either confirm the resize (making it permanent) or revert it (if the instance does not work with the new flavor as desired). Your billing will be adjusted according to the price associated with the new flavor chosen.
Snapshot: This action will create a new Instance snapshot, will store full content of the instance (not including additional volumes though). Use snapshots to back up the instance - for example, it could be taken prior to making any drastic change to a server configuration, so that if changes are unsuccessful, you have a version to revert back to.
Rebuild: This action lets you revert your server to its original image at any time. Note that all data on that instance will be lost (except the data stored in the attached volumes). The advantage of rebuilding instead of deleting and creating a new instance is that all the instance configurations will be preserved. Also, it will ensure that all the resources that were assigned to that instance (such as volumes, floating IPs, etc) are not released. Note that prices may need to be adjusted according to the operating system. For example, if you are using a Linux-based operating system and rebuilding to a Windows operating system, then the current pricing scheme for that instance will be modified accordingly.
Shelve: This action removes instance from the compute servers, and moves into the storage, without removing its data or configuration. This will also stop the instance normal billing - you will only be billed for the object storage space where the instance is located. When instance is shelved, you need to unshelve it before you can power it up again.
Delete: This action is irreversible and will delete your instance. The billing and monitoring for that particular instance will stop from that point in time. Use with care!