環境変数の管理方法
Next.js
では、環境変数を使ってアプリケーションの設定を柔軟に管理できます。例えば、APIキーやデータベース接続情報などの重要な設定を.env
ファイルに格納することで、コードベースに直接書き込むことなく、異なる環境(開発・テスト・本番)で異なる設定を使用できます。
- .envファイルの使用
Next.js
は、以下のような複数の.env
ファイルをサポートしています:.env.local
ローカル開発用.env.development
開発環境用.env.production
本番環境用 これにより、各環境で異なる変数を簡単に管理でき、デプロイ時に適切な設定が適用されます。
- .gitignoreで機密情報を保護
環境変数にAPIキーやデータベースのパスワードなどの機密情報を含む場合、.env
ファイルは必ず.gitignore
に追加し、リポジトリに含めないようにする必要があります。これにより、誤って機密情報が外部に漏れるリスクを軽減できます。
セキュリティ対策
Next.js
で環境変数を安全に扱うためには、以下のセキュリティベストプラクティスに従うことが重要です。
公開用と非公開用の変数を区別する
環境変数の中には、クライアントサイドで必要なものもあります。このような変数にはNEXT_PUBLIC_
プレフィックスを付けて、クライアント側でアクセスできるようにします。しかし、APIキーや機密情報は必ずサーバーサイドでのみ使用するようにし、NEXT_PUBLIC_
を付けないようにします。
NEXT_PUBLIC_API_URL=http://api.example.com
ビルド時に環境変数を設定
Next.js
では、環境変数はビルド時に決定されるため、デプロイ後に変数を変更する場合は再ビルドが必要です。ビルド時に設定されるため、クライアントサイドに露出する情報は非常に注意して扱う必要があります。
動的な設定にはサーバーサイドレンダリングを活用
動的に変わる設定が必要な場合、getServerSideProps
を使ってサーバー側で環境変数を読み込むことが推奨されます。これにより、クライアントには機密情報が渡されず、安全にデータを処理できます。
export async function getServerSideProps() {
const secretApiKey = process.env.SECRET_API_KEY;
return { props: { key: secretApiKey } };
}
最後に
Next.js
での環境変数管理は、開発の効率化とセキュリティ強化の両立が求められます。適切に設定された環境変数は、コードの保守性を高め、機密情報の保護に貢献します。これらのベストプラクティスを遵守することで、安全でスケーラブルなNext.js
アプリケーションを構築することができます。