title, seoTitle, description, category, tags, resources
| title | seoTitle | description | category | tags | resources | ||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Moving an AWS Workload to Mulga | Migrate an AWS Workload to Spinifex — Spinifex Docs | Move existing AWS workloads onto Spinifex using compatible APIs, SDKs, and Terraform across EC2, VPC, EBS, S3, IAM, STS, ELBv2, ACM, ECR, ECS, and EKS. | Migration |
|
|
Moving an AWS Workload to Mulga
Migrate existing AWS workloads to Spinifex using compatible APIs, SDKs, and Terraform.
Table of Contents
Overview
Spinifex provides drop-in compatibility with AWS APIs, making it possible to migrate existing workloads with minimal changes.
Supported Services: EC2, VPC, EBS, S3, IAM, STS, ELBv2 (ALB/NLB), ACM, ECR, ECS, EKS
Compatible Tools: AWS CLI, AWS SDKs, Terraform, kubectl (via aws eks get-token), any S3-compatible client
Instructions
Prerequisites
- A running Spinifex cluster (see Setting Up Your Cluster)
- AWS CLI configured with the
spinifexprofile:
export AWS_PROFILE=spinifex
Configure AWS CLI
aws ec2 describe-instances
aws s3 ls
Terraform
provider "aws" {
region = "ap-southeast-2"
access_key = "your-spinifex-access-key"
secret_key = "your-spinifex-secret-key"
endpoints {
ec2 = "https://localhost:9999"
iam = "https://localhost:9999"
sts = "https://localhost:9999"
elbv2 = "https://localhost:9999"
acm = "https://localhost:9999"
ecr = "https://localhost:9999"
ecs = "https://localhost:9999"
eks = "https://localhost:9999"
s3 = "https://localhost:8443"
}
skip_metadata_api_check = true
skip_region_validation = true
}
Hybrid S3 Sync
aws s3 sync s3://local-bucket/ s3://cloud-bucket/ --source-region spinifex --region us-east-1
Troubleshooting
Terraform Provider Errors
Ensure these two skip flags are set in your provider configuration:
skip_metadata_api_check = true
skip_region_validation = true
Without them, Terraform queries the EC2 instance metadata service for credentials and rejects a region name AWS does not know.
Leave skip_credentials_validation and skip_requesting_account_id unset, and point the sts endpoint at Spinifex. The provider then learns the account ID from GetCallerIdentity as it does on AWS. With the account ID blank, a security group rule that references a group in the same account reads back as <account>/sg-... and never reaches a clean plan.
S3 Signature Errors
Spinifex uses AWS Signature V4. Ensure your AWS CLI is version 2.0 or higher:
aws --version
If using an older version, upgrade:
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install --update