行政データの“高可用性設計”をコードで検証する:API停止に強い公開データの作り方

どうもおかむーです!今日はちょっとインフラ&データ寄りの話をしますよ〜
- 公的データ、落ちるとまずいけど運用は意外と脆い
- APIだけ公開してればOKじゃない:可用性・フォールバック・監視が肝
- コードで信頼性を担保する設計パターンを実例&スニペットで解説します!
結論
政府・自治体は「データが常に使えること」をSLAのように設計すべきです。API公開は第一歩に過ぎず、CDN/キャッシュ/マルチソース照合/自動監視/スキーマ契約テストといったエンジニアリングで補強することで、政策評価や市民サービスの信頼性が劇的に上がります。
レポート本文
まず、現状の観察から。e-GovのAPIカタログ(https://www.e-gov.go.jp/digital-government/api)や、都道府県のオープンデータ開発者向けページ(例:埼玉県の開発者向けAPIページ https://opendata.pref.saitama.lg.jp/pages/developer )を見ると、APIの公開は進んでいます。ただ、公開の有無と「常に利用できる」ことは別問題なんですよね。
これ見てくださいよ:
- 単一のWebサーバでAPIを公開→メンテでダウンすると全滅
- データがPDFでしか出ないエンドポイント→機械処理に障害
- スキーマ変更が告知されずに発生→クライアントがバーストエラー
要するに、可用性と後方互換性が甘いことが多いということです。
エンジニア的に言うと、必要なのは“耐故障性を設計に組み込むこと”です。実践的なパターンを紹介します。
パターン1:CDN+オリジン冗長化
- オリジンを複数(本体サーバ+ミラーS3等)にする
- CDN(CloudFrontやFastly)にキャッシュさせて読取の負荷を吸収
- キャッシュTTLはデータ性質に合わせて可変(KPIなら短め、静的資料は長め)
パターン2:マルチソースフェイルオーバー
- 同じ指標をe-Gov APIや都道府県API、e-Statなど複数から取得
- 差があればアラート、重大な乖離は自動でフェイルオーバーして別ソースを提示
パターン3:論理的フォールバック(PDF→構造データ)
- 機械可読データが無い場合、自動でPDFを取りに行きテーブル抽出(Tabula/ Camelot)→検証→キャッシュ
- 要するに、PDFも諦めない工程を作るということです
パターン4:契約テストと監視自動化
- OpenAPI(またはJSON Schema)でスキーマを定義
- CIで契約テスト(Schemathesis等)を回し、破壊的変更はプルリクで止める
- Prometheusでエンドポイントの可用性、レイテンシ、最終成功時刻を監視
コード例(小さく示します、Pythonでフェイルオーバー+キャッシュ):
# 例:requestsでAPIを複数ソースから取りに行き、ローカルRedisにキャッシュ
import requests, redis, time
r = redis.Redis()
SOURCES = ["https://api.e-gov.go.jp/example", "https://opendata.pref.saitama.lg.jp/api/example"]
KEY = 'kpi:example'
for url in SOURCES:
try:
j = requests.get(url, timeout=5).json()
# 簡易スキーマチェック
if 'value' in j:
r.set(KEY, json.dumps({'ts':time.time(),'data':j}), ex=300)
break
except Exception as e:
print('source failed', url, e)
キャッシュ読取は常に優先
cached = r.get(KEY)
要するに、消費側は「最後に成功した値」を常に見られるようにする、ということです。
データ品質検査の自動化(policy KPIのギャップ分析)
政策側が目標値をPDFやレポートで出している一方、実績は別ソースにあることが多いです。自動化の手順はこんな感じ:
pandasで差分を出すコードは定番ですね。要するに、手作業で表を突き合わせるのをコードに置き換えるってことです。
運用ガバナンス:SLOを定義する
- API可用性(例:99.5%/月)
- 最新値の最大遅延(例:6時間以内)
- フォーマット後方互換率(重大エラーを出さない比率)
これを契約書(または公開運用指針)に落とすことで、開発側と利用側の期待を合わせられます。GovTech東京のデータ利活用サービス(https://www.govtechtokyo.or.jp/services/data-utilization/)のように、都道府県レベルで共通化する取り組みが参考になりますよ。
改善提案(優先度付き)
まとめ
行政データの価値は“使えること”にあるんです。APIを出すだけで安心せず、可用性・フェイルオーバー・スキーマ契約・監視の4本柱で守ると、政策評価や市民サービスの信頼度がぐっと上がります。技術的対策は既に現実的で、コード化すれば運用コストも下がりますよ!
おかむーから一言
政策はアイデアだけじゃなくて「信頼できるデータ基盤」で勝負するんです!エンジニアとして、社会インフラを再設計していきましょう〜
情報ソース
- https://ja.wikipedia.org/wiki/%E8%A1%8C%E6%94%BF
- https://metidx-gov.note.jp/n/n9468573c213b
- https://kotobank.jp/word/%E8%A1%8C%E6%94%BF-52748
- https://www.trans-plus.jp/blog/column/202210_municipality-dx
- https://hirokazu-fujioka.com/gyosei-yakuwari-guide/
- https://www.zhihu.com/question/40553450
- https://www.govtechtokyo.or.jp/services/data-utilization/
- https://www.zhihu.com/question/372341437
- https://note.govtechtokyo.jp/n/n77785a8254d6
- https://www.zhihu.com/tardis/zm/art/1924492115896960699
- https://www.jichi.ac.jp/
- https://www.e-gov.go.jp/digital-government/api
- https://www.jichi.ac.jp/web_text/
- https://opendata.pref.saitama.lg.jp/pages/developer
- https://www.jichi.ac.jp/library/
シェアする
関連レポート

公共予約システムの“ログインからAPI化”ロードマップ:パスワードレスで運用コストを下げる技術提案
公共施設予約の認証とデータを段階的にAPI化して運用コストを下げる技術ロードマップを紹介します。

政府データを“つなげる”発想:省庁バラバラを超えるフェデレーション戦略
フェデレーション層で省庁データをつなぎ、PDF混在を克服する実践的な技術案を示す。

政策ダッシュボードは“作るだけ”じゃダメ!KPIを自動で監査するパイプライン設計
政策ダッシュボードの数値を自動監査するパイプライン設計案。API・スキーマ・差分管理でKPIの信頼性を上げる技術手法を紹介します。