Replicating to Google Cloud Storage
This guide will show you how to use Litestream to replicate to a Google Cloud Storage bucket. You will need a Google Cloud account and to complete this guide.
Setup
Create a bucket
In the GCP Console, use the top search bar to navigate to “Cloud Storage”. You may need to enable storage and billing if you have not previously set it up.
Next, click the “Create Bucket” button. Enter a globally unique bucket name and click the “Create” button.
Create a service account
On a Compute Engine VM or Cloud Run service, Litestream will automatically pick up the credentials associated with the instance from the instance’s metadata server.
If you run Litestream outside of Google Cloud, you’ll need to set up a service account to authenticate into GCP and access your bucket. From the top search bar, navigate to “Service Accounts”. Enter a name for your service account and click the “Create” button.
Next, you’ll need to grant the Storage Admin role to your service accounts so they can read & write data. Then click the “Done” button.
After your account has been created, click on it and go to the “Keys” subsection. Click the “Add Key” drop-down and select “Create new key”. Choose the “JSON” option.
This will download a JSON file to your local computer. Move it to a safe location and set an environment variable pointing to its path:
export GOOGLE_APPLICATION_CREDENTIALS=/path/to/xxxxxxx.json
Usage
Command line usage
You can specify your replica as a replica URL on the command line. For example, you can replicate a database to your bucket. Replace the placeholders with your bucket & path.
litestream replicate /path/to/db gcs://BUCKET/PATH
You can later restore your database from Google Cloud Storage to a local my.db
path with the following command.
litestream restore -o my.db gcs://BUCKET/PATH
Configuration file usage
Litestream is typically run as a background service which uses a configuration
file. You can configure a replica for your database using the url
format.
dbs:
- path: /path/to/local/db
replicas:
- url: gcs://BUCKET/PATH
Or you can expand your configuration into multiple fields:
dbs:
- path: /path/to/local/db
replicas:
- type: gcs
bucket: BUCKET
path: PATH