방화벽 관리의 필요성은 가상 호스트뿐만이 아닙니다. VM 방화벽과 물리적 호스트 방화벽은 구성요소가 서로 통신하는 데 필요한 포트의 트래픽을 허용해야 합니다.
포트 다이어그램
다음 이미지는 단일 데이터 센터 및 여러 데이터 센터 구성을 위한 포트 요구사항을 보여줍니다.
단일 데이터 센터
다음 이미지는 단일 데이터 센터 구성에서 각 Edge 구성요소의 포트 요구사항을 보여줍니다.
이 다이어그램에 대한 참고사항:
- 'M'으로 시작하는 포트는 구성요소를 관리하는 데 사용되는 포트이며 관리 서버에서 액세스하려면 구성요소에서 열려 있어야 합니다.
- Edge UI에서는 API 프록시에 의해 노출된 포트에 있는 라우터에 액세스하여 트레이스 도구의 전송 버튼을 지원해야 합니다.
- JMX 포트에 대한 액세스는 사용자 이름/비밀번호를 요구하도록 구성할 수 있습니다. 자세한 내용은 모니터링 방법을 참조하세요.
- 선택사항으로 다른 포트를 사용할 수 있는 특정 연결에 TLS/SSL 액세스를 구성할 수도 있습니다. 자세한 내용은 TLS/SSL을 참조하세요.
- 외부 SMTP 서버를 통해 이메일을 보내도록 관리 서버 및 Edge UI를 구성할 수 있습니다. 이 경우 관리 서버 및 UI가 SMTP 서버의 필요한 포트에 액세스할 수 있는지 확인해야 합니다 (표시되지 않음). 비 TLS SMTP의 경우 포트 번호는 일반적으로 25입니다. TLS가 사용 설정된 SMTP의 경우 465인 경우가 많지만 SMTP 제공업체에 문의하세요.
여러 데이터 센터
데이터 센터가 2개인 12노드 클러스터형 구성을 설치하는 경우 두 데이터 센터의 노드가 아래에 표시된 포트를 통해 통신할 수 있는지 확인합니다.
참고:
- 모든 관리 서버가 다른 모든 데이터 센터의 모든 Cassandra 노드에 액세스할 수 있어야 합니다.
- 모든 데이터 센터의 모든 메시지 프로세서는 모두 포트 4528을 통해 서로 액세스할 수 있어야 합니다.
- 관리 서버는 포트 8082를 통해 모든 메시지 프로세서에 액세스할 수 있어야 합니다.
- 모든 관리 서버와 모든 Qpid 노드는 다른 모든 데이터 센터의 Postgres에 액세스할 수 있어야 합니다.
- 위에 나온 포트와 자체 네트워크 요구사항에 필요한 기타 포트 이외의 보안상의 이유로 데이터 센터 사이에 다른 포트가 열려 있으면 안 됩니다.
기본적으로 구성 요소 간의 통신은 암호화되지 않습니다. Apigee mTLS를 설치하여 암호화를 추가할 수 있습니다. 자세한 내용은 Apigee mTLS 소개를 참조하세요.
포트 세부정보
아래 표에서는 Edge 구성요소별로 방화벽에서 열어야 하는 포트를 설명합니다.
구성요소 | 포트 | 설명 |
---|---|---|
표준 HTTP 포트 | 80, 443 | HTTP 및 가상 호스트에 사용하는 기타 포트 |
Apigee SSO | 9099 | 인증을 위해 외부 IDP, 관리 서버, 브라우저로부터의 연결 |
Cassandra | 7000, 9042, 9160 | Cassandra 노드 간 통신 및 다른 Edge 구성요소의 액세스를 위한 Apache Cassandra 포트 |
7,199 | JMX 포트. 관리 서버에서 액세스할 수 있도록 열려 있어야 합니다. | |
LDAP | 10389 | OpenLDAP |
관리 서버 | 1,099 | JMX 포트 |
4,526 | 분산 캐시 및 관리 호출을 위한 포트입니다. 이 포트는 구성할 수 있습니다. | |
5636 | 수익 창출 커밋 알림을 위한 포트입니다. | |
8080 | Edge 관리 API 호출을 위한 포트입니다. 라우터, 메시지 프로세서, UI, Postgres, Apigee SSO (사용 설정된 경우), Qpid 등의 구성요소를 사용하려면 관리 서버의 포트 8080에 액세스해야 합니다. | |
관리 UI | 9,000 | 관리 UI에 대한 브라우저 액세스 포트 |
메시지 프로세서 | 1,101 | JMX 포트 |
4528 | 메시지 프로세서 간의 분산 캐시 및 관리 호출과 라우터와 관리 서버와의 통신용입니다.
메시지 프로세서는 포트 4528을 관리 포트로 열어야 합니다. 여러 메시지 프로세서가 있는 경우 포트 4528 (메시지 프로세서의 포트 4528과 관련해 위의 다이어그램에 루프 화살표로 표시됨)을 통해 모두 서로 액세스할 수 있어야 합니다. 데이터 센터가 여러 개 있는 경우에는 모든 데이터 센터의 모든 메시지 프로세서에서 포트에 액세스할 수 있어야 합니다. |
|
8082 |
메시지 프로세서의 기본 관리 포트로, 관리 서버에서 액세스하려면 구성요소에서 열려 있어야 합니다. 라우터와 메시지 프로세서 사이에 TLS/SSL을 구성하는 경우, 라우터가 메시지 프로세서의 상태를 확인하는 데 사용됩니다. 라우터와 메시지 프로세서 간에 TLS/SSL을 구성할 때 라우터가 액세스할 수 있도록 메시지 프로세서의 포트 8082만 열어두면 됩니다. 라우터와 메시지 프로세서 간에 TLS/SSL을 구성하지 않는 경우, 구성 요소를 관리하려면 기본 구성의 포트 8082가 메시지 프로세서에서 열려 있어야 하지만 라우터에서 액세스할 필요는 없습니다. |
|
8443 | 라우터와 메시지 프로세서 간에 TLS가 사용 설정된 경우 라우터가 액세스할 수 있도록 메시지 프로세서에서 포트 8443을 열어야 합니다. | |
8,998 | 라우터와의 통신을 위한 메시지 프로세서 포트 | |
Postgres | 22 | 마스터 대기 복제를 사용하도록 두 개의 Postgres 노드를 구성하는 경우 SSH 액세스를 위해 각 노드에서 포트 22를 열어야 합니다. |
1103 | JMX 포트 | |
4,530 | 분산 캐시 및 관리 호출 | |
5432 | Qpid/관리 서버에서 Postgres로의 통신에 사용됩니다. | |
8084 | Postgres 서버의 기본 관리 포트입니다. 관리 서버에서 액세스하려면 구성요소에서 열려 있어야 합니다. | |
Qpid | 1102 | JMX 포트 |
4,529 | 분산 캐시 및 관리 호출 | |
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 | JoKeeper 클러스터 (ZooKeeper 인스턴스라고 함) 통신을 위해 JoKeeper에서 내부적으로 사용합니다. |
다음 표에는 동일한 포트가 소스 및 대상 구성요소와 함께 숫자로 표시되어 있습니다.
포트 번호 | 목적 | 소스 구성요소 | 대상 구성요소 |
---|---|---|---|
virtual_host_port | HTTP 및 가상 호스트 API 호출 트래픽에 사용하는 기타 포트 포트 80 및 443이 가장 일반적으로 사용되며 메시지 라우터는 TLS/SSL 연결을 종료할 수 있습니다. | 외부 클라이언트 (또는 부하 밸런서) | 메시지 라우터의 리스너 |
1099~1103 | JMX 관리 | JMX 클라이언트 | Management Server (1099) Message Processor (1101) Qpid Server (1102) Postgres Server (1103) |
2181 | Jokeeper 클라이언트 통신 | 관리 서버 라우터 메시지 프로세서 Qpid 서버 Postgres 서버 |
Zookeeper |
2888 및 3888 | 동물원키퍼 노드 간 관리 | 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 서버 |
7,000 | Cassandra 노드 간 통신 | Cassandra | 다른 Cassandra 노드 |
7199 | JMX 관리. 관리 서버가 Cassandra 노드에서 액세스할 수 있도록 열려 있어야 합니다. | JMX 클라이언트 | Cassandra |
8080 | Management API 포트 | Management API 클라이언트 | 관리 서버 |
8081~8084 |
구성요소 API 포트: 개별 구성요소에 직접 API 요청을 보내는 데 사용됩니다. 각 구성요소는 다른 포트를 엽니다. 사용되는 정확한 포트는 구성에 따라 다르지만 관리 서버에서 액세스하려면 구성요소에 열려 있어야 합니다. |
Management API 클라이언트 | 라우터 (8081) 메시지 프로세서 (8082) Qpid 서버 (8083) Postgres 서버 (8084) |
8090 | Qpid's Broker를 위한 기본 관리 포트로 큐를 관리하고 모니터링합니다. | 브라우저 또는 API 클라이언트 | Qpid 브로커 (apigee-qpidd) |
8443 | TLS가 사용 설정된 경우 라우터와 메시지 프로세서 간의 통신 | 라우터 | 메시지 프로세서 |
8998 | 라우터와 메시지 프로세서 간 통신 | 라우터 | 메시지 프로세서 |
9,000 | 기본 에지 관리 UI 포트 | 브라우저 | 관리 UI 서버 |
9042 | CQL 기본 전송 | 라우터 메시지 프로세서 관리 서버 |
Cassandra |
9099 | 외부 IDP 인증 | IDP, 브라우저 및 관리 서버 | Apigee SSO |
9160 | Cassandra 중고 클라이언트 | 라우터 메시지 프로세서 관리 서버 |
Cassandra |
10389 | LDAP 포트 | 관리 서버 | OpenLDAP |
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