PUSH 구성

1. 개요

본 문서는 (주)유라클에서 제공하는 모피어스 제품군 중 “Server Platform - Push”의 원활한 설치를 할 수 있도록 제품 설치에 관련한 설명과 수행 절차를 나타내는 것을 목적으로 한다.

본 문서는 기본 구성으로 안내하며, 서버 구성에 따라 내용이 변경될 수 있다.

download [모피어스 PUSH5.x(public) 구성요청사항]

download [모피어스 PUSH5.x(private) 구성요청사항]

1-1. 참고

  • Public: FCM, APNS 구성

  • Private: UPNS+FCM, APNS 구성
    • FCM은 DOZMODE 해제를 위한 Dummy 발송용으로 사용

2. PUSH5.x 구성도 (Public 전용)(단일구성)

image1

2-1. 서비스 구성 별 요청 및 확인사항

2-1-1. DB Server

  1. DB 계정
    • morpheus PUSH 데이터 정보 관리를 위한 별도 계정을 구성한다.

  2. TABLE 및 데이터 설치
    • 방문 설치 시 직접 DB 에 스크립트 실행하여 설치한다.

    • 다만 프로젝트의 요청 시 실행 스크립트를 만들어 전달하여 담당자 통하여 처리 가능하다.

  3. DB charset & 인코딩
    • 세팅이 필요한 경우 UTF-8 로 설정한다.

2-1-2. Web Server

  1. Push UPMC web 서비스 구성 사항
    • 서비스 포트 : 80 또는 443 (포트 변경 가능하며 443의 경우 SSL 적용 시, 운영은 SSL 강력 권고)

    • URL Pattern 은 Jeus 서버의 경우 ‘/’ 에 대하여 ServiceUri ‘uri, ext’ 로 jsv 설정한다.

    • 타 웹서버의 경우도 ‘/’ 에 대하여 모든 URI, 확장자를 jsv 처리한다.

  2. Push Admin web 서비스 구성 사항
    • 서비스 포트 : 81 또는 444 (포트 변경 가능하며 444의 경우 SSL 적용 시 , 운영은 SSL 강력 권고)

    • URL Pattern 은 Jeus 서버의 경우 ‘/’ 에 대하여 ServiceUri ‘uri, ext’ 로 jsv 설정한다.

    • 타 웹서버의 경우도 ‘/’ 에 대하여 모든 URI, 확장자를 jsv 처리한다.

2-1-3. WAS server

  1. Push UPMC 컨테이너
    • 최하 2GB 이상으로 구성한다.(서비스 사용자 수, 프로젝트 개발소스의 범위에 따라 더 커질 수 있다.)

    • 바이너리 소스 배포는 ‘/wasapp/upmc’ 와 같은 디렉토리 형태로 구성한다.

    • 디렉토리 owner 의 경우 ‘소스관리ID.was계정그룹’ 으로 하고 권한은 775 or 750 으로 한다.

    • jeus 의 경우 HTTP LISTENER 구성이 필요하며 포트는 8080(포트 변경가능) 으로한다.

  2. Push Admin 컨테이너
    • 최하 1GB 이상으로 구성한다.(서비스 사용자 수, 프로젝트 개발소스의 범위에 따라 더 커질 수 있다.)

    • 바이너리 소스 배포는 ‘/wasapp/madm’ 와 같은 디렉토리 형태로 구성한다.

    • 디렉토리 owner 의 경우 ‘소스관리ID.was계정그룹’ 으로 하고 권한은 775 or 750 으로 한다.

  3. 상기 생성된 DB 계정에 접속 가능한 JNDI DATASOURCE 구성한다.

  4. java
    • java 의 버전은 1.8로 한다.

  5. 인코딩 : UTF-8

  6. Redis Memory DB 설치
    • 6379 port 서비스 사용

2-1-4. 데이터 저장 스토리지

  • Push 첨부데이터 발송 등 web data 를 upload & deploy 가능한 데이터 저장 공간이 필요하다.

  • 단일 서버인 경우 HDD 에 저장가능하며 이중화 이상인 경우 NAS, ftp(sftp) 를 통한 sync 전송기능 등이 있다.

