ScyllaDB University LIVE, FREE Virtual Training Event | March 21
Register for Free
ScyllaDB Documentation Logo Documentation
  • Deployments
    • Cloud
    • Server
  • Tools
    • ScyllaDB Manager
    • ScyllaDB Monitoring Stack
    • ScyllaDB Operator
  • Drivers
    • CQL Drivers
    • DynamoDB Drivers
    • Supported Driver Versions
  • Resources
    • ScyllaDB University
    • Community Forum
    • Tutorials
Install
Search Ask AI
ScyllaDB Docs ScyllaDB Manual Getting Started Install ScyllaDB 2026.2 Launch ScyllaDB 2026.2 on Oracle Cloud Infrastructure (OCI)
For AI agents: a documentation index is available at https://docs.scylladb.com/manual/master/llms.txt. A Markdown version of this page is at https://docs.scylladb.com/manual/master/getting-started/install-scylla/launch-on-oci.md.

Caution

You're viewing documentation for an unstable version of ScyllaDB Manual. Switch to the latest stable version.

Launch ScyllaDB 2026.2 on Oracle Cloud Infrastructure (OCI)¶

This article will guide you through self-managed ScyllaDB deployment on Oracle Cloud Infrastructure (OCI) from the ScyllaDB image published in Oracle Cloud Marketplace. For a fully-managed deployment of ScyllaDB as-a-service, see ScyllaDB Cloud documentation.

The ScyllaDB Marketplace listing is a Bring Your Own License (BYOL) image listing: OCI charges you for the compute, storage, and network resources you use, and the ScyllaDB software is covered by your ScyllaDB license or subscription.

Prerequisites¶

  • Active OCI account (tenancy) with permissions to launch compute instances, and to subscribe to Marketplace images in the target compartment. See Managing Compartments.

  • A VCN with a subnet to launch the instance into, and the ScyllaDB ports allowed by the security rules that apply to the instance - either in a security list attached to the subnet, or in a network security group (NSG) attached to the instance’s VNIC.

    Open each port only to the peers that need it: the inter-node ports to the other nodes of the cluster, the CQL ports to your clients, and keep the REST API port closed to anything outside the cluster. You also need TCP port 22 open, from your administrators’ addresses only, for the SSH step below. See ScyllaDB Security Checklist for the full set of recommendations.

  • An SSH key pair. See Managing Key Pairs on Linux Instances.

  • To use the CLI: the OCI CLI, installed and configured with oci setup config (see Configuring the CLI).

  • ScyllaDB Image requires at least 2 vCPU servers.

  • The image is an x86_64 image and supports the Dense I/O shapes, which provide the local NVMe storage that ScyllaDB uses for its data directory. On the first boot, the image formats the local NVMe disks with XFS, creating a RAID0 array over them if there is more than one.

Warning

The ScyllaDB data directory lives on the instance’s local NVMe storage. OCI does not back up local NVMe storage, and its contents are lost when the instance is terminated or migrated to another host. Keep data that must survive on a multi-node cluster with a replication factor greater than one, and back it up - for example with ScyllaDB Manager.

