× Join the Stack and Retry Community
sarc.io is a community of engineers or programmers, just like you, helping each other.

[AWS] RDS/Aurora Endpoint 를 이용한 JDBC 설정 관련

  • Scandinavia
    (Scandinavia)
  • Scandinavia's Avatar 이 글의 작성자
  • Offline
  • ★★ Staff ★★
  • ★★ Staff ★★
더보기
21 Aug 2017 21:39 #2674 작성자: Scandinavia
Scandinavia 님의 글: [AWS] RDS/Aurora Endpoint 를 이용한 JDBC 설정 관련
안녕하세요.

AWS Linux EC2 에 Tomcat 8.0 / JDK 1.8 을 이용하여 Aurora 에 연동하여 사용중에 있습니다.

Aurora Failover 테스트를 진행하였는데 Aurora의 Endpoint 의 DNS Lookup 값은 정상적으로 1분미만으로 변경이 되었는데
실제로 Failover 완료 후에는 정상적으로 Aurora 연동이 되지 않는 (정확히는 Write 불가, Read만 가능) 상황이 발생하였습니다.

제가 테스트한 내용은 AWS Docs 문서와 JAVA Option에서의 ttl 값 조정입니다.
docs.aws.amazon.com/sdk-for-java/v1/deve...java-dg-jvm-ttl.html


혹시 해당 테스트난 Endpoint 를 통한 JDBC 설정해본적이 있는지 문의드립니다.
감사합니다.
더보기
21 Aug 2017 22:14 - 21 Aug 2017 22:14 #2675 작성자: jeeg
jeeg 님의 답글: [AWS] RDS/Aurora Endpoint 를 이용한 JDBC 설정 관련
아래 링크가 도움이 되실지 모르겠습니다.

mariadb.com/kb/en/mariadb/failover-and-h...cs-for-amazon-aurora

jdbc:mysql:aurora://cluster.cluster-xxxx.us-east-1.rds.amazonaws.com/db
더보기
22 Aug 2017 08:47 - 22 Aug 2017 08:48 #2677 작성자: helloworld
helloworld 님의 답글: [AWS] RDS/Aurora Endpoint 를 이용한 JDBC 설정 관련
이건 단지 제 추측입니다만 NETWORKADDRESS.CACHE.TTL를 이용하여 해결이 되지 않을 가능성이 있습니다.

바로 Connection Pool이라는 개념 때문인데요. Connection Pool이라는건 결국 미리 만들어놓는 것이기 때문에

현재

  1. Primary 192.168.100.100
  2. Slave 192.168.100.200

1) WAS 기동시 DNS로 lookup된 DB 서버 주소는 192.168.100.100이었으며 그래서 192.168.100.100으로 Connection 100개를 가지는 Connection Pool 생성
2) 한참 후에 DB가 failover 되면서 DB 서버 주소가 192.168.100.200으로 바뀜
3) 하지만 Connection Pool 내 미리 만들어졌던 Connection은 192.168.100.100으로 되어 있음 -> WAS 입장에서는 read only 영역을 바라보고 있음
4) 장애...

여튼 결과 아시게되면 꼭 공유 부탁드려요.
  • osstech
    (열린기술자)
  • osstech's Avatar
  • Offline
  • Junior
  • Junior
더보기
22 Aug 2017 08:52 - 22 Aug 2017 08:52 #2678 작성자: osstech
osstech 님의 답글: [AWS] RDS/Aurora Endpoint 를 이용한 JDBC 설정 관련
혹시 드라이버는 어떤 것을 사용하시는지요? 오로라 DB failover 시에는 MySQL 드라이버보다는 MariaDB 드라이버를 사용하는 것이 좋겠구요.

다음 아마존 영상도 한번 확인해 보시길 바랍니다.



27분 30초 이후부터 보세요.
  • Scandinavia
    (Scandinavia)
  • Scandinavia's Avatar 이 글의 작성자
  • Offline
  • ★★ Staff ★★
  • ★★ Staff ★★
