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.

Or install from your terminal (Linux x86-64):

# download, decompress, and make executable
curl -fsSL https://cloudspectra-gateway-17ylb4c35xo49-public.s3.us-east-1.amazonaws.com/gateway/cloud-image-import/latest/cloudspectra_cloud_image_import-linux-amd64.gz \
  | gunzip > cloudspectra_cloud_image_import
chmod +x cloudspectra_cloud_image_import

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.