방화벽을 관리해야 하는 것은 가상 호스트뿐만이 아닙니다. VM과 실제 호스트 방화벽 모두 구성요소가 서로 통신하는 데 필요한 포트의 트래픽을 허용해야 합니다.
포트 다이어그램
다음 이미지는 단일 데이터 센터와 다중 데이터 센터 구성의 포트 요구사항을 보여줍니다.
단일 데이터 센터
다음 이미지는 단일 데이터 센터 구성에서 각 Edge 구성요소의 포트 요구사항을 보여줍니다.
이 다이어그램에 대한 참고사항:
- 'M'으로 시작하는 포트는 구성요소를 관리하는 데 사용되는 포트이며 관리 서버에서 액세스할 수 있도록 구성요소에서 열려 있어야 합니다.
- Edge UI에서는 추적 도구의 전송 버튼을 지원하기 위해 API 프록시에서 노출된 포트의 라우터에 액세스해야 합니다.
- JMX 포트에 대한 액세스는 사용자 이름/비밀번호를 요구하도록 구성할 수 있습니다. 자세한 내용은 모니터링 방법을 참고하세요.
- 선택적으로 특정 연결에 TLS/SSL 액세스를 구성할 수 있으며, 이 경우 다른 포트를 사용할 수 있습니다. 자세한 내용은 TLS/SSL을 참고하세요.
- 외부 SMTP 서버를 통해 이메일을 전송하도록 관리 서버와 Edge UI를 구성할 수 있습니다. 이 경우 관리 서버와 UI가 SMTP 서버 (표시되지 않음)의 필요한 포트에 액세스할 수 있는지 확인해야 합니다. TLS가 아닌 SMTP의 경우 포트 번호는 일반적으로 25입니다. TLS 지원 SMTP의 경우 일반적으로 465이지만 SMTP 제공업체에 확인하세요.
여러 데이터 센터
데이터 센터가 두 개인 12노드 클러스터형 구성을 설치하는 경우 두 데이터 센터의 노드가 아래 표시된 포트를 통해 통신할 수 있는지 확인합니다.
참고:
- 모든 관리 서버는 다른 모든 데이터 센터의 모든 Cassandra 노드에 액세스할 수 있어야 합니다.
- 모든 데이터 센터의 모든 메시지 프로세서는 포트 4528을 통해 서로 액세스할 수 있어야 합니다.
- 관리 서버는 포트 8082를 통해 모든 메시지 프로세서에 액세스할 수 있어야 합니다.
- 모든 관리 서버와 모든 Qpid 노드는 다른 모든 데이터 센터의 Postgres에 액세스할 수 있어야 합니다.
- 보안상의 이유로 위의 포트와 자체 네트워크 요구사항에 필요한 포트 외에는 데이터 센터 간에 열려 있는 포트가 없어야 합니다.
기본적으로 구성요소 간 통신은 암호화되지 않습니다. Apigee mTLS를 설치하여 암호화를 추가할 수 있습니다. 자세한 내용은 Apigee mTLS 소개를 참고하세요.
이동 세부정보
아래 표에서는 Edge 구성요소별로 방화벽에서 열어야 하는 포트를 설명합니다.
구성요소 | 포트 | 설명 |
---|---|---|
표준 HTTP 포트 | 80, 443 | HTTP 및 가상 호스트에 사용하는 기타 포트 |
Apigee SSO | 9099 | 인증을 위한 외부 IDP, 관리 서버, 브라우저의 연결 |
Cassandra | 7000, 9042 | Cassandra 노드 간 통신 및 기타 Edge 구성요소의 액세스를 위한 Apache Cassandra 포트입니다. |
7199 | JMX 포트입니다. 관리 서버에서 액세스할 수 있도록 열려 있어야 합니다. | |
LDAP | 10389 | SymasLDAP |
관리 서버 | 1099 | JMX 포트 |
4526 | 분산 캐시 및 관리 호출의 포트입니다. 이 포트는 구성할 수 있습니다. | |
5636 | 수익 창출 커밋 알림 포트입니다. | |
8080 | Edge 관리 API 호출의 포트입니다. 이러한 구성요소에는 관리 서버의 포트 8080에 대한 액세스가 필요합니다. 라우터, 메시지 프로세서, UI, Postgres, Apigee SSO (사용 설정된 경우), Qpid | |
관리 UI | 9000 | 관리 UI에 대한 브라우저 액세스 포트 |
메시지 프로세서 | 1101 | JMX 포트 |
4528 | 메시지 프로세서 간의 분산 캐시 및 관리 호출과 라우터 및 관리 서버의 통신에 사용됩니다.
메시지 프로세서는 포트 4528을 관리 포트로 열어야 합니다. 메시지 프로세서가 여러 개인 경우 모두 포트 4528을 통해 서로 액세스할 수 있어야 합니다 (위 다이어그램의 메시지 프로세서에 있는 포트 4528의 루프 화살표로 표시됨). 데이터 센터가 여러 개인 경우 모든 데이터 센터의 모든 메시지 프로세서에서 포트에 액세스할 수 있어야 합니다. |
|
8082 |
메시지 프로세서의 기본 관리 포트이며 관리 서버에서 액세스할 수 있도록 구성요소에서 열려 있어야 합니다. 라우터와 메시지 프로세서 간에 TLS/SSL을 구성합니다. 이는 라우터가 메시지 프로세서에 대한 상태 확인을 실행하는 데 사용됩니다. 라우터와 메시지 프로세서 간에 TLS/SSL을 구성하는 경우 라우터에서 액세스할 수 있도록 메시지 프로세서의 포트 8082만 열면 됩니다. 라우터와 메시지 프로세서 간에 TLS/SSL을 구성하지 않으면 기본 구성인 포트 8082가 구성요소를 관리하기 위해 메시지 프로세서에서 계속 열려 있어야 하지만 라우터는 이에 액세스할 필요가 없습니다. |
|
8443 | 라우터와 메시지 프로세서 간에 TLS가 사용 설정된 경우 라우터가 액세스할 수 있도록 메시지 프로세서에서 포트 8443을 열어야 합니다. | |
8998 | 라우터의 통신용 메시지 프로세서 포트 | |
Postgres | 22 | 마스터-대기 복제를 사용하도록 Postgres 노드 두 개를 구성하는 경우 SSH 액세스를 위해 각 노드에서 포트 22를 열어야 합니다. |
1103 | JMX 포트 | |
4530 | 분산 캐시 및 관리 호출 | |
5432 | Qpid/관리 서버에서 Postgres로의 통신에 사용됩니다. | |
8084 | Postgres 서버의 기본 관리 포트입니다. 관리 서버에서 액세스할 수 있도록 구성요소에서 열려 있어야 합니다. | |
Qpid | 1102 | JMX 포트 |
4529 | 분산 캐시 및 관리 호출 | |
5672 |
동일한 노드에 있는 Qpid 서버와 브로커 구성요소 간의 통신에도 사용됩니다. Qpid 노드가 여러 개인 토폴로지에서 서버는 포트 5672의 모든 브로커에 연결할 수 있어야 합니다. |
|
8083 | Qpid 서버의 기본 관리 포트이며 관리 서버에서 액세스할 수 있도록 구성요소에서 열려 있어야 합니다. | |
8090 | Qpid 브로커의 기본 포트입니다. 모니터링 목적으로 브로커의 관리 콘솔 또는 관리 API에 액세스하려면 열려 있어야 합니다. | |
라우터 | 4527 | 분산 캐시 및 관리 호출용입니다.
라우터는 포트 4527을 관리 포트로 열어야 합니다. 라우터가 여러 개 있는 경우 모두 포트 4527을 통해 서로 액세스할 수 있어야 합니다 (위 다이어그램에서 라우터의 포트 4527에 루프 화살표로 표시됨). 필수는 아니지만 모든 메시지 프로세서가 액세스할 수 있도록 라우터에서 포트 4527을 열 수 있습니다. 그렇지 않으면 메시지 프로세서 로그 파일에 오류 메시지가 표시될 수 있습니다. |
8081 | 라우터의 기본 관리 포트이며 관리 서버에서 액세스할 수 있도록 구성요소에서 열려 있어야 합니다. | |
15999 |
상태 점검 포트입니다. 부하 분산기는 이 포트를 사용하여 라우터가 사용 가능한지 확인합니다. 라우터의 상태를 가져오기 위해 부하 분산기는 라우터의 포트 15999에 요청을 합니다. curl -v http://routerIP:15999/v1/servers/self/reachable 라우터에 연결할 수 있으면 요청이 HTTP 200을 반환합니다. |
|
59001 | apigee-validate 유틸리티로 Edge 설치를 테스트하는 데 사용되는 포트입니다.
이 유틸리티를 사용하려면 라우터의 포트 59001에 액세스해야 합니다. 포트 59001에 관한 자세한 내용은 설치 테스트를 참고하세요. |
|
SmartDocs | 59002 | SmartDocs 페이지 요청이 전송되는 Edge 라우터의 포트입니다. |
ZooKeeper | 2181 | 관리 서버, 라우터, 메시지 프로세서 등 다른 구성요소에서 사용됩니다. |
2888, 3888 | ZooKeeper 클러스터 (ZooKeeper 앙상블이라고 함) 통신을 위해 ZooKeeper에서 내부적으로 사용됩니다. |
다음 표에는 동일한 포트가 숫자 순으로 나열되어 있으며 소스 및 대상 구성요소가 표시되어 있습니다.
포트 번호 | 목적 | 소스 구성요소 | 대상 구성요소 |
---|---|---|---|
virtual_host_port | HTTP와 가상 호스트 API 호출 트래픽에 사용하는 기타 포트 포트 80과 443이 가장 일반적으로 사용되며 메시지 라우터는 TLS/SSL 연결을 종료할 수 있습니다. | 외부 클라이언트 (또는 부하 분산기) | 메시지 라우터의 리스너 |
1099~1103 | JMX 관리 | JMX 클라이언트 | 관리 서버 (1099) 메시지 프로세서 (1101) Qpid 서버 (1102) Postgres 서버 (1103) |
2181 | Zookeeper 클라이언트 통신 | 관리 서버 라우터 메시지 프로세서 Qpid 서버 Postgres 서버 |
Zookeeper |
2888 및 3888 | Zookeeper internode 관리 | Zookeeper | Zookeeper |
4526 | RPC 관리 포트 | 관리 서버 | 관리 서버 |
4527 | 분산 캐시 및 관리 호출, 라우터 간 통신을 위한 RPC 관리 포트 | 관리 서버 라우터 |
라우터 |
4528 | 메시지 프로세서 간 분산 캐시 호출 및 라우터의 통신 | 관리 서버 라우터 메시지 프로세서 |
메시지 프로세서 |
4529 | 분산 캐시 및 관리 호출용 RPC 관리 포트 | 관리 서버 | Qpid 서버 |
4530 | 분산 캐시 및 관리 호출용 RPC 관리 포트 | 관리 서버 | Postgres 서버 |
5432 | Postgres 클라이언트 | Qpid 서버 | Postgres |
5636 | 수익 창출 | 외부 JMS 구성요소 | 관리 서버 |
5672 |
동일한 노드에 있는 Qpid 서버와 브로커 구성요소 간의 통신에도 사용됩니다. Qpid 노드가 여러 개인 토폴로지에서 서버는 포트 5672의 모든 브로커에 연결할 수 있어야 합니다. |
Qpid 서버 | Qpid 서버 |
7000 | Cassandra 노드 간 통신 | Cassandra | 기타 Cassandra 노드 |
7199 | JMX 관리 관리 서버가 Cassandra 노드에 액세스할 수 있도록 열려 있어야 합니다. | JMX 클라이언트 | Cassandra |
8080 | 관리 API 포트 | Management API 클라이언트 | 관리 서버 |
8081~8084 |
개별 구성요소에 직접 API 요청을 발행하는 데 사용되는 구성요소 API 포트입니다. 각 구성요소는 다른 포트를 엽니다. 사용되는 정확한 포트는 구성에 따라 다르지만 관리 서버에서 액세스할 수 있도록 구성요소에서 열려 있어야 합니다. |
Management API 클라이언트 | 라우터 (8081) 메시지 프로세서 (8082) Qpid 서버 (8083) Postgres 서버 (8084) |
8090 | 대기열을 관리하고 모니터링하는 Qpid 브로커의 기본 관리 포트입니다. | 브라우저 또는 API 클라이언트 | Qpid 브로커 (apigee-qpidd) |
8443 | TLS가 사용 설정된 경우 라우터와 메시지 프로세서 간 통신 | 라우터 | 메시지 프로세서 |
8998 | 라우터와 메시지 프로세서 간의 통신 | 라우터 | 메시지 프로세서 |
9,000 | 기본 Edge 관리 UI 포트 | 브라우저 | 관리 UI 서버 |
9042 | CQL 기본 전송 | 라우터 메시지 프로세서 관리 서버 |
Cassandra |
9099 | 외부 IDP 인증 | IDP, 브라우저, 관리 서버 | Apigee SSO |
10389 | LDAP 포트 | 관리 서버 | SymasLDAP |
15999 | 상태 점검 포트입니다. 부하 분산기는 이 포트를 사용하여 라우터가 사용 가능한지 확인합니다. | 부하 분산기 | 라우터 |
59001 | apigee-validate 유틸리티가 Edge 설치를 테스트하는 데 사용하는 포트 |
apigee-validate | 라우터 |
59002 | SmartDocs 페이지 요청이 전송되는 라우터 포트 | SmartDocs | 라우터 |
메시지 프로세서는 전용 연결 풀을 Cassandra에 열어두며, 이 풀은 제한 시간이 만료되지 않도록 구성됩니다. 메시지 프로세서와 Cassandra 서버 사이에 방화벽이 있는 경우 방화벽에서 연결 시간이 초과될 수 있습니다. 하지만 메시지 프로세서는 Cassandra에 대한 연결을 다시 설정하도록 설계되지 않았습니다.
이러한 상황을 방지하기 위해 Apigee에서는 이러한 구성요소의 배포에 방화벽이 포함되지 않도록 Cassandra 서버, 메시지 프로세서, 라우터가 동일한 서브넷에 있어야 한다고 권장합니다.
라우터와 메시지 프로세서 사이에 방화벽이 있고 유휴 TCP 제한 시간이 설정되어 있는 경우 다음을 수행하는 것이 좋습니다.
- Linux OS의 sysctl 설정에서
net.ipv4.tcp_keepalive_time = 1800
을 설정합니다. 여기서 1800은 방화벽 유휴 tcp 제한 시간보다 낮아야 합니다. 이 설정은 방화벽에서 연결을 연결 해제하지 않도록 연결을 설정된 상태로 유지해야 합니다. - 모든 메시지 프로세서에서
/opt/apigee/customer/application/message-processor.properties
를 수정하여 다음 속성을 추가합니다. 파일이 없으면 만듭니다.conf_system_cassandra.maxconnecttimeinmillis=-1
- 메시지 프로세서를 다시 시작합니다.
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
- 모든 라우터에서
/opt/apigee/customer/application/router.properties
를 수정하여 다음 속성을 추가합니다. 파일이 없으면 만듭니다.conf_system_cassandra.maxconnecttimeinmillis=-1
- 라우터를 다시 시작합니다.
/opt/apigee/apigee-service/bin/apigee-service edge-router restart