Launching ScyllaDB from the OCI Console¶

  1. Choose a shape. See Cloud Instance Recommendations for OCI for the list of recommended shapes.

    Other shapes will work, but with lesser performance. If you choose a shape other than the recommended ones, make sure to run the scylla_setup script.

  2. Sign in to the OCI Console and select the region you want to deploy in.

  3. Open the navigation menu, select Marketplace, and then select All Applications.

  4. Search for ScyllaDB and select the ScyllaDB listing for the version you want to deploy. Listings are named after the ScyllaDB release, for example ScyllaDB 2026.2.

    Alternatively, open the ScyllaDB listings in Marketplace directly.

  5. On the listing page:

    • Version – Select the package version to deploy. The latest version is selected by default.

    • Compartment – Select the compartment to launch the instance in.

    • Select the checkbox to accept the Oracle Terms of Use and the ScyllaDB (partner) terms and conditions.

  6. Select Launch Instance.

    The Create compute instance page opens with the ScyllaDB Marketplace image already selected.

  7. Configure the instance:

    • Name – A name for the instance.

    • Placement – Select the availability domain.

    • Image and shape – Keep the pre-selected ScyllaDB image, and select Change shape to pick the shape you chose in the first step. For a flexible shape, set the number of OCPUs and the amount of memory.

    • Networking – Select the VCN and subnet. If you keep your security rules in network security groups, select Use network security groups to control traffic and choose the NSG that allows the ScyllaDB ports.

      Assign a public IPv4 address if you need to reach the node from outside the VCN. A public address can only be assigned in a public subnet - in a private subnet, reach the node over its private address from within the VCN, through a bastion, or over a VPN.

    • Add SSH keys – Select Generate a key pair for me and save the private key, or select Paste public keys / Upload public key files (.pub) to provide your own public key. You need this key to connect to the instance.

    • Advanced options > Management > Initialization script – Optional. Provide the ScyllaDB configuration as user data. See Configuring ScyllaDB with user data below.

      The Console base64-encodes the script for you, so paste or upload it as plain text.

  8. Select Create.

    The instance is listed as Provisioning, and switches to Running when it is up. Continue with Connecting to the instance.

Launching ScyllaDB with the OCI CLI¶

Launching a Marketplace image with the CLI requires that you first accept the image terms of use, which creates an image subscription in your compartment. This is the CLI equivalent of the terms-of-use checkbox in the Console.

