Google Sheets 配信からCloudflare R2配信 へ完全移行

アプリのデータ配信はGoogle Sheetsを公開・利用していたが、今回、Cloudflare R2に移行した。

利用していた Google Visualization APIは、Google SheetsのデータをCSVやJSONで手軽に取得できる便利な仕組みだが、もともとGoogle Charts用に作られたものでSheets専用の正規APIではないためレート制限や突然のエラーがあり不安定だった。

ユーザー側のメリットはアプリの起動やデータ読み込みが安定して速くなる点だ。
これまではGoogle Sheetsのレート制限やエラーがそのままアプリの不具合として現れることがあったが、R2からの直接配信に切り替えることでその影響を受けなくなる。

R2のメリットは下り転送が無制限無料な点でもある。アクセスが増えてもコストが増加しないため、ユーザー数が増えても安定したサービスを維持できる。

構成はシンプルで、バケット直下にMaster.csvを置き、各アプリのフォルダーに設定に必要なcsvデータを配置する。
Master.csvにはシートIDとフォルダー名の対応表が入っており、アプリ起動時にシートIDでマスターを引いてフォルダー名を取得、以降のCSVをR2から読み込む。
シートIDはES3のキーとして使っており、過去問追加時にシートIDが変わることでユーザーデータを自動的に無効化する仕組みもそのまま維持できた。

CSVの作成・編集は引き続きGoogle Sheetsで行い、更新時にR2へアップロードする運用になる。この手間が唯一のデメリットだが、GASで自動化している。

これによりアプリのデータはすべてR2にアップロード・利用が可能となった。

今回の手順
①Google Sheetsを使って元データ作成
②Google Sheetsをcsv化・R2にアップロード(GASで自動化)