본문 바로가기
반응형

RDS8

AWS RDS PostgreSQL에서 Slow, Error, DDL 쿼리 발생시 Slack 발송하기 이전 글 에서 RDS에서 Slow Query가 발생했을때 Slack을 발송하는 것을 구현했다. 이번 시간에는 해당 코드를 발전시켜서 Slow, Error, DDL 쿼리들을 각각의 채널에 발송시키도록 Lambda 코드를 개선해보자. 이후에 이 코드는 Serverless 등의 프레임워크로 교체될 예정이다. 1. 구조 가능하면 AWS Lambda는 각각 하나의 기능만 담당하도록 구성하고 싶었다. 하지만 CloudWatach의 로그 스트림에서는 구독 필터를 2개밖에 할당하지 못한다. 즉, Slow, Error, DDL 등 종류별로 Lambda를 만들어서 구독을 시킬 수가 없다. 그래서 하나의 Lambda에서 로그 종류를 구분해서 각각 Slack 채널에 전송하도록 구성해야한다. 물론 하나의 Lambda가 Gate.. 2023. 4. 13.
PostgreSQL (Aurora) 10 vs 11 버전 성능 비교 PostgreSQL은 버전별로 굉장히 많은 개선이 있다. 2022년 1월 13일 현재, AWS RDS Aurora는 PostgreSQL 버전을 10, 11, 12, 13까지 지원하고 있다. 실제 PostgreSQL은 14까지 나와있으며, 현재 Aurora가 아닌 RDS는 14 RC1 까지 준비되었다. 10 버전이 이미 출시된지 4년 이상 지났고, 현재까지 메이저 14버전까지 출시되면서 성능/자원관리/기능등 여러 개선이 있었다. 특히나 인덱스가 10.x에서 비효율적으로 작동하는 부분이 굉장히 크기 때문에 이를 버전 업그레이드를 통해 성능개선 효과를 볼 필요가 있다. 10 vs 11 비교 PostgreSQL의 10 ~ 14버전 간 여러 기능 비교 중, 인덱스 & 제약조건에 관한 비교를 본다. PostgreS.. 2022. 1. 13.
CloudWatch를 이용한 RDS (PostgreSQL) 스케줄링 시작/종료 운영되는 환경 (live, production, real 등) 외에, 테스트 용도로 사용되는 환경(dev, qa)은 꼭 24시간 무중단으로 서비스를 할 필요가 없습니다. 그래서 실제 업무시간을 제외하고는 해당 서비스를 종료하여 비용을 절감할 필요가 있습니다. (굳이 사용하지 않는 시간대에 비용을 낭비할 필요는 없겠죠?) 그래서 이번 시간의 목표는 다음과 같습니다. CloudWatch Event를 이용하여 매주 월~금 오전 09:00 에 RDS가 재시작 되도록 스케줄링 한다 매주 월~금 오후 08:00 에 RDS가 정지 되도록 스케줄링 한다. 금요일 오후 8시에 종료되고 월요일 오전 9시에 시작이기 때문에 주말 동안은 계속 종료 상태를 유지합니다. 전체 구조는 다음과 같습니다. 자 그럼 바로 시작해보겠습니.. 2021. 5. 11.
PostgreSQL RDS Slow 쿼리 Slack으로 알람 보내기 서비스를 운영하다보면 여러가지 이유로 서버 장애가 발생합니다. 그 중 가장 빈도수가 높은 원인은 DB의 슬로우쿼리일텐데요. 어떤 쿼리가 언제, 얼마나 긴시간동안 수행되었는지에 대해 알람을 받거나 모니터링이 되어야 서비스에 이슈가 될만한 쿼리들을 지속적으로 탐지하고 개선이 가능하기 때문입니다. 이번 시간에는 AWS RDS PostgreSQL에서 슬로우 쿼리에 대한 로그를 남기고 이에 대해 슬랙 알람을 보내도록 설정하는 방법을 진행하겠습니다. 이번 시간에는 PostgreSQL로 진행하지만 MySQL도 DB 파라미터 설정등에 차이가 있지만, 전체 Flow는 거의 흡사하니 참고해서 진행 가능하실것 같습니다. 전체적인 구조는 다음과 같습니다. 한번 이렇게 구성하고 나면 이후에 CloudWatch에 적재된 슬로우 .. 2021. 5. 8.
서로 다른 계정의 RDS에 대량 데이터 복사하기 다른 계정의 RDS 데이터를 대량으로 복사해야할 때가 있습니다. 예를 들어 테스트를 위해 운영 DB의 데이터를 개발 DB로 복사해야하는 등의 일이 될수 있겠죠? 이런 일이 있을때 해결할 수 있는 방법 2가지를 소개합니다. 1. 스냅샷으로 전체 백업하기 RDS간 데이터 복사에 가장 흔한 방법이 스냅샷을 이용하는 것입니다. 여기선 좀 더 현실감 있고, 이해하기 쉽게 운영 RDS의 데이터를 개발 RDS로 복사하는 과정이라고 하겠습니다. 다만 스냅샷은 새로운 DB를 생성할때만 사용할 수 있습니다. 기존 DB에 데이터를 넣을때는 사용할 수 없습니다. 만약 전체 데이터와 스키마를 이미 생성된 DB에 넣고 싶다면 DB Dump를 사용해보세요. 먼저 운영 RDS의 Snapshots 페이지로 가보겠습니다.대부분의 RDS.. 2018. 8. 30.
4. AWS Beanstalk을 이용한 성능 튜닝 시리즈 - 기타 자 이번 시간엔 이 시리즈에서 자세히 다루진 않지만, 꼭 해야할 여러 설정 포인트를 정리하겠습니다. 4-1. Open Files 예를 들어 @Async 혹은 CompletableFuture 와 같은 비동기 쓰레드를 많이 사용해야하거나, 응답시간이 오래 걸리는 외부 API 요청이 대량으로 발생하는 경우 등등 대규모 트래픽 서비스에서 자주 발생하는 것이 Too many open files 에러입니다. 좀 더 자세한 내용은 이전에 작성한 Java, max user processes, open files 를 참고해보세요! EC2, IDC 에서의 설정 방법이 해당 포스트 최하단에 있습니다. 위 이슈 등으로 인해 기본적으로 Linux 서버에 설정해줘야하는 값이 바로 Open Files 입니다. AWS Beansta.. 2018. 7. 26.

728x90
반응형