RDS Proxy 는 2019년 12월에 발표된 AWS 의 서비스입니다. 관계형 DB의 connection 을 관리해주는 서비스인데, 사실 Java 개발자들은 이게 왜 필요하지 싶겠지만, 서버리스( 예 : Lambda ) 나 php, ruby 같은 언어에서는 이부분이 상당히 머리 아픈 구석이었습니다. 구글링을 해보면 여러가지 사례들이 있습니다. 우리도 해당 사례들과 비교해보며 서버에 스트레스 테스트를 해보았지만, 앞선 업체들과는 다른 양상을 보여 도입에 대한 고민을 엄청 했습니다. 저희 같은 경우는 PHP Laravel을 AWS ECS Fargate 에 올린 상태입니다. 즉 DB pool 관리는 안해주는 대환장 파티이다. 이번에 RDS Proxy를 적용하며 바뀐 DB 메트릭을 공개하려고 한다. 자신이 서..
AWS RDS 비용 줄이는 방법 및 최적화 하기 서론 ( 안 읽어도 됨) 현재 필자가 다니는 회사는 예약관리 서비스를 하고 있습니다. 처음 입사 했을 때는 사용자가 그리 많지 않아서 T시리즈를 이용해도 문제가 없었지만, 입사 후 갑자기 폭팔적인 서비스 성장으로 인해 순간 동접 1만을 넘는 거대한 서비스가 되었고, 현재 해당 분야 업계 1위가 되었습니다. 서비스 성장은 언제나 즐겁지만, 스타트업들의 개발 코드는 여기서부터 문제입니다. 서비스를 위한 기능 추가만 하다보니 코드가 그렇게 깔끔하지 않을 뿐더러, ORM 코드들의 최적화되지 않은 쿼리도 문제였습니다. 이 문제는 우리 회사도 다르지 않았습니다. 처음 MariaDB 를 사용하고 있었는데.. DB 의 CPU 가 90프로를 넘기는 경우가 종종 있었고, 업..
MariaDB 빠르게 백업하고 복원하기 이번에 RDS mariadb 에서 RDS auroradb 로 이전하게 되었다. 한달에 회원이 1~2만명 씩 꾸준히 늘어나고 있고, 피크 타임, 이벤트 타임 때 DB를 유연하게 움직이기 위해서 mariadb 를 보내줘야 했기 때문이다. 문제는 데이터가 너무 많았다. 물론 초대형 사이티들의 테라급은 아니지만, 적어도 내 경험 (이력) 에서 가장 많은 데이터다. 그냥 무작정 툴로 QA 서버를 백업과 복원을 했더니 4시간이 넘게 걸렸다. (우리는 production 서버의 한달 전 데이터가 staging, staging 의 한달전 데이터가 QA 다) 아무런 옵션 없이 하는 것은 무식한 짓인 것을 깨달아 경험을 공유할겸 나중에 내가 보고 다시 하려고 적어둔다. --no-au..