이 섹션에서는 권장사항을 요약하고 AWS 클라우드에서 OPDK를 사용하기 위한 권장사항을 제공합니다.
Cassandra는 거의 모든 정책의 백엔드 및 데이터 스토어로 사용되며 Apigee Edge 런타임 환경의 중요한 부분입니다. 이 문서에서는 AWS 환경에 맞게 Cassandra를 최적화하는 데 중점을 둡니다.
스토리지 및 I/O 요구사항
대부분의 Cassandra I/O는 순차적이지만 무작위 I/O가 필요한 경우도 있습니다. 예를 들어 읽기 작업 중에 정렬된 문자열 테이블을 읽는 경우가 있습니다. SSD는 Cassandra에 권장되는 스토리지 메커니즘입니다. 무작위 읽기 작업에 대해 지연 시간이 매우 짧은 응답 시간을 제공하는 동시에 압축 작업에 충분한 순차 쓰기 성능을 제공하기 때문입니다. 여기서는 복제도 고려됩니다.
AWS EC2의 많은 인스턴스에는 하드 드라이브가 EC2 인스턴스가 호스팅되는 하드웨어에 물리적으로 연결된 로컬 스토리지가 함께 제공됩니다. Apigee에서는 프로덕션에서 Cassandra를 실행할 때 SSD와 인스턴스 저장소를 모두 활용하는 것이 좋습니다. SSD가 2개 이상인 인스턴스 유형을 사용하는 경우 RAID0을 사용하여 처리량과 스토리지 용량을 늘릴 수 있습니다.
네트워크 요구사항
Cassandra는 Gossip 프로토콜을 사용하여 네트워크 토폴로지에 대한 정보를 다른 노드와 교환합니다. 읽기 및 쓰기 작업을 위해 여러 노드와 통신해야 하는 Cassandra의 분산 특성과 Gossip를 함께 사용하면 네트워크를 통해 많은 데이터가 전송됩니다. 프로덕션 시스템에서는 최소 1Gbps 네트워크 대역폭과 1Gbps 이상의 인스턴스 유형을 사용하는 것이 좋습니다.
CIDR이 /16인 VPC를 사용합니다. AWS의 서브넷은 2개 이상의 AZ에 걸쳐 있을 수 없으므로 Apigee에서는 다음을 권장합니다.
- 가용성 영역 (AZ)당 서브넷 1개 만들기
- Apigee 설치에 3개의 비공개 서브넷을 사용하고 각 AZ에 Cassandra 노드 1개를 사용합니다. 3개의 서브넷에는 Cassandra 클러스터의 수평 확장을 수용할 수 있는 충분한 CIDR 블록이 있어야 합니다.
- Cassandra가 소프트웨어 다운로드 및 보안 업데이트를 위해 인터넷과 통신할 수 있도록 전용 NAT가 있는 공개 서브넷 3개를 구성합니다.
기존의 마스터-슬레이브 아키텍처와 달리 Cassandra는 모든 노드가 동일한 역할을 수행하는 마스터리스 아키텍처를 사용하므로 단일 장애점이 없습니다. 고가용성을 위해 Cassandra 노드를 여러 AZ에 분산하는 것이 좋습니다. AZ 전반에 노드를 분산하면 재해 발생 시에도 가용성과 업타임을 유지할 수 있습니다.
인스턴스 계열 선택
Cassandra CPU 요구사항을 살펴볼 때 삽입이 많은 워크로드는 IO 바인딩이 되기 전에 Cassandra에서 CPU 바인딩된다는 점에 유의해야 합니다. 즉, 모든 쓰기 작업은 커밋 로그로 이동하지만 Cassandra는 쓰기 효율성이 매우 높기 때문에 CPU가 제한 요소가 됩니다. Cassandra는 동시성이 높으며 사용 가능한 만큼의 CPU 코어를 사용합니다.
Apigee에서는 CPU와 메모리의 균형이 맞는 인스턴스 계열을 사용하는 것이 좋습니다. 특히 AWS 리전에서 사용 가능한 경우 C5 제품군 인스턴스를 사용하고 C3을 대체 옵션으로 사용하는 것이 좋습니다. 경우에 따라 4xlarge는 두 계열 모두에서 최고의 가격 대비 성능을 제공하는 최적의 인스턴스입니다.
Apigee는 Cassandra 인스턴스에 기본 테넌시를 사용하는 것도 권장합니다. AZ당 인스턴스를 2개 이상으로 확장할 때 테넌시를 전용으로 설정하면 모든 Cassandra 인스턴스가 동일한 기본 하드웨어에 배치될 가능성이 높습니다. 따라서 하드웨어에 장애가 발생하면 해당 AZ의 모든 인스턴스가 손실될 수 있습니다.
추천 요약
다음 표에는 프라이빗 클라우드용 Apigee Edge에서 AWS를 사용하기 위한 Apigee 권장사항이 요약되어 있습니다.
| 인스턴스 계열 | C5d (권장) 또는 C3 |
| 인스턴스 유형 | C(x).4xlarge |
| 인스턴스 스토어 | RAID0를 사용하는 SSD (로컬 스토리지) |
| 테넌시 유형 | 기본값 |
| 노드 배치 | AZ당 Cassandra 노드 1개 |
| VPC 및 서브넷 | AZ당 서브넷 1개 및 리전당 VPC 1개 |
자세한 내용은 Amazon 인스턴스 유형을 참조하세요.