2-1-5. PUSH 서버

  1. 설치/실행 가능한 별도의 계정이 필요하다.

  2. DNS 조회 및 세팅 확인
    • DNS 조회를 통해 아래의 도메인이 조회 되어야 한다.

    • APNS : api.push.apple.com, api.development.push.apple.com

    • FCM : fcm-xmpp.googleapis.com

  3. Push Provider Daemon 설치
    • 바이너리 소스 배포는 ‘/app/push/provider’ 와 같은 디렉토리 형태로 구성한다.

    • 데몬 서비스 포트 : 10420 (포트 변경가능)

    • APNS 발송을 위해서는 apns push 인증서(.p8) 와 TEAMKEY, KEYID 발급이 선행되어야 한다.

    • FCM 발송을 위해서는 API KEY와 Sender ID 발급이 선행되어야 한다.

  4. java jdk
    • ava 의 버전은 1.8로 한다.

2-1-6. Push 서비스 구성 시 방화벽 및 요청사항

구간

Source IP

Destination IP

PORT

PROTOCOL

비고

내부->DMZ

Was Server

Push Server

10420

10421

TCP

APNS/FCM 메시지 발송요청 전달

provider 모니터링 접속

운영자(개발자)->내부망

운영자(개발자)

Was Server

8080

TCP

서비스 모니터링(upmc was)

외부->DMZ

ANY

Web Server

80 or 443

(http or https)

TCP

스마트폰앱 -> UPMC web 포트

포트변경 시 방화벽 포트도 같이 변경한다.

외부->DMZ

운영자(개발자)

Web Server

81 or 444

(http or https)

TCP

운영자(개발자)PC -> Push admin web 포트

포트변경 시 방화벽 포트도 같이 변경한다.

OUTBOUND

Push Server

api.push.apple.com

api.development.push.apple.com

또는

ANY

443

TCP

PUBLIC PUSH 송신용

(PROVIDER -> APNS)

OUTBOUND

Push Server

fcm-xmpp.googleapis.com

또는

ANY

5235 (Real)

5236 (Test)

TCP

PUBLIC PUSH 송신용

(PROVIDER -> FCM)

3. PUSH5.x 구성도 (Public 전용)(다중구성)

image2

3-1. 서비스 구성 별 요청 및 확인사항

3-1-1. DB Server

  1. DB 계정
    • morpheus PUSH 데이터 정보 관리를 위한 별도 계정을 구성한다.

  2. TABLE 및 데이터 설치
    • 방문 설치 시 직접 DB 에 스크립트 실행하여 설치한다.

    • 다만 프로젝트의 요청 시 실행 스크립트를 만들어 전달하여 담당자 통하여 처리 가능하다.

  3. DB charset & 인코딩
    • 세팅이 필요한 경우 UTF-8 로 설정한다.

3-1-2. L4 세팅

  1. UPMC Web VIP
    • UPMC Web 에 접속 가능한 대표 VIP(도메인) 이 필요하다.

    • L4 에서 UPMC Web VIP:80(443) -> UPMC Web1 IP:80(443), UPMC Web2 IP:80(443) 분배 설정한다.

  2. Admin Web VIP
    • Admin Web 에 접속 가능한 대표 VIP(도메인) 이 필요하다.

    • L4 에서 Admin Web VIP:81(444) -> Admin Web1 IP:81(444), Admin Web2 IP:81(444) 분배 설정한다.

3-1-3. Web Server

  1. Push UPMC web 서비스 구성 사항
    • 서비스 포트 : 80 또는 443 (포트 변경 가능하며 443의 경우 SSL 적용 시, 운영은 SSL 강력 권고)

    • URL Pattern 은 Jeus 서버의 경우 ‘/’ 에 대하여 ServiceUri ‘uri, ext’ 로 jsv 설정한다.

    • 타 웹서버의 경우도 ‘/’ 에 대하여 모든 URI, 확장자를 jsv 처리한다.

  2. Push Admin web 서비스 구성 사항
    • 서비스 포트 : 81 또는 444 (포트 변경 가능하며 444의 경우 SSL 적용 시 , 운영은 SSL 강력 권고)

    • URL Pattern 은 Jeus 서버의 경우 ‘/’ 에 대하여 ServiceUri ‘uri, ext’ 로 jsv 설정한다.

    • 타 웹서버의 경우도 ‘/’ 에 대하여 모든 URI, 확장자를 jsv 처리한다.

