【かんきょうへんすう】

環境変数 とは?

💡 OSレベルの「設定メモ」—アプリに外から値を渡す
📌 このページのポイント
環境変数の仕組み OS / シェル PATH = /usr/bin:... HOME = /home/user API_KEY = sk-abc123 NODE_ENV = production 参照 アプリケーション process.env.API_KEY os.getenv("HOME") $NODE_ENV で分岐 ※コードに秘密情報を埋め込まず、環境ごとに設定を切り替えられる
環境変数のイメージ
ひよこ ひよこ

なんでコードに直接書かないの?

ペンギン先生 ペンギン先生

セキュリティAPIキーパスワードをコードに書くとGitHub経由で漏洩する。②環境ごとの切り替え:本番DBとテストDBの接続先を環境変数で切り替えれば、コードの変更なしで環境を切り替えられる。③Twelve-Factor Appの原則でも環境変数での設定管理が推奨されているよ

ひよこ ひよこ

.envファイルって何?

ペンギン先生 ペンギン先生

「DB_HOST=localhost」「API_KEY=sk-xxx」のようにキー=値の形式で環境変数を書くファイルだよ。dotenvライブラリで読み込む。.envは.gitignoreに入れてGitにコミットしない。チームには.env.exampleを共有して、各自が値を設定するパターンが一般的だね

ひよこ ひよこ

NODE_ENVって何?

ペンギン先生 ペンギン先生

Node.jsの実行環境を示す環境変数だよ。「development」(開発)、「production」(本番)、「test」(テスト)が標準。production時はデバッグ情報を非表示にしたり、アセットを圧縮したり、エラーの詳細をユーザーに見せないようにする。多くのフレームワークがNODE_ENVを参照して動作を変えるよ

ひよこ ひよこ

本番環境での管理方法は?

ペンギン先生 ペンギン先生

AWS Systems Manager Parameter Store / Secrets Manager、②HashiCorp Vault、③Doppler、④Vercel/Netlifyの環境変数設定。.envファイルをサーバーに置くのは避けて、マネージドサービスを使うのがベスト。暗号化保存、アクセスログ、バージョン管理ができるから安全性が格段に上がるよ

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「環境変数」って出てきたら「OSやアプリに外から渡す設定値」と思えればだいたいOK!
📖 おまけ:英語の意味
「Environment Variable」 = 環境変数
💬 Environment(環境)に設定するVariable(変数)。アプリの外側から値を渡す仕組みだよ
← 用語集にもどる