View a markdown version of this page

QuickStart: Elastic Beanstalk에 Node.js 애플리케이션 배포 - AWS Elastic Beanstalk

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

QuickStart: Elastic Beanstalk에 Node.js 애플리케이션 배포

이 QuickStart 자습서에서는 Node.js 애플리케이션을 생성하고 AWS Elastic Beanstalk 환경에 배포하는 프로세스를 안내합니다.

프로덕션용으로 사용 불가

예제는 설명용으로만 제공됩니다. 예제 애플리케이션을 프로덕션 환경에서 사용하지 마세요.

AWS 계정

아직 AWS 고객이 아닌 경우 AWS 계정을 생성해야 합니다. 가입하면 Elastic Beanstalk 및 필요한 기타 AWS 서비스에 액세스할 수 있습니다.

이미 AWS 계정이 있는 경우 로 이동할 수 있습니다사전 조건.

에 가입 AWS 계정

를 시작하려면이 AWS필요합니다 AWS 계정. 생성에 대한 자세한 AWS 계정내용은 AWS Account Management 참조 안내서시작하기 AWS 계정를 참조하세요.

사전 조건

이 설명서의 절차를 수행하기 위해서는 실행 명령줄을 입력할 쉘 또는 터미널이 필요합니다. 명령은 프롬프트 기호($)와 해당하는 경우 현재 디렉터리 이름 뒤에 리스트로 표시됩니다.

~/eb-project$ this is a command this is output

Linux 및 macOS의 경우 선호하는 쉘과 패키지 관리자를 사용할 수 있습니다. Windows의 경우 Linux용 Windows Subsystem을 설치하여 Ubuntu 및 Bash의 Windows 통합 버전을 가져옵니다.

EB CLI

또한 본 자습서는 Elastic Beanstalk 명령줄 인터페이스(EB CLI)를 사용합니다. EB CLI 설치 및 구성에 대한 자세한 내용은 설정 스크립트를 사용하여 EB CLI 설치(권장)EB CLI 구성 단원을 참조하세요.

Node.js

Node.js 웹 사이트에 Node.js를 설치하는 방법을 따라 로컬 시스템에 Node.js를 설치합니다.

다음 명령을 실행하여 Node.js 설치를 확인합니다.

~$ node -v

1단계: Node.js 애플리케이션 생성

프로젝트 디렉터리를 만듭니다.

~$ mkdir eb-nodejs ~$ cd eb-nodejs

그 다음 Elastic Beanstalk를 사용하여 배포할 애플리케이션을 만듭니다. "Hello World" RESTful 웹 서비스를 만듭니다.

~/eb-nodejs/server.js
const http = require('node:http'); const hostname = '127.0.0.1'; const port = 8080; const server = http.createServer((req, res) => { res.statusCode = 200; res.setHeader('Content-Type', 'text/plain'); res.end('Hello Elastic Beanstalk!\n'); }); server.listen(port, hostname, () => { console.log(`Server running at http://${hostname}:${port}/`); });

이 애플리케이션은 포트 8080에서 리스너를 엽니다. Elastic Beanstalk는 Node.js에 대해 기본적으로 포트 8080의 애플리케이션에 요청을 전달합니다.

2단계: 로컬에서 애플리케이션 실행

애플리케이션을 로컬로 배포하려면 다음 명령을 입력합니다.

~/eb-nodejs$ node server.js

다음과 같은 텍스트가 표시됩니다.

Server running at http://127.0.0.1:8080/

브라우저에 URL 주소 http://127.0.0.1:8080/을 입력합니다. 브라우저에 ‘Hello Elastic Beanstalk!’가 표시됩니다.

3단계: EB CLI를 사용하여 Node.js 애플리케이션 배포

다음 명령을 실행하여 이 애플리케이션에 대한 Elastic Beanstalk 환경을 생성합니다.

환경을 생성하고 Node.js 애플리케이션을 배포하려면
  1. eb init 명령으로 EB CLI 리포지토리를 초기화합니다.

    ~/eb-nodejs$ eb init -p node.js nodejs-tutorial --region us-east-2

    이 명령은 nodejs-tutorial이라는 애플리케이션을 생성하고 최신 Node.js 플랫폼 버전을 통해 환경을 생성하도록 로컬 리포지토리를 구성합니다.

  2. (선택 사항) SSH를 통해 애플리케이션을 실행하는 EC2 인스턴스에 연결할 수 있도록 eb init를 다시 실행하여 기본 키 페어를 구성합니다.

    ~/eb-nodejs$ eb init Do you want to set up SSH for your instances? (y/n): y Select a keypair. 1) my-keypair 2) [ Create new KeyPair ]

    키 페어가 이미 있는 경우 이를 선택하거나, 프롬프트에 따라 키 페어를 생성합니다. 프롬프트가 보이지 않거나 나중에 설정을 변경해야 하는 경우 eb init -i를 실행합니다.

  3. 환경을 만들고 eb create로 해당 환경에 애플리케이션을 배포합니다. Elastic Beanstalk는 애플리케이션의 zip 파일을 자동으로 빌드하여 환경의 EC2 인스턴스에 배포합니다. 애플리케이션을 배포한 후 Elastic Beanstalk가 포트 8080에서 이 애플리케이션을 시작합니다.

    ~/eb-nodejs$ eb create nodejs-env

    Elastic Beanstalk에서 환경을 생성하는 데 약 5분이 걸립니다.