The following steps use the us-ashburn-1 region as an example. Replace it with your region, or omit --region to use the region from your CLI configuration.

  1. Choose a shape. See Cloud Instance Recommendations for OCI for the list of recommended shapes.

    Other shapes will work, but with lesser performance. If you choose a shape other than the recommended ones, make sure to run the scylla_setup script.

  2. Find the OCID of the ScyllaDB Marketplace listing:

    oci marketplace listing list --region us-ashburn-1 --all \
      --query 'data[?contains(name, `Scylla`)].{name:name, id:id}'
    

    Example output:

    [
      {
        "id": "ocid1.mktpublisting.oc1.iad.amaaaaaa433yp7qakrqk5u3zu6ekylon4xrrflma3xcjug52xts4svplmjna",
        "name": "ScyllaDB 2026.2"
      }
    ]
    

    You can also read the OCID from the /marketplace/application/<listing OCID> part of the listing URL in the OCI Console.

  3. List the available package versions of that listing:

    oci marketplace package list --region us-ashburn-1 \
      --listing-id <listing OCID> \
      --query 'data[].{version:"package-version", created:"time-created"}'
    

    Note the version you want to deploy - usually the most recently created one.

  4. Get the package details of that version. The output holds the image OCID and the App Catalog identifiers you need in the next steps:

    oci marketplace package get --region us-ashburn-1 \
      --listing-id <listing OCID> \
      --package-version <package version> \
      --query 'data.{image:"image-id", catalogListing:"app-catalog-listing-id", catalogVersion:"app-catalog-listing-resource-version"}'
    

    Example output:

    {
      "catalogListing": "ocid1.appcataloglisting.oc1..aaaaaaaarw5vsfysh36clj4xasz5mhsemzs5wt4eea5tdywzbujopvjzsoxq",
      "catalogVersion": "2026.2.5",
      "image": "ocid1.image.oc1..aaaaaaaashyu5zg4s72zwanu73enkab4mitjkmifebglfvp4qwqdbalxmtgq"
    }
    
  5. Retrieve the terms of use for that version. The response contains the EULA link, the Oracle Terms of Use link, a signature, and the time the terms were retrieved - all of which are required to subscribe:

    oci compute pic agreements get --region us-ashburn-1 \
      --listing-id <app catalog listing OCID> \
      --resource-version <app catalog resource version>
    

    Review the documents at eula-link and oracle-terms-of-use-link before continuing.

  6. Subscribe to the image in your compartment, which accepts the terms retrieved in the previous step:

    oci compute pic subscription create --region us-ashburn-1 \
      --compartment-id <compartment OCID> \
      --listing-id <app catalog listing OCID> \
      --resource-version <app catalog resource version> \
      --signature <signature> \
      --time-retrieved <time-retrieved> \
      --eula-link <eula-link> \
      --oracle-tou-link <oracle-terms-of-use-link>
    

    The subscription takes some time to propagate. Verify that it is in place before launching:

    oci compute pic subscription list --region us-ashburn-1 \
      --compartment-id <compartment OCID>
    

    Note

    Launching immediately after creating the subscription can fail, because the new subscription is not visible to the Compute service yet. If the next step fails with a not-authorized or not-found error on the image, wait a few minutes and retry it - do not re-create the subscription.

  7. Launch the instance, using the image OCID from the package details:

    oci compute instance launch --region us-ashburn-1 \
      --compartment-id <compartment OCID> \
      --availability-domain <availability domain> \
      --shape <shape> \
      --shape-config '{"ocpus": <number of OCPUs>, "memoryInGBs": <memory in GB>}' \
      --subnet-id <subnet OCID> \
      --nsg-ids '["<NSG OCID>"]' \
      --assign-public-ip true \
      --image-id <image OCID> \
      --display-name scylla-node1 \
      --ssh-authorized-keys-file <path to your public SSH key> \
      --user-data-file <path to your user data file> \
      --wait-for-state RUNNING
    

    For example:

    oci compute instance launch --region us-ashburn-1 \
      --compartment-id ocid1.compartment.oc1..example \
      --availability-domain ewbj:US-ASHBURN-AD-1 \
      --shape VM.DenseIO.E5.Flex \
      --shape-config '{"ocpus": 8, "memoryInGBs": 96}' \
      --subnet-id ocid1.subnet.oc1.iad.example \
      --nsg-ids '["ocid1.networksecuritygroup.oc1.iad.example"]' \
      --assign-public-ip true \
      --image-id ocid1.image.oc1..aaaaaaaashyu5zg4s72zwanu73enkab4mitjkmifebglfvp4qwqdbalxmtgq \
      --display-name scylla-node1 \
      --ssh-authorized-keys-file ~/.ssh/id_rsa.pub \
      --user-data-file ./scylla-user-data.json \
      --wait-for-state RUNNING
    

    --shape-config is required for flexible shapes only. --nsg-ids is needed only if your security rules live in a network security group rather than in the subnet’s security list. --user-data-file is optional; see Configuring ScyllaDB with user data. To list the availability domains available to you, run oci iam availability-domain list.

    --assign-public-ip true requires a public subnet, and fails in a subnet that prohibits public IP addresses. Omit it to launch into a private subnet, and reach the node over its private address from within the VCN, through a bastion, or over a VPN.

    Note

    --user-data-file and --ssh-authorized-keys-file cannot be combined with --metadata in the same command - they are convenience wrappers around the user_data and ssh_authorized_keys fields of the instance metadata.

  8. Get the IP addresses of the instance:

    oci compute instance list-vnics --region us-ashburn-1 \
      --instance-id <instance OCID> \
      --query 'data[].{public:"public-ip", private:"private-ip"}'
    

Configuring ScyllaDB with user data¶

The ScyllaDB image reads its configuration from the instance user data (the initialization script in the Console, or --user-data-file in the CLI). The most popular options are:

  • cluster_name - The name of the cluster.

  • seed_provider - The IP of the first node. New nodes will use the IP of this seed node to connect to the cluster and learn the cluster topology and state. See ScyllaDB Seed Nodes.

  • post_configuration_script - A base64 encoded bash script that will be executed after the configuration is completed.

  • start_scylla_on_first_boot - Starts ScyllaDB once the configuration is completed.

  • device_wait_seconds - How long to wait for the local NVMe devices to appear before setting up the data directory. The default is 0, which does not wait at all. Set it to 300 so that setup does not fail with No data disk found, abort setup when the devices are not ready yet at first boot.

Example:

