Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

Join Slack integration-test docker docs

🔥 Blazing fast bulk data transfers between any cloud 🔥

Skyplane is a tool for blazingly fast bulk data transfers between object stores in the cloud. It provisions a fleet of VMs in the cloud to transfer data in parallel while using compression and bandwidth tiering to reduce cost.

Skyplane is:

  1. 🔥 Blazing fast (110x faster than AWS DataSync)
  2. 🤑 Cheap (4x cheaper than rsync)
  3. 🌐 Universal (AWS, Azure, IBM and GCP)

You can use Skyplane to transfer data:

  • between object stores within a cloud provider (e.g. AWS us-east-1 to AWS us-west-2)
  • between object stores across multiple cloud providers (e.g. AWS us-east-1 to GCP us-central1)
  • between local storage and cloud object stores (experimental)

Skyplane currently supports the following source and destination endpoints (any source and destination can be combined):

Endpoint Source Destination
AWS S3
Google Storage
Azure Blob Storage
IBM Cloud Object Storage
Local Disk (in progress)

Skyplane is an actively developed project. It will have 🔪 SHARP EDGES 🔪. Please file an issue or ask the contributors via the #help channel on our Slack if you encounter bugs.

Resources

Quickstart

1. Installation

We recommend installation from PyPi:

$ pip install "skyplane[aws]"

# install support for other clouds as needed:

#   $ pip install "skyplane[azure]"
#   $ pip install "skyplane[gcp]"
#   $ pip install "skyplane[ibmcloud]"
#   $ pip install "skyplane[all]"

Skyplane supports AWS, Azure, IBM and GCP. You can install Skyplane with support for one or more of these clouds by specifying the corresponding extras. To install two out of three clouds, you can run pip install "skyplane[aws,azure]".

GCP support on the M1 Mac: If you are using an M1 Mac with the arm64 architecture and want to install GCP support for Skyplane, you will need to install as follows GRPC_PYTHON_BUILD_SYSTEM_OPENSSL=1 GRPC_PYTHON_BUILD_SYSTEM_ZLIB=1 pip install "skyplane[aws,gcp]"

2. Setup Cloud Credentials

Skyplane needs access to cloud credentials to perform transfers. To get started with setting up credentials, make sure you have cloud provider CLI tools installed:

---> For AWS:
$ pip install awscli

---> For Google Cloud:
$ pip install gcloud

---> For Azure:
$ pip install azure

Once you have the CLI tools setup, log into each cloud provider's CLI:

---> For AWS:
$ aws configure

---> For Google Cloud:
$ gcloud auth application-default login

---> For Azure:
$ az login

---> For IBM Cloud:
$ Follow IBM Cloud and create an account with the resource group.
Copy https://github.com/skyplane-project/skyplane/blob/main/skyplane/compute/ibmcloud/ibm_credentials.yaml.template
into `~/.bluemix/ibm_credentials` and fill your 
IBM IAM key and credentials to your IBM Cloud object storage 

---> For SCP:
$ # Create directory if required
$ mkdir -p ~/.scp
$ # Add the lines for "access_key", "secret_key", and "project_id" to scp_credential file
$ echo "access_key = <your_access_key>" >> ~/.scp/scp_credential
$ echo "secret_key = <your_secret_key>" >> ~/.scp/scp_credential
$ echo "project_id = <your_project_id>" >> ~/.scp/scp_credential

After authenticating with each cloud provider, you can run skyplane init to create a configuration file for Skyplane.

$ skyplane init
skyplane init output
$ skyplane init

====================================================
 _____ _   ____   _______ _       ___   _   _  _____
