🎛️
DevOps・運用コード品質 2026年4月4日

必須設定を最小化しデフォルトを動的決定する

📁 ルール 👁 -- 閲覧

必須設定を最小化しデフォルトを動的決定する

ルール

設定を設計するとき、以下の原則に従う:

  1. ユーザーに強制して聞くことを最小化する — 「必ず設定しなければ動かない」項目をできる限り減らす
  2. デフォルトは静的な値ではなく、環境から動的に決定する — ホスト名・ポート・リージョンなどは自動検出する
  3. 設定のインターフェースとデータフォーマットを分離する — インターフェースを変えずに内部フォーマットを変更できるようにする

理由

設定が複雑だと:

  • セットアップの障壁が高くなり、新環境でのデプロイに時間がかかる
  • 設定ミスによる障害が増える(設定の組み合わせ爆発)
  • 「なぜこの設定が必要か」がドキュメント化されず、引き継ぎが困難

必須設定を減らすことで:

  • 初期セットアップが速くなる(新規サービス・新環境への展開)
  • 設定ミスの表面積が減る
  • テストが容易になる(デフォルトで起動できる)

実践

設定項目を追加するとき:

  1. 「これは本当にユーザーが決めなければならないか?」を問う
  2. 環境変数・メタデータサーバー・設定ファイルの規約から自動検出できないか検討
  3. デフォルト値を設定したうえで、必要な場合だけオーバーライドできる設計にする

例外

  • セキュリティに関わる設定(認証情報・暗号化キー)は明示的に要求することが適切
  • ビジネス要件として「必ず人間が確認して設定すべき」項目は強制でよい

出典

Google SRE Workbook(Betsy Beyer他)第14章「Configuration Design」