PUSH 구성¶
1. 개요¶
본 문서는 (주)유라클에서 제공하는 모피어스 제품군 중 “Server Platform - Push”의 원활한 설치를 할 수 있도록 제품 설치에 관련한 설명과 수행 절차를 나타내는 것을 목적으로 한다.
본 문서는 기본 구성으로 안내하며, 서버 구성에 따라 내용이 변경될 수 있다.
1-1. 참고¶
Public: FCM, APNS 구성
- Private: UPNS+FCM, APNS 구성
FCM은 DOZMODE 해제를 위한 Dummy 발송용으로 사용
2. PUSH5.x 구성도 (Public 전용)(단일구성)¶
2-1. 서비스 구성 별 요청 및 확인사항¶
2-1-1. DB Server¶
- DB 계정
morpheus PUSH 데이터 정보 관리를 위한 별도 계정을 구성한다.
- TABLE 및 데이터 설치
방문 설치 시 직접 DB 에 스크립트 실행하여 설치한다.
다만 프로젝트의 요청 시 실행 스크립트를 만들어 전달하여 담당자 통하여 처리 가능하다.
- DB charset & 인코딩
세팅이 필요한 경우 UTF-8 로 설정한다.
2-1-2. Web Server¶
- Push UPMC web 서비스 구성 사항
서비스 포트 : 80 또는 443 (포트 변경 가능하며 443의 경우 SSL 적용 시, 운영은 SSL 강력 권고)
URL Pattern 은 Jeus 서버의 경우 ‘/’ 에 대하여 ServiceUri ‘uri, ext’ 로 jsv 설정한다.
타 웹서버의 경우도 ‘/’ 에 대하여 모든 URI, 확장자를 jsv 처리한다.
- Push Admin web 서비스 구성 사항
서비스 포트 : 81 또는 444 (포트 변경 가능하며 444의 경우 SSL 적용 시 , 운영은 SSL 강력 권고)
URL Pattern 은 Jeus 서버의 경우 ‘/’ 에 대하여 ServiceUri ‘uri, ext’ 로 jsv 설정한다.
타 웹서버의 경우도 ‘/’ 에 대하여 모든 URI, 확장자를 jsv 처리한다.
2-1-3. WAS server¶
- Push UPMC 컨테이너
최하 2GB 이상으로 구성한다.(서비스 사용자 수, 프로젝트 개발소스의 범위에 따라 더 커질 수 있다.)
바이너리 소스 배포는 ‘/wasapp/upmc’ 와 같은 디렉토리 형태로 구성한다.
디렉토리 owner 의 경우 ‘소스관리ID.was계정그룹’ 으로 하고 권한은 775 or 750 으로 한다.
jeus 의 경우 HTTP LISTENER 구성이 필요하며 포트는 8080(포트 변경가능) 으로한다.
- Push Admin 컨테이너
최하 1GB 이상으로 구성한다.(서비스 사용자 수, 프로젝트 개발소스의 범위에 따라 더 커질 수 있다.)
바이너리 소스 배포는 ‘/wasapp/madm’ 와 같은 디렉토리 형태로 구성한다.
디렉토리 owner 의 경우 ‘소스관리ID.was계정그룹’ 으로 하고 권한은 775 or 750 으로 한다.
상기 생성된 DB 계정에 접속 가능한 JNDI DATASOURCE 구성한다.
- java
java 의 버전은 1.8로 한다.
인코딩 : UTF-8
- Redis Memory DB 설치
6379 port 서비스 사용
2-1-4. 데이터 저장 스토리지¶
Push 첨부데이터 발송 등 web data 를 upload & deploy 가능한 데이터 저장 공간이 필요하다.
단일 서버인 경우 HDD 에 저장가능하며 이중화 이상인 경우 NAS, ftp(sftp) 를 통한 sync 전송기능 등이 있다.
2-1-5. PUSH 서버¶
설치/실행 가능한 별도의 계정이 필요하다.
- DNS 조회 및 세팅 확인
DNS 조회를 통해 아래의 도메인이 조회 되어야 한다.
APNS : api.push.apple.com, api.development.push.apple.com
FCM : fcm-xmpp.googleapis.com
- Push Provider Daemon 설치
바이너리 소스 배포는 ‘/app/push/provider’ 와 같은 디렉토리 형태로 구성한다.
데몬 서비스 포트 : 10420 (포트 변경가능)
APNS 발송을 위해서는 apns push 인증서(.p8) 와 TEAMKEY, KEYID 발급이 선행되어야 한다.
FCM 발송을 위해서는 API KEY와 Sender ID 발급이 선행되어야 한다.
- 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 전용)(다중구성)¶
3-1. 서비스 구성 별 요청 및 확인사항¶
3-1-1. DB Server¶
- DB 계정
morpheus PUSH 데이터 정보 관리를 위한 별도 계정을 구성한다.
- TABLE 및 데이터 설치
방문 설치 시 직접 DB 에 스크립트 실행하여 설치한다.
다만 프로젝트의 요청 시 실행 스크립트를 만들어 전달하여 담당자 통하여 처리 가능하다.
- DB charset & 인코딩
세팅이 필요한 경우 UTF-8 로 설정한다.
3-1-2. L4 세팅¶
- UPMC Web VIP
UPMC Web 에 접속 가능한 대표 VIP(도메인) 이 필요하다.
L4 에서 UPMC Web VIP:80(443) -> UPMC Web1 IP:80(443), UPMC Web2 IP:80(443) 분배 설정한다.
- 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¶
- Push UPMC web 서비스 구성 사항
서비스 포트 : 80 또는 443 (포트 변경 가능하며 443의 경우 SSL 적용 시, 운영은 SSL 강력 권고)
URL Pattern 은 Jeus 서버의 경우 ‘/’ 에 대하여 ServiceUri ‘uri, ext’ 로 jsv 설정한다.
타 웹서버의 경우도 ‘/’ 에 대하여 모든 URI, 확장자를 jsv 처리한다.
- Push Admin web 서비스 구성 사항
서비스 포트 : 81 또는 444 (포트 변경 가능하며 444의 경우 SSL 적용 시 , 운영은 SSL 강력 권고)
URL Pattern 은 Jeus 서버의 경우 ‘/’ 에 대하여 ServiceUri ‘uri, ext’ 로 jsv 설정한다.
타 웹서버의 경우도 ‘/’ 에 대하여 모든 URI, 확장자를 jsv 처리한다.
3-1-4. WAS server¶
- Push UPMC 컨테이너
최하 2GB 이상으로 구성한다.(서비스 사용자 수, 프로젝트 개발소스의 범위에 따라 더 커질 수 있다.)
바이너리 소스 배포는 ‘/wasapp/upmc’ 와 같은 디렉토리 형태로 구성한다.
디렉토리 owner 의 경우 ‘소스관리ID.was계정그룹’ 으로 하고 권한은 775 or 750 으로 한다.
각 컨테이너 세션 클러스터 설정을 한다. 만일 클러스터 설정이 불가능한 경우 web<->was 연동은 cross 연동이 아닌 1:1 방식 연동 설정해야 하며, 이 경우 L4 분배는 Hash 방식으로 한다.
jeus 의 경우 HTTP LISTENER 구성이 필요하며 포트는 8080(포트 변경가능) 으로한다.
- Push Admin 컨테이너
최하 1GB 이상으로 구성한다.(서비스 사용자 수, 프로젝트 개발소스의 범위에 따라 더 커질 수 있다.)
바이너리 소스 배포는 ‘/wasapp/madm’ 와 같은 디렉토리 형태로 구성한다.
디렉토리 owner 의 경우 ‘소스관리ID.was계정그룹’ 으로 하고 권한은 775 or 750 으로 한다.
각 컨테이너 세션 클러스터 설정을 한다. 만일 클러스터 설정이 불가능한 경우 web<->was 연동은 cross 연동이 아닌 1:1 방식 연동 설정해야 하며, 이 경우 L4 분배는 Hash 방식으로 한다.
상기 생성된 DB 계정에 접속 가능한 JNDI DATASOURCE 구성한다.
- java
java 의 버전은 1.8로 한다.
인코딩 : UTF-8
- Redis Memory DB 설치
6379 port 서비스 사용
- 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 서버¶
설치/실행 가능한 별도의 계정이 필요하다.
- DNS 조회 및 세팅 확인
DNS 조회를 통해 아래의 도메인이 조회 되어야 한다.
APNS : api.push.apple.com, api.development.push.apple.com
FCM : fcm-xmpp.googleapis.com
- Push Provider Daemon 설치
바이너리 소스 배포는 ‘/app/push/provider’ 와 같은 디렉토리 형태로 구성한다.
데몬 서비스 포트 : 10420 (포트 변경가능)
APNS 발송을 위해서는 apns push 인증서(.p8) 와 TEAMKEY, KEYID 발급이 선행되어야 한다.
FCM 발송을 위해서는 API KEY와 Sender ID 발급이 선행되어야 한다.
- java jdk
ava 의 버전은 1.8로 한다.
- 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 전용)(단일구성)¶
4-1. 서비스 구성 별 요청 및 확인사항¶
4-1-1. DB Server¶
- DB 계정
morpheus PUSH 데이터 정보 관리를 위한 별도 계정을 구성한다.
- TABLE 및 데이터 설치
방문 설치 시 직접 DB 에 스크립트 실행하여 설치한다.
다만 프로젝트의 요청 시 실행 스크립트를 만들어 전달하여 담당자 통하여 처리 가능하다.
- DB charset & 인코딩
세팅이 필요한 경우 UTF-8 로 설정한다.
4-1-2. Web Server¶
- Push UPMC web 서비스 구성 사항
서비스 포트 : 80 또는 443 (포트 변경 가능하며 443의 경우 SSL 적용 시, 운영은 SSL 강력 권고)
URL Pattern 은 Jeus 서버의 경우 ‘/’ 에 대하여 ServiceUri ‘uri, ext’ 로 jsv 설정한다.
타 웹서버의 경우도 ‘/’ 에 대하여 모든 URI, 확장자를 jsv 처리한다.
- Push Admin web 서비스 구성 사항
서비스 포트 : 81 또는 444 (포트 변경 가능하며 444의 경우 SSL 적용 시 , 운영은 SSL 강력 권고)
URL Pattern 은 Jeus 서버의 경우 ‘/’ 에 대하여 ServiceUri ‘uri, ext’ 로 jsv 설정한다.
타 웹서버의 경우도 ‘/’ 에 대하여 모든 URI, 확장자를 jsv 처리한다.
4-1-3. WAS server¶
- Push UPMC 컨테이너
최하 2GB 이상으로 구성한다.(서비스 사용자 수, 프로젝트 개발소스의 범위에 따라 더 커질 수 있다.)
바이너리 소스 배포는 ‘/wasapp/upmc’ 와 같은 디렉토리 형태로 구성한다.
디렉토리 owner 의 경우 ‘소스관리ID.was계정그룹’ 으로 하고 권한은 775 or 750 으로 한다.
jeus 의 경우 HTTP LISTENER 구성이 필요하며 포트는 8080(포트 변경가능) 으로한다.
- Push Admin 컨테이너
최하 1GB 이상으로 구성한다.(서비스 사용자 수, 프로젝트 개발소스의 범위에 따라 더 커질 수 있다.)
바이너리 소스 배포는 ‘/wasapp/madm’ 와 같은 디렉토리 형태로 구성한다.
디렉토리 owner 의 경우 ‘소스관리ID.was계정그룹’ 으로 하고 권한은 775 or 750 으로 한다.
상기 생성된 DB 계정에 접속 가능한 JNDI DATASOURCE 구성한다.
- java
java 의 버전은 1.8로 한다.
인코딩 : UTF-8
- Redis Memory DB 설치
6379 port 서비스 사용
바이너리 소스 배포는 ‘/app/push/redis’ 와 같은 디렉토리 형태로 구성한다.
디렉토리 owner 의 경우 ‘소스관리ID.was계정그룹’ 으로 하고 권한은 775 or 750 으로 한다.
- 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 서버¶
설치/실행 가능한 별도의 계정이 필요하다.
- DNS 조회 및 세팅 확인
DNS 조회를 통해 아래의 도메인이 조회 되어야 한다.
APNS : api.push.apple.com, api.development.push.apple.com
FCM : fcm-xmpp.googleapis.com
- java jdk
ava 의 버전은 1.8로 한다.
- 커널 파라메터의 변경이 필요 할 수 있다.
- UPNS Server Daemon 설치
바이너리 소스 배포는 ‘/app/push/upns’ 와 같은 디렉토리 형태로 구성한다.
디렉토리 owner 의 경우 ‘소스관리ID.was계정그룹’ 으로 하고 권한은 775 or 750 으로 한다.
데몬 서비스 포트 : 1883 (포트 변경가능)
- 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 전용)(다중구성)¶
5-1. 서비스 구성 별 요청 및 확인사항¶
5-1-1. DB Server¶
- DB 계정
morpheus PUSH 데이터 정보 관리를 위한 별도 계정을 구성한다.
- TABLE 및 데이터 설치
방문 설치 시 직접 DB 에 스크립트 실행하여 설치한다.
다만 프로젝트의 요청 시 실행 스크립트를 만들어 전달하여 담당자 통하여 처리 가능하다.
- DB charset & 인코딩
세팅이 필요한 경우 UTF-8 로 설정한다.
5-1-2. L4 세팅¶
- UPMC Web VIP
UPMC Web 에 접속 가능한 대표 VIP(도메인) 이 필요하다.
L4 에서 UPMC Web VIP:80(443) -> UPMC Web1 IP:80(443), UPMC Web2 IP:80(443) 분배 설정한다.
- 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¶
- Push UPMC web 서비스 구성 사항
서비스 포트 : 80 또는 443 (포트 변경 가능하며 443의 경우 SSL 적용 시, 운영은 SSL 강력 권고)
URL Pattern 은 Jeus 서버의 경우 ‘/’ 에 대하여 ServiceUri ‘uri, ext’ 로 jsv 설정한다.
타 웹서버의 경우도 ‘/’ 에 대하여 모든 URI, 확장자를 jsv 처리한다.
- Push Admin web 서비스 구성 사항
서비스 포트 : 81 또는 444 (포트 변경 가능하며 444의 경우 SSL 적용 시 , 운영은 SSL 강력 권고)
URL Pattern 은 Jeus 서버의 경우 ‘/’ 에 대하여 ServiceUri ‘uri, ext’ 로 jsv 설정한다.
타 웹서버의 경우도 ‘/’ 에 대하여 모든 URI, 확장자를 jsv 처리한다.
5-1-4. WAS server¶
- Push UPMC 컨테이너
최하 2GB 이상으로 구성한다.(서비스 사용자 수, 프로젝트 개발소스의 범위에 따라 더 커질 수 있다.)
바이너리 소스 배포는 ‘/wasapp/upmc’ 와 같은 디렉토리 형태로 구성한다.
디렉토리 owner 의 경우 ‘소스관리ID.was계정그룹’ 으로 하고 권한은 775 or 750 으로 한다.
각 컨테이너 세션 클러스터 설정을 한다. 만일 클러스터 설정이 불가능한 경우 web<->was 연동은 cross 연동이 아닌 1:1 방식 연동 설정해야 하며, 이 경우 L4 분배는 Hash 방식으로 한다.
jeus 의 경우 HTTP LISTENER 구성이 필요하며 포트는 8080(포트 변경가능) 으로한다.
- Push Admin 컨테이너
최하 1GB 이상으로 구성한다.(서비스 사용자 수, 프로젝트 개발소스의 범위에 따라 더 커질 수 있다.)
바이너리 소스 배포는 ‘/wasapp/madm’ 와 같은 디렉토리 형태로 구성한다.
디렉토리 owner 의 경우 ‘소스관리ID.was계정그룹’ 으로 하고 권한은 775 or 750 으로 한다.
각 컨테이너 세션 클러스터 설정을 한다. 만일 클러스터 설정이 불가능한 경우 web<->was 연동은 cross 연동이 아닌 1:1 방식 연동 설정해야 하며, 이 경우 L4 분배는 Hash 방식으로 한다.
상기 생성된 DB 계정에 접속 가능한 JNDI DATASOURCE 구성한다.
- java
java 의 버전은 1.8로 한다.
인코딩 : UTF-8
- REDIS & Redis Sentinel 설치
Redis Memory DB & 모니터링 및 관리
6379, 26379 port 사용
바이너리 소스 배포는 ‘/app/push/redis’ 와 같은 디렉토리 형태로 구성한다.
디렉토리 owner 의 경우 ‘소스관리ID.was계정그룹’ 으로 하고 권한은 775 or 750 으로 한다.
다중화에서 반드시 Sentinel 은 홀수로 설치가 되어야 한다.
- 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 서버¶
설치/실행 가능한 별도의 계정이 필요하다.
- DNS 조회 및 세팅 확인
DNS 조회를 통해 아래의 도메인이 조회 되어야 한다.
APNS : api.push.apple.com, api.development.push.apple.com
FCM : fcm-xmpp.googleapis.com
- java jdk
java 의 버전은 1.8로 한다.
- 커널 파라메터의 변경이 필요 할 수 있다.
- UPNS Server Daemon 설치
바이너리 소스 배포는 ‘/app/push/upns’ 와 같은 디렉토리 형태로 구성한다.
디렉토리 owner 의 경우 ‘소스관리ID.was계정그룹’ 으로 하고 권한은 775 or 750 으로 한다.
데몬 서비스 포트 : 1883 (포트 변경가능)
- Push Provider Daemon 설치
바이너리 소스 배포는 ‘/app/push/provider’ 와 같은 디렉토리 형태로 구성한다.
디렉토리 owner 의 경우 ‘소스관리ID.was계정그룹’ 으로 하고 권한은 775 or 750 으로 한다.
데몬 서비스 포트 : 10420 (포트 변경가능)
APNS 발송을 위해서는 apns push 인증서(.p8) 와 TEAMKEY, KEYID 발급이 선행되어야 한다.
FCM 발송을 위해서는 API KEY와 Sender ID 발급이 선행되어야 한다.
- 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¶
FCM: Doze Mode을 사용을 위한 FCM API Key와 Sender ID 정보
참고: https://dev.tapjoy.com/ko/faq/how-to-find-sender-id-and-api-key-for-gcm/
6-2. APNS¶
APNS : 확장자(.p8) 푸시 인증서와 TEAMKEY, KEYID 정보