AWS MSK (Kafka) 리소스를 다른 VPC와 공유해서 사용하고 싶을 때, VPC peering을 먼저 생각했었는데요.
S3, DynamoDB등의 연결에 사용하는 PrivateLink를 이용한 Case를 찾아서 살펴봤어요.
신기하게도 Goldman Sachs의 case를 발견했는데... 우왕 금융권에서 이런 경험을 공유해준다니 신기했어요.
MSK를 Private Link로 연결하기 위해서는
* (싱글) Private Link Endpoint Service는 한개만 만들고, 각 브로커의 advertise.listener포트 설정을 변경해서 NLB listener를 여러개 등록하고 연결하는 방법과,
* (멀티) Private Link Endpoint Service(와 NLB, TargetGroup)를 브로커개수 만큼 만들어서, 각 브로커의 9094포트로 연결하는 방법이 있는데,
글에서는 (멀티)의 디자인을 좀 더 권장한다고 해요.
VPC Peering은 Peering을 통해 VPC의 모든 대역에 접근할 수 있기 때문에, Security Group으로 일일이 접근을 통제해야하는 반면에 Private Link를 사용할 경우에는 원하는 타겟만 특정해서 연결을 하고, Client측(Endpoint)에서 마치 VPC 내부 리소스에 접근하듯 접근할 수 있어서 불필요한 접근은 막고, 꼭 필요한 연결만 오픈하고 싶을 때 유용한 것 같아요.