쿠키 기본 설정 선택

당사는 사이트와 서비스를 제공하는 데 필요한 필수 쿠키 및 유사한 도구를 사용합니다. 고객이 사이트를 어떻게 사용하는지 파악하고 개선할 수 있도록 성능 쿠키를 사용해 익명의 통계를 수집합니다. 필수 쿠키는 비활성화할 수 없지만 '사용자 지정' 또는 ‘거부’를 클릭하여 성능 쿠키를 거부할 수 있습니다.

사용자가 동의하는 경우 AWS와 승인된 제3자도 쿠키를 사용하여 유용한 사이트 기능을 제공하고, 사용자의 기본 설정을 기억하고, 관련 광고를 비롯한 관련 콘텐츠를 표시합니다. 필수가 아닌 모든 쿠키를 수락하거나 거부하려면 ‘수락’ 또는 ‘거부’를 클릭하세요. 더 자세한 내용을 선택하려면 ‘사용자 정의’를 클릭하세요.

첫 번째 Node.js 스택 생성 - AWS OpsWorks

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

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

첫 번째 Node.js 스택 생성

중요

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

이 예제는 Node.js 애플리케이션 서버를 지원하는 Linux 스택을 생성하고 간단한 애플리케이션을 배포하는 방법을 설명합니다. 스택의 구성 요소는 다음과 같습니다.

사전 조건

이 연습에서는 다음과 같이 가정합니다.

  • AWS 계정과 AWS OpsWorks Stacks 사용 방법에 대한 기본적인 이해가 있습니다.

    AWS OpsWorks Stacks 또는 AWS를 처음 사용하는 경우의 입문 자습서를 완료하여 기본 사항을 알아봅니다Chef 11 Linux 스택 시작하기.

  • Node.js 애플리케이션 구현 방법에 대한 기본적인 이해가 있습니다.

    Node.js가 생소하다면 Node: Up and Running과 같은 입문용 자습서를 완료하여 기본 사항에 대해 알아보십시오.

  • 이 예제를 사용할 AWS 리전에서 이미 하나 이상의 스택이 생성되어 있습니다.

    리전에서 첫 번째 스택을 생성할 때 AWS OpsWorks Stacks는 각 계층 유형에 대해 Amazon Elastic Compute Cloud(Amazon EC2) 보안 그룹을 생성합니다. Amazon RDS 데이터베이스(DB) 인스턴스를 생성하려면 이러한 보안 그룹이 필요합니다. AWS OpsWorks Stacks를 처음 사용하는 경우의 자습서를 따를 때이 예제와 동일한 리전을 사용하는 것이 좋습니다Chef 11 Linux 스택 시작하기. 새 리전을 사용하려면 리전에서 새 스택을 생성합니다. 스택이 계층 또는 인스턴스를 포함할 필요는 없습니다. 스택을 생성하는 즉시 AWS OpsWorks Stacks는 리전에 보안 그룹 세트를 자동으로 추가합니다.

  • 기본 VPC에서 스택을 생성합니다.

    이 연습에서 EC2-Classic을 사용할 수 있지만 일부 세부 내용이 약간 다릅니다. 예를 들어 EC2-Classic에서는 서브넷 대신 인스턴스의 가용 영역(AZ)을 지정합니다.

  • IAM 사용자에게는 AWS OpsWorks Stacks에 대한 전체 액세스 권한이 있습니다.

    보안상의 이유로 이 연습에서 계정의 루트 자격 증명은 사용하지 않는 것이 좋습니다. 대신 AWS OpsWorks Stacks 전체 액세스 권한이 있는 사용자를 생성하고 AWS OpsWorks Stacks에서 해당 자격 증명을 사용합니다. 자세한 내용은 관리 사용자 생성 단원을 참조하십시오.

애플리케이션 구형

이 안내에서는 Amazon RDS DB 인스턴스에 연결하고 인스턴스의 데이터베이스를 나열하는 간단한 Express 애플리케이션을 사용합니다.

애플리케이션을 구현하려면 워크스테이션의 편리한 위치에 nodedb라는 디렉터리를 생성하고 다음 세 파일을 이 디렉터리에 추가합니다.

패키지 설명자

