Redis Queue vs AWS SQS in NestJS

개발/NestJS 2023. 4. 17. 08:20

NestJS에서 Queue를 사용하는 방식에는 대표적으로 Bull을 통한 Redis, aws-sdk를 통한 AWS SQS(Simple Queue Service) 등이 있다. 공식문서 레시피에서는 Queue를 사용 시Redis/Bull를 사용하는 것을 권장하고 있다. 여기서 Redis는 뭔지 알겠는데 Bull이 뭔지 모르겠다고 생각이 들수도 있다. 잠시 Bull이 뭔지 알아보자. Bull Github 주소에 들어가면 ReadMe 소개에 아래와 같이 적혀있다. The fastest, most reliable, Redis-based queue for Node. Carefully written for rock solid stability and atomicity. 소개글을 그대로 확인해보면 Bull은 Node ..

Article Thumbnail
[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
AWS RDS MySQL 마이그레이션 체크 사항

개발/MySQL 2022. 8. 25. 08:20

AWS Aurora RDS MySQL에서 AWS MySQL 8.0으로 마이그레이션을 진행 후, save 메소드를 사용하는 api를 호출할 때, TypeORM에서 id 값 관련된 쿼리 error가 발생하였다. TypeORMError: Cannot update entity because entity id is not set in the entity. 해당 에러가 발생하는 부분의 쿼리를 로깅해보면 정상적으로 쿼리가 생성되지만, 타겟 entity의 id가 entity에 세팅되지 않았다는 에러는 발생되므로 ORM이 아닌 DB가 이슈일 가능성이 있었다. INSERT INTO "tableName"("id", "createdAt", "updatedAt", "body") VALUES (DEFAULT, DEFAULT, D..

Article Thumbnail
.ssh/config를 활용하여 ssh 원격 접속하기

개발/AWS 2021. 11. 28. 01:00

기존의 경우, ssh를 통해 AWS 또는 다른 컴퓨터에 접속할 때, 매번 ip 주소를 아래와 같이 입력하였었다. $ ssh "사용자 계정"@"IP 주소" 매번 위와 같이 명령어를 [사용자 계정]@[IP 주소]를 입력하는 것은 번거롭고, IP 주소를 기억해야된다는 단점이 있다. ~/.ssh내에 있는 config 파일에 호스트 이름, IP 주소, 사용자 계정을 등록하고, "$ ssh 호스트 이름" 과 같이 사용하면 위와 같은 불편함을 해소할 수 있다. $ vi ~/.ssh/config vim을 통해 ~/.ssh/config 파일을 아래와 같은 형태로 수정한다. Host "원하는 호스트 이름" HostName "Ip 주소" User "사용자 계정 이름" 저장한 후엔 아래와 같이 ssh 접속을 할 수 있다. $..