AWS를 통한 Photon Loadbalance(Master)의 이중화

나야.Photon이 인기가 많네요.
최근Excel 체크 용지 이후 Windows에 대한 재입력 메시지
놀고 있어요Photon Server
Photon Loadbalance의 이중화는 못할 것 같아요.
로우트 53 DNS Failover가 실현할 수 있다는 조언을 받아서 해봤어요.
Photon Game Server는 프로필에 Photon Loadbalancer(Master)의 IP(내부 IP)와 DNS 이름을 지정해야 합니다.
EC2의 Public DNS 이름을 지정할 때 VPC에서 내부 IP를 통해 Photon Loadbalance(Master)와 연결
인터넷(클라이언트)에서 EIP나 Public IP로 Photon Loadbalancer(Master)에 연결되어 있기 때문에 가장 좋다.

Route53 setting


Hosted Zones


endpoint name
record type
value
routing policy
failover record type
health check associate
photon-lb.oredayooreda.oreda.be
CNAME
ec2-XX-XX-XX-XX.ap-northeast-1.compute.amazonaws.com
Failover
Primary
photon lb healthcheck
photon-lb.oredayooreda.oreda.be
CNAME
ec2-YY-YY-YY-YY.ap-northeast-1.compute.amazonaws.com
Failover
Secondary
없음

Health Checks


health check 대상 호스트는 Photon Loadbalance(Master)용 EC2의 Public DNS 이름을 지정합니다.
건강 체크아웃 시간은 가장 짧게는 10초가 될 수 있다.
health check name
what to monitor
Specify endpoint by
Protocol
Domain name
Port
Request interval
Failure threshold
photon lb healthcheck
endpoint
Domain name
tcp
ec2-XX-XX-XX-XX.ap-northeast-1.compute.amazonaws.com
4530
standard(30sec)
1

EC2주


EC2


EC2
host
Public DNS 이름
EIP
Private IP
master
Windows 2012R2
ec2-XX-XX-XX-XX.ap-northeast-1.compute.amazonaws.com
52.52.52.52
172.16.0.10
master(standby)
Windows 2012R2
ec2-YY-YY-YY-YY.ap-northeast-1.compute.amazonaws.com
52.52.52.53
172.19.248

Photon


이용하다GMO씨가 제공해 주셨어요!면허증 사세요.

Photon Loadbalancer(Master)

  • Active/Standaby가 특별히 해야 할 일이 없음
  • Loadbalancer(Master)로 설정하여 Photon 서비스를 시작하면 OK
  • Photon GameServer


    Photon.LoadBalancing.dll.config

  • %PHOTON_HOME%\deploy\Loadbalancing\GameServer\bin\Photon.LoadBalancing.dll.config
  • 145번째 줄의 마스터 서버용 종점에서 DNS Failover가 설정된 DNS 레코드 이름을 지정하여 Photon 서비스를 시작합니다.
    LADbalancer(Master)와 GameServer의 EC2가 같은 VPC에서 실행되면 내부 IP를 통해 연결됩니다.가장 높다
          <!-- Set to the IP Address of the Photon instance where your Master application is running. -->
          <!-- Get Master EC2 Private IP -->
          <setting name="MasterIPAddress" serializeAs="String">
            <value>photon-lb.oredayooreda.oreda.be</value>
          </setting>
    

    Route 53 DNS Failover 실행


    Failover 발동 전


    DNS 이름 및 IP 확인

  • 인터넷 클라이언트에서 이름 해석
  • orenomac$ dig photon-lb.oredayooreda.oreda.be +short
    ec2-XX-XX-XX-XX.ap-northeast-1.compute.amazonaws.com.
    52.52.52.52
    
  • VPC 내부의 EC2에서 실행된 이름 해결
  • C:\Users\Administrator>nslookup photon-lb.oredayooreda.oreda.be.
    サーバー:  ip-172-16-0-2.ap-northeast-1.compute.internal
    Address:  172.16.0.2
    
    権限のない回答:
    名前:    ec2-XX-XX-XX-XX.ap-northeast-1.compute.amazonaws.com.
    Address:  172.16.19.10
    Aliases:  photon-lb.oredayooreda.oreda.be
    

    DNS Failover 발동


    Loadbalance(Master) Active 시스템의 Photon Service 또는 EC2 자체를 중지합니다.
    Route 53 Health Check fail 을 설정합니다.

    네트워크를 통한 이름 해결

    orenomac$ dig photon-lb.oredayooreda.oreda.be
    ec2-YY-YY-YY-YY.ap-northeast-1.compute.amazonaws.com.
    52.52.52.53
    

    VPC 내 EC2를 통한 이름 해결


    이것도 마스터(Standby)의 PrivateIP가 됐어요.
    C:\Users\Administrator>nslookup photon-lb.oredayooreda.oreda.be.
    サーバー:  ip-172-16-0-2.ap-northeast-1.compute.internal
    Address:  172.16.0.2
    
    権限のない回答:
    名前:    ec2-YY-YY-YY-YY.ap-northeast-1.compute.amazonaws.com
    Address:  172.16.19.248
    Aliases:  photon-lb.oredayooreda.oreda.be
    

    Photon Server 로그


    Game Server를 Standby 측면의 Photon Loadbalance(Master)에 완벽하게 다시 연결합니다.
    HAProxy와 달리 끝점에서 DNS 이름을 지정하더라도 IP 주소를 캐시하지 마십시오.
    새 IP로 재접속하니까 아무것도 안 해도 될 것 같아요.

    고장난 가방


    안전한 온라인 반납 방법은 아직 찾지 못했다.
    DNS Failover가 발동되면 중지된 마스터(Active)가 DNS 레코드가 원래 상태로 복원되더라도 정상 상태로 돌아갑니다.
    게임 서버가 다시 연결되지 않습니다.Photon 로그에서 장애자에게만 연결하는 것을 확인했습니다.
    DNS 레코드가 원래 위치로 돌아가면 Photon Loadbalancer(Master)에 연결된 Game Server가 존재하지 않습니다.
    고객이 Game Server에 연결할 수 없기 때문에 좋지 않습니다.
    Game Server를 복구된 LoadBalancer에 다시 연결하려면 다음과 같은 방법을 사용해야 합니다
    두 클라이언트가 잠시 게임에 연결할 수 없으며, (1) Photon Game Server에서 다시 연결할 때
    새로운 접수만 하지 않을 것 같아 영향은 적은 것 같다.
    (1) 연결 중인 Failover의 목적지로 Game Server를 중지하는 Photon Loadbalance(Master)
    (2) Game Server 재시작

    Next step


    아무튼 Photon Loadbalance는 이중화할 수 있습니다.
    게임 서비스를 계속 제공할 수 있는지의 여부는 클라이언트 응용의 행위를 관찰하면서 판단할 필요가 있다고 생각합니다.
    정말 잘 될까?
    시험의 결과.Photon 쪽이 아니라 REST API가 운용하는 구조를 따로 세운다면 이 수법이 순조롭게 진행될 수 있을까
    ↓ 이런 느낌의 기능을 사용하지 않으면 OK

    special thanks


    이 실시 방안의 제시인지 답인지y13i & SatoHiroyukithanks
    완성

    좋은 웹페이지 즐겨찾기