애플리케이션의 패키지 설명자를 생성하려면 다음 콘텐츠가 포함된 package.json이라는 파일을 nodedb 디렉터리에 추가합니다. package.json은 Express 애플리케이션에 필요하며 애플리케이션의 루트 디렉터리에 위치해야 합니다.

{ "name": "Nodejs-DB", "description": "Node.js example application", "version": "0.0.1", "dependencies": { "express": "*", "ejs": "*", "mysql": "*" } }

package.json 예제는 최소한으로 구성되어 있습니다. 필수 nameversion 속성을 정의하고 종속 패키지를 나열합니다.

  • expressExpress 패키지를 참조합니다.

  • ejs는 애플리케이션이 텍스트를 HTML 레이아웃 파일에 삽입할 때 사용하는 EJS 패키지를 참조합니다.

  • mysql은 애플리케이션이 RDS 인스턴스에 연결할 때 사용하는 node-mysql 패키지를 참조합니다.

패키지 설명자에 대한 자세한 정보는 package.json 단원을 참조하세요.

레이아웃 파일

애플리케이션의 레이아웃 파일을 생성하려면 views 디렉터리에 nodedb 디렉터리를 추가하고, 콘텐츠가 포함된 views이라는 파일을 index.html에 추가합니다.

<!DOCTYPE html> <html> <head> <title>AWS Opsworks Node.js Example</title> </head> <body> <h1>AWS OpsWorks Node.js Example</h1> <p>Amazon RDS Endpoint: <i><%= hostname %></i></p> <p>User: <i><%= username %></i></p> <p>Password: <i><%= password %></i></p> <p>Port: <i><%= port %></i></p> <p>Database: <i><%= database %></i></p> <p>Connection: <%= connectionerror %></p> <p>Databases: <%= databases %></p> </body> </html>

이 예제에서는 레이아웃 파일이 Amazon RDS로부터의 일부 데이터를 표시하는 간단한 HTML 문서입니다. 각 <%= ... => 요소는 이 다음에 생성할 애플리케이션의 코드 파일에서 정의되는 변수의 값을 나타냅니다.

코드 파일

애플리케이션의 코드 파일을 생성하려면 다음 콘텐츠가 포함된 server.js 파일을 nodedb 디렉터리에 추가합니다.

중요

AWS OpsWorks Stacks를 사용하면 Node.js 애플리케이션의 기본 코드 파일의 이름을 server.js 지정하고 애플리케이션의 루트 폴더에 위치해야 합니다.

var express = require('express'); var mysql = require('mysql'); var dbconfig = require('opsworks'); //[1] Include database connection data var app = express(); var outputString = ""; app.engine('html', require('ejs').renderFile); //[2] Get database connection data app.locals.hostname = dbconfig.db['host']; app.locals.username = dbconfig.db['username']; app.locals.password = dbconfig.db['password']; app.locals.port = dbconfig.db['port']; app.locals.database = dbconfig.db['database']; app.locals.connectionerror = 'successful'; app.locals.databases = ''; //[3] Connect to the Amazon RDS instance var connection = mysql.createConnection({ host: dbconfig.db['host'], user: dbconfig.db['username'], password: dbconfig.db['password'], port: dbconfig.db['port'], database: dbconfig.db['database'] }); connection.connect(function(err) { if (err) { app.locals.connectionerror = err.stack; return; } }); // [4] Query the database connection.query('SHOW DATABASES', function (err, results) { if (err) { app.locals.databases = err.stack; } if (results) { for (var i in results) { outputString = outputString + results[i].Database + ', '; } app.locals.databases = outputString.slice(0, outputString.length-2); } }); connection.end(); app.get('/', function(req, res) { res.render('./index.html'); }); app.use(express.static('public')); //[5] Listen for incoming requests app.listen(process.env.PORT);

이 예제는 데이터베이스 연결 정보를 표시하며 데이터베이스 서버에 쿼리하여 서버의 데이터베이스 를 표시합니다. 손쉽게 이를 일반화하여 필요에 따라 데이터베이스와 상호 작용할 수 있습니다. 다음 참고 사항은 이전 코드에서 번호가 매겨진 주석 단원을 참조합니다.

[1] Include database connection data