{
    "scylla_yaml": {
        "cluster_name": "test-cluster",
        "seed_provider": [{"class_name": "org.apache.cassandra.locator.SimpleSeedProvider",
                           "parameters": [{"seeds": "10.0.219.209"}]}]
    },
    "start_scylla_on_first_boot": true,
    "device_wait_seconds": 300
}

See scylla.yaml for information about the supported scylla_yaml options, and the ScyllaDB Image documentation for the full documentation of ScyllaDB image user data.

Note

When launching more than one instance, make sure to correctly set the IP of the first instance with the seeds parameter - either in the user data or after launch.

Connecting to the instance¶

Connect to the instance with the private key matching the public key you provided at launch, using the scyllaadm user:

ssh -i ~/.ssh/id_rsa scyllaadm@<instance IP>

Use the instance’s public IP address if you assigned one. Otherwise, connect to its private IP address from within the VCN, through a bastion, or over a VPN.

The default file paths:

  • The scylla.yaml file: /etc/scylla/scylla.yaml

  • Data: /var/lib/scylla/

To check that the ScyllaDB server is running, run:

nodetool status

Next Steps¶

  • Configure ScyllaDB

  • Manage your clusters with ScyllaDB Manager

  • Monitor your cluster and data with ScyllaDB Monitoring

  • Get familiar with ScyllaDB’s command line reference guide.

  • Learn about ScyllaDB at ScyllaDB University

Was this page helpful?

PREVIOUS
Launch ScyllaDB 2026.2 on Azure
NEXT
ScyllaDB Web Installer for Linux
  • Create an issue
  • Edit this page

On this page

  • Launch ScyllaDB 2026.2 on Oracle Cloud Infrastructure (OCI)
    • Prerequisites
    • Launching ScyllaDB from the OCI Console
    • Launching ScyllaDB with the OCI CLI
    • Configuring ScyllaDB with user data
    • Connecting to the instance
    • Next Steps
