우선 우분투16.04 64bit vultr 의 각각 다른 계정에

똑같은 사양과 OS로 웹서버와 디비서버를 분리하였습니다.

 

그누보드를 사용중이며, 최근 서버가 많이 늘어지는것을 느껴서 분리를 해봤는데요.

그누보드의 db연결부분에서 db서버의 외부접속을 열어놓고 접속하도록 했습니다.

나누고 나니 오히려 더 느려진 느낌도 받아서 할 수 있는 최적화는 모두 해보았습니다.

 

여기서 질문은 구글링을 하다 본 것인데 디비서버와 웹서버를 같은 랜으로 묶으라는 글을 보았는데요

그렇게 해야 트래픽이 안 올라가고 속도도 빠르다는것 같은데요 같은 vultr 서버이기는 한데 계정이 다릅니다. (추천인 할인때문에 부득이 두개를;;;)

 

혹시 db서버와 웹서버를(?) 묶는 방법이 있나요?

처음 해본 작업이라 묶는방법 같은게 있는지 용어도 모르겠습니다ㅠㅠ

 

db서버쪽에 트래픽이 많이 올라가기도 하구요 결론적으로 서버를 나눠놓은 효과를 못 보는듯 한데

혹시 좋은 방법이 있는지요?

두 서버 모두 8코어 16기가 메모리 같은 미국LA서버입니다.

  • profile
    일단 db서버가 분리되어있으면 서버간 통신이 발생하기 때문에 한 서버에서 동시에 운영하던 때보다 느릴수도 있습니다.

    여러 서버를 묶는 방법을 DNS 라운드 로빈이라고 하는데 일반적인 수준으로 하긴 어려운 분야라 전문가에게 의뢰하는 것이 나을 듯합니다.

    여기서 @기진곰님 이 서버에 대해서 매우 박식하십니다.
  • profile
    한 서버에서 다른 서버로 ping 명령을 실행해보세요. public ip 를 사용하더라도 같은 idc 나 가까운 위치에 있으면 낮게 나옵니다. 10ms 미만이면 정상입니다.
    제 생각에 slow log 를 보시고 느린원인을 소프트웨어 적으로 해결하는게 나을 것 같네요.
  • profile ?
    64 bytes from ip.xx.xx.xx: icmp_seq=1 ttl=59 time=0.709 ms
    64 bytes from ip.xx.xx.xx: icmp_seq=2 ttl=59 time=0.530 ms
    64 bytes from ip.xx.xx.xx: icmp_seq=3 ttl=59 time=0.427 ms
    64 bytes from ip.xx.xx.xx: icmp_seq=4 ttl=59 time=0.493 ms
    64 bytes from ip.xx.xx.xx: icmp_seq=5 ttl=59 time=0.380 ms
    64 bytes from ip.xx.xx.xx: icmp_seq=6 ttl=59 time=0.361 ms
    64 bytes from ip.xx.xx.xx: icmp_seq=7 ttl=59 time=0.442 ms
    64 bytes from ip.xx.xx.xx: icmp_seq=8 ttl=59 time=0.488 ms
    64 bytes from ip.xx.xx.xx: icmp_seq=9 ttl=59 time=0.413 ms
    64 bytes from ip.xx.xx.xx: icmp_seq=10 ttl=59 time=0.515 ms
    64 bytes from ip.xx.xx.xx: icmp_seq=11 ttl=59 time=0.453 ms
    64 bytes from ip.xx.xx.xx: icmp_seq=12 ttl=59 time=0.374 ms
    ^C
    --- ip.xx.xx.xx ping statistics ---
    12 packets transmitted, 12 received, 0% packet loss, time 11002ms
    rtt min/avg/max/mdev = 0.361/0.465/0.709/0.092 ms

    핑인 이렇습습니다.
  • profile

    DB서버에 접속하는 데 내부 아이피(private network)를 사용하나요, 공인 아이피를 사용하나요?
    공인 아이피를 사용하면 느려지는 것은 물론이고 트래픽도 많이 발생합니다.

    윗분이 10ms 미만이면 정상이라고 하셨는데 웹서버와 DB서버 사이에는 핑이 1ms만 늘어나도 차이가 느껴집니다.

    쿼리 한 번 할 때마다 패킷이 몇 번씩 왔다갔다하는데 웹페이지 하나에 쿼리가 수십 개는 될 테니까요.

    Vultr는 서버에서 내부망을 사용할 수 있도록 신청하지 않으면 기본적으로 내부망이 없습니다.
    서로 다른 계정끼리도 내부망으로 통신이 가능한지 모르겠습니다만
    일단 양쪽 서버 모두 내부망을 사용할 수 있도록 신청해 놓고 내부 아이피를 받아서 접속해 보세요.
    같은 랜으로 묶으라는 것이 아마 이 뜻일 거예요.

    참고로 내부망 아이피는 192.168.*.*, 10.*.*.*, 172.16~31.*.* 등의 대역을 가집니다.
    그 밖의 아이피는 모두 공인 아이피입니다.

    그리고 기존 서버의 CPU 점유율이 매우 높거나 RAM이 부족한 상황이 아니었다면
    단순히 웹서버와 DB서버를 분리한다고 눈에 띄는 효과는 없습니다.
    서버는 그냥 더 갖다 붙인다고 성능이 높아지는 것이 아니라 용도에 맞게 튜닝이 필요합니다.

  • profile ?
    안녕하세요 답변 잘 봤습니다.

    제가 이해한게 맞다면 Vultr 의 메뉴중
    Private Network
    Private network traffic is unmetered.
    Private networks are per-location. For example, a machine in New Jersey cannot communicate with a machine in Chicago.
    Private networks only have your machines. You cannot communicate with other customer's machines.
    You will need to manually configure your private network connection.
    You can use any IP range to your liking on the private network. We assign one IP by default, but you can ignore it and use other ones if you would prefer.
    Enable Private Network

    이것을 말하는것 같습니다.
    저걸 활성화해서 내부IP가 생기게 되면 그 내부IP로 DB접속IP를 바꾸면 된다는 말씀이시죠?

    그런데 Private 네트워크라는게 DB서버랑 내부망으로 엮어도 저나 방문자가 DB서버에 접근이 되나요?
    아직 적용전이라 문의드립니다^^;;
  • ? profile
    같은 지역이라도 계정이 다르면 내부망으로 통신할 수 없다고 되어 있네요.
    방문자가 DB 서버에 직접 접근할 필요는 없지요. 웹서버에는 당연히 공인 아이피로 접속하고요.
    각 서버에 할당된 공인 아이피는 그대로 두고 내부 아이피를 추가하는 형태입니다.
  • profile ?

    같인 위치의 서버를 새로 생성해서 내부망 아이피를 받아서
    /etc/network/interfaces 파일에

    auto ens7
    iface ens7 inet static
    address 10.99.0.10
    netmask 255.255.0.0
    mtu 1450

    내부망IP를 받은 디비서버에 위처럼 입력해주었습니다.
    웹서버에서는 저 IP로 접속하니 접속이 안되네요(아무 설정도 한게 없으니 당연한건가요?;;;)
    디비서버(10.99.0.10) 에서 ping 10.99.0.10 오 핑 날리면 뜨는데

    웹서버에서도 디비서버의 내부망IP로 접속되게 하려면
    어떤 설정을 해줘야 할까요? 관련단어나 문서라도 얻을수 있을까요?

  • ? profile

    계정이 다르면 내부망으로 통신할 수 없다고 위에 썼잖아요.

  • profile ?
    벌쳐 로그인 계정 같으면 그 계정안에서 만든 가상서버는
    내부망으로 서로 묶을수 있다는 얘긴지 알고 같은 계정안에 새로 파서 했는데
    잘못 이해했나 보네요. 감사합니다.
  • ? profile
    계정이 같으면 서로 묶을 수 있어요. 각 서버 내의 네트워크 설정이 잘못되었나 봅니다.
  • profile
    Vultr은 다른계정이면 privat ip로 통신할수 없는거 같네요. 물론 다른 계정끼린 해보지 않았어요.
    https://discuss.vultr.com/discussion/197/what-is-the-meaning-of-enable-private-network
    https://discuss.vultr.com/discussion/1120/private-network-is-it-truly-private