require 문은 데이터베이스 연결 데이터를 포함시킵니다. 나중에 설명했듯이, 데이터베이스에 데이터베이스 인스턴스를 앱에 연결하면 AWS OpsWorks Stacks는 연결 데이터를 이라는 파일에 넣습니다opsworks.js.이 파일은 다음과 비슷합니다.

exports.db = { "host":"nodeexample.cdlqlk5uwd0k.us-west-2.rds.amazonaws.com", "database":"nodeexampledb", "port":3306, "username":"opsworksuser", "password":"your_pwd", "reconnect":true, "data_source_provider":"rds", "type":"mysql"}

opsworks.js는 애플리케이션의 shared/config 디렉터리인 /srv/www/app_shortname/shared/config에 있습니다. 그러나 AWS OpsWorks Stacks는 애플리케이션의 루트 디렉터리opsworks.js에에 대한 symlink를 배치하므로 만 사용하여 객체를 포함할 수 있습니다require 'opsworks'.

[2] Get database connection data

이 문 세트는 db 객체에서 app.locals 속성 세트로 값을 할당하여 opsworks.js의 연결 데이터를 표시합니다. 각 속성은 index.html 파일 내 <%= ... %> 요소 중 하나에 매핑됩니다. 렌더링된 문서에서는 <%= ... %> 요소가 해당 속성 값으로 바뀝니다.

[3] Connect to the Amazon RDS instance

이 예제는 node-mysql을 사용하여 데이터베이스에 액세스합니다. 데이터베이스에 연결하려면 연결 데이터를 connection에 전달하여 createConnection 객체를 생성한 후 connection.connect를 호출하여 연결을 설정합니다.

[4] Query the database

연결이 설정되면 이 예제가 connection.query를 호출하여 데이터베이스를 쿼리합니다. 이 예제는 단순히 서버의 데이터베이스 이름을 쿼리합니다. query가 데이터베이스 이름이 Database 속성에 할당된 results 객체를 데이터베이스마다 하나씩 반환합니다. 이 예제는 이름을 연결하여 그 결과를 렌더링된 HTML 페이지에 목록을 표시하는 app.locals.databases,에 할당합니다.

이 예제에는 RDS 인스턴스를 생성할 때 지정된 nodeexampledb 데이터베이스와 Amazon RDS가 자동으로 생성한 4개의 데이터베이스 등 5개의 데이터베이스가 있습니다.

[5] Listen for incoming requests

이 마지막 문은 지정된 포트에서 수신 요청을 수신 대기합니다. 명시적 포트 값을 지정할 필요는 없습니다. 스택에 앱을 추가할 때 애플리케이션이 HTTP 또는 HTTPS 요청을 지원하는지 여부를 지정합니다. 그러면 AWS OpsWorks Stacks는 PORT 환경 변수를 80(HTTP) 또는 443(HTTPS)으로 설정하고 애플리케이션에서 해당 변수를 사용할 수 있습니다.

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

참고

연결된 앱을 생성 또는 업데이트할 때 애플리케이션에 사용자 지정 환경 변수를 연결할 수 있습니다. 또한 사용자 지정 JSON과 사용자 지정 레시피를 사용하여 데이터를 애플리케이션으로 전달할 수도 있습니다. 자세한 내용은 애플리케이션으로 데이터 전달 섹션을 참조하세요.

데이터베이스 서버 및 로드 밸런서 생성

이 예제는 Amazon RDS 데이터베이스 서버 및 Elastic Load Balancing 로드 밸런서 인스턴스를 사용합니다. 각 인스턴스를 별도로 생성한 후 스택으로 가져와야 합니다. 이 섹션에서는 새 데이터베이스 및 로드 밸런서 인스턴스를 생성하는 방법을 설명합니다. 기존 인스턴스를 대신 사용할 수 있지만 인스턴스를 올바로 구성할 수 있도록 절차를 끝까지 읽는 것이 좋습니다.

다음 절차는 이 예제에는 충분한, 최소한으로 구성된 RDS DB 인스턴스를 생성하는 방법을 설명합니다. 자세한 내용은 Amazon RDS 사용 설명서를 참조하세요.

