2018-10-31に更新

Google Cloud Storage無料DBバックアップ

サービスを運用していると、データベースのバックアップが必要になります。ただ、同じサーバー内にバックアップを保存すると、サーバーが壊れた際にまるごと紛失してしまいます。

そんな時、Google Cloud Storageだと無料でデータベースのバックアップを保存できるため非常に便利です。

無料枠の詳細

容量5GBまでは無料

Always Freeにより、下記はずっと無料になっています。

  • 5 GB の Regional Storage(米国リージョンのみ)
  • 5000 回のクラス A オペレーション(1 か月あたり)
  • 50000 回のクラス B オペレーション(1 か月あたり)
  • 1 GB の北米から全リージョン宛て下りネットワーク(1 か月あたり、中国およびオーストラリアを除く)

上記の通り、米国リージョンでGoogle Cloud Storageのバケットを作成しておくと、5GBまでは無料になります。DBのバックアップであれば速度は関係ないため、米国で良いと思います。

Google Cloud Storageにバックアップする総容量が5GBを超えると費用がかかってきてしまいます。

通信料も無料

上り(Google Cloud Storageへのアップロード)は基本的に無料です。バックアップする際は特に気にすることはありません。

下り(Google Cloud Storageからのダウンロード)は、前述の無料枠の通り、1GBまでは無料となっています。北米のリージョンにバケットを作って運用しましょう。

Google Compute Engineからだったら楽

Google Compute Engineからバックアップを行う場合、非常に楽です。

というのも、Google Compute Engineには最初からGoogle Cloud Storageへのアップロードに必要なgcloudgsutilが元々入っており、しかも最初から認証済みになっています。そのため、ほとんど事前準備もなくコマンドを叩くだけでバックアップを行うことができます。

バケットなどは事前に作っておきましょう。(非公開にしましょう)

僕は下記のようなバックアップスクリプトを作成しました。
(gsutilのパスは適宜実際のものとあわせてください)

rm backup.sql.gz
mysqldump -u dbuser --password=hogehoge dbname > backup.sql
gzip backup.sql
/snap/bin/gsutil cp gs://backup-bucket/2.sql.gz gs://backup-bucket/3.sql.gz
/snap/bin/gsutil cp gs://backup-bucket/1.sql.gz gs://backup-bucket/2.sql.gz
/snap/bin/gsutil cp bakup.sql.gz gs://backup-bucket/1.sql.gz

3世代まで保存しています。容量に応じてこの辺は増やしたり減らしたりすれば良いと思います。

GCP以外からの場合はkey fileを使って認証が必要なようです。

まとめ

何にしろAmazon S3等と違い、Google Cloud Storageは年間クレジットだけでなく永久無料枠があるのが大きな魅力です。さらに、GCPとの連携であれば初期設定も省くことができるのですぐに使えて便利です。ぜひ一度Google Cloud Storageの利用を試してみてください。

※料金についてはその都度実際に確認を行ってください。


だら@Crieit開発者

Crieitの開発者です。 主にLAMPで開発しているWebエンジニアです(在宅)。大体10年程。 記事でわかりにくいところがあればDMで質問していただくか、案件発注してください。 業務依頼、同業種の方からのコンタクトなどお気軽にご連絡ください。 業務経験有:PHP, MySQL, Laravel5, CakePHP3, JavaScript, RoR 趣味:Elixir, Phoenix, Node, Nuxt, Express, Vue等色々

Crieitは個人で開発中です。 興味がある方は是非記事の投稿をお願いします! どんな軽い内容でも嬉しいです。
なぜCrieitを作ろうと思ったか

また、「こんな記事が読みたいけど見つからない!」という方は是非記事投稿リクエストボードへ!

こじんまりと作業ログやメモ、進捗を書き残しておきたい方はボード機能をご利用ください!

ボードとは?

関連記事

コメント