[AWS RDS] DataGrip ssh 터널링을 통해 AWS RDS 접근하기

개발/AWS 2022. 11. 14. 08:20

서비스를 배포할 때 데이터베이스는 AWS RDS 서비스를 사용하여 배포중인데 스테이지 DB와 같이 값을 확인할 필요가 있는 예외적인 경우, 테스트 시점에서 데이터 베이스 내부에 접근하여 테이블에 원하는 값이 정상적으로 들어갔는지 확인할 필요가 있다. 문제는 AWS RDS 세팅 시, 보안 관련된 이슈로 해당 데이터 베이스 주소의 외부 접근을 ec2 인스턴스를 제외하고는 모두 막아둔 상태이다. 그래서 아래와 같이 로컬 pc의 Datagrip -> AWS EC2 인스턴스 -> AWS RDS 접근과 같은 절차를 통해 접근해야한다. Datagrip에서는 위와 같은 절차로 Amazon RDS에 SSH 터널링을 통해 접근이 가능하다. 1. SSH 설정 EC2 인스턴스에 접근하기 위해 ssh 정보 등록을 해야한다. 데..

Article Thumbnail
[DB] 데이터베이스 Lock에 대해

개발/Database 2022. 10. 23. 08:20

데이터베이스(Database)는 구조화된 정보 또는 데이터의 조직화된 모음을 의미한다. 데이터베이스(Database)를 사용하다보면 종종 같은 데이터에 동시에 접근하는 경우가 발생한다. 동시 접근이 발생하는 경우, 예를 들어 선착순 100개의 한정판을 판매하는데 99개가 판매되었고, 잔여 수량이 1 개인데 구매하려는 유저는 20명이면 실제 구매 성공이 되야하는 유저는 1명인데 만약 20명의 유저 전부에게 정상적으로 구매가 진행되었다고 출력된다면 해당 데이터가 오염될 수 있다. 이러한 상황에서 데이터베이스를 관리(제어)하는 DBMS는 데이터의 무결성과 일관성을 지키기위해 Lock을 사용한다. Lock의 정의 Lock은 데이터베이스(Database)에서 트랜잭션(Transaction) 처리의 순차성을 보장하..

[jekyll] M1에서 Error: jekyll-commonmark-ghpages 발생 시

개발 2022. 10. 3. 08:20

기존 인텔 맥에서 작성하던 이력서.io 레포가 jekyll을 사용하는 modern-resume-theme 템플릿을 사용하고 있는데 M1 계열 맥북으로 변경한 후, $ bundle exec jekyll serve를 했을 때 아래처럼 Dependency Error가 발생하였다. 해당 이슈가 ARM 아키텍쳐라 생긴 이슈인 줄 알았는데 github-pages가 의존성을 가지고 있는 faraday라는 HTTP/Rest API 클라이언트의 최신 버전이 github-pages와 호환되지 않아서 Dependency Error가 발생하였다. faraday | RubyGems.org | your community gem host rubygems.org Gemfile에 gem 'faraday', '~> 0' 으로 farad..

Article Thumbnail
[Liquibase] change log lock error 발생 시 lock 해제하는 법

개발/NestJS 2022. 9. 29. 08:20

회사내에서 프로젝트를 진행할 때는 대부분 NestJS, TypeORM, RestAPI를 기본 스펙으로 잡고 진행하는데 외부에서 진행되던 프로젝트가 NestJS, TypeORM에 Liquibase 라는 처음 접하는 데이터베이스 버전 관리 툴을 사용하였는데 내부로 인수인계가 다 되진 않은 상태에서 local 환경에서 개발하다 $ npm run start:dev를 했는데 정상적인 상황이라면 아래처럼 서버가 실행되어야 정상이다. >>> liquibase update start 뒤에 liquibase가 실행된다는 로그가 남아있는 채로 update end 로그가 뜨지 않고, 3 ~ 4분 뒤에 Caused by: liquibase.exception.LockException: Could not acquire chang..

Article Thumbnail