network 방화벽 open process

문주은·2025년 3월 20일

목적 : MSSQL 서버(Azure)에 있는 데이터를 Airbyte EC2(AWS)를 활용하여 Snowflake 에 저장하기
TODO : MSSQL 서버의 TCP 1433 포트를 Airbyte가 설치된 EC2에서 접근 가능하도록 설정

1. MSSQL(Azure) 에서 원격 접속 허용

1-1. TCP/IP 프로토콜 활성화

MSSQL은 기본적으로 Shared Memory, Named Pipes, TCP/IP 등의 네트워크 프로토콜을 사용할 수 있음.
기본적으로 MSSQL은 로컬에서만 접속 가능한 Shared Memory 방식을 사용하는데,
외부(Airbyte AWS EC2)에서 네트워크를 통해 접근하려면 TCP/IP 프로토콜을 활성화 해야함.
💡 즉, TCP/IP를 활성화해야 MSSQL이 네트워크를 통해 외부에서 접속할 수 있음!

[TCP/IP 프로토콜 활성화]
1. SQL Server Configuration Manager 실행
2. SQL Server Network Configuration → Protocols for [인스턴스명] 선택
3. TCP/IP → Enabled로 설정
4. TCP/IP 속성 설정

  • IP Addresses 탭에서 IPAll 섹션의 TCP Port 값을 1433으로 설정
  • Listen All을 Yes로 변경
  1. MSSQL 서비스 재시작

2. MSSQL server(Azure) 방화벽 open

Azure의 MSSQL 서버는 기본적으로 퍼블릭 네트워크 차단이 되어 있어서, 외부에서 접속하려면 방화벽 규칙을 수정해야 함.

2-1. Azure portal 에서 방화벽 설정

[Azure 환경에서 MSSQL 서버 방화벽 열기]
1. Azure 포털 접속 → SQL Databases 선택
2. 연결할 데이터베이스 클릭
3. "Set server firewall" (서버 방화벽 설정) 클릭
4. "Allow Azure services and resources to access this server" 옵션 ON
5. Airbyte가 설치된 EC2의 퍼블릭 IP 추가

  • Rule Name: Allow Airbyte
  • Start IP: EC2의 퍼블릭 IP
  • End IP: EC2의 퍼블릭 IP
  1. 저장 (Save) 클릭

3. EC2 -> MSSQL 접속 허용

Airbyte가 설치된 EC2에서 MSSQL이 설치된 외부 서버에 접속할 수 있도록 EC2 보안 그룹에서 아웃바운드 규칙을 확인.

3-1. MSSQL server(Azure)의 INBOUND에서 EC2 IP 허용

🔹 인바운드(Inbound) 규칙

  • 외부에서 내 서버로 들어오는 트래픽을 허용 또는 차단하는 규칙이야.
  • 예를 들어, MSSQL 서버(1433 포트)를 EC2에서 접근하려면 MSSQL 서버의 인바운드 규칙에서 EC2의 IP를 허용
  1. AWS 콘솔에서 MSSQL 서버가 있는 인스턴스의 보안 그룹으로 이동
  2. 인바운드 규칙(Inbound Rules) 추가
    • 유형(Type): MSSQL(AUTO) 또는 Custom TCP Rule
    • 프로토콜(Protocol): TCP
    • 포트 범위(Port Range): 1433
    • 소스(Source): Airbyte가 설치된 EC2의 공인 IP(혹은 보안 그룹 ID)
  3. 저장 후 적용

3-2. Airbyte EC2의 OUTBOUND에서 MSSQL 서버 IP 허용

🔹 아웃바운드(Outbound) 규칙

  • 내 서버에서 외부로 나가는 트래픽을 허용 또는 차단하는 규칙이야.
  • EC2에서 MSSQL 서버로 접속하려면 EC2의 아웃바운드 규칙에서 MSSQL 서버의 IP를 허용
  1. Airbyte EC2의 보안 그룹으로 이동
  2. 아웃바운드 규칙(Outbound Rules)에서 TCP 1433 포트가 허용되었는지 확인
    • 목적지(Destination) MSSQL 서버의 공인 IP 또는 보안 그룹 ID
    • 포트: 1433
    • 프로토콜: TCP
    • 허용(Allow) 상태 확인