RDS DB 인스턴스를 생성하려면
  1. 콘솔을 엽니다.

    Amazon RDS 콘솔을 열고 지역을 미국 서부(오레곤)로 설정합니다. 탐색 창에서 [RDS 대시보드]를 선택한 다음 [DB 인스턴스 시작]을 선택합니다.

  2. 데이터베이스 엔진을 지정합니다.

    데이터베이스 엔진으로 [MySQL 커뮤니티 에디션]을 선택합니다.

  3. 다중 AZ 배포를 거부합니다.

    [아니요, 이 인스턴스...]를 선택한 다음, [다음]을 선택합니다. 이 예제에는 다중 AZ 배포가 필요 없습니다.

  4. 기본 설정을 구성합니다.

    [DB 인스턴스 세부 정보] 페이지에서 다음 설정을 지정합니다.

    • [DB 인스턴스 클래스]: [db.t2.micro]

    • [다중 AZ 배포]: [No]

    • 할당된 스토리지: 5 GB

    • DB 인스턴스 식별자: nodeexample

    • 마스터 사용자 이름: opsworksuser.

    • Master Password:: 선택한 암호

    나중에 사용하기 위해 인스턴스 식별자, 사용자 이름 및 암호를 적어 두고 다른 옵션에 대해서는 기본 설정을 수락한 다음 [다음]을 선택합니다.

  5. 고급 설정을 구성합니다.

    [고급 설정 구성] 페이지에서 다음 설정을 지정합니다.

    • 데이터베이스 이름: nodeexampledb

    • [DB 보안 그룹]: [AWS-OpsWorks-DB-Master-Server]

    참고

    [AWS-OpsWorks-DB-Master-Server] 보안 그룹에서는 스택의 인스턴스만 데이터베이스에 액세스하도록 허용합니다. 데이터베이스에 직접 액세스하려면 적절한 인바운드 규칙을 사용하여 RDS DB 인스턴스에 추가 보안 그룹을 연결합니다. 자세한 내용은 Amazon RDS 보안 그룹을 참조하세요. 또한 VPC에 인스턴스를 배치하여 액세스를 제어할 수도 있습니다. 자세한 내용은 VPC에서 스택 실행 섹션을 참조하세요.

    나중에 사용하기 위해 데이터베이스 이름을 적어 두고 다른 설정에 대해서는 기본값을 수락한 다음 [DB 인스턴스 시작]을 선택합니다.

다음 절차는 이 예제를 위한 Elastic Load Balancing 로드 밸런서를 생성하는 방법을 설명합니다. 자세한 내용은 Elastic Load Balancing 사용 설명서를 참조하세요.

로드 밸런서를 생성하려면
  1. Amazon EC2 콘솔을 엽니다.

    Amazon EC2 콘솔을 열고 리전이 미국 서부(오레곤)로 설정되어 있는지 확인합니다. 탐색 창에서 [로드 밸런서]를 선택한 다음 [로드 밸런서 만들기]를 선택합니다.

  2. 로드 밸런서를 정의합니다.

    [로드 밸런서 정의] 페이지에서 다음 설정을 지정하세요.

    • 명칭Node-LB

    • LB 내부 생성내 기본 VPC

    다른 옵션에 대해서는 기본 설정을 수락하고 [다음]을 선택합니다.

  3. 보안 그룹을 할당합니다.

    [보안 그룹 할당] 페이지에서 다음 그룹을 지정합니다.

    • 기본 VPC 보안 그룹

    • AWS-OpsWorks-nodejs-App-Server

    다음을 선택합니다. [보안 설정 구성] 페이지에서 [다음]을 선택합니다. 이 예제에는 보안 리스너가 필요 없습니다.

  4. 상태 확인을 구성합니다.

    상태 확인 구성 페이지에서 Ping 경로/로 설정하고 다른 설정에 대해서는 기본값을 수락합니다. 다음을 선택합니다. [EC2 인스턴스 추가] 페이지에서 [다음]을 선택합니다. 태그 추가 페이지에서 검토 및 생성을 선택합니다. 스택은 로드 밸런서에 EC2 인스턴스를 추가하는 작업을 처리하므로이 예제에서는 태그가 필요하지 않습니다. AWS OpsWorks

  5. 로드 밸런서를 생성합니다.

    [검토] 페이지에서 [만들기]를 선택하여 로드 밸런서를 생성합니다.

