[AWS] RDS

hahaha·2021년 10월 31일
0

AWS

목록 보기
4/6
post-thumbnail

RDS (Relational Database Service)

  • AWS 클라우드에서 관계형 데이터베이스를 쉽게 설치 및 운영, 확장할 수 있는 웹 서비스
  • 관리 용이
  • 확장성, 비용, 보안 등 손쉽게 제어 가능

제공하는 DB 엔진

  • Amazon Aurora
  • PostgreSQL
  • MySQL
  • MariaDB
  • ORACLE
  • Micro SQL Server

RDS 생성

  • 표준 생성 설정에 따라 생성
  • 보안그룹 in-bound 규칙 추가

DB 연결하기

  • DataGrip 이용

1. SSH 연결

  • RDS에 연결된 EC2와 SSH 클라이언트를 통해 연결

2. AWS RDS 연결

  • Host: endPoint
  • User: RDS 생성시 설정한 마스터 사용자 이름
  • Password: RDS 생성시 설정한 마스터 사용자 비밀번호

3. SSH 터널링 설정

# vi ~/.zshrc

alias [터널링 명령어]="ssh -N -L [port]:[host name]:[port] [host_name]@[ec2 퍼블릭 IPv4 DNS]: -i [pem 파일 위치] &"

# source ~/.zshrc

NestJS와 DB 연결하기

NestJS - Database 관련 문서

  1. MySQL 설치
$  npm install mysql --save
  1. ConfigModule 설치
$ npm i --save @nestjs/config
  1. TypeOrmModule을 이용해 DB 구성 설정
// app.module.ts
import { Module } from '@nestjs/common';
import { TypeOrmModule } from '@nestjs/typeorm';
import { User } from './users/user.entity';

@Module({
  imports: [
    TypeOrmModule.forRoot({
      type: 'mysql',
      host: 'localhost',
      port: 3306,
      username: 'root',
      password: 'root',
      database: 'test',
      entities: [User],
      synchronize: true,
    }),
  ],
})
export class AppModule {}

// +) env 파일 활용하기
 TypeOrmModule.forRoot({
      type: 'mysql',
      host: process.env.RDS_HOST,
      port: parseInt(process.env.RDS_PORT),
      username: process.env.RDS_USERNAME,
      password: process.env.RDS_PASSWORD,
      database: process.env.RDS_NAME,
      entities: ['dist/**/*.entity{.ts,.js}'],
    }),
profile
junior backend-developer 👶💻

0개의 댓글