3-3. MSSQL 사설 네트워크(Private Network) 에 있거나 VPN을 통해 접근해야 하는 경우

EC2와 MSSQL 서버 간 네트워크 연결(VPC Peering, VPN, Private Link 등) 설정

3-3-1. VPC Peering 설정 (AWS VPC ↔ Azure VNet)

VPC Peering이 필요한 경우

  • MSSQL이 Azure Virtual Network (VNet) 내부의 Private IP를 사용하고 있음.
  • Airbyte가 설치된 EC2는 AWS VPC 내에 있음.
  • AWS VPC와 Azure VNet이 서로 다른 네트워크에 있어 직접 통신이 불가능함.

📌 VPC Peering 설정 방법
1. Azure VNet과 AWS VPC의 CIDR 범위를 확인

  • Azure VNet CIDR: 예) 10.1.0.0/16
  • AWS VPC CIDR: 예) 10.2.0.0/16
  • 두 네트워크가 겹치지 않도록 CIDR을 설정.
  1. AWS에서 VPC Peering 생성
  • AWS 콘솔 → VPC → Peering Connections → Create Peering Connection
  • VPC 요청자: AWS VPC 선택
  • VPC 수락자: Azure VNet (수동 입력 필요)
  1. Azure에서 Peering 승인
  • Azure Portal → Virtual Network → Peering → Add Peering
  • Peering Name: AWS-Peering
  • Peered VPC ID 입력 (AWS에서 생성한 Peering ID)
  • Enable Traffic Forwarding 설정
  1. AWS와 Azure에서 라우팅 테이블 수정
  • AWS Route Table에서 Azure VNet CIDR로 트래픽 전달하도록 설정
  • Azure Route Table에서도 AWS VPC CIDR로 트래픽 전달하도록 설정

3-3-2. VPN 연결 (AWS ↔ Azure)

VPN이 필요한 경우

  • MSSQL 서버가 Azure VNet에 있지만 퍼블릭 IP 없이 Private IP로만 접근 가능.
  • AWS EC2에서 VPN을 통해 Azure 네트워크로 접속해야 함.

📌 AWS와 Azure 간 VPN 연결 방법
1) Azure Portal → Virtual Network Gateway 생성

이름: Azure-VPN-Gateway
가상 네트워크(VNet) 선택
Gateway Type: VPN
SKU: VpnGw1 이상 선택
Public IP 생성

2) Local Network Gateway 생성 (AWS 정보 입력)

이름: AWS-Local-Network-Gateway
IP Address: AWS의 Customer Gateway IP 입력
Address Space: AWS VPC CIDR 입력

3) AWS 콘솔 → VPC → Site-to-Site VPN Connections

Virtual Private Gateway (VGW) 생성
Customer Gateway 생성 (Azure VPN Gateway Public IP 입력)
Site-to-Site VPN Connection 생성
Tunnel 설정 시 Azure의 Local Network Gateway 정보 입력

4) 라우팅 테이블 업데이트

AWS Route Table: Azure VNet CIDR로 VPN Gateway로 라우팅 추가
Azure Route Table: AWS VPC CIDR로 VPN Gateway로 라우팅 추가

이 방법으로 진행.

PrivateLink가 필요한 경우

  • MSSQL 서버를 Azure에서 Private Endpoint로 노출해야 하는 경우
  • AWS EC2가 Azure Private Endpoint를 통해 접근해야 하는 경우

📌 PrivateLink 설정 방법
1) Azure에서 Private Endpoint 생성
- Azure Portal → Private Link → Private Endpoint 생성
- MSSQL 서버의 Private Endpoint를 생성
- DNS 구성 변경
2) AWS에서 PrivateLink 사용하여 접근
- AWS에서 VPC Endpoint를 생성하여 Azure Private Endpoint에 연결
- AWS EC2가 VPC Endpoint를 통해 MSSQL 서버에 연결


4. EC2에서 MSSQL 접속 확인

4-1. telnet test

$ telnet MSSQL_SERVER_IP 1433

profile
Data Engineer

0개의 댓글