목차
본문으로 바로가기

App Service / Container APP

category Cloud/Azure 2025. 8. 21. 11:12

Azure App Service / Container App IN/OUT 통신 정리

1. Inbound 통신 (Private Link)

  • 정리 내용: App Service의 Private Link는 Inbound 전용 통신
  • 설명
    • Private Endpoint 연결 시 VNet 내부에서 사설 IP를 통해 접근 가능
    • 외부에서는 퍼블릭 엔드포인트 필요
    • Private Link는 Inbound 트래픽 전용, DNS 프라이빗 존 필요
  • 추가 주의
    • App Service → VNet 통합과 혼동 금지 (VNet 통합은 Outbound용)

2. 외부 통신 제한

  • 정리 내용: 네트워킹 설정을 안 할 경우 외부 통신 불가능?
  • 설명
    • App Service 기본 설정에서는 Outbound 통신 가능
    • VNet 통합 또는 Private Endpoint 사용 시 외부 인터넷 연결은 NAT Gateway 필요
  • 추가
    • App Service → Internet 기본 Outbound는 공인 IP를 통해 NAT 처리

3. Outbound 통신

  • 정리 내용
    1. 기본적으로 Outbound는 공인 IP 사용 (CIDR 맵핑)
    2. 단일 IP로 정의하려면 NAT Gateway 필요
    3. 사설 IP 통신 방법 (단일 IP로 외부 통신 불가)
  • 설명
    1. 기본 Outbound → 공인 IP
    2. 1개의 IP로 정의 → NAT 필요
      • VNet 통합 시 여러 인스턴스 Outbound IP가 생김
      • 단일 IP 사용 시 NAT Gateway 연결 필요
    3. 사설 IP 통신
      • 기본적으로 App Service/Container App은 Outbound에서 사설 IP 사용 불가
      • VNet 통합 + Private Endpoint/VPN/ExpressRoute로 VNet 내부 통신 가능
      • 외부 인터넷은 반드시 NAT/Gateway를 통한 공인 IP 필요

4. 추가 정리표

구분 기본 동작 VNet 통합 / Private Link 적용 시 비고
Inbound Public Endpoint (App Service URL) Private Endpoint → VNet 사설 IP Private Link는 Inbound 전용
Outbound 공인 IP → 인터넷 사설 서브넷 → NAT Gateway 필요 사설 IP 직접 인터넷 통신 불가
단일 IP 제한 불가 (동적 IP 여러 개) NAT Gateway 연결 시 가능 방화벽 허용용 활용 가능
내부 VNet 접근 불가 VNet 통합 / Private Endpoint 통해 가능 사설 IP로 내부 리소스 접근 가능

5. 결론

  • App Service / Container App의 Inbound/Outbound는 별도 개념으로 이해해야 함
  • Private Endpoint → Inbound 전용
  • VNet 통합 → Outbound 전용
  • Outbound에서 사설 IP 직접 외부 통신 불가, 단일 IP 필요 시 NAT Gateway 연결 필수

사용자 요청
     │
     ▼
[Ingress Gateway]
 (Public/Private Endpoint)
     │
     ▼
[Container App]
 ┌───────────────────────────────┐
 │  Revision v1 (예: 이미지:v1)  │
 │  Revision v2 (예: 이미지:v2)  │
 │  트래픽 분산 (예: v1=80%, v2=20%) │
 └───────────────────────────────┘
     │
     ▼
[앱 내부 로직 실행]
 (REST API, gRPC, Background Job 등)
     │
     ▼
[Networking Layer]
 ├─ VNet 내부 DB 호출 (사설 IP)  
 ├─ 외부 API 호출 (SNAT 통해 공인 IP)  
 └─ EventHub / Storage / Cosmos DB 등 연결
     │
     ▼
[Autoscaler (KEDA)]
 - 요청량 ↑ → Pod 수 증가
 - 요청량 ↓ → Pod 수 감소
     │
     ▼
[모니터링 & 로깅]
 - Azure Monitor
 - App Insights
 - Log Analytics
  1. 기본 아웃바운드 로직
    Container Apps는 Azure 관리 네트워크에 위치합니다.
    • VNet 통합을 하지 않은 경우 → Outbound 트래픽은 Microsoft 관리 SNAT → 공인 IP로 나감.
    • VNet 통합한 경우 → Container App이 속한 서브넷의 NAT Gateway / Route Table 경로를 따라감.
      → 따라서 DB나 내부 리소스 접근 가능.
