12factor appのようにモダンな思想でアプリケーションを開発したいと思っております。
どの言語のどのフレームワークがその思想を取り入れているかはすべて把握しておりませんが**、設定をコードから厳密に分離**したいです。(PHPのSymfonyやLaravelはその思想を取り入れていることまで把握しております)
それを踏まえてWebアプリケーションで使用するシークレット情報(DB接続情報やAPIキー等)を環境変数に格納したいのですが、どのような方法で行うのがベターでしょうか?
環境変数を設定する方法としては以下の2パターンあることまで調べましたがどちらが良いのかまで判断するに至りませんでした。
- 起動スクリプト(bashrc等)
- Webサーバー(Nginx等)
上記1,2のどちらが良いのか、またその設定方法(bashrcよりも.bash_profileのが良い等)までご助言いただけますとありがたいです。
#####前提事項
特定言語やフレームワークに依存しない方法を求めている。
ただしDocker等を利用した環境の話ではない。
プラットフォーム(AWS等)が提供しているGUIで環境変数を管理する機能は対象外。
環境はプロダクション環境を対象。
すみませんがよろしくお願いいたします。