Amazon RDS DB 인스턴스를 Node.js 애플리케이션 환경에 추가 - AWS Elastic Beanstalk

Amazon RDS DB 인스턴스를 Node.js 애플리케이션 환경에 추가

Amazon Relational Database Service(Amazon RDS) DB 인스턴스를 사용하여 애플리케이션이 수집하고 수정하는 데이터를 저장할 수 있습니다. 데이터베이스를 환경에 연결하고 Elastic Beanstalk에서 관리하도록 하거나 외부에서 만들고 관리할 수 있습니다.

Amazon RDS를 처음 사용하는 경우 Elastic Beanstalk Management Console을 사용하여 테스트 환경에 DB 인스턴스를 추가하고 애플리케이션을 인스턴스에 연결할 수 있는지 확인합니다.

데이터베이스에 연결하려면 애플리케이션에 드라이버를 추가하고 드라이버를 코드로 로드한 후 Elastic Beanstalk에서 제공하는 환경 속성으로 연결 객체를 생성합니다. 사용 중인 데이터베이스 엔진 및 프레임워크에 따라 구성 및 연결 코드가 달라집니다.

환경에 DB 인스턴스 추가

환경에 DB 인스턴스를 추가하려면

  1. Elastic Beanstalk 콘솔을 연 다음 리전 목록에서 해당 AWS 리전을 선택합니다.

  2. 탐색 창에서 환경을 선택한 다음 목록에서 환경의 이름을 선택합니다.

    참고

    환경이 많은 경우 검색 창을 사용하여 환경 목록을 필터링합니다.

  3. 탐색 창에서 구성을 선택합니다.

  4. [데이터베이스] 구성 범주에서 [편집]을 선택합니다.

  5. DB 엔진을 선택하고 사용자 이름과 암호를 입력합니다.

  6. 적용을 선택합니다.

DB 인스턴스를 추가하는 데 약 10분이 걸립니다. 환경 업데이트가 완료되면 다음 환경 속성을 통해 애플리케이션에서 DB 인스턴스의 호스트 이름과 기타 연결 정보를 사용할 수 있습니다.

속성 이름 설명 속성 값

RDS_HOSTNAME

DB 인스턴스의 호스트 이름입니다.

Amazon RDS 콘솔의 연결 및 보안 탭에 있는 엔드포인트입니다.

RDS_PORT

DB 인스턴스가 연결을 허용하는 포트입니다. 기본값은 DB 엔진마다 다릅니다.

Amazon RDS 콘솔의 연결 및 보안 탭에 있는 포트입니다.

RDS_DB_NAME

데이터베이스 이름 ebdb입니다.

Amazon RDS 콘솔의 구성 탭에 있는 DB 이름입니다.

RDS_USERNAME

데이터베이스에 대해 구성된 사용자 이름입니다.

Amazon RDS 콘솔의 구성 탭에 있는 마스터 사용자 이름입니다.

RDS_PASSWORD

데이터베이스에 대해 구성된 암호입니다.

Amazon RDS 콘솔에서는 참조용으로 사용할 수 없습니다.

내부 DB 인스턴스 구성에 대한 자세한 내용은 Elastic Beanstalk 환경에 데이터베이스 추가를 참조하세요.

드라이버 다운로드

데이터베이스 드라이버를 dependencies에 있는 프로젝트 package.json 파일에 추가합니다.

package.json – MySQL을 이용한 Express

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

일반적인 Node.js용 드라이버 패키지

데이터베이스에 연결

Elastic Beanstalk에서는 환경 속성에서 연결된 DB 인스턴스에 대한 연결 정보를 제공합니다. process.env.VARIABLE를 사용하여 속성을 읽고 데이터베이스 연결을 구성합니다.

예 app.js – MySQL 데이터베이스 연결

var mysql = require('mysql'); var connection = mysql.createConnection({ host : process.env.RDS_HOSTNAME, user : process.env.RDS_USERNAME, password : process.env.RDS_PASSWORD, port : process.env.RDS_PORT }); connection.connect(function(err) { if (err) { console.error('Database connection failed: ' + err.stack); return; } console.log('Connected to database.'); }); connection.end();

node-mysql을 사용하여 연결 문자열을 구성하는 것에 대한 자세한 내용은 npmjs.org/package/mysql 단원을 참조하십시오.