[Container App Pod]
     │  (DNS 조회)
     ▼
[Private DNS Zone]
     │  (예: mydb.database.windows.net → 10.10.0.5)
     ▼
[Private Endpoint NIC]
     │
     ▼
[Azure PaaS 서비스 내부]

좋습니다. 요청하신 내용을 기반으로 **VWAN 기반, 전체 프라이빗 환경(Azure App Service / Container App + Postgres + Storage 등)**의 전반적인 통신 플로우를 정리해 드릴게요.
아래는 텍스트/마크다운 기반 플로우 구조입니다.


Azure VWAN 기반 전체 프라이빗 환경 통신 플로우

1️⃣ 구성 요소

  • VNet A: Azure Database for PostgreSQL
  • VNet B: Azure Container App / App Service
  • VNet C: Azure Storage Account (Durable Functions용)
  • VWAN Hub: VNet 간 통신 허브
  • Azure Firewall / NVA: 중앙 방화벽 정책
  • Private DNS / Private Link: 리소스 이름 해석 및 내부 통신
  • NAT Gateway: 단일 공인 IP 아웃바운드 필요 시

2️⃣ Inbound 통신

From To 방법 비고
온프레미스 / VPN Container App / App Service Private Endpoint / Private Link 사설 IP로 접근
App Service / Container App 내부 VNet 리소스 (Postgres, Storage) VNet Peering 또는 VWAN Hub 경유 DNS Private Zone 사용

설명:

  • Private Link → 사설 IP, Inbound 전용
  • 외부 인터넷 접속 시 Private Link는 사용 안 됨
  • DNS Private Zone → 사설 IP로 이름 해석

3️⃣ Outbound 통신

From To 방법 비고
Container App / App Service PostgreSQL VNet Peering 또는 VWAN Hub + UDR 사설 IP 통신
Container App / App Service Storage (Durable Functions) VNet Peering / Firewall / UDR Managed Identity + Blob Data Contributor
Container App / App Service 외부 인터넷 NAT Gateway 단일 공인 IP 필요 시
Container App / App Service ACR Managed Identity + AcrPull 공인 IP 없이도 Pull 가능, DNS Private Zone 필요

설명:

  • Outbound는 서브넷 라우팅 테이블(UDR) + 시스템 라우트에 따름
  • VNet 통합 시 기본적으로 Outbound는 공인 IP로 나가지만, NAT 연결 시 단일 IP로 가능
  • 외부 인터넷에 직접 사설 IP는 사용 불가

4️⃣ Managed Identity 권한 구성

대상 역할 필요 이유
Container App / Function App MI AcrPull ACR에서 컨테이너 이미지 Pull
Container App / Function App MI Storage Blob Data Contributor Durable Functions 상태 저장
Container App / Function App MI Storage Queue Data Contributor Durable Task Hub 큐 사용

5️⃣ 통신 플로우 예시 (텍스트 기반)

[On-Prem / VPN] 
        │
        ▼
[Private Endpoint] ── Inbound ──▶ [App Service / Container App (VNet B)]
                                        │
                                        │ Outbound (사설 IP)
                                        ▼
                         [VNet A - PostgreSQL] via VWAN Hub / Peering
                                        │
                                        │ Outbound (사설 IP)
                                        ▼
                         [VNet C - Storage] via VWAN Hub / Peering
                                        │
                                        │ Outbound (공인 IP via NAT Gateway)
                                        ▼
                                     [Internet / External APIs]

6️⃣ 핵심 포인트

  1. Inbound / Outbound 구분 필수
    • Private Endpoint → Inbound 전용
    • VNet 통합 → Outbound 전용
  2. Outbound에서 외부 인터넷 → 공인 IP 필요
    • NAT Gateway 연결 필요 (단일 IP)
  3. 사설 IP 통신
    • VNet Peering / VWAN Hub + UDR 필요
    • 외부 인터넷에 사설 IP는 불가
  4. Managed Identity + RBAC
    • ACR Pull, Storage 접근 등 내부 리소스 접근 시 보안 강화

'Cloud > Azure' 카테고리의 다른 글

LB 설계 및 트러블 슈팅  (1) 2025.09.01
가용성  (1) 2025.09.01
[ACR] Azure ACR 이미지 마이그레이션 가이드  (1) 2025.08.05
[Analytics] DataFactory 란?  (3) 2025.08.04
[StorageAccouts] Blob 설계 및 접근방법  (4) 2025.07.22