스택 생성

이제 스택을 생성하는 데 필요한 모든 구성 요소가 준비되었습니다.

스택을 생성하는 방법
  1. AWS OpsWorks Stacks 콘솔에 로그인합니다.

    AWS OpsWorks Stacks 콘솔에 로그인한 다음 스택 추가를 선택합니다.

  2. 스택을 생성합니다.

    새 스택을 생성하려면 [Chef 11 스택]을 선택하고 다음 설정을 지정합니다.

    • NodeStack

    • 리전미국 서부(오레곤)

      스택은 모든 AWS 리전에서 생성할 수 있지만 자습서의 경우 미국 서부(오레곤)를 선택하는 것이 좋습니다.

    [스택 추가]를 선택합니다. 스택 구성 설정에 대한 자세한 정보는 새 스택 생성 단원을 참조하세요.

  3. 연결된 로드 밸런서와 함께 Node.js 앱 서버 계층을 추가합니다.

    [NodeStack] 페이지에서 [계층 추가]를 선택하고 다음 설정을 지정합니다.

    • 계층 유형Node.js 앱 서버

    • 탄력적 로드 밸런서 - 노드-LB

    다른 설정에 대해서는 기본값을 수락하고 [계층 추가]를 선택합니다.

  4. 인스턴스를 계층에 추가하고 시작합니다.

    탐색 창에서 [인스턴스]를 선택하고 다음과 같이 Rails 앱 서버 계층에 인스턴스 2개를 추가합니다.

    1. Node.js 앱 서버에서 인스턴스 추가를 선택합니다.

      [크기]를 [t2.micro]로 설정하고, 다른 설정에 대해서는 기본값을 수락하고 [인스턴스 추가]를 선택합니다.

    2. [+인스턴스]를 선택한 다음 두 번째 t2.micro 인스턴스를 다른 서브넷의 계층에 추가합니다.

      이렇게 하면 해당 인스턴스가 다른 AZ(가용 영역)에 배치됩니다.

    3. [인스턴스 추가]를 선택합니다.

    4. 두 인스턴스를 모두 시작하려면 [모든 인스턴스 시작]을 선택합니다.

    이 계층에 Elastic Load Balancing 로드 밸런서를 할당했습니다. 인스턴스가 온라인 상태가 되거나 온라인 상태에서 나가면 AWS OpsWorks Stacks는 자동으로 인스턴스를 로드 밸런서에 등록하거나 등록 취소합니다.

    참고

    프로덕션 스택의 경우 다중 AZ에 애플리케이션 서버 인스턴스를 배포하는 것이 좋습니다. 사용자가 AZ에 연결할 수 없는 경우 로드 밸런서가 나머지 영역의 인스턴스로 수신 트래픽을 라우트하므로 사이트가 계속해서 작동합니다.

  5. 스택에 RDS DB 인스턴스를 등록합니다.

    탐색 창에서 [리소스]를 선택하고 다음과 같이 스택에 RDS DB 인스턴스를 등록합니다.

    1. [RDS] 탭을 선택한 다음 [미등록 RDS DB 표시] 인스턴스를 선택합니다.

    2. [nodeexampledb] 인스턴스를 선택하고 다음 설정을 지정합니다.

      • 사용자 - 인스턴스를 생성할 때 지정한 마스터 사용자 이름입니다(이 예제에서는). opsworksuser.

      • 암호 - 인스턴스를 생성할 때 지정한 마스터 암호입니다.

    3. 스택에 등록을 선택하여 스택에 RDS DB 인스턴스를 Amazon RDS 서비스 계층으로 추가합니다.

    주의

    AWS OpsWorks Stacks는 사용자 또는 암호 값을 검증하지 않으며 단순히 애플리케이션에 전달합니다. 이러한 값을 잘못 입력하면 애플리케이션이 데이터베이스에 연결할 수 없습니다.

    스택에 등록을 선택하여 스택에 RDS DB 인스턴스를 Amazon RDS 서비스 계층으로 추가합니다.

애플리케이션 배포