3-1-4. WAS server

  1. Push UPMC 컨테이너
    • 최하 2GB 이상으로 구성한다.(서비스 사용자 수, 프로젝트 개발소스의 범위에 따라 더 커질 수 있다.)

    • 바이너리 소스 배포는 ‘/wasapp/upmc’ 와 같은 디렉토리 형태로 구성한다.

    • 디렉토리 owner 의 경우 ‘소스관리ID.was계정그룹’ 으로 하고 권한은 775 or 750 으로 한다.

    • 각 컨테이너 세션 클러스터 설정을 한다. 만일 클러스터 설정이 불가능한 경우 web<->was 연동은 cross 연동이 아닌 1:1 방식 연동 설정해야 하며, 이 경우 L4 분배는 Hash 방식으로 한다.

    • jeus 의 경우 HTTP LISTENER 구성이 필요하며 포트는 8080(포트 변경가능) 으로한다.

  2. Push Admin 컨테이너
    • 최하 1GB 이상으로 구성한다.(서비스 사용자 수, 프로젝트 개발소스의 범위에 따라 더 커질 수 있다.)

    • 바이너리 소스 배포는 ‘/wasapp/madm’ 와 같은 디렉토리 형태로 구성한다.

    • 디렉토리 owner 의 경우 ‘소스관리ID.was계정그룹’ 으로 하고 권한은 775 or 750 으로 한다.

    • 각 컨테이너 세션 클러스터 설정을 한다. 만일 클러스터 설정이 불가능한 경우 web<->was 연동은 cross 연동이 아닌 1:1 방식 연동 설정해야 하며, 이 경우 L4 분배는 Hash 방식으로 한다.

  3. 상기 생성된 DB 계정에 접속 가능한 JNDI DATASOURCE 구성한다.

  4. java
    • java 의 버전은 1.8로 한다.

  5. 인코딩 : UTF-8

  6. Redis Memory DB 설치
    • 6379 port 서비스 사용

  7. REDIS Sentinel 설치
    • Redis Memory DB 모니터링 및 관리

    • 26379 port 사용

    • 다중화에서 반드시 Sentinel 은 홀수로 설치가 되어야 한다.

3-1-5. 데이터 저장 스토리지

  • Push 첨부데이터 발송 등 web data 를 upload & deploy 가능한 데이터 저장 공간이 필요하다.

  • 단일 서버인 경우 HDD 에 저장가능하며 이중화 이상인 경우 NAS, ftp(sftp) 를 통한 sync 전송기능 등이 있다.

3-1-6. PUSH 서버

  1. 설치/실행 가능한 별도의 계정이 필요하다.

  2. DNS 조회 및 세팅 확인
    • DNS 조회를 통해 아래의 도메인이 조회 되어야 한다.

    • APNS : api.push.apple.com, api.development.push.apple.com

    • FCM : fcm-xmpp.googleapis.com

  3. Push Provider Daemon 설치
    • 바이너리 소스 배포는 ‘/app/push/provider’ 와 같은 디렉토리 형태로 구성한다.

    • 데몬 서비스 포트 : 10420 (포트 변경가능)

    • APNS 발송을 위해서는 apns push 인증서(.p8) 와 TEAMKEY, KEYID 발급이 선행되어야 한다.

    • FCM 발송을 위해서는 API KEY와 Sender ID 발급이 선행되어야 한다.

  4. java jdk
    • ava 의 버전은 1.8로 한다.

  5. Redis Sentinel
    • Redis Memory DB 의 fail-over 기능이 제대로 동작하려면 3기 이상의 홀수가 서비스 되어야 한다.

3-1-7. Push 서비스 구성 시 방화벽 및 요청사항

구간

Source IP

Destination IP

PORT

PROTOCOL

ETC

내부->DMZ

Was Server1

Was Server2

Push Server1

Push Server2

10420

10421

TCP

APNS/FCM 메시지 발송요청 전달

provider 모니터링 접속

운영자(개발자)->내부망

운영자(개발자)

Was Server1

Was Server2

8080

TCP

서비스 모니터링(upmc was)

외부->DMZ

ANY

Web Server VIP

80 or 443

(http or https)

TCP

스마트폰앱 -> UPMC web 포트

포트변경 시 방화벽 포트도 같이 변경한다.

외부->DMZ

운영자(개발자)

Web Server VIP

81 or 444

(http or https)

TCP

운영자(개발자)PC -> Push admin web 포트

포트변경 시 방화벽 포트도 같이 변경한다.

OUTBOUND

Push Server1

Push Server2

api.push.apple.com

api.development.push.apple.com

또는

ANY

443

TCP

PUBLIC PUSH 송신용

