

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 환경 변수 및 기타 소프트웨어 설정
<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. **플랫폼 소프트웨어**(Platform software)에서 필요한 옵션 설정을 변경합니다.

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)
+ Linux 기반 .NET Core – [Linux 기반 Elastic Beanstalk .NET Core 플랫폼 사용](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 파라미터 스토어** 값은 자격 증명이나 API 키와 같은 민감한 데이터를 저장하기 위해 환경 변수를 보안 암호로 구성할 때 사용됩니다. 자세한 내용은 [AWS Secrets Manager 및 AWS Systems Manager 파라미터 스토어와 함께 Elastic Beanstalk 사용](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 사용하여 리소스에 대한 정보를 가져오고 배포 중에 환경 속성에 동적으로 할당할 수 있습니다. [elastic-beanstalk-samples](https://github.com/awsdocs/elastic-beanstalk-samples/) GitHub 리포지토리의 다음 예에서는 [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)
+ Linux 기반 .NET Core – [Linux 기반 .NET Core 구성 네임스페이스](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)하세요.
+ [Linux 기반 .NET Core](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`를 사용하는 구성의 예는 [elastic-beanstalk-samples](https://github.com/awsdocs/elastic-beanstalk-samples/search?utf8=%E2%9C%93&q=get-config) GitHub 리포지토리를 참조하세요.