작성
·
265
0
답변 1
0
안녕하세요.
아래와 같이 답변을 정리해 봤습니다.
1.
Docker Container 실행 시에 사용하는 -p 옵션의 의미는 다음과 같습니다.
-p 16032:6032
Docker host로 들어오는 16032포트를 해당 container의 6032 포트와 연결
따라서, 실제 docker container에서 사용하는 포트는 뒤에 표시되어 있는 6032포트구요.
Docker host 입장에서는 하나의 host에 여러개의 container가 실행 중인 상태인데요.
기본적으로 서로 다른 container에서 동일한 포트를 사용하는 건 불가능하니 host에서
서로 다른 포트를 이용해서 각 constainer에 매핑해주는 것입니다.
따라서, proxysql에서 기본적으로 사용하는 포트는 6032, 6033 포트구요.
16032와 16033은 host에서 임의로 매핑해주는 포트입니다.
따라서 해당 포트 번호는 필요에 따라 변경해서 사용하실 수 있습니다.
2.
위에 설명에서 이미 포함되어 있을 거 같은데요.
-p 3306:3306
위와 같이 포트매핑이 되어 있을 경우 아래 그림에서 보듯이 docker host외부에서 3306으로
입력되는 트래픽은 db001 container의 3306포트로 매핑이 됩니다.
-p 3307:3306
위와 같이 매핑된 경우에는 docker host로 3307 포트로 입력되는 트래팩은 db002 container의
3306 포트로 매핑이 되구요.
따라서 docker host의 외부에서 내부 db002 container의 mysql을 접속하려면 3307 포트를 사용해야
합니다.
하지만 docker host 내부에 있는 container끼리는 3306포트를 이용해서 접속이 가능합니다.
3.
현재 구성은 write는 10번 호스트 그룹으로 read는 20번 호스트 그룹으로 가도록 세팅이
되어 있는 건데요.
말씀하신 것처럼 db001을 write용으로만 사용하실 경우에는 호스트그룹 20번에서 db001을
제외하면 됩니다.
4.
HAProxy는 예전에 많이 사용하던 솔루션인 거 같구요.
제공되는 기능이 다른 솔루션에 비해서 제한적입니다.
MaxScale은 mariadb와 함께 연동해서 사용하는 사례로 많이 소개되고 있는 거 같습니다.
ProxySQL의 경우에는 최근에 많이 사용되고 있는 걸로 알고 있구요. 구글링을 해보면 사용 사례들도
많이 있습니다. 최근까지 기능들이 계속 업데이트 되고 있구요.
nginx를 db의 proxy용도로 사용할 수도 있지만 nginx는 웹서버로 좀 더 범용적으로 사용되고 있는 것으로
알고 있습니다.
또한 AWS환경에서 사용하시는 경우에는 최근에 RDS proxy라는 제품이 사용되는 경우도 있습니다.
실제로 어떤 제품이 가장 많이 사용되고 있는 지는 저도 관련 자료를 가지고 있지 않습니다.
다만 제 주변이나 최신 기사들로 미루어 보건데 proxysql이 핫하게 사용되고 있는 건 맞는 거 같습니다.
proxysql관련 최신 정보는 해당 사이트를 참고 하시는 게 가장 좋을 거 같습니다.
(https://proxysql.com/)