

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

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

# Node.js 플랫폼 사용
<a name="service-source-code-nodejs"></a>

**중요**  
App Runner는 **2025년 12월 1일에 Node.js** **12, Node.js 14**, **Node.js 16** 및 **Node.js 18**에 대한 지원을 종료합니다. 권장 사항 및 자세한 내용은 섹션을 참조하세요[관리형 런타임 버전에 대한 지원 종료](service-source-code.md#service-source-code.managed-platforms.eos).

 AWS App Runner Node.js 플랫폼은 관리형 런타임을 제공합니다. 각 런타임을 사용하면 Node.js 버전을 기반으로 웹 애플리케이션을 사용하여 컨테이너를 쉽게 빌드하고 실행할 수 있습니다. Node.js 런타임을 사용하는 경우 App Runner는 관리형 Node.js 런타임 이미지로 시작합니다. 이 이미지는 [Amazon Linux Docker 이미지를](https://hub.docker.com/_/amazonlinux) 기반으로 하며 Node.js 버전 및 일부 도구에 대한 런타임 패키지를 포함합니다. App Runner는이 관리형 런타임 이미지를 기본 이미지로 사용하고 애플리케이션 코드를 추가하여 도커 이미지를 빌드합니다. 그런 다음이 이미지를 배포하여 컨테이너에서 웹 서비스를 실행합니다.

 App Runner 콘솔 또는 [CreateService](https://docs.aws.amazon.com/apprunner/latest/api/API_CreateService.html) API 작업을 사용하여 서비스를 [생성할 때 App Runner 서비스에](manage-create.md) 대한 런타임을 지정합니다. 런타임을 소스 코드의 일부로 지정할 수도 있습니다. 코드 리포지토리에 포함하는 [App Runner 구성 파일의](config-file.md) `runtime` 키워드를 사용합니다. 관리형 런타임의 이름 지정 규칙은 *<language-name><major-version>*입니다.

유효한 Node.js 런타임 이름 및 버전은 섹션을 참조하세요[Node.js 런타임 릴리스 정보](service-source-code-nodejs-releases.md).

App Runner는 모든 배포 또는 서비스 업데이트 시 서비스의 런타임을 최신 버전으로 업데이트합니다. 애플리케이션에 특정 버전의 관리형 런타임이 필요한 경우 [App Runner 구성 파일의](config-file.md) `runtime-version` 키워드를 사용하여 지정할 수 있습니다. 메이저 또는 마이너 버전을 포함하여 모든 수준의 버전으로를 잠글 수 있습니다. App Runner는 서비스의 런타임만 하위 수준으로 업데이트합니다.

Node.js 런타임의 버전 구문: `major[.minor[.patch]]`

예: `22.14.0`

다음 예제에서는 버전 잠금을 보여줍니다.
+ `22.14` - 메이저 및 마이너 버전을 잠급니다. App Runner는 패치 버전만 업데이트합니다.
+ `22.14.0` - 특정 패치 버전으로 잠급니다. App Runner는 런타임 버전을 업데이트하지 않습니다.

**Topics**
+ [Node.js 런타임 구성](#service-source-code-nodejs.config)
+ [특정 런타임 버전에 대한 호출](#service-source-code-nodejs.callouts)
+ [Node.js 런타임 예제](#service-source-code-nodejs.examples)
+ [Node.js 런타임 릴리스 정보](service-source-code-nodejs-releases.md)

## Node.js 런타임 구성
<a name="service-source-code-nodejs.config"></a>

관리형 런타임을 선택할 때는 최소한 빌드 및 실행 명령도 구성해야 합니다. App Runner 서비스를 [생성](manage-create.md)하거나 [업데이트](manage-configure.md)하는 동안 이를 구성합니다. 다음 방법 중 하나를 사용하여이 작업을 수행할 수 있습니다.
+ **App Runner 콘솔 사용** - 생성 프로세스 또는 **구성 탭의 빌드** 구성 섹션에서 명령을 지정합니다.
+ **App Runner API 사용** - [CreateService](https://docs.aws.amazon.com/apprunner/latest/api/API_CreateService.html) 또는 [UpdateService](https://docs.aws.amazon.com/apprunner/latest/api/API_UpdateService.html) API 작업을 호출합니다. [CodeConfigurationValues](https://docs.aws.amazon.com/apprunner/latest/api/API_CodeConfigurationValues.html) 데이터 형식의 `BuildCommand` 및 `StartCommand` 멤버를 사용하여 명령을 지정합니다.
+ **[구성 파일](config-file.md) 사용** - 최대 3개의 빌드 단계에서 하나 이상의 빌드 명령을 지정하고 애플리케이션을 시작하는 데 사용되는 단일 실행 명령을 지정합니다. 추가 선택적 구성 설정이 있습니다.

구성 파일을 제공하는 것은 선택 사항입니다. 콘솔 또는 API를 사용하여 App Runner 서비스를 생성할 때 App Runner가 구성 설정을 생성할 때 직접 가져올지 또는 구성 파일에서 가져올지 지정합니다.

특히 Node.js 런타임을 사용하면 소스 리포지토리의 루트`package.json`에 이름이 인 JSON 파일을 사용하여 빌드 및 런타임을 구성할 수도 있습니다. 이 파일을 사용하여 Node.js 엔진 버전, 종속성 패키지 및 다양한 명령(명령줄 애플리케이션)을 구성할 수 있습니다. npm 또는 yarn와 같은 패키지 관리자는이 파일을 명령의 입력으로 해석합니다.

예제:
+ **npm install**는의 `dependencies` 및 `devDependencies` 노드에서 정의한 패키지를 설치합니다`package.json`.
+ **npm start** 또는는의 `scripts/start` 노드에서 정의한 명령을 **npm run start** 실행합니다`package.json`.

다음은 예 `package.json` 파일입니다.

### package.json
<a name="service-source-code-nodejs.config.package-json-example"></a>

```
{
  "name": "node-js-getting-started",
  "version": "0.3.0",
  "description": "A sample Node.js app using Express 4",
  "engines": {
    "node": "22.14.0"
  },
  "scripts": {
    "start": "node index.js",
    "test": "node test.js"
  },
  "dependencies": {
    "cool-ascii-faces": "^1.3.4",
    "ejs": "^2.5.6",
    "express": "^4.15.2"
  },
  "devDependencies": {
    "got": "^11.3.0",
    "tape": "^4.7.0"
  }
}
```

에 대한 자세한 내용은 npm Docs 웹 사이트에서 [package.json 파일 생성을](https://docs.npmjs.com/creating-a-package-json-file) `package.json`참조하세요. ** 

**팁**  
`package.json` 파일이 **start** 명령을 정의하는 경우 다음 예제와 같이 App Runner 구성 파일에서 **run** 명령으로 사용할 수 있습니다.  

**Example**  
package.json  

  ```
  {
    "scripts": {
      "start": "node index.js"
    }
  }
  ```
apprunner.yaml  

  ```
  run:
    command: npm start
  ```
개발 환경에서 **npm install**를 실행하면 npm이 파일을 생성합니다`package-lock.json`. 이 파일에는 방금 설치된 패키지 버전 npm의 스냅샷이 포함되어 있습니다. 그런 다음 npm이 종속성을 설치할 때 이러한 정확한 버전을 사용합니다. 얀을 설치하면 `yarn.lock` 파일이 생성됩니다. 이러한 파일을 소스 코드 리포지토리에 커밋하여 애플리케이션이 개발 및 테스트한 종속성 버전으로 설치되도록 합니다.
App Runner 구성 파일을 사용하여 Node.js 버전 및 시작 명령을 구성할 수도 있습니다. 이렇게 하면 이러한 정의가의 정의보다 우선합니다`package.json`. 의 `node` 버전`package.json`과 App Runner 구성 파일의 `runtime-version` 값이 충돌하면 App Runner 빌드 단계가 실패합니다.

## 특정 런타임 버전에 대한 호출
<a name="service-source-code-nodejs.callouts"></a>

### Node.js 22 및 Node.js 18(개정된 App Runner 빌드)
<a name="service-source-code-nodejs.callouts.nodejs18"></a>

App Runner는 이제 Python 3.11, Node.js 22 및 Node.js 18 런타임 버전을 기반으로 애플리케이션에 대해 업데이트된 빌드 프로세스를 실행합니다. 애플리케이션이 이러한 런타임 버전 중 하나에서 실행되는 경우 수정된 빌드 프로세스에 대한 자세한 내용은 [관리형 런타임 버전 및 App Runner 빌드](service-source-code.md#service-source-code.build-detail) 섹션을 참조하세요. 다른 모든 런타임 버전을 사용하는 애플리케이션은 영향을 받지 않으며 원래 빌드 프로세스를 계속 사용합니다.

## Node.js 런타임 예제
<a name="service-source-code-nodejs.examples"></a>

다음 예제에서는 Node.js 서비스를 빌드하고 실행하기 위한 App Runner 구성 파일을 보여줍니다.

**참고**  
이 예제에서 사용되는 런타임 버전은 *22.14.0*입니다. 이를 사용하려는 버전으로 바꿀 수 있습니다. 지원되는 최신 Node.js 런타임 버전은 섹션을 참조하세요[Node.js 런타임 릴리스 정보](service-source-code-nodejs-releases.md).

### 미니멀 Node.js 구성 파일
<a name="service-source-code-nodejs.examples.minimal"></a>

이 예제는 Node.js 관리형 런타임과 함께 사용할 수 있는 최소 구성 파일을 보여줍니다. App Runner가 최소 구성 파일로 가정하는 내용은 섹션을 참조하세요[구성 파일 예제](config-file-examples.md#config-file-examples.managed).

**Example apprunner.yaml**  

```
version: 1.0
runtime: nodejs22
build:
  commands:    
    build:
      - npm install --production                                  
run:                              
  command: node app.js
```

### 확장 Node.js 구성 파일
<a name="service-source-code-nodejs.examples.extended"></a>

이 예제에서는 Node.js 관리형 런타임에서 모든 구성 키를 사용하는 방법을 보여줍니다.

**참고**  
이 예제에서 사용되는 런타임 버전은 *22.14.0*입니다. 이를 사용하려는 버전으로 바꿀 수 있습니다. 지원되는 최신 Node.js 런타임 버전은 섹션을 참조하세요[Node.js 런타임 릴리스 정보](service-source-code-nodejs-releases.md).

**Example apprunner.yaml**  

```
version: 1.0
runtime: nodejs22
build:
  commands:
    pre-build:
      - npm install --only=dev
      - node test.js
    build:
      - npm install --production
    post-build:
      - node node_modules/ejs/postinstall.js
  env:
    - name: MY_VAR_EXAMPLE
      value: "example"
run:
  runtime-version: 22.14.0
  command: node app.js
  network:
    port: 8000
    env: APP_PORT
  env:
    - name: MY_VAR_EXAMPLE
      value: "example"
```

### 확장 Node.js 구성 파일 - Node.js 22(개정된 빌드 사용)
<a name="service-source-code-nodejs.examples.extended-v2"></a>

이 예제는에서 Node.js 관리형 런타임과 함께 모든 구성 키를 사용하는 방법을 보여줍니다`apprunner.yaml`. 이 Node.js 버전은 수정된 App Runner 빌드를 사용하기 때문에이 예제에는 `pre-run` 섹션이 포함되어 있습니다.

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

**참고**  
이 예제에서 사용되는 런타임 버전은 *22.14.0*입니다. 이를 사용하려는 버전으로 바꿀 수 있습니다. 지원되는 최신 Node.js 런타임 버전은 섹션을 참조하세요[Node.js 런타임 릴리스 정보](service-source-code-nodejs-releases.md).

**Example apprunner.yaml**  

```
version: 1.0
runtime: nodejs22
build:
  commands:
    pre-build:
      - npm install --only=dev
      - node test.js
    build:
      - npm install --production
    post-build:
      - node node_modules/ejs/postinstall.js
  env:
    - name: MY_VAR_EXAMPLE
      value: "example"
run:
  runtime-version: 22.14.0
  pre-run: 
    - node copy-global-files.js
  command: node app.js
  network:
    port: 8000
    env: APP_PORT
  env:
    - name: MY_VAR_EXAMPLE
      value: "example"
```

### Grunt가 있는 Node.js 앱
<a name="service-source-code-nodejs.examples.grunt"></a>

이 예제에서는 Grunt로 개발된 Node.js 애플리케이션을 구성하는 방법을 보여줍니다. [Grunt](https://gruntjs.com/)는 명령줄 JavaScript 작업 실행기입니다. 반복 작업을 실행하고 프로세스 자동화를 관리하여 인적 오류를 줄입니다. Grunt 및 Grunt 플러그인은 npm을 사용하여 설치 및 관리됩니다. 소스 리포지토리의 루트에 `Gruntfile.js` 파일을 포함하여 Grunt를 구성합니다.

**Example package.json**  

```
{
  "scripts": {
    "build": "grunt uglify",
    "start": "node app.js"
  },
  "devDependencies": {
    "grunt": "~0.4.5",
    "grunt-contrib-jshint": "~0.10.0",
    "grunt-contrib-nodeunit": "~0.4.1",
    "grunt-contrib-uglify": "~0.5.0"
  },
  "dependencies": {
    "express": "^4.15.2"
  },
}
```

**Example Gruntfile.js**  

```
module.exports = function(grunt) {

  // Project configuration.
  grunt.initConfig({
    pkg: grunt.file.readJSON('package.json'),
    uglify: {
      options: {
        banner: '/*! <%= pkg.name %> <%= grunt.template.today("yyyy-mm-dd") %> */\n'
      },
      build: {
        src: 'src/<%= pkg.name %>.js',
        dest: 'build/<%= pkg.name %>.min.js'
      }
    }
  });

  // Load the plugin that provides the "uglify" task.
  grunt.loadNpmTasks('grunt-contrib-uglify');

  // Default task(s).
  grunt.registerTask('default', ['uglify']);

};
```

**Example apprunner.yaml**  
이 예제에서 사용되는 런타임 버전은 *22.14.0*입니다. 이를 사용하려는 버전으로 바꿀 수 있습니다. 지원되는 최신 Node.js 런타임 버전은 섹션을 참조하세요[Node.js 런타임 릴리스 정보](service-source-code-nodejs-releases.md).

```
version: 1.0
runtime: nodejs22
build:
  commands:
    pre-build:
      - npm install grunt grunt-cli
      - npm install --only=dev
      - npm run build
    build:
      - npm install --production
run:
  runtime-version: 22.14.0
  command: node app.js
  network:
    port: 8000
    env: APP_PORT
```

# Node.js 런타임 릴리스 정보
<a name="service-source-code-nodejs-releases"></a>

**중요**  
App Runner는 **2025년 12월 1일에 Node.js** **12, Node.js 14**, **Node.js 16** 및 **Node.js 18**에 대한 지원을 종료합니다. 권장 사항 및 자세한 내용은 섹션을 참조하세요[관리형 런타임 버전에 대한 지원 종료](service-source-code.md#service-source-code.managed-platforms.eos).

**참고**  
App Runner의 표준 사용 중단 정책은 런타임의 주요 구성 요소가 커뮤니티 장기 지원(LTS) 종료에 도달하고 보안 업데이트를 더 이상 사용할 수 없는 경우 런타임을 사용 중지하는 것입니다. 경우에 따라 App Runner는 런타임에서 지원하는 언어 버전의 end-of-support 이후 제한된 기간 동안 런타임 사용 중단을 지연시킬 수 있습니다. 이러한 사례의 예로는 고객이 마이그레이션 시간을 확보할 수 있도록 런타임에 대한 지원을 확장하는 것이 있습니다.

이 주제에서는 App Runner가 지원하는 Node.js 런타임 버전의 전체 세부 정보를 나열합니다.


**지원되는 런타임 버전 - 수정된 App Runner 빌드**  
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/apprunner/latest/dg/service-source-code-nodejs-releases.html)

**참고**  
App Runner는 최근에 릴리스된 특정 주요 런타임에 대해 수정된 빌드 프로세스를 제공합니다. 따라서이 문서의 특정 섹션에 *수정된 App Runner 빌드* 및 *원래 App Runner 빌드*에 대한 참조가 표시됩니다. 자세한 내용은 단원을 참조하십시오[관리형 런타임 버전 및 App Runner 빌드](service-source-code.md#service-source-code.build-detail).


**지원되는 런타임 버전 - 수정된 App Runner 빌드**  
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/apprunner/latest/dg/service-source-code-nodejs-releases.html)




**지원되는 런타임 버전 - 원래 App Runner 빌드**  
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/apprunner/latest/dg/service-source-code-nodejs-releases.html)