4단계: Elastic Beanstalk에서 애플리케이션 실행

환경 생성 프로세스가 완료되면 eb open으로 웹 사이트를 엽니다.

~/eb-nodejs$ eb open

축하합니다! Elastic Beanstalk를 사용하여 Node.js 애플리케이션을 배포했습니다! 그러면 애플리케이션에 대해 생성된 도메인 이름을 사용하여 브라우저 창이 열립니다.

5단계: 정리

애플리케이션 작업을 완료하면 환경을 종료할 수 있습니다. Elastic Beanstalk는 환경과 연결된 모든 AWS 리소스를 종료합니다.

EB CLI를 사용하여 Elastic Beanstalk 환경을 종료하려면 다음 명령을 실행하세요.

~/eb-nodejs$ eb terminate

AWS 애플리케이션을 위한 리소스

단일 인스턴스 애플리케이션을 생성했습니다. 이 애플리케이션은 단일 EC2 인스턴스를 사용하는 간단한 샘플 애플리케이션 역할을 하므로 로드 밸런싱이나 오토 스케일링이 필요하지 않습니다. 단일 인스턴스 애플리케이션의 경우 Elastic Beanstalk는 다음 AWS 리소스를 생성합니다.

  • EC2 인스턴스 - 선택한 플랫폼에서 웹 앱을 실행하도록 구성된 Amazon EC2 가상 머신입니다.

    특정 언어 버전, 프레임워크, 웹 컨테이너 또는 조합을 지원하도록 각 플랫폼마다 실행하는 소프트웨어, 구성 파일 및 스크립트 세트가 다릅니다. 대부분의 플랫폼에서는 웹 앱 앞의 웹 트래픽을 처리하고, 웹 앱으로 요청을 전달하고, 정적 자산을 제공하고, 액세스 및 오류 로그를 생성하는 역방향 프록시로 Apache 또는 nginx를 사용합니다.

  • 인스턴스 보안 그룹 - 포트 80에서 수신 트래픽을 허용하도록 구성된 Amazon EC2 보안 그룹입니다. 이 리소스를 통해 로드 밸런서의 HTTP 트래픽이 웹 앱을 실행하는 EC2 인스턴스에 도달할 수 있습니다. 기본적으로 다른 포트에서는 트래픽이 허용되지 않습니다.

  • Amazon S3 버킷(Amazon S3 bucket) - Elastic Beanstalk 사용 시 생성된 소스 코드, 로그 및 기타 아티팩트의 스토리지 위치입니다.

  • Amazon CloudWatch 경보 - 환경의 인스턴스에 대한 로드를 모니터링하는 두 개의 CloudWatch 경보로, 로드가 너무 높거나 너무 낮은 경우 트리거됩니다. 경보가 트리거되면 이에 대한 응답으로 Auto Scaling 그룹이 스케일 업 또는 축소됩니다.

  • CloudFormation 스택 - Elastic Beanstalk는 CloudFormation 를 사용하여 환경에서 리소스를 시작하고 구성 변경 사항을 전파합니다. 리소스는 CloudFormation 콘솔에서 볼 수 있는 템플릿에서 정의됩니다.

  • 도메인 이름(Domain name) - subdomain.region.elasticbeanstalk.com 형식으로 웹 앱으로 라우팅되는 도메인 이름입니다.

이러한 모든 리소스는 Elastic Beanstalk에서 관리합니다. 사용자가 환경을 종료하면 Elastic Beanstalk는 환경에 있는 모든 리소스를 종료합니다.

다음 단계

애플리케이션을 실행하는 환경이 있으면 언제든 다른 애플리케이션 또는 애플리케이션의 새 버전을 배포할 수 있습니다. EC2 인스턴스를 프로비저닝하거나 다시 시작할 필요가 없기 때문에 새 애플리케이션 버전을 매우 빠르게 배포할 수 있습니다. Elastic Beanstalk 콘솔을 사용하여 새로운 환경을 탐색할 수도 있습니다. 자세한 단계는 이 가이드의 시작하기 장의 환경 탐색을 참조하세요.

더 많은 자습서 보기

다른 예제 애플리케이션으로 다른 자습서를 사용하려는 경우 더 많은 Node.js용 Elastic Beanstalk 예제 애플리케이션 및 자습서 단원을 참조하세요.

샘플 애플리케이션을 하나 이상 배포하고 Node.js 애플리케이션을 로컬로 개발하고 실행할 준비가 되면 Elastic Beanstalk를 위한 Node.js 개발 환경 설정 단원을 참조하세요.

Elastic Beanstalk 콘솔을 사용하여 배포

Elastic Beanstalk 콘솔을 사용하여 샘플 애플리케이션을 시작할 수도 있습니다. 자세한 단계는 이 가이드의 시작하기 장의 예제 애플리케이션 생성을 참조하세요.