애플리케이션은 원격 리포지토리에 저장해야 합니다. 배포하면 AWS OpsWorks Stacks는 코드 및 관련 파일을 리포지토리에서 애플리케이션 서버 인스턴스로 배포합니다. 편의를 위해 이 예제는 리포지토리로 퍼블릭 Amazon Simple Storage Service(S3) 아카이브를 사용하지만, Git 및 하위 버전을 비롯해 다수의 다른 리포지토리 유형을 사용할 수 있습니다. 자세한 내용은 애플리케이션 소스 섹션을 참조하세요.

애플리케이션을 배포하려면
  1. 애플리케이션을 아카이브 파일에 패키지로 포함합니다.

    .zip 디렉터리와 하위 디렉터리 nodedb.zip의 nodedb 아카이브를 생성합니다. 또한 gzip, bzip2 및 tarball을 비롯하여 다른 아카이브 파일 유형을 사용할 수도 있습니다. 참고로 AWS OpsWorks Stacks는 압축되지 않은 tarball을 지원하지 않습니다. 자세한 내용은 애플리케이션 소스 단원을 참조하십시오.

  2. Amazon S3로 아카이브 파일을 업로드합니다.

    nodedb.zip을 Amazon S3 버킷에 업로드하고, 이 파일을 퍼블릭으로 지정한 다음 나중에 사용하기 위해 파일의 URL을 복사해 둡니다. 버킷 생성 및 파일 업로드 방법에 대한 자세한 내용은 Amazon Simple Storage Service 시작하기를 참조하세요.

    참고

    AWS OpsWorks Stacks는 Amazon S3 버킷에서 프라이빗 파일을 배포할 수도 있지만, 간소화를 위해이 예제에서는 퍼블릭 파일을 사용합니다. 자세한 내용은 애플리케이션 소스 단원을 참조하십시오.

  3. AWS OpsWorks Stacks 앱을 생성합니다.

    AWS OpsWorks Stacks 콘솔로 돌아가서 탐색 창에서 앱을 선택한 다음 앱 추가를 선택합니다. 다음 설정을 지정합니다.

    • 이름NodeDB.

      이 문자열은 앱의 표시 이름입니다. 대부분의 경우 AWS OpsWorks Stacks가 모든 문자를 소문자로 변환하고 구두점을 제거하여 표시 이름에서 생성하는 앱의 짧은 이름이 필요합니다. 이 예제에서 짧은 이름은 nodedb입니다. 앱을 생성한 후 앱의 짧은 이름을 확인하려면 [] 페이지에서 앱을 선택하여 앱의 세부 정보 페이지를 표시합니다.

    • 유형Node.js.

    • 데이터 소스 유형RDS.

    • 데이터베이스 인스턴스 - 앞서 등록한 Amazon RDS DB 인스턴스를 선택합니다.

    • 데이터베이스 이름 - 앞서 생성한 데이터베이스 이름을 지정합니다. 이 예제에서는 nodeexampledb입니다.

    • 리포지토리 유형Http Archive.

      이 리포지토리 유형은 퍼블릭 Amazon S3 파일에 사용해야 합니다. S3 Archive 유형은 프라이빗 아카이브에만 사용됩니다.

    • 리포지토리 URL - 아카이브 파일의 Amazon S3 URL.

    나머지 설정에 대해서는 기본값을 사용하고 [앱 추가]를 클릭하여 앱을 생성합니다.

  4. 앱을 배포합니다.

    페이지로 이동한 다음 NodeDB 앱의 작업 열에서 배포를 선택합니다. 그런 다음 배포를 선택하여 앱을 서버 인스턴스에 배포합니다. AWS OpsWorks Stacks는 각 인스턴스에서 배포 레시피를 실행하여 리포지토리에서 애플리케이션을 다운로드하고 서버를 다시 시작합니다. 각 인스턴스에 녹색 확인 표시가 나타나고 [상태]가 [성공]이면 배포가 완료되고 애플리케이션이 요청 처리를 시작할 준비가 된 것입니다.

    참고

    배포에 실패한 경우 로그 열에서 표시를 선택하여 배포의 Chef 로그를 표시합니다. 맨 아래 근처에 오류 정보가 표시되어 있습니다.

  5. 애플리케이션을 엽니다.

    애플리케이션을 열려면 [계층]를 선택하고 로드 밸런서를 선택한 다음 로드 밸런서의 DNS 이름을 선택합니다. 그러면 로드 밸런서로 HTTP 요청이 전송됩니다. 다음과 같은 내용이 표시되어야 합니다.

    AWS OpsWorks Node.js example showing RDS endpoint, user credentials, and database details.
