

AWS App Runner 는 2026년 4월 30일부터 신규 고객에게 더 이상 공개되지 않습니다. App Runner를 사용하려면 해당 날짜 이전에 가입하세요. 기존 고객은 정상적으로 서비스를 계속 이용할 수 있습니다. 자세한 내용은 [AWS App Runner 가용성 변경](https://docs.aws.amazon.com/apprunner/latest/dg/apprunner-availability-change.html)을 참조하세요.

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

# 구성 파일을 사용하여 App Runner 서비스 옵션 설정
<a name="config-file"></a>

**참고**  
구성 파일은 [소스 코드를 기반으로 하는 서비스에](service-source-code.md)만 적용됩니다. [이미지 기반 서비스](service-source-image.md)에서는 구성 파일을 사용할 수 없습니다.

소스 코드 리포지토리를 사용하여 AWS App Runner 서비스를 생성할 때는 서비스 구축 및 시작에 대한 정보가 AWS App Runner 필요합니다. App Runner 콘솔 또는 API를 사용하여 서비스를 생성할 때마다이 정보를 제공할 수 있습니다. 또는 *구성 파일을* 사용하여 서비스 옵션을 설정할 수 있습니다. 파일에서 지정하는 옵션은 소스 리포지토리의 일부가 되며, 이러한 옵션에 대한 모든 변경 사항은 소스 코드에 대한 변경 사항을 추적하는 방법과 유사하게 추적됩니다. App Runner 구성 파일을 사용하여 API가 지원하는 것보다 더 많은 옵션을 지정할 수 있습니다. API가 지원하는 기본 옵션만 필요한 경우 구성 파일을 제공할 필요가 없습니다.

App Runner 구성 파일은 애플리케이션 리포지토리의 [소스 디렉터리](service-source-code.md#service-source-code.source-directory)`apprunner.yaml`에 이름이 지정된 YAML 파일입니다. 서비스에 대한 빌드 및 런타임 옵션을 제공합니다. 이 파일의 값은 App Runner에 서비스를 빌드 및 시작하고 네트워크 설정 및 환경 변수와 같은 런타임 컨텍스트를 제공하는 방법을 지시합니다.

App Runner 구성 파일에는 CPU 및 메모리와 같은 운영 설정이 포함되지 않습니다.

App Runner 구성 파일의 예는 섹션을 참조하세요[App Runner 구성 파일 예제](config-file-examples.md). 전체 참조 가이드는 섹션을 참조하세요[App Runner 구성 파일 참조](config-file-ref.md).

**Topics**
+ [App Runner 구성 파일 예제](config-file-examples.md)
+ [App Runner 구성 파일 참조](config-file-ref.md)

# App Runner 구성 파일 예제
<a name="config-file-examples"></a>

**참고**  
구성 파일은 [소스 코드를 기반으로 하는 서비스에](service-source-code.md)만 적용됩니다. [이미지 기반 서비스](service-source-image.md)에서는 구성 파일을 사용할 수 없습니다.

다음 예제에서는 AWS App Runner 구성 파일을 보여줍니다. 일부는 최소 수준이며 필수 설정만 포함합니다. 모든 구성 파일 섹션을 포함하여 다른 구성은 완료됩니다. App Runner 구성 파일의 개요는 섹션을 참조하세요[구성 파일을 사용하여 App Runner 서비스 옵션 설정](config-file.md).

## 구성 파일 예제
<a name="config-file-examples.managed"></a>

### 최소 구성 파일
<a name="config-file-examples.managed.minimal"></a>

App Runner는 최소한의 구성 파일을 사용하여 다음과 같은 가정을 합니다.
+ 빌드 또는 실행 중에는 사용자 지정 환경 변수가 필요하지 않습니다.
+ 최신 런타임 버전이 사용됩니다.
+ 기본 포트 번호와 포트 환경 변수가 사용됩니다.

**Example apprunner.yaml**  

```
version: 1.0
runtime: python3 
build:
  commands:
    build:
      - pip install pipenv
      - pipenv install 
run: 
  command: python app.py
```

### 구성 파일 완료
<a name="config-file-examples.managed.complete"></a>

이 예제에서는 관리형 런타임에서 `apprunner.yaml` 원래 형식의 모든 구성 키를 사용하는 방법을 보여줍니다.

**Example apprunner.yaml**  

```
version: 1.0
runtime: python3 
build:
  commands:
    pre-build:
      - wget -c https://s3.amazonaws.com/amzn-s3-demo-bucket/test-lib.tar.gz -O - | tar -xz
    build:        
      - pip install pipenv
      - pipenv install
    post-build:
      - python manage.py test
  env:
    - name: DJANGO_SETTINGS_MODULE
      value: "django_apprunner.settings"
    - name: MY_VAR_EXAMPLE
      value: "example"
run:
  runtime-version: 3.7.7
  command: pipenv run gunicorn django_apprunner.wsgi --log-file -
  network: 
    port: 8000
    env: MY_APP_PORT  
  env:
    - name: MY_VAR_EXAMPLE
      value: "example"
  secrets:
    - name: my-secret
      value-from: "arn:aws:secretsmanager:us-east-1:123456789012:secret:testingstackAppRunnerConstr-kJFXde2ULKbT-S7t8xR:username::"
    - name: my-parameter
      value-from: "arn:aws:ssm:us-east-1:123456789012:parameter/parameter-name"
    - name: my-parameter-only-name
      value-from: "parameter-name"
```

### 전체 구성 파일 - (개정된 빌드 사용)
<a name="config-file-examples.managed.complete-v2"></a>

이 예제에서는 관리형 런타임과 `apprunner.yaml` 함께의 모든 구성 키를 사용하는 방법을 보여줍니다.

`pre-run` 파라미터는 수정된 App Runner 빌드에서만 지원됩니다. 애플리케이션이 원래 App Runner 빌드에서 지원하는 런타임 버전을 사용하는 경우 구성 파일에이 파라미터를 삽입하지 마십시오. 자세한 내용은 [관리형 런타임 버전 및 App Runner 빌드](service-source-code.md#service-source-code.build-detail) 단원을 참조하십시오.

**참고**  
이 예제는 Python 3.11용이므로 `pip3` 및 `python3` 명령을 사용합니다. 자세한 내용은 Python 플랫폼 주제[특정 런타임 버전에 대한 콜아웃](service-source-code-python.md#service-source-code-python.callouts)의 섹션을 참조하세요.

**Example apprunner.yaml**  

```
version: 1.0
runtime: python311
build:
  commands:
    pre-build:
      - wget -c https://s3.amazonaws.com/amzn-s3-demo-bucket/test-lib.tar.gz -O - | tar -xz
    build:        
      - pip3 install pipenv
      - pipenv install
    post-build:
      - python3 manage.py test
  env:
    - name: DJANGO_SETTINGS_MODULE
      value: "django_apprunner.settings"
    - name: MY_VAR_EXAMPLE
      value: "example"
run:
  runtime-version: 3.11
  pre-run:  
    - pip3 install pipenv
    - pipenv install
    - python3 copy-global-files.py
  command: pipenv run gunicorn django_apprunner.wsgi --log-file -
  network: 
    port: 8000
    env: MY_APP_PORT  
  env:
    - name: MY_VAR_EXAMPLE
      value: "example"
  secrets:
    - name: my-secret
      value-from: "arn:aws:secretsmanager:us-east-1:123456789012:secret:testingstackAppRunnerConstr-kJFXde2ULKbT-S7t8xR:username::"
    - name: my-parameter
      value-from: "arn:aws:ssm:us-east-1:123456789012:parameter/parameter-name"
    - name: my-parameter-only-name
      value-from: "parameter-name"
```

특정 관리형 런타임 구성 파일의 예는 아래의 특정 런타임 하위 주제를 참조하세요[코드 기반 서비스](service-source-code.md).

# App Runner 구성 파일 참조
<a name="config-file-ref"></a>

**참고**  
구성 파일은 [소스 코드를 기반으로 하는 서비스에](service-source-code.md)만 적용됩니다. [이미지 기반 서비스](service-source-image.md)에서는 구성 파일을 사용할 수 없습니다.

이 주제는 AWS App Runner 구성 파일의 구문 및 의미 체계에 대한 포괄적인 참조 가이드입니다. App Runner 구성 파일의 개요는 섹션을 참조하세요[구성 파일을 사용하여 App Runner 서비스 옵션 설정](config-file.md).

App Runner 구성 파일은 YAML 파일입니다. 이름을 로 `apprunner.yaml`지정하고 애플리케이션 리포지토리의 [소스 디렉터리](service-source-code.md#service-source-code.source-directory)에 배치합니다.

## 구조 개요
<a name="config-file-ref.overview"></a>

App Runner 구성 파일은 YAML 파일입니다. 이름을 로 `apprunner.yaml`지정하고 애플리케이션 리포지토리의 [소스 디렉터리](service-source-code.md#service-source-code.source-directory)에 배치합니다.

App Runner 구성 파일에는 다음과 같은 주요 부분이 포함되어 있습니다.
+ *상단 섹션* - 최상위 키 포함
+ *빌드 섹션* - 빌드 단계를 구성합니다.
+ *실행 섹션* - 런타임 단계를 구성합니다.

## 상단 섹션
<a name="config-file-ref.top"></a>

파일 상단의 키는 파일 및 서비스 런타임에 대한 일반적인 정보를 제공합니다. 다음 키를 사용할 수 있습니다.
+ `version` - *필수 항목입니다.* App Runner 구성 파일 버전입니다. 최신 버전을 사용하는 것이 가장 좋습니다.

  **구문**

  ```
  version: version
  ```  
**Example**  

  ```
  version: 1.0
  ```
+ `runtime` - *필수 항목입니다.* 애플리케이션이 사용하는 런타임의 이름입니다. App Runner가 제공하는 다양한 프로그래밍 플랫폼에 사용 가능한 런타임에 대한 자세한 내용은 섹션을 참조하세요[소스 코드를 기반으로 하는 App Runner 서비스](service-source-code.md).
**참고**  
 관리형 런타임의 이름 지정 규칙은 *<language-name><major-version>*입니다.

  **구문**

  ```
  runtime: runtime-name
  ```  
**Example**  

  ```
  runtime: python3
  ```

## 빌드 섹션
<a name="config-file-ref.build"></a>

빌드 섹션은 App Runner 서비스 배포의 빌드 단계를 구성합니다. 빌드 명령과 환경 변수를 지정할 수 있습니다. 빌드 명령이 필요합니다.

섹션은 `build:` 키로 시작하며 다음과 같은 하위 키가 있습니다.
+ `commands` - *필수 항목입니다.* 다양한 빌드 단계에서 App Runner가 실행하는 명령을 지정합니다. 다음 하위 키를 포함합니다.
  + `pre-build` - *선택 사항입니다.* App Runner가 빌드 전에 실행하는 명령입니다. 예를 들어 **npm** 종속성 또는 테스트 라이브러리를 설치합니다.
  + `build` - *필수 항목입니다.* App Runner가 애플리케이션을 빌드하기 위해 실행하는 명령입니다. 예를 들어를 사용합니다**pipenv**.
  + `post-build` - *선택 사항입니다.* App Runner가 빌드 후 실행하는 명령입니다. 예를 들어 Maven을 사용하여 빌드 아티팩트를 JAR 또는 WAR 파일로 패키징하거나 테스트를 실행합니다.

  **구문**

  ```
  build:
    commands:
      pre-build:
        - command
        - …
      build:
        - command
        - …
      post-build:
        - command
        - …
  ```  
**Example**  

  ```
  build:
    commands:
      pre-build:
        - yum install openssl
      build:
        - pip install -r requirements.txt
      post-build:
        - python manage.py test
  ```
+ `env` - *선택 사항입니다.* 빌드 단계의 사용자 지정 환경 변수를 지정합니다. 이름-값 스칼라 매핑으로 정의됩니다. 빌드 명령에서 이러한 변수를 이름으로 참조할 수 있습니다.
**참고**  
이 구성 파일의 서로 다른 두 위치에는 두 개의 고유한 `env` 항목이 있습니다. 한 세트는 **빌드** 섹션에 있고 다른 세트는 **실행** 섹션에 있습니다.  
빌드 섹션의 `env` 세트는 *빌드 프로세스* 중에 `pre-build`, `build``post-build`, 및 `pre-run` 명령에서 참조할 수 있습니다.  
***중요 ***- `pre-run` 명령은 빌드 섹션에 정의된 환경 변수에만 액세스할 수 있더라도이 파일의 실행 섹션에 있습니다.
실행 섹션의 `env` 세트는 런타임 환경의 `run` 명령에서 참조할 수 있습니다.

  **구문**

  ```
  build:
    env:
      - name: name1
        value: value1
      - name: name2
        value: value2
      - …
  ```  
**Example**  

  ```
  build:
    env:
      - name: DJANGO_SETTINGS_MODULE
        value: "django_apprunner.settings"
      - name: MY_VAR_EXAMPLE
        value: "example"
  ```

## 실행 섹션
<a name="config-file-ref.run"></a>

실행 섹션은 App Runner 애플리케이션 배포의 컨테이너 실행 단계를 구성합니다. 런타임 버전, 사전 실행 명령(개정된 형식만 해당), 시작 명령, 네트워크 포트 및 환경 변수를 지정할 수 있습니다.

섹션은 `run:` 키로 시작하며 다음과 같은 하위 키가 있습니다.
+ `runtime-version` - *선택 사항입니다.* App Runner 서비스에 대해 잠그려는 런타임 버전을 지정합니다.

  기본적으로 메이저 버전만 잠깁니다. App Runner는 모든 배포 또는 서비스 업데이트에서 런타임에 사용할 수 있는 최신 마이너 및 패치 버전을 사용합니다. 메이저 버전과 마이너 버전을 지정하면 둘 다 잠기고 App Runner는 패치 버전만 업데이트합니다. 메이저, 마이너 및 패치 버전을 지정하면 서비스가 특정 런타임 버전에서 잠기고 App Runner는 이를 업데이트하지 않습니다.

  **구문**

  ```
  run:
    runtime-version: major[.minor[.patch]]
  ```
**참고**  
일부 플랫폼의 런타임에는 서로 다른 버전 구성 요소가 있습니다. 자세한 내용은 특정 플랫폼 주제를 참조하세요.  
**Example**  

  ```
  runtime: python3
  run:
    runtime-version: 3.7
  ```
+ `pre-run` - *선택 사항입니다.* *** [빌드 사용량만 수정](service-source-code.md#service-source-code.build-detail)***했습니다. 빌드 이미지에서 실행 이미지로 애플리케이션을 복사한 후 App Runner가 실행하는 명령을 지정합니다. 여기에 명령을 입력하여 `/app` 디렉터리 외부에서 실행 이미지를 수정할 수 있습니다. 예를 들어 `/app` 디렉터리 외부에 있는 글로벌 종속성을 추가로 설치해야 하는 경우이 하위 섹션에 필요한 명령을 입력하여 설치합니다. App Runner 빌드 프로세스에 대한 자세한 내용은 섹션을 참조하세요[관리형 런타임 버전 및 App Runner 빌드](service-source-code.md#service-source-code.build-detail).
**참고**  
***중요 ***- `pre-run` 명령이 실행 섹션에 나열되더라도이 구성 파일의 빌드 섹션에 정의된 환경 변수만 참조할 수 있습니다. 이 실행 섹션에 정의된 환경 변수는 참조할 수 없습니다.
`pre-run` 파라미터는 수정된 App Runner 빌드에서만 지원됩니다. 애플리케이션이 원래 App Runner 빌드에서 지원하는 런타임 버전을 사용하는 경우 구성 파일에이 파라미터를 삽입하지 마십시오. 자세한 내용은 [관리형 런타임 버전 및 App Runner 빌드](service-source-code.md#service-source-code.build-detail) 단원을 참조하십시오.

  **구문**

  ```
  run:
    pre-run:
        - command
        - …
  ```
+ `command` - *필수 항목입니다.* App Runner가 애플리케이션 빌드를 완료한 후 애플리케이션을 실행하는 데 사용하는 명령입니다.

  **구문**

  ```
  run:
    command: command
  ```
+ `network` - *선택 사항입니다.* 애플리케이션이 수신 대기하는 포트를 지정합니다. 여기에는 다음이 포함됩니다.
  + `port` - *선택 사항입니다.* 지정된 경우 애플리케이션이 수신하는 포트 번호입니다. 기본값은 `8080`입니다.
  + `env` - *선택 사항입니다.* 지정된 경우 App Runner는 기본 환경 변수인에서 동일한 포트 번호를 전달하는 것 외에도(대신)이 환경 변수의 컨테이너에 포트 번호를 전달합니다`PORT`. 즉,를 지정하면 `env`App Runner는 두 환경 변수에 포트 번호를 전달합니다.

  **구문**

  ```
  run:
    network:
      port: port-number
      env: env-variable-name
  ```  
**Example**  

  ```
  run:
    network:
      port: 8000
      env: MY_APP_PORT
  ```
+ `env` - *선택 사항입니다.* 실행 단계에 대한 사용자 지정 환경 변수의 정의입니다. 이름-값 스칼라 매핑으로 정의됩니다. 런타임 환경에서 이러한 변수를 이름으로 참조할 수 있습니다.
**참고**  
이 구성 파일의 서로 다른 두 위치에는 두 개의 고유한 `env` 항목이 있습니다. 한 세트는 **빌드** 섹션에 있고 다른 세트는 **실행** 섹션에 있습니다.  
빌드 섹션의 `env` 세트는 *빌드 프로세스* 중에 `pre-build`, `build``post-build`, 및 `pre-run` 명령에서 참조할 수 있습니다.  
***중요 ***- `pre-run` 명령은 빌드 섹션에 정의된 환경 변수에만 액세스할 수 있더라도이 파일의 실행 섹션에 있습니다.
실행 섹션의 `env` 세트는 런타임 환경의 `run` 명령에서 참조할 수 있습니다.

  **구문**

  ```
  run:
    env:
      - name: name1
        value: value1
      - name: name2
        value: value2   
    secrets:
      - name: name1
        value-from: arn:aws:secretsmanager:region:aws_account_id:secret:secret-id
      - name: name2
        value-from: arn:aws:ssm:region:aws_account_id:parameter/parameter-name
      - …
  ```  
**Example**  

  ```
  run:
    env:
      - name: MY_VAR_EXAMPLE
        value: "example"
    secrets:
      - name: my-secret
        value-from: "arn:aws:secretsmanager:us-east-1:123456789012:secret:testingstackAppRunnerConstr-kJFXde2ULKbT-S7t8xR:username::"
      - name: my-parameter
        value-from: "arn:aws:ssm:us-east-1:123456789012:parameter/parameter-name"
      - name: my-parameter-only-name
        value-from: "parameter-name"
  ```