/  ___| | / /\ \ / / ___ \ |     / _ \ | \ | ||  ___|
\ `--.| |/ /  \ V /| |_/ / |    / /_\ \|  \| || |__
 `--. \    \   \ / |  __/| |    |  _  || . ` ||  __|
/\__/ / |\  \  | | | |   | |____| | | || |\  || |___
\____/\_| \_/  \_/ \_|   \_____/\_| |_/\_| \_/\____/
====================================================


(1) Configuring AWS:
    Loaded AWS credentials from the AWS CLI [IAM access key ID: ...XXXXXX]
    AWS region config file saved to /home/ubuntu/.skyplane/aws_config

(2) Configuring Azure:
    Azure credentials found in Azure CLI
    Azure credentials found, do you want to enable Azure support in Skyplane? [Y/n]: Y
    Enter the Azure subscription ID: [XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX]:
    Azure region config file saved to /home/ubuntu/.skyplane/azure_config
    Querying for SKU availbility in regions
    Azure SKU availability cached in /home/ubuntu/.skyplane/azure_sku_mapping

(3) Configuring GCP:
    GCP credentials found in GCP CLI
    GCP credentials found, do you want to enable GCP support in Skyplane? [Y/n]: Y
    Enter the GCP project ID [XXXXXXX]:
    GCP region config file saved to /home/ubuntu/.skyplane/gcp_config

(4) Configuring SCP:
    Loaded SCP credentials from the scp_credntial file [access key: ...XXXXXX]
    SCP region config file saved to /home/ubuntu/.skyplane/scp_config


Config file saved to /home/ubuntu/.skyplane/config

3. Run Transfers

We’re ready to use Skyplane! Let’s use skyplane cp to copy files from AWS to GCP:

skyplane cp s3://... gs://...

To transfer only new objects, you can instead use skyplane sync:

$ skyplane sync s3://... gs://...

You can configure Skyplane to use more VMs per region with the -n flag. For example, to double the transfer speed with two VMs, run:

$ skyplane cp -r s3://... s3://... -n 2

4. Clean Up

Skyplane will automatically attempt to terminate VMs that it starts, but to double check and forcefuly terminate all VMs, run skyplane deprovision.

Technical Details

Skyplane is based on research at UC Berkeley into accelerated networks between cloud providers. Under the hood, Skyplane starts a fleet of VMs in the source and destination regions. It then uses a custom TCP protocol to accelerate the transfer between the VMs. Skyplane may use a L7 overlay network to route traffic around congested network hot spots.

For more details on Skyplane, see:

Release files for skyplane-nightly 0.3.2.dev20240110

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for skyplane-nightly 0.3.2.dev20240110
File Size Uploaded
skyplane_nightly-0.3.2.dev20240110.tar.gz 180.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for skyplane-nightly 0.3.2.dev20240110
File Interpreter ABI Platform
skyplane_nightly-0.3.2.dev20240110-py3-none-any.whl Python 3 none any Details

Total release size: 407.8 kB

Release files / skyplane_nightly-0.3.2.dev20240110.tar.gz

Download URL skyplane_nightly-0.3.2.dev20240110.tar.gz
Size 180.8 kB
Tags Source
SHA-256 checksum
How to use checksums
92229e8b8e44cfba987146ffc0ac9be893945277e3aad1d10027934c3dfcfe07
BLAKE2b-256 checksum
How to use checksums
f41e802d6595b7a87f8fd5ceb5579c1c362b461c02793b9ca8a0bb5bb13ce799
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.5.1 CPython/3.8.18 Linux/6.2.0-1018-azure

Release files / skyplane_nightly-0.3.2.dev20240110-py3-none-any.whl

Download URL skyplane_nightly-0.3.2.dev20240110-py3-none-any.whl
Size 226.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
0b02d36adbf232b34581e01e8f0a5dd4021e15510ddfaacfa173e4847916ba57
BLAKE2b-256 checksum
How to use checksums
0e7f43a1633eef370cb2a584347155dfd2de74891afdd1431e0647c1dbc37657
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.5.1 CPython/3.8.18 Linux/6.2.0-1018-azure

Release history Release notifications | RSS feed

This release
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page