

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# 環境変数とその他のソフトウェアの設定
<a name="environments-cfg-softwaresettings"></a>

**[更新、モニタリング、ロギングの設定]** ページでは、アプリケーションを実行する Amazon Elastic Compute Cloud (Amazon EC2) インスタンス上のソフトウェアを設定できます。環境変数、 AWS X-Ray デバッグ、インスタンスログの保存とストリーミング、プラットフォーム固有の設定を設定できます。

**Topics**
+ [プラットフォーム固有の設定を構成する](#environments-cfg-softwaresettings-specific)
+ [環境プロパティ (環境変数) の設定](#environments-cfg-softwaresettings-console)
+ [ソフトウェア設定の名前空間](#environments-cfg-softwaresettings-configfiles)
+ [環境プロパティへのアクセス](#environments-cfg-softwaresettings-accessing)
+ [AWS X-Ray デバッグの設定](environment-configuration-debugging.md)
+ [Elastic Beanstalk 環境ログを表示する](environments-cfg-logging.md)

## プラットフォーム固有の設定を構成する
<a name="environments-cfg-softwaresettings-specific"></a>

すべての環境で利用できる標準のオプションセットに加え、ほとんどの Elastic Beanstalk プラットフォームでは、言語固有またはフレームワーク固有の指定を行うことができます。これらは、**[更新、モニタリング、およびロギングの設定]** ページの **[プラットフォームソフトウェア]** セクションに表示され、次の形式を取ることができます。
+ **プリセットの環境プロパティ** – Ruby プラットフォームでは、`RACK_ENV` および `BUNDLE_WITHOUT` のようなフレームワーク設定の環境プロパティを使用します。
+ **プレースホルダーの環境プロパティ** – Tomcat プラットフォームでは、どのような値にも設定されない `JDBC_CONNECTION_STRING` という名前の環境プロパティを定義します。この設定タイプは、旧式のプラットフォームバージョンで一般的でした。
+ **設定オプション** – ほとんどのプラットフォームでは、`aws:elasticbeanstalk:xray` や `aws:elasticbeanstalk:container:python` などのプラットフォーム固有または共有の名前空間で[設定オプション](command-options.md)を定義します。

**Elastic Beanstalk コンソールでプラットフォーム固有の設定を指定するには**

1. [Elastic Beanstalk コンソール](https://console.aws.amazon.com/elasticbeanstalk)を開き、**リージョン**リストで を選択します AWS リージョン。

1. ナビゲーションペインで、[**環境**] を選択し、リストから環境の名前を選択します。

1. ナビゲーションペインで、[**設定**] を選択します。

1. **[更新、モニタリング、ログ]** の設定カテゴリで、**[編集]** を選択します。

1. **[プラットフォームソフトウェア]** で、必要なオプション設定を変更します。

1. ページの最下部で **[適用]** を選択し変更を保存します。

プラットフォーム固有のオプションと、コードで環境プロパティ値を取得する方法の詳細については、該当する言語やフレームワークのプラットフォームトピックを参照してください。
+ Docker – [Elastic Beanstalk Docker 環境の設定](create_deploy_docker.container.console.md)
+ Go – [Elastic Beanstalk Go プラットフォームを使用する](go-environment.md)
+ Java SE – [Elastic Beanstalk Java SE プラットフォームの使用](java-se-platform.md)
+ Tomcat – [Elastic Beanstalk Tomcat プラットフォームを使用する](java-tomcat-platform.md)
+ .NET Core on Linux – [Elastic Beanstalk .NET Core on Linux プラットフォームの使用](dotnet-linux-platform.md)
+ .NET – [Elastic Beanstalk .NET Windows プラットフォームの使用](create_deploy_NET.container.console.md)
+ Node.js – [Elastic Beanstalk Node.js プラットフォームを使用する](create_deploy_nodejs.container.md)
+ PHP – [Elastic Beanstalk PHP プラットフォームを使用する](create_deploy_PHP.container.md)
+ Python – [Elastic Beanstalk Python プラットフォームを使用する](create-deploy-python-container.md)
+ Ruby – [Elastic Beanstalk Ruby プラットフォームを使用する](create_deploy_Ruby.container.md)

## 環境プロパティ (環境変数) の設定
<a name="environments-cfg-softwaresettings-console"></a>

**[環境プロパティ]** (**環境変数**とも呼ばれる) を使用して、エンドポイント、デバッグ設定、およびその他の情報をアプリケーションに渡すことができます。環境変数は、開発、テスト、ステージング、本稼働などのさまざまな目的で、複数の環境のアプリケーションを実行するのに役立ちます。

さらに、[データベースを環境に追加](using-features.managing.db.md)すると、Elastic Beanstalk は、アプリケーションコードで読み込むことができる `RDS_HOSTNAME` などの環境変数を設定して、接続オブジェクトまたは文字列を作成します。

**Elastic Beanstalk コンソールで環境変数を設定するには**

1. [Elastic Beanstalk コンソール](https://console.aws.amazon.com/elasticbeanstalk)を開き、**リージョン**リストで を選択します AWS リージョン。

1. ナビゲーションペインで、[**環境**] を選択し、リストから環境の名前を選択します。

1. ナビゲーションペインで、[**設定**] を選択します。

1. **[更新、モニタリング、ログ]** の設定カテゴリで、**[編集]** を選択します。

1. **[ランタイム環境変数]** まで下にスクロールします。

1. **[環境変数を追加]** を選択します。

1. **[ソース]** では、**[プレーンテキスト]** を選択します。
**注記**  
ドロップダウンの **[Secrets Manager]** と **[SSM Parameter Store]** の値は、認証情報や API キーなどの機密データを保存するシークレットとして環境変数を設定するためのものです。詳細については、「[AWS Secrets Manager および Parameter Store での Elastic Beanstalk AWS Systems Manager の使用](AWSHowTo.secrets.md)」を参照してください。

1. **[環境変数名]** と **[環境変数値]** のペアを入力します。

1. さらに変数を追加する必要がある場合は、**ステップ 6** から **ステップ 8** までを繰り返します。

1. ページの最下部で **[適用]** を選択し変更を保存します。

**環境プロパティの制限**
+ **キー**には、英数字および記号 `_ . : / + \ - @` を含めることができます。

  上記の記号は、環境プロパティーキーには使用できますが、環境のプラットフォームの環境変数名には使用できない場合があります。すべてのプラットフォームとの互換性を考慮して、環境プロパティには次のパターン (`[A-Z_][A-Z0-9_]*`) のみ使用してください。
+ **値**には、英数字、空白、および記号 `_ . : / = + \ - @ ' "` を含めることができます。
**注記**  
環境プロパティ値の一部の文字で囲う値はエスケープする必要があります。バックスラッシュ文字 (`\`) を使用して、いくつかの特殊文字と制御文字を表します。次のリストには、エスケープする必要があるいくつかの文字を表す例が含まれています。  
バックスラッシュ (`\`) — `\\` の使用を表す
一重引用符 (`'`) — `\'` の使用を表す
二重引用符 (`"`) — `\"` の使用を表す
+ **キー**と**値**は大文字と小文字が区別されます。
+ {{key}}={{value}} の形式の文字列として保存されている場合は、すべての環境プロパティの合計サイズが 4,096 バイトを超えることはできません。

## ソフトウェア設定の名前空間
<a name="environments-cfg-softwaresettings-configfiles"></a>

[設定ファイル](ebextensions.md)を使用して、設定オプションを設定し、デプロイの間、他のインスタンス設定タスクをパフォーマンスできます。設定オプションは、[プラットフォーム固有](command-options-specific.md)のものでも、Elastic Beanstalk サービス全体の[すべてのプラットフォーム](command-options-general.md)に適用できるものでもかまいません。設定オプションは、名前空間として整理されています。

Elastic Beanstalk [設定ファイル](ebextensions.md)を使用して、ソースコードで環境プロパティと設定オプションを設定できます。[`aws:elasticbeanstalk:application:environment`名前空間](command-options-general.md#command-options-general-elasticbeanstalkapplicationenvironment)を使用して、環境プロパティを定義します。

**Example .ebextensions/options.config**  

```
option_settings:
  aws:elasticbeanstalk:application:environment:
    API_ENDPOINT: www.example.com/api
```

設定ファイルまたは CloudFormation テンプレートを使用して[カスタムリソース](environment-resources.md)を作成する場合は、 関数を使用して CloudFormation リソースに関する情報を取得し、デプロイ中に環境プロパティに動的に割り当てることができます。以下、GitHub リポジトリの [elastic-beanstalk-samples](https://github.com/awsdocs/elastic-beanstalk-samples/) の例では、[Ref 関数](ebextensions-functions.md)を使用して、作成される Amazon SNS トピックの ARN を取得し、`NOTIFICATION_TOPIC` という名前の環境プロパティに割り当てています。

**注意事項**  
 CloudFormation 関数を使用して環境プロパティを定義する場合、関数が評価される前に Elastic Beanstalk コンソールにプロパティの値が表示されます。[`get-config` プラットフォームスクリプト](custom-platforms-scripts.md)を使用して、アプリケーションで使用できる環境プロパティの値を確認できます。
[複数コンテナの Docker ](create_deploy_docker_ecs.md)プラットフォームは、コンテナリソースの作成 CloudFormation に を使用しません。その結果、このプラットフォームは CloudFormation 関数を使用した環境プロパティの定義をサポートしていません。

**Example .Ebextensions/[sns-topic.config](https://github.com/awsdocs/elastic-beanstalk-samples/tree/main/configuration-files/aws-provided/resource-configuration/sns-topic.config)**  

```
Resources:
  NotificationTopic:
    Type: AWS::SNS::Topic

option_settings:
  aws:elasticbeanstalk:application:environment:
    NOTIFICATION_TOPIC: '`{"Ref" : "NotificationTopic"}`'
```

また、この機能を使用して、[CloudFormation 擬似パラメータ](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/pseudo-parameter-reference.html)の情報を反映させることもできます。この例では、現在のリージョンを取得して、`AWS_REGION` という名前のプロパティに割り当てています。

**Example .Ebextensions/[env-regionname.config](https://github.com/awsdocs/elastic-beanstalk-samples/tree/main/configuration-files/aws-provided/instance-configuration/env-regionname.config)**  

```
option_settings:
  aws:elasticbeanstalk:application:environment:
    AWS_REGION: '`{"Ref" : "AWS::Region"}`'
```

ほとんどの Elastic Beanstalk プラットフォームでは、アプリケーションにリクエストを中継するリバースプロキシなど、インスタンス上で実行されるソフトウェア設定するオプションを指定して、その他の名前空間を定義します。プラットフォームで利用できる名前空間に関する詳細については、以下のいずれかのセクションを参照してください。
+ Go – [Go 設定の名前空間](go-environment.md#go-namespaces)
+ Java SE – [Java SE 設定の名前空間](java-se-platform.md#java-se-namespaces)
+ Tomcat – [Tomcat 設定の名前空間](java-tomcat-platform.md#java-tomcat-namespaces)
+ .NET Core on Linux – [.NET Core on Linux 設定の名前空間](dotnet-linux-platform.md#dotnet-linux-namespace)
+ .NET – [aws:elasticbeanstalk:container:dotnet:apppool 名前空間](create_deploy_NET.container.console.md#dotnet-namespaces)
+ Node.js – [Node.js 設定の名前空間](create_deploy_nodejs.container.md#nodejs-namespaces)
+ PHP – [設定の名前空間](create_deploy_PHP.container.md#php-namespaces)
+ Python – [Python 設定の名前空間](create-deploy-python-container.md#python-namespaces)
+ Ruby – [Ruby 設定の名前空間](create_deploy_Ruby.container.md#ruby-namespaces)

Elastic Beanstalk には、環境をカスタマイズするための多数の設定オプションが用意されています。設定ファイルに加えて、コンソール、保存された設定、EB CLI、または を使用して、設定オプションを指定することもできます AWS CLI詳細については「[設定オプション](command-options.md)」を参照してください。

## 環境プロパティへのアクセス
<a name="environments-cfg-softwaresettings-accessing"></a>

ほとんどの場合、アクセスするアプリケーションコードの環境プロパティは、環境変数に似ています。ただし、環境プロパティは、通常アプリケーションにのみ渡されるため、環境内のインスタンスに接続し、`env` を実行して表示することはできません。
+ [Go](go-environment.md#go-options-properties) – `os.Getenv`

  ```
  endpoint := os.Getenv("API_ENDPOINT")
  ```
+ [Java SE](java-se-platform.md#java-se-options-properties) – `System.getenv`

  ```
  String endpoint = System.getenv("API_ENDPOINT");
  ```
+ [Tomcat](java-tomcat-platform.md#java-tomcat-options-properties) – `System.getProperty` および `System.getenv` 

  [2025 年 3 月 26 日](https://docs.aws.amazon.com/elasticbeanstalk/latest/relnotes/release-2025-03-26-windows.html)以降にリリースされた Tomcat プラットフォームバージョンでは、`System.getenv` を使用してプレーンテキストの環境変数にアクセスすることもできます。引き続き `System.getProperty` を使用して、プレーンテキストの環境変数にアクセスできます。ただし、[シークレットとして保存されている環境変数](AWSHowTo.secrets.env-vars.md)は、`System.getenv` を使用してのみ使用できます。

  ```
  String endpoint = System.getProperty("API_ENDPOINT");
  ```

  ```
  String endpoint = System.getenv("API_ENDPOINT");
  ```
**重要**  
[2025 年 3 月 26 日](https://docs.aws.amazon.com/elasticbeanstalk/latest/relnotes/release-2025-03-26-windows.html)以降にリリースされた Tomcat プラットフォームバージョンで環境変数への `System.getenv` アクセスを追加すると、Java システムプロパティよりも環境変数を優先するアプリケーションで、または、`System.getProperty` から `System.getenv` に明示的に切り替えるときに予期しない動作が発生する可能性があります。詳細と推奨されるアクションについては、「[Elastic Beanstalk Tomcat プラットフォームの使用](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/java-tomcat-platform.html)」を参照してください。
+ [.NET Core on Linux](dotnet-linux-platform.md#dotnet-linux-options-properties) – `Environment.GetEnvironmentVariable`

  ```
  string endpoint = Environment.GetEnvironmentVariable("API_ENDPOINT");
  ```
+ [.NET](create_deploy_NET.container.console.md#dotnet-console-properties) – `appConfig`

  ```
  NameValueCollection appConfig = ConfigurationManager.AppSettings;
  string endpoint = appConfig["API_ENDPOINT"];
  ```
+ [Node.js](create_deploy_nodejs.container.md#nodejs-platform-console-envprops) – `process.env`

  ```
  var endpoint = process.env.API_ENDPOINT
  ```
+ [PHP](create_deploy_PHP.container.md#php-console-properties) – `$_SERVER`

  ```
  $endpoint = $_SERVER['API_ENDPOINT'];
  ```
+ [Python](create-deploy-python-container.md#create-deploy-python-custom-container-envprop) – `os.environ`

  ```
  import os
  endpoint = os.environ['API_ENDPOINT']
  ```
+ [Ruby](create_deploy_Ruby.container.md#create_deploy_Ruby.env.console.ruby.envprops) – `ENV`

  ```
  endpoint = ENV['API_ENDPOINT']
  ```

デプロイ時に実行するスクリプトなど、アプリケーションコードを使用せずに環境プロパティにアクセスするには、[`get-config`プラットフォームスクリプト](custom-platforms-scripts.md)を使用します。`get-config` を使用する設定の例については、GitHub の [elastic-beanstalk-samples](https://github.com/awsdocs/elastic-beanstalk-samples/search?utf8=%E2%9C%93&q=get-config) リポジトリを参照してください。