Oracle Cloud Infrastructure Compute lets you provision and manage compute hosts, known as instances . You can launch instances as needed to meet your compute and application requirements. After you launch an instance, you can access it securely from your computer, restart it, attach and detach volumes, and terminate it when you're done with it. Any changes made to the instance's local drives are lost when you terminate it. Any saved changes to volumes attached to the instance are retained.
Oracle Cloud Infrastructure offers both bare metal and virtual machine instances:
Bare Metal: A bare metal compute instance gives you dedicated physical server access for highest performance and strong isolation.
Virtual Machine: A virtual machine (VM) is an independent computing environment that runs on top of physical bare metal hardware. The virtualization makes it possible to run multiple VMs that are isolated from each other. VMs are ideal for running applications that do not require the performance and resources (CPU, memory, network bandwidth, storage) of an entire physical machine.
An Oracle Cloud Infrastructure VM compute instance runs on the same hardware as a bare metal instance, leveraging the same cloud-optimized hardware, firmware, software stack, and networking infrastructure.
Be sure to review Best Practices for Your Compute Instance for important information about working with your Oracle Cloud Infrastructure Compute instance.
Oracle Cloud Infrastructure uses Oracle Ksplice to apply important security and other critical kernel updates to the hypervisor hosts without a reboot. Oracle Cloud Infrastructure can apply these patches transparently without the need to pause any VMs, and all hypervisor hosts support this capability. For more information, see Installing and Running Oracle Ksplice.
Compute is Always Free eligible. For more information about Always Free resources, including additional capabilities and limitations, see Oracle Cloud Infrastructure Free Tier.
When you create a Compute instance, you can select the most appropriate type of instance for your applications based on characteristics such as the number of CPUs, amount of memory, and network resources. Oracle Cloud Infrastructure offers a variety of shapes that are designed to meet a range of compute and application requirements:
- Standard shapes: Designed for general purpose workloads and suitable for a wide range of applications and use cases. Standard shapes provide a balance of cores, memory, and network resources. Standard shapes are available with Intel or AMD processors.
- DenseIO shapes: Designed for large databases, big data workloads, and applications that require high-performance local storage. DenseIO shapes include locally-attached NVMe-based SSDs.
- GPU shapes: Designed for hardware-accelerated workloads. GPU shapes include Intel CPUs and NVIDIA graphics processors.
- High performance computing (HPC) shapes: Designed for high-performance computing workloads that require high frequency processor cores and cluster networking for massively parallel HPC workloads. HPC shapes are available for bare metal instances only.
Flexible shapes let you customize the number of OCPUs that are allocated to an instance. The amount of memory, network bandwidth, and number of VNICs scale proportionately with the number of OCPUs. For more information, see Flexible Shapes.
Components for Launching Instances
The components required to launch an instance are:
- availability domain
- The Oracle Cloud Infrastructure data center within your geographical region that hosts cloud resources, including your instances. You can place instances in the same or different availability domains, depending on your performance and redundancy requirements. For more information, see Regions and Availability Domains.
- virtual cloud network
- A virtual version of a traditional network—including subnets, route tables, and gateways—on which your instance runs. At least one cloud network has to be set up before you launch instances. For information about setting up cloud networks, see Overview of Networking.
- key pair (for Linux instances)
- A security mechanism required for Secure Shell (SSH) access to an instance. Before you launch an instance, you’ll need at least one key pair. For more information, see Managing Key Pairs on Linux Instances.
You can apply tags to your resources to help you organize them according to your business needs. You can apply tags at the time you create a resource, or you can update the resource later with the desired tags. For general information about applying tags, see Resource Tags.
- password (for Windows instances)
- A security mechanism required to access an instance that uses an Oracle-provided Windows image. The first time you launch an instance using a Windows image, Oracle Cloud Infrastructure will generate an initial, one-time password that you can retrieve using the console or API. This password must be changed after you initially log on.
- A template of a virtual hard drive that determines the operating system and other software for an instance. For details about Oracle Cloud Infrastructure platform images, see Oracle-Provided Images.
You can also launch instances from:
Pre-built Oracle enterprise images and solutions enabled for Oracle Cloud Infrastructure
- A template that determines the number of CPUs, amount of memory, and other resources allocated to a newly created instance. You choose the most appropriate shape when you launch an instance. See Compute Shapes for a list of available bare metal and VM shapes.
You can optionally attach volumes to an instance. For more information, see Overview of Block Volume.
Creating Automation with Events
You can create automation based on state changes for your Oracle Cloud Infrastructure resources by using event types, rules, and actions. For more information, see Overview of Events.
The following Compute resources emit events:
- Autoscaling configurations and autoscaling policies
- Cluster networks
- Console histories
- Instances and instance attachments
- Instance configurations
- Instance console connections
- Instance pools
Most types of Oracle Cloud Infrastructure resources have a unique, Oracle-assigned identifier called an Oracle Cloud ID (OCID). For information about the OCID format and other ways to identify your resources, see Resource Identifiers.
Compute is one of the Oracle Cloud Infrastructure services that is integrated with the Work Requests API. For general information on using work requests in Oracle Cloud Infrastructure, see Work Requests in the user guide, and the Work Requests API.
Ways to Access Oracle Cloud Infrastructure
You can access Oracle Cloud Infrastructure using the Console (a browser-based interface) or the REST API. Instructions for the Console and API are included in topics throughout this guide. For a list of available SDKs, see Software Development Kits and Command Line Interface.
To access the Console, you must use a supported browser. You can use the Console link at the top of this page to go to the sign-in page. You will be prompted to enter your cloud tenant, your user name, and your password.
For general information about using the API, see REST APIs.
Authentication and Authorization
Each service in Oracle Cloud Infrastructure integrates with IAM for authentication and authorization, for all interfaces (the Console, SDK or CLI, and REST API).
An administrator in your organization needs to set up groups , compartments , and policies that control which users can access which services, which resources, and the type of access. For example, the policies control who can create new users, create and manage the cloud network, launch instances, create buckets, download objects, etc. For more information, see Getting Started with Policies. For specific details about writing policies for each of the different services, see Policy Reference.
If you’re a regular user (not an administrator) who needs to use the Oracle Cloud Infrastructure resources that your company owns, contact your administrator to set up a user ID for you. The administrator can confirm which compartment or compartments you should be using.
You can expand the storage that's available for your Compute instances with the following services:
Block Volume: Lets you dynamically provision and manage block volumes that you can attach to one or more Compute instances. See Overview of Block Volume for more information. For steps to attach block volumes to Compute instances, see Attaching a Volume and Attaching a Volume to Multiple Instances.
File Storage: A durable, scalable, secure, enterprise-grade network file system that you can connect to from any Compute instance in your virtual cloud network (VCN). See Overview of File Storage for more information.
Object Storage: An internet-scale, high-performance storage platform that lets you store an unlimited amount of unstructured data of any content type. This storage is regional and not tied to any specific Compute instance. See Overview of Object Storage for more information.
Archive Storage: A storage platform that lets you store an unlimited amount of unstructured data of any content type that doesn't require instantaneous data retrieval. This storage is regional and not tied to any specific Compute instance. See Overview of Archive Storage for more information.
See Service Limits for a list of applicable limits and instructions for requesting a limit increase. To set compartment-specific limits on a resource or resource family, administrators can use compartment quotas.
Additional limits include:
- To attach a volume to an instance, both the instance and volume must be within the same availability domain.
- Many Compute operations are subject to throttling.
Custom metadata keys (any key you define that is not
user_data) have the following limits:
- Max number of metadata keys: 128
- Max size of key name: 255 characters
- Max size of key value: 255 characters
ssh_authorized_keys is a special key that does not have these limits, but its value is validated to conform to a public key in the OpenSSH format.
user_data has a maximum size of 16KB. For Linux instances with cloud-init configured, you can populate the
user_data field with a Base64-encoded string of cloud-init user data. For more information on formats that cloud-init accepts, see cloud-init formats.