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 인스턴스를 추가하려면
Elastic Beanstalk 콘솔
을 연 다음 리전 목록에서 해당 AWS 리전을 선택합니다. -
탐색 창에서 환경을 선택한 다음 목록에서 환경의 이름을 선택합니다.
참고 환경이 많은 경우 검색 창을 사용하여 환경 목록을 필터링합니다.
탐색 창에서 구성을 선택합니다.
-
[데이터베이스] 구성 범주에서 [편집]을 선택합니다.
-
DB 엔진을 선택하고 사용자 이름과 암호를 입력합니다.
-
적용을 선택합니다.
DB 인스턴스를 추가하는 데 약 10분이 걸립니다. 환경 업데이트가 완료되면 다음 환경 속성을 통해 애플리케이션에서 DB 인스턴스의 호스트 이름과 기타 연결 정보를 사용할 수 있습니다.
속성 이름 | 설명 | 속성 값 |
---|---|---|
|
DB 인스턴스의 호스트 이름입니다. |
Amazon RDS 콘솔의 연결 및 보안 탭에 있는 엔드포인트입니다. |
|
DB 인스턴스가 연결을 허용하는 포트입니다. 기본값은 DB 엔진마다 다릅니다. |
Amazon RDS 콘솔의 연결 및 보안 탭에 있는 포트입니다. |
|
데이터베이스 이름 |
Amazon RDS 콘솔의 구성 탭에 있는 DB 이름입니다. |
|
데이터베이스에 대해 구성된 사용자 이름입니다. |
Amazon RDS 콘솔의 구성 탭에 있는 마스터 사용자 이름입니다. |
|
데이터베이스에 대해 구성된 암호입니다. |
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용 드라이버 패키지
-
MySQL – mysql
-
PostgreSQL – node-postgres
-
SQL Server – node-mssql
-
Oracle – node-oracledb
데이터베이스에 연결
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