【こんふぃぐ】

コンフィグ とは?

最終更新:
💡 ソフトウェアの動き方を決める設定

コンフィグはソフトウェアの動作を決める設定。設定ファイルや環境変数などで指定します。コードとの違い、設定の反映方法、APIキーなどの秘密情報を扱う際の注意を解説します。

📌 このページのポイント
コンフィグ:動き方を決める設定指定する設定ファイル・環境変数起動時の引数など秘密情報は別途保護アプリケーション接続先・ポートログの詳しさなど読み込んだ値で動作優先順位と、反映後の動作を確認する
設定項目や反映時期はツールによります。.envや環境変数に置くだけで秘密情報が守られるわけではありません。
ひよこ ひよこ
コンフィグって、何を設定するの?
ペンギン先生 ペンギン先生
ソフトウェアをどのように動かすかの値だよ。例えば接続先のデータベース、待ち受けるポート、ログの詳しさなど。処理の仕組みを変えるコードと分けると、同じプログラムを開発用や本番用の設定で動かしやすくなるんだ。
ひよこ ひよこ
設定は全部ファイルに書くの?
ペンギン先生 ペンギン先生
設定ファイルに限らないよ。環境変数や起動時の引数で指定するツールもある。ファイルならYAMLやJSON、TOMLなどが使われるけれど、形式や項目はツールごとに違う。Astroのastro.config.mjsのようにJavaScriptで書く例もあるんだ。
ひよこ ひよこ
どのファイルを編集すればいい?
ペンギン先生 ペンギン先生
そのツールの公式手順を確認しよう。例えばDocker Composeではcompose.yamlが推奨され、以前のdocker-compose.ymlも互換性のため使えるよ。同じ設定を複数の場所で指定できる場合は、どれが優先されるかも確かめよう。
ひよこ ひよこ
パスワードは.envに書けば安心?
ペンギン先生 ペンギン先生
.envも設定ファイルだから、名前を変えただけでは守られないよ。秘密情報はGitへ登録せず、閲覧権限やログへの出力も管理しよう。環境変数にも漏れる経路はある。用途に応じて秘密情報の管理サービスなどを使い、必要な相手だけに渡すことが大切だね。
ひよこ ひよこ
設定を書き換えたら、すぐ動作が変わる?
ペンギン先生 ペンギン先生
反映のタイミングはツール次第だよ。再起動や再ビルドが必要な場合もある。読み込むファイルと値が正しいかを確認し、変更後の動作も確かめよう。設定を戻せるように記録を残すと、問題が起きたときに調べやすいね。
もっと詳しく知りたい人へ

Twelve-Factor Appは、あらゆる設定を環境変数にする考え方?

同資料でいうconfigは、開発・本番などのデプロイ先で変わる接続先や認証情報などです。アプリ内部のルーティングなど、デプロイ先で変わらない構成とは区別しています。また、環境変数で渡すことと秘密情報を安全に管理することは別の課題です。OWASPはアクセス権、漏えい経路、更新や失効の管理も扱っています。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「コンフィグ」って出てきたら「ソフトウェアをどう動かすかの設定」と思えばだいたいOK!
📖 おまけ:英語の意味
「Configuration」 = 構成・設定
💬 ConfigはConfigurationを短くした言葉。ファイルだけでなく、環境変数などから与える設定も含めて使われるよ。

参考資料

← 用語集にもどる