CloudMigration: How to Move your Data from AWS S3 to the Google Storage bucket using gsutil?

Dheeraj jha
3 min readJan 19
Photo by Chris Briggs on Unsplash

There are several ways to migrate data from AWS S3 to GCP, including:

  1. Using the GCP Cloud Storage Transfer Service: This allows you to transfer data from S3 to Cloud Storage with a simple user interface.
  2. Using the gsutil tool: This is a command-line tool that allows you to transfer data between cloud storage providers, including S3 and Cloud Storage.
  3. Using the AWS DataSync service: This service allows you to move data between on-premises storage systems and cloud storage services, including S3 and Cloud Storage.
  4. Using a third-party tool such as “AWS S3 to GCP Storage Transfer”: This is a third-party tool that allows you to transfer data between S3 and GCP.
  5. Using the AWS Database Migration Service: This service allows you to migrate data between different databases, including S3 and BigQuery, which is a data warehousing service provided by GCP.

The second option for migrating data from AWS S3 to GCP is using the gsutil tool. gsutil is a command-line tool that allows you to transfer data between cloud storage providers, including S3 and GCP’s Cloud Storage. It is an open-source tool that is available for free and can be installed on a local machine.

Here are the basic steps to use gsutil to migrate data from S3 to GCP Cloud Storage:

  1. Install gsutil on your local machine.
  2. Configure gsutil to use your GCP project’s credentials.
  3. Use the gsutil cp command to copy the data from S3 to GCP Cloud Storage. The basic syntax for this command is:
    gsutil cp s3://<S3_bucket_name>/<object_path> gs://<GCP_bucket_name>/<object_path>
  4. It also possible to sync the entire s3 bucket to GCP bucket with the command
    gsutil -m rsync -r s3://<S3_bucket_name> gs://<GCP_bucket_name>
  5. Once the data is copied, you can use the gsutil ls command to verify that the data has been successfully transferred to GCP Cloud Storage.

It’s worth noting that gsutil also supports parallel uploads and downloads, which can help speed up the migration process.


Note that there may be a cost associated with transferring data between S3 and GCP. This cost will depend on the amount of data being transferred and the location of the data.

When migrating data or workloads to the cloud, there are several key considerations to keep in mind:

  1. Data security: It’s important to ensure that your data is secure during and after the migration process. This includes encrypting data in transit and at rest, as well as implementing access controls to prevent unauthorized access to your data.
  2. Network connectivity: Make sure that your network is configured correctly to allow communication between your on-premises systems and the cloud. This may include setting up a VPN or other secure connection.
  3. Data migration: Ensure that you have a solid data migration plan in place that covers the transfer of data from your on-premises systems to the cloud. This may include using a data migration tool or service.
  4. Application compatibility: Make sure that your applications will be compatible with the cloud environment you are migrating to. This may include modifying your applications to run on different operating systems or platforms, or refactoring your code to take advantage of cloud-specific features.
  5. Cost: Cloud migration can be costly, so make sure to consider the costs of migrating your data, as well as the ongoing costs of operating in the cloud. Carefully review the pricing and service agreements of the different cloud providers to determine which one is the most cost-effective for your needs.
  6. Scalability and Performance: Plan for a scalable and performant architecture to handle the expected traffic and growth. This includes monitoring and auto-scaling capabilities.
  7. Compliance and Governance: Make sure that the cloud provider you choose meets the compliance and regulatory requirements for your industry.
  8. Test and Validate: Make sure you have a testing and validation plan in place to ensure that your data and applications are functioning correctly in the new cloud environment.

By considering these factors, you can help ensure a smooth and successful migration to the cloud.

Dheeraj jha

DevOps Engineer | Team lead | AWS | Docker | CI/CD | Gitlab-CI