Skip to content
Mulga mulga

Moving an AWS Workload to Mulga

Migrate existing AWS workloads to Spinifex using compatible APIs, SDKs, and Terraform.

migrationawsterraform

Overview

Spinifex provides drop-in compatibility with AWS APIs, making it possible to migrate existing workloads with minimal changes.

Supported Services: VPC, EC2, EBS, S3, IAM

Compatible Tools: AWS CLI, AWS SDKs, Terraform, any S3-compatible client


Prerequisites

Ensure the AWS profile is set:

bash
export AWS_PROFILE=spinifex

Configure AWS CLI

bash
aws ec2 describe-instances
aws s3 ls

Terraform

hcl
provider "aws" {
  region     = "ap-southeast-2"
  access_key = "your-spinifex-access-key"
  secret_key = "your-spinifex-secret-key"

  endpoints {
    ec2 = "https://localhost:9999"
    s3  = "https://localhost:8443"
  }

  skip_credentials_validation = true
  skip_metadata_api_check     = true
  skip_requesting_account_id  = true
}

Hybrid S3 Sync

bash
aws s3 sync s3://local-bucket/ s3://cloud-bucket/ --source-region spinifex --region us-east-1

Troubleshooting

Terraform Provider Errors

Ensure all three skip flags are set in your provider configuration:

hcl
skip_credentials_validation = true
skip_metadata_api_check     = true
skip_requesting_account_id  = true

Without these, Terraform will try to validate credentials and metadata against real AWS endpoints.

S3 Signature Errors

Spinifex uses AWS Signature V4. Ensure your AWS CLI is version 2.0 or higher:

bash
aws --version

If using an older version, upgrade:

bash
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install --update