環境変数は、ソフトウェアやアプリケーションの設定情報を外部から提供する仕組みです。開発環境や本番環境において、セキュリティと効率性を向上させるために活用されます。本記事では、環境変数の基本的な仕組みや、ローカルおよび本番環境での実用的な設定方法について解説します。
目次
環境変数の解説
環境変数は、アプリケーションの動作を柔軟に制御するための仕組みです。たとえば、APIの秘密鍵やデータベースの接続情報など、アプリケーションのコードに直接記述するのではなく、環境変数を通じて安全に管理できます。
Localでの環境変数管理
ローカル開発環境では、環境変数を活用することでソースコードに重要な情報を記述するリスクを避けることができます。
.envファイル
アプリケーションを立ち上げる際、.env
ファイルが自動的に読み込まれます。このファイルに設定を記述することで、簡単に環境変数を管理できます。
settings.cfg
一部のアプリケーションでは、settings.cfg
という設定ファイルを使用します。このファイルを読み込む設定をアプリケーション側で行い、環境変数を利用します。
.gitignore
環境変数を記述したファイルは漏洩を防ぐために.gitignore
に登録する必要があります。
以下のファイルは特に重要です:
.env
settings.cfg
secrets.json
これらはGitHubにプッシュしないよう、.gitignore
に必ず記載します。
ターミナルから直接入力
一時的に環境変数を設定する場合、ターミナルで以下のように直接入力します。
export VARIABLE_NAME="value"
Linuxでの環境変数管理
本番環境では、環境変数の設定場所や方法が異なります。以下にいくつかの方法を紹介します。
ターミナルから直接入力
AWS Linuxや他のLinux環境では、ターミナルから以下のように設定可能です。
export DATABASE_URL="your_database_url"
また、/etc/environment
ファイルに設定を追加することもできます。この方法は簡易で外部ファイルへの依存を避けられますが、再起動が必要になる場合があります。
.bash_profile(オススメ)
~/.bash_profile
を使用すると、ログイン時に自動で環境変数を読み込むことが可能です。
- ターミナルでファイルを編集
vi ~/.bash_profile
2. 環境変数を追加:bashコードをコピーする
export DATABASE_URL="your_database_url" export API_KEY="your_api_key"
3. 反映
source ~/.bash_profile
/home/ec2-user/.env または /home/username/config.env
AWS Linuxにおけるホームディレクトリに.env
ファイルを配置する方法です。この場合、他ユーザーからのアクセスを制限するため、適切なパーミッションを設定する必要があります。
/etc/myapp/config.env または /etc/myapp/config.json
Linuxの/etc
ディレクトリに環境変数を設定することで、複数ユーザーやサービスから参照しやすくなります。一元管理を実現しますが、アクセス権限の設定が重要です。
AWS Secrets ManagerやAWS Systems Manager Parameter Store
AWSの管理リソースを利用することで、セキュアに環境変数を管理可能です。
- メリット: 機密情報を直接ファイルに保持するリスクを低減
- デメリット: 初期設定が複雑であり、APIリクエストを通じた取得処理が必要
まとめ
環境変数は、アプリケーションのセキュリティと柔軟性を確保するための重要な要素です。ローカル環境と本番環境で適切な方法を選択し、安全な開発・運用を目指しましょう。
Linux本番環境: secret.json
secret.jsonファイルは、AWSのsecrets managerで管理できます。
Flask