Migration · AWS to OCI

Cloud Spectra cloud image import

A free, standalone tool that migrates your own AWS AMI into Oracle OCI — so the workload can move to cheaper compute and be fronted by the Cloud Spectra proxy as a native AWS instance, with no re-platforming and no change to its AWS-facing address.

Download See usage

What it's for

Moving a workload from AWS to OCI usually means rebuilding the image and re-pointing everything at a new address. This tool removes the first half: it takes your existing AWS AMI and produces a bootable OCI custom image, ready to launch.

Pair it with the Cloud Spectra proxy and the OCI instance wears its AWS VPC identity — so during and after the cutover the workload answers at the same AWS address it always did. You move the compute to OCI's cheaper tier underneath a front door that never changed, and roll back by re-pointing to AWS if you need to.

Built to be fast, safe and self-contained

⚡ Fast & sparse

Reads the AMI's root snapshot directly via the EBS direct APIs — allocated blocks only, no slow export-image queue. Tens of minutes, not hours, and parallelizable.

🔄 Idempotent

Each import is fingerprinted from the source AMI + snapshot. A re-run after a hiccup reuses the already-imported image and transfers nothing — safe to run again.

👁 Safe by default

With no flags it only plans (a dry run): source, virtual vs. allocated size, and the image it would create. Migrating requires --force. Refuses marketplace/product-coded AMIs.

🧩 Independent

One self-contained binary — no qemu-img, no AWS or OCI CLI, no dependencies. It writes a sparse QCOW2 in pure Go and drives the AWS + OCI SDKs directly.

Download

A single gzip-compressed binary. It runs on your workstation with your own AWS + OCI credentials.

Cloud Spectra software is served from a licence-gated store, so there is no direct download link. You fetch it with cloudspectra-get, a small public downloader that exchanges your licence key for a short-lived token and then pulls the artifact.

1 — Get the downloader (public, no licence needed):

curl -fsSLO https://downloads.cloudspectra.ai/gateway/downloader/cloudspectra_gateway_downloader-linux-amd64
chmod +x cloudspectra_gateway_downloader-linux-amd64

2 — Use your licence key to fetch the importer:

# your CSTW1... licence key, the same one the gateway uses
export CS_ARTIFACT_CREDENTIAL=CSTW1-your-licence-key

./cloudspectra_gateway_downloader-linux-amd64 \
  -url https://dl.cloudspectra.ai/gateway/cloud-image-import/latest/cloudspectra_cloud_image_import-linux-amd64.gz \
  -out cloudspectra_cloud_image_import.gz

gunzip cloudspectra_cloud_image_import.gz
chmod +x cloudspectra_cloud_image_import

Swap the filename for your platform — the same six builds are published:

Linux x86-64cloudspectra_cloud_image_import-linux-amd64.gz
Linux ARM64cloudspectra_cloud_image_import-linux-arm64.gz
macOS Intelcloudspectra_cloud_image_import-macos-amd64.gz
macOS Apple Siliconcloudspectra_cloud_image_import-macos-arm64.gz
Windows x86-64cloudspectra_cloud_image_import-windows-amd64.exe.gz
Windows ARM64cloudspectra_cloud_image_import-windows-arm64.exe.gz

Usage

It uses the standard AWS credential chain (add --profile <name>) for the source and your OCI config (~/.oci/config) for the target. You need ebs:ListSnapshotBlocks + ebs:GetSnapshotBlock on the AWS side and object-storage + compute-image permissions on the OCI side.

1  Preview (safe, this is the default)

Plan the migration — source, allocated vs. virtual size, and the image it would create. Nothing is transferred.

./cloudspectra_cloud_image_import ami-0abc123 --region us-east-1 \
  --compartment ocid1.compartment.oc1..aaaa --bucket image-staging

2  Migrate

Read the snapshot, write a sparse QCOW2, upload it to OCI object storage, and import a custom image. Add --yes to skip the prompt.

./cloudspectra_cloud_image_import ami-0abc123 --region us-east-1 \
  --compartment ocid1.compartment.oc1..aaaa --bucket image-staging --force
Then front it with the proxy. Launch an OCI instance from the imported image and pair it with a Cloud Spectra proxy relay: the OCI box wears the AWS VPC identity, so it joins your AWS VPC as a native instance while the compute runs on OCI. See the mixed-cloud examples and the User Guide.