Skip to main content

Skyplane efficiently transports data between cloud regions and providers.

Project description

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 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 :white_check_mark: :white_check_mark:
Google Storage :white_check_mark: :white_check_mark:
Azure Blob Storage :white_check_mark: :white_check_mark:
Local Disk :white_check_mark: (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[all]

Skyplane supports AWS, Azure, 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

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

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:

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

skyplane-nightly-0.2.1.dev20230114.tar.gz (471.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

skyplane_nightly-0.2.1.dev20230114-py3-none-any.whl (511.0 kB view details)

Uploaded Python 3

File details

Details for the file skyplane-nightly-0.2.1.dev20230114.tar.gz.

File metadata

  • Download URL: skyplane-nightly-0.2.1.dev20230114.tar.gz
  • Upload date:
  • Size: 471.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.2.1 CPython/3.8.15 Linux/5.15.0-1030-azure

File hashes

Hashes for skyplane-nightly-0.2.1.dev20230114.tar.gz
Algorithm Hash digest
SHA256 0e9a69a7fb47637ce9b2c0cf14e01eb7293048d1991b0466bbd6afd831d5ad65
MD5 b6dc4bbbd52eb3ebcfd0c7548518e5bf
BLAKE2b-256 98d244a7be17cb90fdabf44d8edebb960333de49be405f93ab201f5a1074ad36

See more details on using hashes here.

File details

Details for the file skyplane_nightly-0.2.1.dev20230114-py3-none-any.whl.

File metadata

File hashes

Hashes for skyplane_nightly-0.2.1.dev20230114-py3-none-any.whl
Algorithm Hash digest
SHA256 cc8ae7e68e649cc944717b6b3aa4d09e69b6293a5f36c1260bf61016b22c9354
MD5 37ad1b0c5739ec50cfb92cb0ab9521f3
BLAKE2b-256 8809cc851dbf680e5bf8f9a0fbbb268d3021ef95b680de773b8657e932c41f8b

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page