AWS RDS·MSK 연결과 운영
Application에서 RDS와 MSK로 이어지는 Network·TLS·인증·Capacity 계층을 점검한다.
이 문서의 목차
Overview
RDS와 MSK는 관리형 데이터·메시징 서비스지만 Application 연결 계약까지 대신해주지는 않는다. Endpoint, SG, Port, TLS, 인증/권한, Client 설정, Capacity를 순서대로 맞춰야 한다.
한 문장 설명: “Managed”는 서버 운영 일부를 Cloud가 맡는다는 뜻이지 연결·Schema·성능·장애 책임이 사라진다는 뜻이 아니다.
왜 필요한가
현장 설치 기록의 Endpoint와 계정값을 복사하는 대신 어디서 무엇을 확인할지 표준화하면 환경이 바뀌어도 같은 방식으로 진단할 수 있다. 비밀값은 Source Wiki나 코드가 아닌 Secret Store에서 주입한다.
핵심 원리
RDS는 DNS Endpoint를 사용하고 Multi-AZ Failover 시 주소가 새 Instance를 가리킬 수 있으므로 Client DNS/Pool 갱신을 고려한다. MSK Client는 Bootstrap Broker로 Cluster Metadata를 얻은 뒤 개별 Broker와 연결하므로 모든 Broker 경로와 광고 주소가 도달 가능해야 한다.
내부 동작
flowchart TB; A[Application] -->|DNS·SG·TLS·Auth| R[(RDS Endpoint)]; A -->|Bootstrap| B[MSK Broker]; B -->|Metadata| A; A -->|Produce/Fetch| P[Partition Leader]; R --> F[Failover]; P --> C[Consumer Group]
RDS Connection Pool은 미리 연결을 보유하지만 Failover 후 죽은 연결을 제거해야 한다. Kafka Producer/Consumer는 Metadata와 Coordinator를 갱신하며 Retry와 Rebalance가 발생한다.
쉬운 비유
RDS Endpoint는 대표 전화번호이고 MSK Bootstrap 주소는 안내 데스크다. 안내 데스크에 연결한 뒤 실제 담당 Broker 번호를 받으므로 안내 데스크 하나만 열려 있다고 모든 업무가 되는 것은 아니다.
Example
RDS Timeout은 DNS → Route/SG → TLS → DB 인증 → 최대 연결/Pool 순으로 본다. MSK는 Bootstrap → Broker Metadata 주소 → TLS/SASL → ACL → Topic/Partition → Consumer Group 순으로 본다. 실제 Host, 사용자, Password는 문서 예제에 넣지 않는다.
실무에서 발생하는 문제
RDS Failover 뒤 stale pooled connection, 최대 연결 초과, 긴 Transaction이 문제를 만든다. MSK에서는 Broker SG 누락, 인증 방식 불일치, Partition 부족, Consumer Lag, Rebalance 반복이 발생한다. 무제한 Retry는 장애를 숨기고 요청 지연을 늘린다.
Trade-off
RDS Proxy는 연결 폭증을 완화하지만 비용과 동작 제약이 있다. MSK의 Partition 증가는 처리량을 늘리지만 순서 범위와 운영 비용이 달라진다. TLS/인증 강화는 필수지만 Certificate와 Client 설정의 운영 책임이 따른다.
흔한 오해
- RDS Endpoint가 풀리면 DB 연결이 보장되는 것이 아니다.
- MSK Bootstrap 연결 성공이 모든 Broker 접근 성공을 뜻하지 않는다.
- TLS 비활성화는 진단법일 수 없으며 운영 해결책도 아니다.
- Retry를 늘리면 Capacity 부족이 해결되지 않는다.
Production Considerations
RDS CPU, Freeable Memory, Connection, IOPS, Lock/Slow Query와 Pool 지표를 함께 본다. MSK Broker Storage/CPU, Under-replicated Partition, Produce/Fetch Latency, Consumer Lag를 본다. Failover와 Certificate/Secret 회전, Client 재연결을 Staging에서 검증한다.
Interview Questions / Follow-up Questions
- RDS Failover가 Connection Pool에 미치는 영향은?
- Kafka Client가 Bootstrap 후 개별 Broker에 연결하는 이유는?
- 후속: DB 연결 Timeout과 인증 실패의 조사 순서는?
- 후속: Consumer Lag 증가를 Broker와 Consumer 관점에서 나눠보라.
Related Topics
Connection Pool, Kafka, AWS Networking에서 각 계층을 더 깊게 본다.
SOURCE REFERENCES
이 문서의 근거
본문은 Dev Atlas 안에서 완결되며, 검증이 필요할 때만 원문을 확인할 수 있습니다.