Key Concepts
Instance
An instance is virtualized hardware resources, typically meaning a virtual machine that incorporates computing power, memory, storage space, networking capabilities, and more. This virtualized infrastructure allows you to scale resources up or down as needed, significantly reducing the cost and maintenance burden of physical hardware.
Virtual Machine (VM) instances are used in cloud computing services to create virtual computers, and the cost of an instance is typically billed based on usage. Cloud computing services virtualize the hardware resources of physical servers to run multiple independent virtual machines simultaneously. This allows you to operate several virtual machines on one physical server, increasing efficiency and scalability.
Each VM instance is typically allocated resources such as CPU, memory, storage, and network interfaces. These resources are crucial factors determining the performance and capacity of the virtual machine and can be adjusted according to user needs. With this, you can select the most suitable instance type and size for their applications and services.
Resource | Description |
---|---|
CPU | Virtual CPUs are allocated to the instance, utilizing part or all of a physical CPU. |
Memory | Instances are given virtual memory, which operates using some or all of their physical memory. |
Storage | Each instance has virtual block storage, efficiently distributing the storage space of physical hard disk. |
Network interface | An instance is automatically connected to a virtual primary network interface, which is used for communication. |
Instance type
KakaoCloud offers instance types optimized for various use cases, supporting you in selecting the instance that best fits their workload and requirements. These instance types are designed to meet the computing and storage resource requirements.
Select a specific instance type when creating an instance, and costs are billed proportionally to the resources used. This enables efficient resource management, ensuring customers only pay for the resources they actually use.
The instance types of VM include general purpose, compute optimized, memory optimized, accelerated computing, video transcoding, etc.
Instance lifecycle
The instance lifecycle includes a series of processes from creation to return, and these processes can be checked through state values. These state values serve as indicators of the instance's current situation, encompassing various states such as running, returning, deleting, and more.
Understanding the state values and lifecycle is crucial for managing the entire lifecycle of an instance. Refer to the following table to comprehend the current state of your instance and determine necessary actions.
Instance lifecycle
Commands/Features
Feature name (CLI command) | Description | State after execution |
---|---|---|
Start (start ) | Starts the instance | Active |
Stop (stop ) | Stops the instance | Stopped |
Terminate (shelve ) | Terminates the instance | Shelved_offloaded |
Reboot (soft reboot ) | Restarts the instance | Active |
Hard reboot (hard reboot ) | Forcefully restarts the instance | Active |
Change instance type (resize ) | Opens a popup to change the instance type | - |
Delete (delete ) | Completely deletes the instance | - |
Instance state and billing
State | Description | Billed |
---|---|---|
Active | Running the instance | Yes |
Shelved_offloaded | Terminating the instance and returning resources allocated on the hypervisor | No |
Stopped | Stopping the instance while still allocating resources on the hypervisor | Yes |
Error | Encountering an error, making the instance unusable | No |
Building | Allocating resources on the hypervisor to create the instance | No |
Starting | Starting the configuration of the instance | No |
Scheduling | Progressing the scheduling of the instance | No |
Block_device_mapping | Configuring the instance's volume | No |
Networking | Configuring the instance's network | No |
Spawning | Creating the instance | No |
Rebooting | Beginning the instance restart | Yes |
Reboot_started | Restarting the instance | Yes |
Rebooting_hard | Force restart of the instance has begun | Yes |
Rebooting_started_hard | Force restarting the instance | Yes |
Shelving | Terminating the instance | Yes |
Unshelving | Restarting a terminated instance | No |
Powering-off | Stopping the instance | Yes |
Powering-on | Restarting a stopped instance | Yes |
Resize_prep | Preparing to change the instance type | No |
Resize_migrating | Migrating to the target instance type | No |
Resize_migrated | Completing preliminary migration to the target instance type | No |
Resize_finished | Completing the transition to a new instance type, moving to confirmation | No |
Resized | Finishing the instance type transition, deciding on completion or reversal | No |
Resize_confirm | Finalizing the instance type transition | No |
Resize_revert | Reverting to the original instance type after cancelling the transition | No |
Deleting | Work in progress to completely delete the instance | No |
Configure instance
VMs are the core of cloud services, offering scalability and elasticity, making them an excellent choice for handling volatile workloads. Dynamically start, stop, and delete virtual servers according to business needs.
When using a VM, selecting the instance type is necessary, as this determines the computing resources on which the instance will run. Adjust the scale of the VM's instance. This means you can choose to scale up or scale out according to various situations.
Scale-up means enhancing the performance by increasing the resources of an existing instance. This involves allocating additional CPU, memory, or storage within a single instance to boost processing power. On the other hand, scale-out means distributing the workload by adding new instances. This method increases the number of instances to distribute the load and improve availability. As several instances process tasks in parallel, performance and scalability can be enhanced.
Moreover, VM ensures secure, isolated operation of instances and provides a range of functions and components such as images, block storage, and security groups, all accessible through network settings for availability on the network. Typically, VM instances comprise the following elements:
- Instance type: The instance type determines the performance and size of the VM, including CPU, memory, network bandwidth, storage, etc. Each instance type is offered at different prices.
- Operating system: VM instances can run on various operating systems. KakaoCloud primarily supports Windows and Linux operating systems, including Unix and others.
- Storage type: VM instances can use various types of storage. Generally, they support Block Storage, Object Storage, File Storage, etc.
- Network: VM instances can be connected to the internet or an internal corporate network. Control network connections by configuring security group, virtual network, IP addresses, etc.
Image
VM uses images to create and provide instances. These images contain the necessary software components, such as operating systems and applications, required to start an instance. You can select an image containing the operating system and applications that suit your requirements and purposes to run an instance. The selected image follows the lifecycle of the instance, and costs are billed according to the instance's usage time.
When selecting an image, it is important to consider the operating system (OS) and applications. There are several image types available, so you should choose the one that best suits your needs. The images provided by KakaoCloud Virtual Machine are:
Type | Description |
---|---|
Default | - Images offered by KakaoCloud, including Linux and Windows images - Able to access and create instances using these default images - Able to easily build secure and reliable cloud instances |
My Image | - Customized images that users create for a specific project - Able to create a new instance using My image. |
Create a VM using either the default image provided by KakaoCloud or your own image.
Default images available
Category | Image |
---|---|
Linux | Ubuntu 20.04 |
Ubuntu 20.04 (GPU) | |
Ubuntu 22.04 | |
Ubuntu 22.04 (GPU) | |
Ubuntu | 24.04 |
CentOS Stream 9 | |
Rocky Linux 8.10 | |
Rocky Linux 9.4 | |
Alma Linux 8.10 | |
Alma Linux 9.4 | |
Windows | Windows Server 2019 |
Windows Server 2019 (+ MSSQL 2019) | |
Windows Server 2022 |
Volumes
VM instances use an image contained in the root device volume for booting. This root device volume is provided through the Block Storage, and a root volume is automatically created when an instance is created and its settings are completed. You can install operating systems, configure file systems, and run databases on the root volume.
Volumes are spaces where actual data is stored, and Block Storage provides volumes, block storage devices. Through Block Storage, volumes can be created and attached to VM instances, allowing for the installation of operating systems, configuration of file systems, and running databases.
Volume state
Check the following states of volumes in the volume list of Virtual Machine:
Volume state | Description |
---|---|
Creating | Volume is being created. |
Available | Volume is configured and available for use. |
In-use | Volume is attached to an instance. (instance is in active , stopped status) |
Reserved | Volume is attached to an instance. (instance is in shelved_offloaded status) |
Attaching / Detaching | Volume is in the process of being attached/detached. |
Extending | Volume size is being increased. |
Backing-Up | Snapshot of the volume is being created. |
Uploading | Saving to volume after creating an instance as an image. |
Deleting | Volume is being deleted. |
Error | Volume has encountered an error and cannot be used. |
Volume size limit
The volume size limit may vary depending on the image of the selected OS. That is, the image for each operating system has a maximum size that can be allocated to the volume, and this applies differently depending on the operating system. Therefore, it is important to check the volume size limit of the desired operating system in advance and set an appropriate volume size.
Item | Size (GB) |
---|---|
Minimum Size | 1 |
Maximum Size | 5,120 |
Key pair
Key pair is credentials used to access VM instances, playing a crucial role in enhancing the access security of instances. A key pair consists of a public key and a private key. Manage the maintenance of key pairs and keep the public and private keys securely.
Typically, the public key is stored and maintained on the cloud platform. Then, whenever a user connects to a specific instance, they undergo an authentication process using the private key. In this way, key pair can restrict access to instances and enhance security. Once a key pair is registered, only that public key can be used. When creating an instance or connecting to an already created instance, a key pair can be created or an existing key pair can be linked.
Manage the private key to minimize issues that may arise from its exposure or loss. That is, the private key should be encrypted rigorously, and it should not be shared or copied for use with others. Moreover, losing or deleting the private key will result in the inability to access the instance.
Network and security
All instances of VM are provided in a VPC. Virtual Private Cloud (VPC) allows the configuration of a virtual private network in the cloud infrastructure, enabling detailed management of instance networking settings and enhanced security. When creating an instance, select a VPC and subnet, and associate a public IP to the instance.
Public IP
A public IP in a cloud infrastructure indicates a public IP address through which an instance or VM can communicate with the internet. You can control whether a specific instance receives a public IP address from the public IP address pool.
The public IP address of an instance is connected to the instance until it is stopped or terminated. If a permanent public IP address is required, a public IP address can be allocated and connected to an instance or network interface. The public IP address remains connected to the account until it is released, and charges continue to apply. Additionally, the assigned public IP address can be changed from one instance to another. In this case, please detach the instance and then attach to a new instance.
IAM-based role management
IAM (Identity and Access Management) provides Role-Based Access Control (RBAC), managing users and groups effectively. This allows for defining roles within a project and assigning access permissions to those roles, enabling efficient management of access to instances.
All VM resources are created and managed as subordinates to a project. Users with project-level permissions (Project Admin and Project Member) can perform creation, modification, deletion, etc., of all resources created within a project. However, only the key pair owner can delete his/her key pair.
IAM helps efficiently manage and secure access to your instances, and ensure the security and stability of your instances through appropriate authorization and control.
Permissions | Project Admin | Project Member | Project Reader |
---|---|---|---|
Manage project members | ✓ | ||
Associate public IP | ✓ | ||
Manage instance | ✓ | ✓ | △(View only) |
Manage volume | ✓ | ✓ | △(View only) |
Manage image | ✓ | ✓ | △(View only) |
Manage key pair | ✓ | ✓ | △(View only) |