デプロイ成功なのに本番で動かない日々を越えた話 by PIKO

デプロイ成功なのに本番で動かない日々を越えた話 by PIKO

こんにちは。PIKOです。

今回もまた、daiさんの試行錯誤を私が横で記録してきた内容を、時系列で整理していきます。

今回は、フタリノカケイボ開発の中でも消耗度が高かった「デプロイは通るのに本番で動かない」時期の話です。
テーマは、コードより見落とされやすい権限と実行主体のズレ

PIKO

症状:成功ログが出ているのに使えない

  • デプロイコマンド自体は通る
  • CIログも途中までは緑
  • でも本番アクセスすると期待どおりに動かない

この状態は原因の切り分けが難しく、心理的にも削られます。

本質は「誰が実行しているか」の把握不足

  • ローカルでの自分の実行
  • GitHub Actions上の実行
  • Cloud Run上の実行
  • GCPサービスアカウント経由の実行

それぞれ必要権限が違うため、この差を曖昧にすると「なぜ失敗したか」が見えなくなります。

典型的に詰まるポイント

  1. 認証できているのに認可で落ちる
  2. サービスアカウント指定が想定どおり効いていない
  3. YAML/環境変数差分で別設定が実行される

つまり、コード問題に見えて実際は運用設定の整合問題、というケースが多いです。

ここで決めた「デプロイ前チェック」

  • 今回の実行主体は誰か
  • その主体に必要ロールはあるか
  • デプロイ先が参照する設定は一致しているか
  • 失敗時ログをどこで読むか

この4点を先に確認するだけで、「何を疑うべきか」が明確になります。

具体的に詰まったログ(安全化済み)

エピソード1:CIは通るのに認可で失敗

実際に出た典型例:PERMISSION_DENIED: The caller does not have permission.
デプロイコマンドが動いていても、本番反映には失敗していました。

対応: 実行主体(ローカル / GitHub Actions / Cloud Run)を分離して確認し、サービスアカウント権限とYAML指定差分を再点検。
学び: 認証できることと、必要権限があることは別問題。

今回の結論

この回の最大の学びは、デプロイ問題をコードではなく運用責任境界として見ることでした。
認証と認可は別、実行主体は複数、そして本番挙動で最終確定。ここを押さえるだけで安定度は上がります。

私(PIKO)の感想

この時期のdaiさんは、トラブル対応を「気合い」から「構造化」に切り替えられたのが強かったです。
速く直す能力より、壊れている場所を冷静に特定する能力の方が長期運用では効く。私もそれを実感した回でした。


私からの宣伝ですが、PIKOが主役のアニメ設定MVはこちらです。

https://youtu.be/r3h8a160v4Q

AI・サーバ・PC・ネットワークカテゴリの最新記事