애플리케이션의 종속 항목 구성 - AWS Elastic Beanstalk

애플리케이션의 종속 항목 구성

애플리케이션에는 require() 문에서 지정하는 Node.js 모듈과 같이 일부 Node.js 모듈에 종속 항목이 있을 수 있습니다. package.json 파일을 사용하여 이러한 종속 항목을 지정할 수 있습니다. 또는 애플리케이션의 종속 항목을 소스 번들에 포함시키고 애플리케이션과 함께 배포할 수 있습니다. 이러한 두 가지 대체 방법이 다음 섹션에서 자세히 설명되어 있습니다.

package.json 파일로 Node.js 종속 항목 지정

프로젝트 소스의 루트에 있는 package.json 파일을 포함하여 종속성 패키지를 지정하고 start 명령을 제공합니다. package.json 파일이 있으면 Elastic Beanstalk는 npm install을 실행하여 종속 항목을 설치합니다. 또한 start 명령을 사용하여 애플리케이션을 시작합니다. package.json 파일에 대한 자세한 내용은 Node.js 웹 사이트의 package.json 안내서를 참조하세요.

scripts 키워드를 사용하여 start 명령을 제공합니다. 이제 aws:elasticbeanstalk:container:nodejs 네임스페이스의 레거시 NodeCommand 옵션 대신 scripts 키워드가 사용됩니다.

예 package.json – Express

{ "name": "my-app", "version": "0.0.1", "private": true, "dependencies": { "ejs": "latest", "aws-sdk": "latest", "express": "latest", "body-parser": "latest" }, "scripts": { "start": "node app.js" } }

package.json 파일에서 engines 키워드를 사용하여 애플리케이션에서 사용할 Node.js 버전을 지정합니다. npm 표기법을 사용하여 버전 범위를 지정할 수도 있습니다. 버전 범위 구문에 대한 자세한 내용은 Node.js 웹 사이트에서 npm을 사용한 의미 체계 버전 관리를 참조하세요. Node.js package.json 파일의 engines 키워드는 aws:elasticbeanstalk:container:nodejs 네임스페이스의 레거시 NodeVersion 옵션을 대체합니다.

package.json – 단일 Node.js 버전

{ ... "engines": { "node" : "14.16.0" } }

package.json – Node.js 버전 범위

{ ... "engines": { "node" : ">=10 <11" } }

버전 범위가 표시되면 Elastic Beanstalk는 해당 범위 내에서 플랫폼을 사용할 수 있는 최신 Node.js 버전을 설치합니다. 이 예에서 범위는 버전이 버전 10보다 크거나 같고 버전 11보다 작아야 함을 나타냅니다. 따라서 Elastic Beanstalk는 지원되는 플랫폼에서 사용할 수 있는 최신 Node.js 버전 10.x.y를 설치합니다.

플랫폼 브랜치에 해당하는 Node.js 버전만 지정할 수 있습니다. 예를 들어 Node.js 14 플랫폼 브랜치를 사용하는 경우 14.x.y Node.js 버전만 지정할 수 있습니다. npm에서 지원하는 버전 범위 옵션을 사용하여 유연성을 높일 수 있습니다. 각 플랫폼 브랜치에 유효한 Node.js 버전은 AWS Elastic Beanstalk 플랫폼 안내서의 Node.js를 참조하세요.

Elastic Beanstalk에서는 기본적으로 종속 항목을 프로덕션 모드에서 설치합니다(npm install --production). 개발 종속 항목을 귀하의 환경 인스턴스에 설치하려면 NPM_USE_PRODUCTION 환경 속성false로 설정합니다.

참고

현재 사용 중인 Node.js 버전에 대한 지원이 플랫폼에서 제거되면 플랫폼 업데이트를 수행하기 전에 Node.js 버전 설정을 변경하거나 제거해야 합니다. 하나 이상의 Node.js 버전에 대해 보안 취약성이 발견된 경우 이러한 상황이 발생할 수 있습니다.

이러한 상황이 발생하면 구성된 Node.js 버전을 지원하지 않는 새 플랫폼 버전으로 업데이트할 수 없습니다. 새 환경을 만들 필요가 없도록 하려면 package.json의 Node.js 버전 설정을 이전 플랫폼 버전과 새 버전 모두에서 지원하는 Node.js 버전으로 변경합니다. 이 항목의 앞부분에서 설명한 대로 지원되는 버전을 포함하는 Node.js 버전 범위를 지정할 수 있습니다. 설정을 제거한 후 새 소스 번들을 배포할 수도 있습니다.

node_modules 디렉터리에 Node.js 종속 항목 포함

애플리케이션 코드와 함께 환경 인스턴스에 종속성 패키지를 배포하려면 프로젝트 소스의 루트에 있는 node_modules이라는 디렉터리에 종속성 패키지를 포함시킵니다. Node.js는 이 디렉터리에서 종속 항목을 찾습니다. 자세한 내용은 Node.js 설명서의 node_modules 폴더에서 로드를 참조하세요.

참고

node_modules 디렉터리를 Amazon Linux 2 Node.js 플랫폼 버전으로 배포하는 경우 Elastic Beanstalk에서는 사용자가 자체 종속성 패키지를 제공하고 있다고 가정하며 package.json 파일에 지정된 종속 항목을 설치하지 않습니다.