(PROVIDER -> APNS)

OUTBOUND

Push Server1

Push Server2

fcm-xmpp.googleapis.com

또는

ANY

5235 (Real)

5236 (Test)

TCP

PUBLIC PUSH 송신용

(PROVIDER -> FCM)

내부->내부

Was Server1

Was Server2

Was Server1

Was Server2

6379

TCP

Sentinel -> REDIS

내부->내부

Was Server1

Was Server2

Was Server1

Was Server2

26379

TCP

REDIS -> Sentinel

DMZ->내부

Push Server2

Was Server1

Was Server2

26379

TCP

Sentinel -> Sentinel

DMZ->내부

Push Server2

Was Server1

Was Server2

6379

TCP

Sentinel -> REDIS

내부->DMZ

Was Server1

Was Server2

Push Server2

26379

TCP

Sentinel -> Sentinel

4. PUSH5.x 구성도 (Private 전용)(단일구성)

image3

4-1. 서비스 구성 별 요청 및 확인사항

4-1-1. DB Server

  1. DB 계정
    • morpheus PUSH 데이터 정보 관리를 위한 별도 계정을 구성한다.

  2. TABLE 및 데이터 설치
    • 방문 설치 시 직접 DB 에 스크립트 실행하여 설치한다.

    • 다만 프로젝트의 요청 시 실행 스크립트를 만들어 전달하여 담당자 통하여 처리 가능하다.

  3. DB charset & 인코딩
    • 세팅이 필요한 경우 UTF-8 로 설정한다.

4-1-2. Web Server

  1. Push UPMC web 서비스 구성 사항
    • 서비스 포트 : 80 또는 443 (포트 변경 가능하며 443의 경우 SSL 적용 시, 운영은 SSL 강력 권고)

    • URL Pattern 은 Jeus 서버의 경우 ‘/’ 에 대하여 ServiceUri ‘uri, ext’ 로 jsv 설정한다.

    • 타 웹서버의 경우도 ‘/’ 에 대하여 모든 URI, 확장자를 jsv 처리한다.

  2. Push Admin web 서비스 구성 사항
    • 서비스 포트 : 81 또는 444 (포트 변경 가능하며 444의 경우 SSL 적용 시 , 운영은 SSL 강력 권고)

    • URL Pattern 은 Jeus 서버의 경우 ‘/’ 에 대하여 ServiceUri ‘uri, ext’ 로 jsv 설정한다.

    • 타 웹서버의 경우도 ‘/’ 에 대하여 모든 URI, 확장자를 jsv 처리한다.

4-1-3. WAS server

  1. Push UPMC 컨테이너
    • 최하 2GB 이상으로 구성한다.(서비스 사용자 수, 프로젝트 개발소스의 범위에 따라 더 커질 수 있다.)

    • 바이너리 소스 배포는 ‘/wasapp/upmc’ 와 같은 디렉토리 형태로 구성한다.

    • 디렉토리 owner 의 경우 ‘소스관리ID.was계정그룹’ 으로 하고 권한은 775 or 750 으로 한다.

    • jeus 의 경우 HTTP LISTENER 구성이 필요하며 포트는 8080(포트 변경가능) 으로한다.

  2. Push Admin 컨테이너
    • 최하 1GB 이상으로 구성한다.(서비스 사용자 수, 프로젝트 개발소스의 범위에 따라 더 커질 수 있다.)

    • 바이너리 소스 배포는 ‘/wasapp/madm’ 와 같은 디렉토리 형태로 구성한다.

    • 디렉토리 owner 의 경우 ‘소스관리ID.was계정그룹’ 으로 하고 권한은 775 or 750 으로 한다.

  3. 상기 생성된 DB 계정에 접속 가능한 JNDI DATASOURCE 구성한다.

  4. java
    • java 의 버전은 1.8로 한다.

  5. 인코딩 : UTF-8

  6. Redis Memory DB 설치
    • 6379 port 서비스 사용

    • 바이너리 소스 배포는 ‘/app/push/redis’ 와 같은 디렉토리 형태로 구성한다.

    • 디렉토리 owner 의 경우 ‘소스관리ID.was계정그룹’ 으로 하고 권한은 775 or 750 으로 한다.

  7. UPNS sentlistener Daemon 설치
    • 바이너리 소스 배포는 ‘/app/push/sent_listener’ 와 같은 디렉토리 형태로 구성한다.

    • 디렉토리 owner 의 경우 ‘소스관리ID.was계정그룹’ 으로 하고 권한은 775 or 750 으로 한다.

