In all scenarios, both Yandex.Cloud and Amazon Web Service virtual machines, as well as other services, have access to all the data, transparently and in a single namespace.
For Yandex.Cloud customers, we recommend deploying Flexify.IO from Yandex.Cloud Marketplace.
It may take a few minutes for the VM to start. Please, be patient and wait for the Create account dialog to apperar.
If you choose to use HTTPS to connect to the VM, note that the initial SSL certificate will be self-signed and not automatically accepted by most browsers.
Once signed in to the Flexify.IO Console, you can add one or more cloud storage accounts.
To add a storage account, switch to the Data tab and click Add Storage. The Add Storage Account dialog will open. In this dialog, you can add a storage account from a supported cloud or on-premises object storage, including Yandex.Cloud, Amazon S3, Azure Blob Storage, Dell EMC ECS, and others.
To add Yandex.Cloud Object Storage, you would first need to generate Yandex.Cloud access keys.
To add an Amazon S3 storage account to Flexify.IO, you would need to have Amazon S3 keys with permission to access Amazon S3 storage.
While it is the easiest way, Flexify.IO does not need the full Amazon S3 access rights. For the example of IAM policy compatible with Flexify.IO, click Policy Example in the Add Storage Account dialog.
Once you have storage accounts added to Flexify.IO, you can copy or move data between them.
You can type any name of the new bucket. However, make sure that the bucket name is globally unique. Even if someone else already has a bucket with the same name, you will be to be able to use it.
The unique feature of Flexify.IO is the ability to combine data from two or more clouds into single virtual storage and make it accessible through a unified S3-compatible endpoint.
To configure the Flexify.IO virtual endpoint:
Now all objects from Yandex.Cloud and Amazon S3 are combined and available via the S3-compatible endpoint on your Flexify.IO virtual machine. You would need to direct your application to use your machine's IP address (such as 126.96.36.199 in this example) with the access key and the secret key displayed in the endpoint settings.
Flexify.IO will take S3 requests and forward them to all attached storages, combining the results. For example, if you have plane.jpg and ship.jpg in your Amazon S3 account, and ship.jpg and train.jpg in your Yandex.Cloud account, the combined view via the Flexify.IO Virtual Endpoint will have all three objects: plane.jpg, ship.jpg, and train.jpg.
Imagine that in the example above Amazon S3 and Yandex.Cloud has different versions of ship.jpg. What version will the client get if requesting ship.jpg via the virtual endpoint? This is controlled by the read policy in the Endpoint settings.
By default, Flexify.IO will replicate all data written via the virtual endpoint between all attached storages: both Yandex.Cloud and Amazon S3 in this case.
You may want new data to be saved to Yandex.Cloud only, while having data still in Amazon S3 visible and accessible. To achieve this, you can disable writing data to Amazon S3 by clicking the Amazon S3 account on the storage bar and removing the Put new data here checkbox.
Now new data will be saved to Yandex.Cloud Object storage only.
Bucket names need to be unique and you may not be able to create a bucket with the name you need in one or more clouds. Flexify.IO allows mapping bucket names with the help of virtual buckets.
To create a new virtual bucket, just click New Virtual Bucket on the Endpoint card and specify the virtual bucket name. Then you can attach multiple buckets to the virtual bucket, and make all objects from the attached buckets available via the virtual bucket.
With virtual buckets, you can also combine data from multiple buckets of the same cloud provider.
The Flexify.IO virtual machine image from Yandex.Cloud Marketplace is a powerful solution for multi-cloud storage and migrating data between clouds. But it's limited to a single virtual machine. This limits options for horizontal scalability and fault tolerance.
If you'd like to deploy Flexify.IO in the true cloud-native style with several horizontally-scalable, stateless, and centrally controlled Flexify.IO engines, please, contact us for installation instructions.