環境変数をマスターして、開発をもっとスムーズに

環境変数は、ソフトウェアやアプリケーションの設定情報を外部から提供する仕組みです。開発環境や本番環境において、セキュリティと効率性を向上させるために活用されます。本記事では、環境変数の基本的な仕組みや、ローカルおよび本番環境での実用的な設定方法について解説します。


環境変数の解説

環境変数は、アプリケーションの動作を柔軟に制御するための仕組みです。たとえば、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を使用すると、ログイン時に自動で環境変数を読み込むことが可能です。

  1. ターミナルでファイルを編集
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