A compute instance is a virtualized computing resource provided by a cloud service provider to run applications and workloads.
Compute instances are the fundamental building blocks of cloud computing. As virtual machines (VMs) running on the infrastructure of a cloud service provider, compute instances provide users with on-demand computing power to run applications, process workloads, and perform tasks. Like all cloud computing resources, compute instances are accessed by network internet connections, enabling users to avoid deploying physical hardware and software on on-premises servers or data centers. In the cloud, a virtual version of a traditional network is created to connect compute instances and other resources. This approach contrasts with traditional network setups, where physical infrastructure is required, as cloud networks replicate or replace traditional network infrastructure. The use of compute instances enables organizations to improve scalability, flexibility, and cost efficiency.
The importance of compute instances
Compute instances enable organizations to scale rapidly, providing access to immense computing resources on demand. When an organization deploys a new web application, for example, the ability to add computing power on demand allows the organization to accommodate enormous spikes in usage, without the delays and expense of installing additional servers or building out new data centers. Organizations can deploy multiple compute instances simultaneously to handle the increased demand, making it easier to scale applications efficiently.
Cloud instances are also essential to redundancy in the cloud. They enable organizations to cost-effectively access additional computing power for creating redundant processes, load-balancing workloads, or improving fault tolerance by rerouting traffic when one component experiences an outage or degraded performance. Instances launched in different regions or availability zones can further improve fault tolerance and ensure business continuity. Even a single instance can benefit from high availability features provided by the cloud, ensuring reliability and uptime. Compute instances also provide additional storage for replicating data.
What are components of a compute instance?
A compute instance is created by several components within a cloud service provider’s infrastructure.
- Processing power: A virtual central processing unit (vCPU) provides the power to perform computations. vCPUs are typically Intel, AMD, or ARM processors.
- Memory: Random-access memory (RAM) is the temporary storage that the compute instance uses to hold data being processed.
- Storage: This includes persistent disks like solid-state drives (SSDs), hard disk drives (HDDs) and non-volatile memory express (NVMe) as well as temporary storage.
- Network interface: The interface connects the compute instance to the cloud provider’s network, allowing it to communicate with other instances and services or with the internet or other networks via a virtual private cloud (VPC).
- Operating system: This is the software that manages hardware and software resources for the instance, and is typically a Microsoft Windows system or Linux system like Ubuntu. Users can select from a variety of OS images, including custom and standard images, to meet their requirements.
- Templates and custom images: These are predefined configurations for quickly deploying VM instances. Instance configuration templates define resources allocated, OS images, and other settings for launching and managing instances efficiently.
- Metadata: Configuration data provides additional details about the instance.
- Permissions and authentication: These identity and access management (IAM) tasks control access and permissions for the instance. A key pair (public and private key) is used for secure SSH access, and the private key is required for authentication.
How do compute instances work?
To access on-demand cloud resources like compute or storage, a user may create instances using a cloud provider’s resource manager console, command line interface (CLI), API, or infrastructure as code (IaC) tools like Terraform. The user may specify the type of instance or machine type, choose an operating system or custom image, and configure networking settings including IP addresses, DNS settings, and VPC configurations. Before launching the instance, users may also configure security settings including a key pair for SSH access, firewalls, and IAM configurations. After the instance is running, users typically connect to the instance using SSH for Linux or RDP for Windows.
To accommodate evolving resource requirements, users may scale compute instances vertically by changing the instance type, or horizontally by adding or removing instances. Some configuration changes, such as idle shutdown settings, may require creating a new instance, as certain settings cannot be changed for an existing compute instance. Instances can also be managed programmatically using software development kits (SDKs) that enable automation and integration with other cloud services.
What types of workloads can be run on a compute instance?
Compute instances can handle a wide range of compute-intensive, memory-intensive, or graphics-intensive workloads, such as:
- High-performance computing (HPC) workloads that perform complex computations and simulations
- Web hosting workloads, such as running websites and web applications.
- Database workloads, including hosting SQL and NoSQL databases
- Machine learning and AI workloads for training and deploying machine learning models using frameworks like TensorFlow
- Virtual desktops that provide remote desktop environments for users
- DevOps and CI/CD workloads to support development, testing, and continuous integration (CI)/continuous deployment (CD) pipelines
- Batch processing and data analysis, including big data analytics and real-time data ingestion
- Gaming servers, including compute- and graphic-intensive workloads for scalable, multiplayer gaming applications
- Media encoding and rendering, including video encoding and 3D rendering for animation
- Containers and Kubernetes clusters
What are the different types of compute instances?
Cloud service providers offer multiple types of compute instances to meet a range of customer needs.
- On-demand instances are billed per hour or per second and require no long-term commitment.
- Reserved instances are purchased for a specific duration, such as six months or two years, and offer a discounted rate.
- Preemptible or spot instances are offered at a lower rate but may be terminated by the provider when additional capacity is needed elsewhere. These are used for noncritical or fault-tolerant workloads.
- High-performance instances, or compute-optimized instances, are designed for intensive workloads like machine learning and HPC.
- Memory-optimized instances have a high memory-to-CPU ratio and are ideal for memory-intensive workloads like databases and caches.
- Storage-optimized instances offer high storage throughput and IOPS for I/O-intensive applications.
- GPU-optimized instances are equipped with GPU accelerators and are designed for machine learning, AI, and graphics rendering use cases.
The compute instance lifecycle
The lifecycle of a compute instance includes:
- Provisioning: Users create a compute instance in a CLI, API, or management console.
- Configuration: Users specify network, storage, and security settings. Storage configuration can include attaching or resizing block volumes, as well as managing boot volumes for backup, restore, or cloning operations.
- Running: The instance begins operating and performing tasks.
- Monitoring: The management console tracks performance, usage, and health metrics.
- Scaling: Resources for the instance are scaled manually or automatically to accommodate demands. Some changes, such as certain storage or configuration updates, may require creating a new instance if they cannot be applied to existing compute instances.
- Termination: The compute instance is shut down and its resources are released. Data may be released or saved to persistent storage. In some cases, replacing or recovering an instance may involve provisioning a new instance, especially if modifications are not possible for existing compute instances.
The benefits of compute instances
Compute instances offer some extraordinary benefits to organizations and their IT teams.
- Immense scalability: IT teams can easily scale instances up or down to match Oracle requirements and business needs.
- Cost effectiveness: Cloud providers offer pricing models that allow users to optimize costs based on usage patterns.
- Improved flexibility: Compute instances offer support for multiple operating systems and configurations, and users can choose from a variety of instance types to suit their needs. Compute instances can run a wide range of workloads and support various operating systems, programming languages, and frameworks, allowing organizations to choose the best tools for each workload.
- Increased reliability: Compute instances promote high availability and facilitate disaster recovery.
- Enhanced agility: Organizations can quickly deploy and run applications and services without needing to procure and set up physical infrastructure.
- Faster time-to-market: Developers can easily create and test applications in a range of environments to accelerate the development and appointment process.
- Greater redundancy: Compute instances can be distributed across multiple availability zones or regions to help organizations achieve greater resilience and improved fault tolerance.
Frequently Asked Questions
A virtual machine is a software-based emulation of a physical computer that runs on top of another computer’s hardware. Multiple virtual machines can exist on the same physical machine, each with its own operating system, applications, and settings. They offer a flexible and efficient way to run different workloads on shared resources.
Compute instances are typically billed based on the instance type and the duration of usage. Billing may happen on a per-second or per-minute basis. Pricing models include on-demand, reserved instances (with upfront commitment), and spot instances (for non-critical or interruptible workloads).
A VM instance refers to an individual virtual machine running on cloud infrastructure. VM instances provide scalable, flexible, and cost-effective compute resources for various workloads.
To run virtual machines means to deploy and operate software-based computers on cloud or on-premises infrastructure, enabling users to manage and scale workloads efficiently.
A block volume is a detachable storage device that can be attached to compute instances. Block volumes are used for storing data; can be resized, cloned, or backed up; and support dynamic expansion and data protection.
A boot volume is the primary storage volume containing the operating system used to start a compute instance. Boot volumes can be managed, backed up, restored, or cloned to ensure system reliability and scalability.
OS images are preconfigured templates of operating systems that can be imported, customized, and deployed on compute instances. They provide flexibility and compatibility for different workloads and migration scenarios.
A key pair consists of a public key and a private key used for secure SSH access to Linux compute instances. The public key is stored on the instance, while the private key is kept by the user for authentication.
A private key is the confidential part of a key pair used to authenticate and securely connect to compute instances via SSH. It should be kept secure and never shared.
SSH access allows users to securely connect to and manage compute instances using the SSH protocol. It requires configuring SSH keys and is essential for administrative and troubleshooting tasks.
A traditional network refers to a conventional networking setup with subnets, route tables, and gateways. In cloud environments, a virtual cloud network (VCN) is the virtual version of a traditional network, providing the foundation for deploying compute resources.
An API, or application programming interface, is a set of rules, protocols, and tools that allows different software applications to communicate and interact with each other. It defines the methods and data formats that applications should use to request and exchange information.
Security for compute instances is managed through IAM, firewalls, SSH keys, and other cloud security settings to control access and permissions.
Why customers choose Akamai
Akamai is the cybersecurity and cloud computing company that powers and protects business online. Our market-leading security solutions, superior threat intelligence, and global operations team provide defense in depth to safeguard enterprise data and applications everywhere. Akamai’s full-stack cloud computing solutions deliver performance and affordability on the world’s most distributed platform. Global enterprises trust Akamai to provide the industry-leading reliability, scale, and expertise they need to grow their business with confidence.