サーバレスアーキテクチャ

Cloudinaryの自分のデータを自動でバックアップさせる方法

豊富な画像変換機能でユーザーが増えているCDNサービス・Cloudinary。今回は、万が一の事態に備えてCloudinaryの自分のデータを自動でバックアップさせる方法をご紹介します。

Cloudinaryのデータはどれくらい安全?

CloudinaryはSLA(Service Level Agreement)として管理画面とAPIの「100% アップタイム」を宣言していますが、アップロードしたデータの耐久性については記載がありません。

同じクラウドでも、AWSのS3やGoogleのCloud Storageは「99.999999999の耐久性」とうたっていますが、Cloudinaryについてはそれがないのです。

Cloudinaryは多くの開発者に使われているサービスですので、頻繁にデータロストをするようなことはないと思われますが、万が一がないとは言えませんので、バックアップを取っておく方が安心です。

Cloudinaryの自分のデータをバックアップする

Cloudinary CLIを使うのがベスト

CloudinaryはAPIや管理画面など画像のバックアップをする方法がいくつか提供されていますが、自動バックアップをするのであればCloudinary CLIを使うのがベストです。

Cloudinary CLIは、Python3製なので、pip3を使ってインストールします。

pip3 install cloudinary-cli

インストールをすると、cldコマンドが使えるようになりますが、個人設定が必要なのでコマンドラインから設定を読み込ませます。

// mac or linux
export CLOUDINARY_URL=cloudinary://123456789012345:abcdefghijklmnopqrstuvwxyzA@cloud_name

CLOUDINARY_URLは、Webから管理画面を開くと最初に表示されているのでそちらを使います。

設定がうまく出来ているかもチェックしておきましょう。

cld config

cloud_name:     <CLOUD_NAME>
api_key:        <API_KEY>
api_secret:     ***************<LAST_4_DIGITS>
private_cdn:    <True|False>
signature_algorithm:    <sha1|sha256>

バックアップコマンドを使う

Cloudinary CLIがインストールできたらコマンドからバックアップが出来ます。使うコマンドは「cld sync」です。

cld オプション sync コマンドオプション ローカルフォルダー Cloudinaryフォルダー

scpなどに慣れている人なら一発で使いこなせますね。

cronとクラウドストレージを組み合わせて自動バックアップ

ここまで出来たら自動バックアップを組んでおくと安心です。

流れとしては、

  1. Cloudinary CLIでローカルバックアップ
  2. バックアップファイルをDropboxなどのクラウドに同期
  3. この作業をcronに登録して自動実行

という形です。

(1)は先程解説しました。(2)についてはclt syncのローカルフォルダーをDropboxなどのクラウドストレージの中身を保存するフォルダにすればOKです。

この方法で、

  1. Cloudinary
  2. マシンローカル
  3. クラウドストレージ

の3重でデータをバックアップ出来ます。

バックアップを定時実行させる

ここまでで「Cloudinaryからダウンロードしたら、自動でクラウドストレージにバックアップ」が出来るので、あとはバックアップコマンドを定時実行させます。

cldのパスを探して、

which cld

cronに登録します。

1 0 * * * /usr/local/bin/cld sync --pull /Users/serversus/Dropbox/cloudinary /

上記の例では、ローカル上のDropbox内に作った「cloudinary」というフォルダに、アカウント全体のデータを毎日00:01にバックアップするようにしています。

なお、Cloudnary CLIのsyncコマンドは「更新があったファイルのみを差分バックアップ」してくれますが、CLI経由のデータダウンロードでもCloudinaryの使用量は消費しますので、無料プランの方はダウンロード容量に気をつけましょう。


Cloudinaryの自分のデータを自動でバックアップさせる方法をご紹介しました。

単純にローカルマシンでこの方法を取っても良いですし、DropboxやCloudinary CLIはLinuxにも対応しているので、サーバー上で実行させることもできます。

Cloudinaryは便利なサービスですが、データが100%喪失しないとは言えないので、万が一に備えてしっかりとバックアップをすると安心ですね。


価格は記載がある場合を除き、すべて税込みです。

この記事の関連キーワード

サーバレスアーキテクチャの記事