4-1-4. 데이터 저장 스토리지

  • Push 첨부데이터 발송 등 web data 를 upload & deploy 가능한 데이터 저장 공간이 필요하다.

  • 단일 서버인 경우 HDD 에 저장가능하며 이중화 이상인 경우 NAS, ftp(sftp) 를 통한 sync 전송기능 등이 있다.

4-1-5. PUSH 서버

  1. 설치/실행 가능한 별도의 계정이 필요하다.

  2. DNS 조회 및 세팅 확인
    • DNS 조회를 통해 아래의 도메인이 조회 되어야 한다.

    • APNS : api.push.apple.com, api.development.push.apple.com

    • FCM : fcm-xmpp.googleapis.com

  3. java jdk
    • ava 의 버전은 1.8로 한다.

  4. 커널 파라메터의 변경이 필요 할 수 있다.
  5. UPNS Server Daemon 설치
    • 바이너리 소스 배포는 ‘/app/push/upns’ 와 같은 디렉토리 형태로 구성한다.

    • 디렉토리 owner 의 경우 ‘소스관리ID.was계정그룹’ 으로 하고 권한은 775 or 750 으로 한다.

    • 데몬 서비스 포트 : 1883 (포트 변경가능)

  6. Push Provider Daemon 설치
    • 바이너리 소스 배포는 ‘/app/push/provider’ 와 같은 디렉토리 형태로 구성한다.

    • 디렉토리 owner 의 경우 ‘소스관리ID.was계정그룹’ 으로 하고 권한은 775 or 750 으로 한다.

    • 데몬 서비스 포트 : 10420 (포트 변경가능)

    • APNS 발송을 위해서는 apns push 인증서(.p8) 와 TEAMKEY, KEYID 발급이 선행되어야 한다.

    • FCM 발송을 위해서는 API KEY와 Sender ID 발급이 선행되어야 한다.

4-1-6. Push 서비스 구성 시 방화벽 및 요청사항

구간

Source IP

Destination IP

PORT

PROTOCOL

ETC

내부->DMZ

Was Server

Push Server

10420

10421

TCP

APNS/FCM 메시지 발송요청 전달

provider 모니터링 접속

운영자(개발자)->내부망

운영자(개발자)

Was Server

8080

TCP

서비스 모니터링(upmc was)

내부->DMZ

Was Server

Push Server

1883

18880

TCP

UPNS 메시지 발송요청 전달

UPNS 모니터링 포트

외부->DMZ

ANY

Web Server

80 or 443

(http or https)

TCP

스마트폰앱 -> UPMC web 포트

포트변경 시 방화벽 포트도 같이 변경한다.

외부->DMZ

운영자(개발자)

Web Server

81 or 444

(http or https)

TCP

운영자(개발자)PC -> Push admin web 포트

포트변경 시 방화벽 포트도 같이 변경한다.

외부->DMZ

ANY

Push Server

1883

TCP

스마트폰앱 -> UPNS Server

포트변경 시 방화벽 포트도 같이 변경한다.

OUTBOUND

Push Server1

Push Server2

api.push.apple.com

api.development.push.apple.com

또는

ANY

443

TCP

PUBLIC PUSH 송신용

(PROVIDER -> APNS)

OUTBOUND

Push Server1

Push Server2

fcm-xmpp.googleapis.com

또는

ANY

5235 (Real)

5236 (Test)

TCP

PUBLIC PUSH 송신용

(PROVIDER -> FCM)

5. PUSH5.x 구성도 (Private 전용)(다중구성)

image4

5-1. 서비스 구성 별 요청 및 확인사항

5-1-1. DB Server

  1. DB 계정
    • morpheus PUSH 데이터 정보 관리를 위한 별도 계정을 구성한다.

  2. TABLE 및 데이터 설치
    • 방문 설치 시 직접 DB 에 스크립트 실행하여 설치한다.

    • 다만 프로젝트의 요청 시 실행 스크립트를 만들어 전달하여 담당자 통하여 처리 가능하다.

  3. DB charset & 인코딩
    • 세팅이 필요한 경우 UTF-8 로 설정한다.