더보기
22 Aug 2017 08:56 #2679 작성자: Scandinavia
Scandinavia 님의 답글: [AWS] RDS/Aurora Endpoint 를 이용한 JDBC 설정 관련
안녕하세요.
NETWORKADDRESS.CACHE.TTL 값을 조정하라는 AWS Docs 문서를 참조로 /JAVA_HOME/jre/lib/security 의 전역설정과 Tomcat 기동스크립트에 java option으로 설정 후
Failover 테스트를 진행하였습니다.

그러나 결과는 마찬가지로 Tomcat 에서 마스터로 승격된 Slave Aurora 를 정상적으로 연동하지 못하였습니다. 추가로 더 테스트해보고 결과를 공유드리겠습니다.
  • Scandinavia
    (Scandinavia)
  • Scandinavia's Avatar 이 글의 작성자
  • Offline
  • ★★ Staff ★★
  • ★★ Staff ★★
더보기
22 Aug 2017 09:16 #2680 작성자: Scandinavia
Scandinavia 님의 답글: [AWS] RDS/Aurora Endpoint 를 이용한 JDBC 설정 관련
현재 jdbc 드라이버는 mysql-connector-java-5.1.42-bin.jar 를 설정하여 사용중이었습니다.
더보기
22 Aug 2017 12:25 #2682 작성자: jeeg
jeeg 님의 답글: [AWS] RDS/Aurora Endpoint 를 이용한 JDBC 설정 관련
위에 계속 언급된 것처럼 오로라 DB 연결할 때는 MariaDB 드라이버(Connector/J)를 쓰는게 더 좋을 것 같네요.
  • Scandinavia
    (Scandinavia)
  • Scandinavia's Avatar 이 글의 작성자
  • Offline
  • ★★ Staff ★★
  • ★★ Staff ★★
더보기
23 Aug 2017 00:02 #2686 작성자: Scandinavia
Scandinavia 님의 답글: [AWS] RDS/Aurora Endpoint 를 이용한 JDBC 설정 관련
Connector/J 를 Jdbc드라이버로 변경하고 링크의 MariaDB jdbc 문서의 AutoReconnect=true 설정 후 테스트를 진행하였습니다.
기존에 TTL 값 조정만 했을때는 Aurora Failover 후 Read만 되었는데, 이번에는 일부 Write 가 정상적으로 진행되었습니다. 하지만 로드러너 상에서 Failover 전 수준의 성공률까지는 도달하지 못하네요. 계속 보는중입니다.
  • Scandinavia
    (Scandinavia)
  • Scandinavia's Avatar 이 글의 작성자
  • Offline
  • ★★ Staff ★★
  • ★★ Staff ★★
더보기
24 Aug 2017 00:28 #2695 작성자: Scandinavia
Scandinavia 님의 답글: [AWS] RDS/Aurora Endpoint 를 이용한 JDBC 설정 관련
Aurora 에서 Fail-Over 에 성공(?) 하였습니다.
먼저 Aurora 에서 제공하는 Failover기능(Master Instance 와 Slave Instance 와의 Role Switch) 으로는 동일한 현상이 발생하였는데, 실제 비즈니스환경에서의 Take-Over 현상을 재현하고자 Rebooting (Master Instance의 재기동 / Slave Instance 의 Master 승격) 을 진행하였는데 이때는 동일한 Cluster Endpoint에서 정상적으로 Master 로 승격된 Instance 로 서비스가 되었습니다.

Aurora 에서 아직까지는 특정 Instance의 Stop 기능이 없어서 이것을 대신하여 Rebooting 을 선택하였는데 이 결과를 우선 판단기준으로 삼아야할 것 같습니다.

참, Configuration 설정은 위에 진행한대로 TTL=30 과 Maria DB Connector/J 드라이버를 이용하여 JDBC설정하였습니다.
더보기
24 Aug 2017 08:50 #2696 작성자: jeeg
jeeg 님의 답글: [AWS] RDS/Aurora Endpoint 를 이용한 JDBC 설정 관련
축하드립니다(?)

리부팅을 이용한 시나리오에서 다시 MariaDB 드라이버가 아닌 이전 드라이버(MySQL 드라이버?)로도 잘 되는지 궁금하긴 하네요.
Time to create page: 0.088 seconds
Powered by Kunena Forum