참고

AWS OpsWorks Stacks는 설정 중에 새 인스턴스에 앱을 자동으로 배포합니다. 수동 배포는 온라인 인스턴스에서만 필요합니다. 자세한 내용은 앱 배포 섹션을 참조하세요. 보다 복잡한 배포 전략을 비롯해 배포에 대한 전반적인 설명은 앱과 쿡북의 관리 및 배포 단원을 참조하세요.

다음 단계

중요

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

이 연습에서는 간단한 Node.js 애플리케이션 서버 스택을 설정하는 기본 사항을 살펴보았습니다. 아래는 다음 단계에 대한 몇 가지 제안입니다.

Node.js 내장 쿡북 살펴보기

인스턴스가 세부적으로 구성되는 방법을 알고 싶다면 Stacks가 소프트웨어를 설치하고 구성하는 데 사용하는 레시피와 관련 파일이 포함된 계층의 내장 쿡북인 opsworks_nodejs와 Stacks가 앱을 배포하는 데 사용하는 레시피가 포함된 내장 배포 AWS OpsWorks 쿡북을 참조하세요. AWS OpsWorks

서버 구성 사용자 지정

이 예제 스택은 매우 기본적입니다. 프로덕션용으로 사용하려면 스택을 사용자 지정해야 할 것입니다. 자세한 내용은 AWS OpsWorks 스택 사용자 지정 섹션을 참조하세요.

SSL 지원을 추가

앱에 대한 SSL 지원을 활성화하고 앱을 생성할 때 AWS OpsWorks Stacks에 적절한 인증서를 제공할 수 있습니다. 그런 다음 AWS OpsWorks Stacks는 인증서를 적절한 디렉터리에 설치합니다. 자세한 내용은 SSL 사용 단원을 참조하십시오.

인 메모리 데이터 캐싱을 추가

프로덕션 수준 사이트에서 Redis 또는 Memcache와 같은 인 메모리 키-값 저장소에 데이터를 캐시하여 성능을 개선하는 경우가 종종 있습니다. 둘 중 하나를 AWS OpsWorks Stacks 스택과 함께 사용할 수 있습니다. 자세한 내용은 ElastiCache RedisMemcached 단원을 참조하세요.

보다 복잡한 배포 전략을 사용

이 예제에서는 모든 인스턴스를 동시에 업데이트하는 간단한 앱 배포 전략을 사용했습니다. 이 접근 방식은 간단하고 빠르지만 오류의 여지가 없습니다. 배포가 실패하거나 업데이트에 문제가 있을 경우 프로덕션 스택의 모든 인스턴스가 영향을 받을 수 있으므로 문제를 해결할 때까지는 사이트가 중단 또는 비활성화될 수 있습니다. 배포 전략에 대한 자세한 정보는 앱과 쿡북의 관리 및 배포 단원을 참조하세요.

Node.js 앱 서버 계층을 확장하세요.

다양한 방법으로 계층을 확장할 수 있습니다. 예를 들어 인스턴스에서 스크립트를 실행하는 레시피를 구현하거나 앱 배포를 사용자 지정하기 위한 Chef 배포 후크를 구현할 수 있습니다. 자세한 내용은 계층 확장 섹션을 참조하세요.

환경 변수를 정의

연결된 앱의 환경 변수를 정의하여 애플리케이션에 데이터를 전달할 수 있습니다. 앱을 배포할 때 AWS OpsWorks Stacks는 사용자가 앱에서 액세스할 수 있도록 이러한 변수를 내보냅니다. 자세한 내용은 환경 변수 사용 단원을 참조하십시오.

프라이버시사이트 이용 약관쿠키 기본 설정
© 2025, Amazon Web Services, Inc. 또는 계열사. All rights reserved.