ScyllaDB Manual
Search Ask AI
  • master
    • master
    • 2026.3
    • 2026.2
    • 2026.1
    • 2025.4
    • 2025.3
    • 2025.2
    • 2025.1
  • Getting Started
    • Install ScyllaDB 2026.2
      • Launch ScyllaDB 2026.2 on AWS
      • Launch ScyllaDB 2026.2 on GCP
      • Launch ScyllaDB 2026.2 on Azure
      • Launch ScyllaDB 2026.2 on Oracle Cloud Infrastructure (OCI)
      • ScyllaDB Web Installer for Linux
      • Install ScyllaDB 2026.2 Linux Packages
      • Run ScyllaDB in Docker
      • Install ScyllaDB Without root Privileges
      • Air-gapped Server Installation
      • ScyllaDB Housekeeping and how to disable it
      • ScyllaDB Developer Mode
    • Configure ScyllaDB
    • ScyllaDB Configuration Reference
    • ScyllaDB Requirements
      • System Requirements
      • OS Support
      • Cloud Instance Recommendations
      • ScyllaDB in a Shared Environment
    • Migrate to ScyllaDB
      • Migration Process from Cassandra to ScyllaDB
      • ScyllaDB and Apache Cassandra Compatibility
      • Migration Tools Overview
    • Integration Solutions
      • Integrate ScyllaDB with Spark
      • Integrate ScyllaDB with KairosDB
      • Integrate ScyllaDB with Presto
      • Integrate ScyllaDB with Elasticsearch
      • Integrate ScyllaDB with Kubernetes
      • Integrate ScyllaDB with the JanusGraph Graph Data System
      • Integrate ScyllaDB with DataDog
      • Integrate ScyllaDB with Kafka
      • Integrate ScyllaDB with IOTA Chronicle
      • Integrate ScyllaDB with Spring
      • Shard-Aware Kafka Connector for ScyllaDB
      • Install ScyllaDB with Ansible
      • Integrate ScyllaDB with Databricks
      • Integrate ScyllaDB with Jaeger Server
      • Integrate ScyllaDB with MindsDB
  • ScyllaDB for Administrators
    • Administration Guide
    • Procedures
      • Cluster Management
      • Backup & Restore
      • Change Configuration
      • Maintenance
      • Best Practices
      • Benchmarking ScyllaDB
      • Migrate from Cassandra to ScyllaDB
      • Disable Housekeeping
    • Security
      • ScyllaDB Security Checklist
      • Enable Authentication
      • Enable and Disable Authentication Without Downtime
      • Creating a Superuser
      • Generate a cqlshrc File
      • Reset Authenticator Password
      • Enable Authorization
      • Grant Authorization CQL Reference
      • Certificate-based Authentication
      • Certificate or Password Authentication
      • Role Based Access Control (RBAC)
      • ScyllaDB Auditing Guide
      • Encryption: Data in Transit Client to Node
      • Encryption: Data in Transit Node to Node
      • Generating a self-signed Certificate Chain Using openssl
      • Configure SaslauthdAuthenticator
      • Encryption at Rest
      • LDAP Authentication
      • LDAP Authorization (Role Management)
      • Software Bill Of Materials (SBOM)
    • Admin Tools
      • Nodetool Reference
      • CQLSh
      • Admin REST API
      • Tracing
      • ScyllaDB SStable
      • ScyllaDB SStable Script API
      • ScyllaDB Types
      • SSTableLoader
      • cassandra-stress
      • ScyllaDB Logs
      • Seastar Perftune
      • Virtual Tables
      • Reading mutation fragments
      • Maintenance socket
      • Maintenance mode
      • Task manager
    • ScyllaDB Monitoring Stack
    • ScyllaDB Operator
    • ScyllaDB Manager
    • Upgrade Procedures
      • Upgrade Guides
    • System Configuration
      • System Configuration Guide
      • scylla.yaml
      • ScyllaDB Snitches
      • Configuration Parameters
    • Benchmarking ScyllaDB
    • ScyllaDB Diagnostic Tools
  • ScyllaDB for Developers
    • Develop with ScyllaDB
    • Tutorials and Example Projects
    • Learn to Use ScyllaDB
    • ScyllaDB Alternator
    • ScyllaDB Drivers
  • CQL Reference
    • CQLSh: the CQL shell
    • Reserved CQL Keywords and Types (Appendices)
    • Compaction
    • Consistency Levels
    • Consistency Level Calculator
    • Data Definition
    • Data Manipulation
      • SELECT
      • INSERT
      • UPDATE
      • DELETE
      • BATCH
    • Data Types
    • Definitions
    • Global Secondary Indexes
    • Expiring Data with Time to Live (TTL)
    • Functions
    • CQL Guardrails
    • Wasm support for user-defined functions
    • JSON Support
    • Materialized Views
    • DESCRIBE SCHEMA
    • Service Levels
    • ScyllaDB CQL Extensions
  • Alternator: DynamoDB API in ScyllaDB
    • Getting Started With ScyllaDB Alternator
    • ScyllaDB Alternator for DynamoDB users
    • Alternator-specific APIs
    • Reducing network costs in Alternator
    • Alternator Vector Search
    • Alternator client libraries
  • Features
    • Lightweight Transactions
    • Global Secondary Indexes
    • Local Secondary Indexes
    • Materialized Views
    • Counters
    • Change Data Capture
      • CDC Overview
      • The CDC Log Table
      • Basic operations in CDC
      • CDC Streams
      • CDC Stream Changes
      • Querying CDC Streams
      • Advanced column types
      • Preimages and postimages
      • Data Consistency in CDC
    • Workload Attributes
    • Workload Prioritization
    • Backup and Restore
    • Incremental Repair
    • Automatic Repair
    • Vector Search
    • Full-Text Search
  • ScyllaDB Architecture
    • Data Distribution with Tablets
    • ScyllaDB Ring Architecture
    • ScyllaDB Fault Tolerance
    • Consistency Level Console Demo
    • ScyllaDB Anti-Entropy
      • ScyllaDB Hinted Handoff
      • ScyllaDB Read Repair
      • ScyllaDB Repair
    • SSTable
      • ScyllaDB SSTable - 2.x
      • ScyllaDB SSTable - 3.x
    • Compaction Strategies
    • Raft Consensus Algorithm in ScyllaDB
    • Zero-token Nodes
  • Troubleshooting ScyllaDB
    • Errors and Support
      • Report a ScyllaDB problem
      • Error Messages
      • Change Log Level
    • ScyllaDB Startup
      • Ownership Problems
      • ScyllaDB will not Start
    • Cluster and Node
      • Handling Node Failures
      • Failure to Add, Remove, or Replace a Node
      • Failed Decommission Problem
      • Cluster Timeouts
      • Node Joined With No Data
      • NullPointerException
      • Failed Schema Sync
    • Data Modeling
      • ScyllaDB Large Partitions Table
      • ScyllaDB Large Rows and Cells Table
      • Large Partitions Hunting
      • Failure to Update the Schema
    • Data Storage and SSTables
      • Space Utilization Increasing
      • Disk Space is not Reclaimed
      • SSTable Corruption Problem
      • Pointless Compactions
      • Limiting Compaction
    • CQL
      • Time Range Query Fails
      • COPY FROM Fails
      • CQL Connection Table
    • ScyllaDB Monitor and Manager
      • Manager and Monitoring integration
      • Manager lists healthy nodes as down
    • Installation and Removal
      • Removing ScyllaDB on Ubuntu breaks system packages
  • Knowledge Base
    • Upgrading from experimental CDC
    • Compaction
    • Consistency in ScyllaDB
    • Counting all rows in a table is slow
    • CQL Query Does Not Display Entire Result Set
    • When CQLSh query returns partial results with followed by “More”
    • Run ScyllaDB and supporting services as a custom user:group
    • Customizing CPUSET
    • Decoding Stack Traces
    • Snapshots and Disk Utilization
    • DPDK mode
    • Debug your database with Flame Graphs
    • Efficient Tombstone Garbage Collection in ICS
    • How to Change gc_grace_seconds for a Table
    • Gossip in ScyllaDB
    • How does ScyllaDB LWT Differ from Apache Cassandra ?
    • Map CPUs to ScyllaDB Shards
    • ScyllaDB Memory Usage
    • NTP Configuration for ScyllaDB
    • POSIX networking for ScyllaDB
    • ScyllaDB consistency quiz for administrators
    • Recreate RAID devices
    • How to Safely Increase the Replication Factor
    • ScyllaDB and Spark integration
    • Increase ScyllaDB resource limits over systemd
    • ScyllaDB Seed Nodes
    • How to Set up a Swap Space
    • ScyllaDB Snapshots
    • ScyllaDB payload sent duplicated static columns
    • Stopping a local repair
    • System Limits
    • How to flush old tombstones from a table
    • Time to Live (TTL) and Compaction
    • ScyllaDB Nodes are Unresponsive
    • Update a Primary Key
    • Using the perf utility with ScyllaDB
    • Configure ScyllaDB Networking with Multiple NIC/IP Combinations
  • Reference
    • AWS Images
    • Azure Images
    • GCP Images
    • Configuration Parameters
    • Glossary
    • Limits
    • API Reference
      • Authorization Cache
      • Cache Service
      • Collectd
      • Column Family
      • Commit Log
      • Compaction Manager
      • Endpoint Snitch Info
      • Error Injection
      • Failure Detector
      • Gossiper
      • Hinted Handoff
      • LSA
      • Messaging Service
      • Raft
      • Storage Proxy
      • Storage Service
      • Stream Manager
      • System
      • Task Manager Test
      • Task Manager
      • Tasks
    • Metrics
  • ScyllaDB FAQ
  • 2024.2 and earlier documentation
Docs Tutorials University Contact Us About Us
© 2026, ScyllaDB. All rights reserved. | Terms of Service | Privacy Policy | ScyllaDB, and ScyllaDB Cloud, are registered trademarks of ScyllaDB, Inc.
Last updated on 31 Aug 2026.
Powered by Sphinx 9.1.0 & ScyllaDB Theme 1.9.3