---
title: "microCMSのバックアップ機能を作ってみた話"
date: 2025-10-06
categories: column
author: 大塚
canonical: https://www.liberogic.jp/topics/20251007-microcms_backup/
---

# microCMSのバックアップ機能を作ってみた話

![](https://images.microcms-assets.io/assets/4b13731f29254025b91c8d846198ffc9/5fbde95316434743a14c9914e5c5fef2/kakeru.png)

1年以上前 に、microCMS のバックアップ仕組みを社内で作っていました。
microCMSはデータ保全のためのバックアップはあるのですが、管理画面から過去のデータを取得することは出来ません。操作ミスによるデータ削除の対策として「じゃあ作っちゃえ」というノリで始めたものです。バックアップって「取る」だけじゃなくて、いざというときに戻せることが重要です。「昨日の状態に戻したい」「誤って消した記事を復元したい」
そんなケースでも対応できるようにしておくと、運用時の安心感が違いますよね。



こんにちは、リベロジックでCTOをしている大塚です。

記事をなんとか！と言われても、あまり書くことがないので、今日はちょっと昔の話を。

実は **1年以上前** に、microCMS のバックアップ仕組みを社内で作っていました。

microCMSは[データ保全のためのバックアップ](https://help.microcms.io/ja/knowledge/data-backup-mechanism)はあるのですが、管理画面から過去のデータを取得することは出来ません。操作ミスによるデータ削除の対策として「じゃあ作っちゃえ」というノリで始めたものです。

### 仕組みのざっくり紹介

- **Cloudflare Workersでバックアップするプログラムを作成**
- **マニュアル or CRON で起動**

![](https://images.microcms-assets.io/assets/4b13731f29254025b91c8d846198ffc9/fe239b896e1a4b1b8da2a6d242150899/2025-06-18_16.21.17_720.png)

![](https://images.microcms-assets.io/assets/4b13731f29254025b91c8d846198ffc9/67ac6705590e4957a47af2b8d74efc3a/2025-06-18_16.21.33_720.png)

- **endpoint + id + revisedAt** でユニーク性を担保
- データは重複せずスナップショット管理

![](https://images.microcms-assets.io/assets/4b13731f29254025b91c8d846198ffc9/e396224dbee8448b8505e686001952f2/2025-06-18_16.21.57_720.png)

![](https://images.microcms-assets.io/assets/4b13731f29254025b91c8d846198ffc9/ef5dbf4c9e334b54802d780fc7caf9a1/2025-06-18_16.22.02_720.png)

- メディアファイルもまとめて保存

![](https://images.microcms-assets.io/assets/4b13731f29254025b91c8d846198ffc9/10474ca1f35e485f9034e513642acefe/____________________________2025-06-18_16.22.28_720.png)

![](https://images.microcms-assets.io/assets/4b13731f29254025b91c8d846198ffc9/dbaadacac7d14480a4e0ab659feeabcc/____________________________2025-06-18_16.22.17_720.png)

![](https://images.microcms-assets.io/assets/4b13731f29254025b91c8d846198ffc9/fbc3c5bfe9524164ab69a6da989c5163/____________________________2025-06-18_16.22.44_720.png)

保存先は、記事は Cloudflare D1、メディアファイルは Cloudflare R2。

記事データも画像もまとめてバックアップしておけます。

### 復旧まで考えた仕組み

バックアップって「取る」だけじゃなくて、**いざというときに戻せること**が重要です。  
「昨日の状態に戻したい」「誤って消した記事を復元したい」  
そんなケースでも対応できるようにしておくと、運用時の安心感が違いますよね。

### まとめ

- microCMSのバックアップをする仕組みを **Cloudflare 環境で構築**
- 記事、コンテンツをまとめて保存してスナップショット管理
- **復旧まで含めて安心**できる仕組みに

こういう「自分たちが欲しいから作った仕組み」って、意外と実務では一番役立つんですよね。

ではでは。