5-1-2. L4 세팅

  1. UPMC Web VIP
    • UPMC Web 에 접속 가능한 대표 VIP(도메인) 이 필요하다.

    • L4 에서 UPMC Web VIP:80(443) -> UPMC Web1 IP:80(443), UPMC Web2 IP:80(443) 분배 설정한다.

  2. Admin Web VIP
    • Admin Web 에 접속 가능한 대표 VIP(도메인) 이 필요하다.

    • L4 에서 Admin Web VIP:81(444) -> Admin Web1 IP:81(444), Admin Web2 IP:81(444) 분배 설정한다.

5-1-3. Web Server

  1. Push UPMC web 서비스 구성 사항
    • 서비스 포트 : 80 또는 443 (포트 변경 가능하며 443의 경우 SSL 적용 시, 운영은 SSL 강력 권고)

    • URL Pattern 은 Jeus 서버의 경우 ‘/’ 에 대하여 ServiceUri ‘uri, ext’ 로 jsv 설정한다.

    • 타 웹서버의 경우도 ‘/’ 에 대하여 모든 URI, 확장자를 jsv 처리한다.

  2. Push Admin web 서비스 구성 사항
    • 서비스 포트 : 81 또는 444 (포트 변경 가능하며 444의 경우 SSL 적용 시 , 운영은 SSL 강력 권고)

    • URL Pattern 은 Jeus 서버의 경우 ‘/’ 에 대하여 ServiceUri ‘uri, ext’ 로 jsv 설정한다.

    • 타 웹서버의 경우도 ‘/’ 에 대하여 모든 URI, 확장자를 jsv 처리한다.

5-1-4. WAS server

  1. Push UPMC 컨테이너
    • 최하 2GB 이상으로 구성한다.(서비스 사용자 수, 프로젝트 개발소스의 범위에 따라 더 커질 수 있다.)

    • 바이너리 소스 배포는 ‘/wasapp/upmc’ 와 같은 디렉토리 형태로 구성한다.

    • 디렉토리 owner 의 경우 ‘소스관리ID.was계정그룹’ 으로 하고 권한은 775 or 750 으로 한다.

    • 각 컨테이너 세션 클러스터 설정을 한다. 만일 클러스터 설정이 불가능한 경우 web<->was 연동은 cross 연동이 아닌 1:1 방식 연동 설정해야 하며, 이 경우 L4 분배는 Hash 방식으로 한다.

    • jeus 의 경우 HTTP LISTENER 구성이 필요하며 포트는 8080(포트 변경가능) 으로한다.

  2. Push Admin 컨테이너
    • 최하 1GB 이상으로 구성한다.(서비스 사용자 수, 프로젝트 개발소스의 범위에 따라 더 커질 수 있다.)

    • 바이너리 소스 배포는 ‘/wasapp/madm’ 와 같은 디렉토리 형태로 구성한다.

    • 디렉토리 owner 의 경우 ‘소스관리ID.was계정그룹’ 으로 하고 권한은 775 or 750 으로 한다.

    • 각 컨테이너 세션 클러스터 설정을 한다. 만일 클러스터 설정이 불가능한 경우 web<->was 연동은 cross 연동이 아닌 1:1 방식 연동 설정해야 하며, 이 경우 L4 분배는 Hash 방식으로 한다.

  3. 상기 생성된 DB 계정에 접속 가능한 JNDI DATASOURCE 구성한다.

  4. java
    • java 의 버전은 1.8로 한다.

  5. 인코딩 : UTF-8

  6. REDIS & Redis Sentinel 설치
    • Redis Memory DB & 모니터링 및 관리

    • 6379, 26379 port 사용

    • 바이너리 소스 배포는 ‘/app/push/redis’ 와 같은 디렉토리 형태로 구성한다.

    • 디렉토리 owner 의 경우 ‘소스관리ID.was계정그룹’ 으로 하고 권한은 775 or 750 으로 한다.

    • 다중화에서 반드시 Sentinel 은 홀수로 설치가 되어야 한다.

  7. UPNS sentlistener Daemon 설치
    • 바이너리 소스 배포는 ‘/app/push/sent_listener’ 와 같은 디렉토리 형태로 구성한다.

    • 디렉토리 owner 의 경우 ‘소스관리ID.was계정그룹’ 으로 하고 권한은 775 or 750 으로 한다.

5-1-5. 데이터 저장 스토리지

  • Push 첨부데이터 발송 등 web data 를 upload & deploy 가능한 데이터 저장 공간이 필요하다.

  • 단일 서버인 경우 HDD 에 저장가능하며 이중화 이상인 경우 NAS, ftp(sftp) 를 통한 sync 전송기능 등이 있다.

