EEYatHo 앱 깎는 이야기

Server ) AWS RDS JPA Query 쿼리 로그 보는 법 (Cloud Watch) - EEYatHo iOS 본문

Server

Server ) AWS RDS JPA Query 쿼리 로그 보는 법 (Cloud Watch) - EEYatHo iOS

EEYatHo 2021. 2. 18. 22:56
반응형

[ 요약 ]

 

CloudWatch 를 쓰면 된다

방법은 아래에


[ 주절주절 ]

 

역대급 삽질

 

(배경) AWS EC2에 RDS 디비 인스턴스를 올려놓고 있다.

영상의 id를 받고, 해당 영상의 연관 영상을 뿌려주는 API가 터졌다..

 

? why..

 

원격에 올려둔 서버에서 발생한 문제다.

로그는 Result Set을 못만드는 익숙한 오류라고 뜨는데..

아무리 찾아봐도 그런 문제가 발생할 만한게 없다...?

 

 

  1. dev DB(로컬 서버), prod DB(원격 서버)를 완전히 똑같히 맞추고, 돌려봤는데? 로컬에서는 잘 된다.

  2. 로컬에서는 되고 서버는 안된다..?
    짚히는게 없어서 상상의 나래를 펼치다보니,
    연관 영상을 뿌려주는 API는 nativeQuery였고,
    dev DB랑 prod DB에서 다른게 Schema 뿐이라;
    nativeQuery는 혹시나 내부적으로 쿼리를 만들 때, Table명 앞에 Schema명을 붙혀주나..? 라는 생각을 했다.

  3. 그래서 그걸 확인하기 위해,
    MySQL 워크밴치에서 쿼리 로그 보는 법을 검색하고, 하라는 대로 하는데
    AWS DB 인스턴스의 슈퍼 권한(SUPER privilege)가 필요하단다.

  4. 이 슈퍼 권한을 AWS DB 인스턴스에서 어떻게 얻는지 알아보니,
    DB 파라미터 중에 특정 값을 바꾸란다.

  5. 그래서 바꾸고, 적용하고, DB 인스턴스를 재부팅하면 된다는데, 재부팅이 안된다?
    이건 뭐 이유를 모르겠다... AWS 문서에서 하라는 대로 하는데, CLI, GUI 뭐 아무것도 안된다.
    재부팅 버튼이 그냥 화면에 없다ㅠㅠㅠㅠㅠ
    (나중에 알았지만, 파라미터는 이미 적용되었었다. 재부팅 할 필요가 없었음... 근데 왜 슈퍼 권한은 안줬담..?)

  6. 새로운 DB 인스턴스 만들어 보면서 확인한 결과, 타입이 서버리스라 그런거같다는 추측뿐..
    삽질하느라 오전 + 오후 / 2 를 날려먹은 상황.
    그런데도 답이 안보이는 상황 🙃 ...

  7. 그러다 문뜩, MySQL 워크밴치말고 AWS에서도, 쿼리 로그를 볼 수 있지 않을까..?
    그래서 찾아보니까 CloudWatch 라는게 있다캄.
    들어가니까 쿼리로그가 그냥 쫙 보임 와ㅏㅏㅏㅏ


 

[ CloudWatch로 쿼리 로그 보는 방법 ]

CloudWatch 링크

 

[ 로그 ] - [ 로그 그룹 ] 선택해주고,

내가 보고싶은 DB 인스턴스의 **/general 에 들어간 뒤,

 

 

로그 스트림에서 잘 고르면,

이쁘게 날 기다리고 있는 쿼리 로그들이 보인다 💩

 

 

그렇게 쿼리 로그 보고, 문제 찾고, 해결했다는 해피해피 엔딩

( 그리고 삽질의 원인은 나의 무지라는 항상 똑같은 엔딩 )

 


*후첨


IDE(인텔리제이)에서 뜨는 쿼리 로그랑 Cloud Watch 쿼리로그랑 똑같았었음.............

애초에 눈앞에 두고 멀리서 찾고 있었다는........
대체 난 무엇을 위해 반나절을 버렸는가........

Comments