Charmed MySQL How to | Configure S3 for AWS

Note: All commands are written for juju >= v.3.0

If you are using an earlier version, check the Juju 3.0 Release Notes.

Configure S3 for AWS

Charmed MySQL backup can be stored on any S3 compatible storage. The S3 access and configurations are managed with the s3-integrator charm. Deploy and configure the s3-integrator charm for AWS S3 (click here to backup on Ceph via RadosGW):

juju deploy s3-integrator
juju run s3-integrator/leader sync-s3-credentials access-key=<access-key-here> secret-key=<secret-key-here>
juju config s3-integrator \
    endpoint="https://s3.amazonaws.com" \
    bucket="mysql-test-bucket-1" \
    path="/mysql-test" \
    region="us-west-2"

The amazon S3 endpoint must be specified as s3.<region>.amazonaws.com within the first 24 hours of creating the bucket. For older buckets, the endpoint s3.amazonaws.com can be used.

See this post for more information.

To pass these configurations to Charmed MySQL, relate the two applications:

juju integrate s3-integrator mysql

You can create/list/restore backups now:

juju run mysql/leader list-backups
juju run mysql/leader create-backup
juju run mysql/leader list-backups
juju run mysql/leader restore backup-id=<backup-id-here>

You can also update your S3 configuration options after relating, using:

juju config s3-integrator <option>=<value>

The s3-integrator charm accepts many configurations - enter whatever configurations are necessary for your S3 storage.

Would it make sense to change the deploy command here to prefer the stable channel (e.g. just juju deploy s3-integrator)? It looks like the versions of the s3-integrator charm are the same in edge and stable currently.

Yes, indeed. Let me update that