5-1-6. PUSH 서버

  1. 설치/실행 가능한 별도의 계정이 필요하다.

  2. DNS 조회 및 세팅 확인
    • DNS 조회를 통해 아래의 도메인이 조회 되어야 한다.

    • APNS : api.push.apple.com, api.development.push.apple.com

    • FCM : fcm-xmpp.googleapis.com

  3. java jdk
    • java 의 버전은 1.8로 한다.

  4. 커널 파라메터의 변경이 필요 할 수 있다.
  5. UPNS Server Daemon 설치
    • 바이너리 소스 배포는 ‘/app/push/upns’ 와 같은 디렉토리 형태로 구성한다.

    • 디렉토리 owner 의 경우 ‘소스관리ID.was계정그룹’ 으로 하고 권한은 775 or 750 으로 한다.

    • 데몬 서비스 포트 : 1883 (포트 변경가능)

  6. Push Provider Daemon 설치
    • 바이너리 소스 배포는 ‘/app/push/provider’ 와 같은 디렉토리 형태로 구성한다.

    • 디렉토리 owner 의 경우 ‘소스관리ID.was계정그룹’ 으로 하고 권한은 775 or 750 으로 한다.

    • 데몬 서비스 포트 : 10420 (포트 변경가능)

    • APNS 발송을 위해서는 apns push 인증서(.p8) 와 TEAMKEY, KEYID 발급이 선행되어야 한다.

    • FCM 발송을 위해서는 API KEY와 Sender ID 발급이 선행되어야 한다.

  7. Redis Sentinel 설치
    • PUSH Server2에만 설치 한다.

    • Redis Memory DB 의 fail-over 기능이 제대로 동작하려면 3기 이상의 홀수 설치를 해야 한다.

    • 바이너리 소스 배포는 ‘/app/push/redis’ 와 같은 디렉토리 형태로 구성한다.

    • 디렉토리 owner 의 경우 ‘소스관리ID.was계정그룹’ 으로 하고 권한은 775 or 750 으로 한다.

5-1-7. Push 서비스 구성 시 방화벽 및 요청사항

구간

Source IP

Destination IP

PORT

PROTOCOL

ETC

내부->DMZ

Was Server1

Was Server2

Push Server1

Push Server2

10420

10421

TCP

APNS/FCM 메시지 발송요청 전달

provider 모니터링 접속

운영자(개발자)->내부망

운영자(개발자)

Was Server1

Was Server2

8080

TCP

서비스 모니터링(upmc was)

내부->DMZ

Was Server1

Was Server2

Push Server1

Push Server2

1883

18880

TCP

UPNS 메시지 발송요청 전달

UPNS 모니터링 포트

외부->DMZ

ANY

Web Server VIP

80 or 443

(http or https)

TCP

스마트폰앱 -> UPMC web 포트

포트변경 시 방화벽 포트도 같이 변경한다.

외부->DMZ

운영자(개발자)

Web Server VIP

81 or 444

(http or https)

TCP

운영자(개발자)PC -> Push admin web 포트

포트변경 시 방화벽 포트도 같이 변경한다.

외부->DMZ

ANY

Push Server1

Push Server2

1883

TCP

스마트폰앱 -> UPNS Server

포트변경 시 방화벽 포트도 같이 변경한다.

OUTBOUND

Push Server1

Push Server2

api.push.apple.com

api.development.push.apple.com

또는

ANY

443

TCP

PUBLIC PUSH 송신용

(PROVIDER -> APNS)

OUTBOUND

Push Server1

Push Server2

fcm-xmpp.googleapis.com

또는

ANY

5235 (Real)

5236 (Test)

TCP

PUBLIC PUSH 송신용

(PROVIDER -> FCM)

내부->내부

Was Server1

Was Server2

Was Server1

Was Server2

6379

TCP

Sentinel -> REDIS

내부->내부

Was Server1

Was Server2

Was Server1

Was Server2

26379

TCP

REDIS -> Sentinel

DMZ->내부

Push Server2

Was Server1

Was Server2

26379

TCP

Sentinel -> Sentinel

DMZ->내부

Push Server2

Was Server1

Was Server2

6379

TCP

Sentinel -> REDIS

내부->DMZ

Was Server1

Was Server2

Push Server2

26379

TCP

Sentinel -> Sentinel

6. 기타

6-1. FCM

6-2. APNS