

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

# Node.js 앱 서버 OpsWorks 스택 계층
<a name="workinglayers-node"></a>

**중요**  
이 AWS OpsWorks Stacks 서비스는 2024년 5월 26일에 수명이 종료되었으며 신규 및 기존 고객 모두에서 비활성화되었습니다. 가능한 한 빨리 워크로드를 다른 솔루션으로 마이그레이션하는 것이 좋습니다. 마이그레이션에 대한 질문이 있는 경우 [AWS re:Post](https://repost.aws/) 또는 [AWS Premium Support](https://aws.amazon.com/support)를 통해 AWS Support 팀에 문의하세요.

**참고**  
이 계층은 Linux 기반 스택에서만 사용할 수 있습니다.

Node.js 앱 서버 계층은 [Node.js](http://nodejs.org/) 애플리케이션 서버로 작동하는 인스턴스에 대한 청사진을 제공하는 OpsWorks Stacks 계층입니다. OpsWorks Stacks는 [Express](http://expressjs.com/)도 설치하므로 계층의 인스턴스는 표준 애플리케이션과 Express 애플리케이션을 모두 지원합니다.

**설치**: Node.js가 `/usr/local/bin/node`에 설치됩니다.

[**계층 추가**] 페이지는 다음 구성 옵션을 제공합니다.

**Node.js 버전**  
현재 지원되는 버전의 목록은 [OpsWorks Stacks 운영 체제](workinginstances-os.md) 단원을 참조하세요.

**사용자 지정 보안 그룹**  
이 설정은 내장 OpsWorks Stacks 보안 그룹을 계층에 자동으로 연결하지 않도록 선택한 경우에 나타납니다. 계층에 어떤 보안 그룹을 연결할지 지정해야 합니다. 자세한 내용은 [새 스택 생성](workingstacks-creating.md) 섹션을 참조하세요.

**Elastic Load Balancer**  
Elastic Load Balancing 로드 밸런서를 어떤 계층의 인스턴스에도 연결할 수 있습니다.

**중요**  
Node.js 애플리케이션이 SSL을 사용하는 경우, 가능하다면 SSLv3를 비활성화하여 [CVE-2015-8027](http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-8027)에 설명된 취약성을 해결하는 것이 좋습니다. 그러려면 [**Node.js 버전**]을 `0.12.9`로 설정해야 합니다.

## Node.js 앱 배포
<a name="w2ab1c14c71b9c21c21c19c17"></a>

 OpsWorks Stacks를 위한 간단한 Node.js 애플리케이션을 구현하여 스택에 배포하는 방법의 자세한 안내는 [첫 번째 Node.js 스택 생성](gettingstarted-node.md) 단원을 참조하세요. 일반적으로 OpsWorks Stacks용 Node.js 애플리케이션이 충족해야 하는 조건은 다음과 같습니다.
+ 메인 파일의 이름은 `server.js`여야 하며, 배포된 애플리케이션이 루트 디렉터리에 상주해야 합니다.
+ [Express](http://expressjs.com/) 앱은 애플리케이션의 루트 디렉터리에 `package.json` 파일을 포함해야 합니다.
+ 기본적으로 이 애플리케이션은 포트 80(HTTP) 또는 포트 443(HTTPS)에서 수신해야 합니다.

  다른 포트에서도 수신이 가능하지만 Node.js 앱 서버 계층의 내장 보안 그룹인 **AWS-OpsWorks-nodejs-App-Server**는 포트 80, 443, 22(SSH)로의 인바운드 사용자 트래픽을 허용합니다. 다른 포트로의 인바운드 사용자 트래픽을 허용하려면 적절한 인바운드 규칙을 사용하여 [보안 그룹을 생성하고](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-network-security.html) [Node.js 앱 서버 계층에 할당합니다](workinglayers-basics-edit.md#workinglayers-basics-edit-security). 내장 보안 그룹을 편집하여 인바운드 규칙을 수정하지 마십시오. 스택을 생성할 때마다 OpsWorks Stacks는 기본 제공 보안 그룹을 표준 설정으로 덮어쓰므로 변경 사항이 손실됩니다.

**참고**  
OpsWorks Stacks는 PORT 환경 변수를 80(기본값) 또는 443(SSL을 활성화한 경우)으로 설정하므로 다음 코드를 사용하여 요청을 수신할 수 있습니다.  

```
app.listen(process.env.PORT);
```

[SSL을 지원하도록 Node.js 앱을 구성하는](workingapps-creating.md#workingapps-creating-domain-ssl) 경우 키와 인증서를 지정해야 합니다. OpsWorks Stacks는 다음과 같이 각 애플리케이션 서버 인스턴스의 데이터를 `/srv/www/app_shortname/shared/config` 디렉터리에 별도의 파일로 저장합니다.
+ `ssl.crt` – SSL 인증서입니다.
+ `ssl.key` – SSL 키입니다.
+ `ssl.ca` – 체인 인증서(지정한 경우).

애플리케이션은 이러한 파일에서 SSL 키와 인증서를 가져올 수 있습니다.