◉RORK LABEN
●GPT-6.1 SOL — Rork のモデルメニューに追加(09-29)。Low/Medium/High を選べ、Pro・Max に含まれます●SONNET 5.5 — UI づくりが得意で、Sonnet 5 より出力が速いモデルが選べます(09-28)●SDK 58 — Beta が 09/15 から。stable の案内はまだなく、Expo Go でのプロジェクト実行は 09/03 からログインが必要です●WIDGET — iOS のウィジェットが本番ビルドだけ真っ黒になる原因を追った報告が出ています●OBSERVE — EAS Observe がネイティブクラッシュも記録します(SDK 57.0.21 以降・10/07)●NEW — 起動広告が、背面から戻った回にしか出ていませんでした。「前面に戻った」合図が、…●GPT-6.1 SOL — Rork のモデルメニューに追加(09-29)。Low/Medium/High を選べ、Pro・Max に含まれます●SONNET 5.5 — UI づくりが得意で、Sonnet 5 より出力が速いモデルが選べます(09-28)●SDK 58 — Beta が 09/15 から。stable の案内はまだなく、Expo Go でのプロジェクト実行は 09/03 からログインが必要です●WIDGET — iOS のウィジェットが本番ビルドだけ真っ黒になる原因を追った報告が出ています●OBSERVE — EAS Observe がネイティブクラッシュも記録します(SDK 57.0.21 以降・10/07)●NEW — 起動広告が、背面から戻った回にしか出ていませんでした。「前面に戻った」合図が、…
記事一覧/開発ツール
⬡ 開発ツール/2026-05-21上級

個人開発で『本番障害の自動応答』を仕組み化する ― Crashlytics・Sentry・Slack 通知・段階的ロールバックの設計

個人開発で 12 年・累計 5,000 万 DL を運用してきた中で組み上げた、本番障害の自動応答アーキテクチャをまとめます。Crashlytics と Sentry の二段重ね、Slack 通知の階層化、Remote Config による段階的ロールバックの実装例を共有します。

Rork585Crashlytics13Sentry6SlackRemote Config8インシデント対応アーキテクチャ22個人開発218AdMob73

✦ プレミアム記事

深夜 2 時に AdMob 収益が落ちたとき、誰が気づくのか

2014 年から個人で iPhone / Android アプリを運用してきて、累計 5,000 万ダウンロードに到達した今でも、本番障害の最初の通知に気づくのは私ひとりです。チームも、夜勤の運用要員もいません。それでも AdMob の eCPM が深夜に半減した日、Crashlytics の Fatal が午前 2 時に跳ね上がった日、何度もありました。

最初の数年は、朝起きてから初めて売上の落ち込みに気づいて、慌てて Remote Config を書き換える、という対応の繰り返しでした。寝起きの頭で本番の値を変えるのは怖い作業で、二次障害も何度か出しています。そこから少しずつ仕組みを足し、今では「深夜に発生した障害が、起床時には自動で 1 段階ロールバック済み」という状態を維持しています。

本記事は、その仕組みの設計と実装を共有するものです。チーム開発前提のインシデント本に書かれている内容ではなく、ひとりで動かしている人が現実的に組める範囲のアーキテクチャに絞っています。

個人開発 12 年で見えた『障害検知の三層構造』

最初に整理したいのは、個人で運用するアプリで監視すべき層は 3 つあるという点です。

  1. クラッシュ層 ― アプリが落ちる、起動できない、特定画面で必ず白画面になる
  2. 機能層 ― クラッシュはしないが、課金ボタンが効かない、通知が来ない、ログインできない
  3. 収益層 ― eCPM の急落、購入レート低下、解約率の急増、新規 DL の急減

クラッシュ層だけ見ていれば充分だった時代もありましたが、今は機能層と収益層の方が事業へのダメージが大きい状況が増えています。Crashlytics の Fatal が 0 件でも、AdMob の eCPM が前日比 60% まで落ちていたら、その日の収益は半分になります。3 層を別系統で見て、それぞれに別の通知ポリシーを当てるのが基本方針です。

私の場合、3 層の責任分担はこう決めています。

層一次データソース二次データソース通知優先度
クラッシュ層Firebase CrashlyticsSentryCritical(即時)
機能層Sentry(Performance + Error)Firebase PerformanceHigh(5 分以内)
収益層AdMob API + RevenueCatFirebase AnalyticsMedium(30 分以内)

「同じデータをふたつのサービスに送るのは無駄では?」と思っていた時期もありましたが、後述の二段重ね設計で、運用コストよりも誤検知の見落としを減らす効果の方が大きいと判断しています。

✦

ここまでお読みいただきありがとうございます。

この記事の続きを読む

この先には、実装コードやベンチマーク結果など、実務でお役に立てる内容をご用意しています。このサイトは広告を掲載しておらず、サーバーや開発にかかる費用はメンバーの皆様のご支援で成り立っています。もしお役に立てていましたら、ご支援いただけますと大変ありがたいです。

この記事で得られること
✦Firebase Crashlytics の Issue cluster_id を Sentry の Fingerprint に紐付けて、同一障害をひとつのチケットに統合する実装パターン
✦Slack を『割り込み層(深夜は #incident-critical だけ)』と『記録層(日中の #incident-log)』に分ける on-call routing 設定の具体例
✦Remote Config と EAS Update を組み合わせ、5 分以内に AdMob プレースメントと Feature Flag を段階的にロールバックする自動化スクリプト
Stripe による安全な決済 · いつでもキャンセル可能
✦

この記事を購入する

この先の内容をすべてお読みいただけます。一度のご購入で、いつでも何度でもアクセスできます。このサイトは広告を掲載しておらず、皆さまのご支援がサーバー費用などの運営を支えています。

または
メンバーシップなら全記事が読み放題 →
シェア

お読みいただきありがとうございます

Rork Lab は広告なしで運営しており、サーバー費用などの運営コストはメンバーシップのご支援で賄っています。実装コード・ベンチマーク・本番設計パターンなど、実務でお役立ていただける記事を毎日更新しています。もし読んでよかったと感じていただけましたら、ぜひご覧ください。

  • ✦コピー&ペーストで使える実装コード付き
  • ✦毎日新しい上級ガイドを追加
  • ✦¥580/月 または ¥1,480 の永久アクセス
メンバーシップを見る →

関連記事

⬡ 開発ツール2026-07-24
アプリの設定値を三層で解決する — 既定・ユーザー・リモートを境界付きにマージするレイヤー設計
既定値・ユーザー設定・リモート設定をひとつの型安全なレイヤーでマージする設計です。壊れたリモート値でもアプリが崩れないよう、キーごとに上書きの強さを変え、境界クランプと検証を通す実装を、実際の事故から起こしたコードで解説します。
⬡ 開発ツール2026-06-12
Rork 製アプリに開発者デバッグメニューを実装する — 広告・課金・Remote Config の検証をリリース前に終わらせる設計
リリースビルドでしか再現しない広告・課金・Remote Config の不具合に毎回本番で向き合うのは消耗します。壁紙アプリ6本の運用で固まった、ストア提出ビルドには存在ごと残さない開発者デバッグメニューの設計と実装を、動くコードと落とし穴付きで共有します。
⬡ 開発ツール2026-05-19
Firebase App Check を Rork に段階的に enforcement する — AdMob 不正検知と Crashlytics を壊さない実運用設計
Firebase App Check を本番投入したいが Crashlytics や AdMob を壊したくない、という個人開発者向けに、Rork から DeviceCheck と Play Integrity を段階的に有効化する設計とロールバック手順をまとめます。