[AWS] RDS


RDS (Relational Database Service)

  • AWSクラウドサービス
  • リレーショナル・データベースのインストール、実行、拡張が容易
  • 管理
  • 容易に制御できる拡張性、コスト、およびセキュリティ
  • 提供するDBエンジン

  • Amazon Aurora
  • PostgreSQL
  • MySQL
  • MariaDB
  • ORACLE
  • Micro SQL Server
  • RDSの作成

  • 規格による設定生成
  • .
  • セキュリティ・グループ・インバウンド・ルールの追加
  • データベースの接続

  • DataGrip
  • を使用

    1.SSH接続


  • RDSに接続するEC 2およびSSHクライアントを介して
  • に接続する.

    2.AWS RDS接続

  • Host: endPoint
  • ユーザ:RDS作成時に設定されたマスターユーザ名
  • パスワード: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ドキュメント
  • MySQLインストール
  • $  npm install mysql --save
    インストール
  • 構成モジュール
  • $ npm i --save @nestjs/config
  • 型OrmModuleを使用してデータベース構成
  • を設定
    // 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}'],
        }),