반응형

개요

  • 폐쇄망에서 요구하는것들
  • 기존 Architecture 에서 불가능한 부분
  • 요구사항을 만족하려면?

폐쇄망에서 요구하는 것들

최근 몇몇 핀테크 회사와 제휴를 맺으면서 아래와같은 요청이 들어왔다.

 

  1. 폐쇄망회사에서 회사 제품을 호출하기위해서 등록이 필요한데 Domain이나 IP 주소좀 보내달라고 하는 경우
  2. 폐쇄망회사에서 API 통신을 하기위해서 IP를 알려달라고 하는경우

자... 대충 그림을 그리면서 이해를 해보자

 

Architecture에서 불가능한 부분

ALB IP를 전달 해주면 안됨

ALB IP 들은 고정 IP 가 아니다. 바뀐다.

만약에 ALB IP를 굳이 등록해야 한다면 ....

아래 문서를 방화벽 담당자에게 전달해주고 등록해달라고 하자 (바로 전화옴)

https://docs.aws.amazon.com/ko_kr/vpc/latest/userguide/aws-ip-ranges.html 

 

만약 WAS를 Public Subnet 에서 구성했다면?

WAS를 Public Subnet에 구성했다면 IP 주소를 줘도 좋다. 하지만 변수가 존재한다.

EIP - EC2 조합은 큰 문제가 없지만, ECS / EKS를 사용하는 경우 Public IP가 배포할때마다 변한다.

그러면 배포 후에 한 2~3분후 제휴회사에서 전화가 올수도 있다. 

만약 그렇게되면 큰일이 났다고 보면 된다...

 

 

요구사항을 만족하려면?

 

폐쇄망회사에서 회사 제품을 호출하기위해서 등록이 필요한데 Domain이나 IP 주소좀 보내달라고 하는 경우

 

제일 간단한건, Domain 자체를 등록해달라고 하면된다.

하지만 만약 방화벽에 최신것이 아닌 옛날 거라면, IP를 알려줘야 한다.

 

만약 IP가 ALB같은 동적으로 바뀐다면 AWS Global Accelerator를 고려해보자

Global Accelerator Architecture

GA (Global Accelerator)를 사용하면 각 AZ에 ENI가 생긴다.

쉽게 생각하면 해당 ALB용 EIP가 생긴다고 생각하면 좋을듯?

 

폐쇄망회사에서 API 통신을 하기위해서 IP를 알려달라고 하는경우

위에서도 언급했듯이, WAS가 Public Subnet 에 존재한다면 Private Subnet 으로 옮기자...

그리고 NAT IP를 알려주면 된다.

결국 RouteTable에도 기재했듯이, 모든 Outbound는 NAT IP를 통해서 우회하기때문에 해당 IP를 알려주면 된다.

 

 

결론

반응형

'Architecture > Network' 카테고리의 다른 글

Databricks Backend 내부망 Network 구조  (0) 2024.10.27
반응형

요구사항

  1. DataBricks Control Plane 은 Private link를 활용하여 내부망에서 연결을 진행해야 함
  2. VPC 내에서는 VPC Peering을 활용하셔 내부망 통신을 주로 해야 함
  3. NACL, SG를 구성하여 기본적인 네트워크 보안정책을 수립해야 함
  4. S3, STS, KinesisStream의 Endpoint를 사용해야 함

 

VPC 구성

  • VPC Peering은 크게 3 tier 형태로 구성한다 ( public, private, private link)
  • public subnet 부분은 말 그대로 외부 네트워크와 통신하는 구간이다 (NAT)
  • private subnet 부분은 databricks에 worker-node들이 구성되는 공간이다 (workspace-zone)
  • private link subnet 부분은 databricks control plane 과 연결되는 공간이다

Endpoint 구성

  • S3, STS, Kinesis Stream 3개로 구성된다
  • S3의 경우 Gateway endpoint 이기 때문에 RouteTable만 구성한다.
  • STS, Kinesis Stream은 Interface Enpoint 이기 때문에 Subnet과 SG를 지정해줘야 한다
    • Private Subnet / Private link Subnet
    • workspace-sg, private-link-sg

Workspace-sg / Private-link-sg

  • workspace-sg는 말 그대로 databrick에 worker 노드들의 통신을 맡기때문에 그에 맞게 inbound / outbound 설정을 진행하면 된다.
  • private-link-sg는 databricks control plane 내 통신을 진행할 수 있게금 설정하면 된다.
Inbound / outBound 규칙 허용 cidr / sg
Inbound 모든 TCP self (자기 자신)
Inbound 모든 UDP self (자기 자신)
outBound 모든 TCP self (자기 자신)
outBound 모든 UDP self (자기 자신)
outBound 6666 0.0.0.0/0
outBound 8431-8451 0.0.0.0/0
outBound 3306 or 5432 MYSQL or PostgreSQL

 

Private link 구성

  • private-link 부분은 databricks control plane에 통신을 내부망에서 처리해야 한다.
  • endpoint 서비스에서 2가지를 선택해서 진행한다 (데이터브릭스 홈페이지 참조)
  • workspace-vpce (private-link-subnet, private-link-sg)
  • scc-vpce (private-link-subnet, private-link-sg)외부통신 1) VPC Peering

 

후기

  • DataEngineer + DataBricks 내부 SA 분들과 같이 네트워크 구성 같이 진행
  • 역시... 네트워크 라는거는 쉽지 않다는 것을 느낌
  • Private link는 이번에 처음 사용해봤는데 확실히 직접 구현하니 확 와닿음
  • 계속 공부하면서 현재의 감을 잃지 않기위해 노력해야 할듯함...

 

참조

https://docs.databricks.com/en/security/network/classic/privatelink.html

 

Databricks documentation

 

docs.databricks.com

 

 

 

반응형

+ Recent posts