주:
- 이 자습서에서는 Oracle Cloud에 액세스해야 합니다. 무료 계정에 등록하려면 Oracle Cloud Infrastructure Free Tier 시작하기를 참조하십시오.
- Oracle Cloud Infrastructure 자격 증명, 테넌시 및 구획에 예제 값을 사용합니다. 실습을 완료했으면 이러한 값을 자신의 클라우드 환경과 관련된 값으로 대체하십시오.
허브 및 스포크 VCN 라우팅 아키텍처를 사용하여 허브에 OCI 로드 밸런서 및 OCI WAF 추가
소개
이 사용지침서에서는 OCI에서 OCI WAF(OCI Web Application Firewall)를 사용한 OCI(Oracle Cloud Infrastructure) 로드 밸런서 배포 및 구성에 필요한 작업과 허브 및 스포크 VCN 라우팅 환경에서 이 작업이 작동하는 방법을 안내합니다.
다음 그림은 트래픽 흐름을 보여줍니다.
로드 밸런서 및 WAF를 사용한 External-Spoke 연결
목표
- 허브 및 스포크 네트워크 아키텍처에서 OCI 로드 밸런서와 OCI WAF 정책을 구성합니다. 또한 로드 밸런서가 트래픽을 분산하는 방법을 모니터링하고 추적하도록 웹 서버를 설정합니다.
필요 조건
-
이 튜토리얼에서 콘텐츠를 재생성하려면 다음 튜토리얼을 완료해야 합니다.
작업 1: 현재 허브 및 스포크 네트워크 구조 검토
이 튜토리얼을 계속하려면 다음이 필요합니다.
- 허브 VCN 1개(방화벽, 인터넷 게이트웨이, NAT 게이트웨이 및 서비스 게이트웨이 포함)
- Spoke VCN 3개
- IPSec VPN 연결에 연결된 1개의 온프레미스
허브 VCN에는 스포크 인스턴스에 연결하는 데 사용할 수 있는 Windows 인스턴스가 있습니다. 각 스포크에는 웹 서버로 구성될 하나의 인스턴스가 있으며, 이러한 인스턴스는 이 자습서에서 배포할 로드 밸런서의 엔드포인트로 사용될 수 있습니다.
다음 그림은 시작점을 보여줍니다.
작업 2: OCI WAF 및 OCI 로드 밸런서, 허브 방화벽, 스포크 인스턴스 간 허브 및 스포크 네트워크 아키텍처에서 라우팅 구성
다음 이미지는 모든 보안 목록 및 경로 지정 테이블이 있는 현재 허브 및 스포크 네트워크 구조를 보여줍니다.
OCI 로드 밸런서를 추가하기 전에 OCI 로드 밸런서 서브넷에서 들어오는 트래픽이 허브 방화벽으로 라우팅되어 트래픽을 스포크 인스턴스로 전송하기 전에 허브 방화벽에서 트래픽을 검사할 수 있도록 해야 합니다.
이미 이 작업을 수행하는 기본 경로 지정 규칙이 있지만 다른 네트워크와 마찬가지로 명시적으로 이 규칙을 호출하기 위해 이 규칙을 추가하는 것이 좋습니다.
-
경로 지정 규칙을 추가합니다.
-
OCI 콘솔에 로그인하여 네트워킹, 가상 클라우드 네트워크 및 가상 클라우드 네트워크로 이동합니다.
-
경로 테이블을 누릅니다.
- VCN_HUB_RT_DRG_TRANSIT 경로 테이블을 선택합니다.
-
-
경로 규칙 추가를 누릅니다.
- 대상 유형: 프라이빗 IP를 선택합니다.
- 대상 유형: CIDR 블록을 입력합니다.
- 대상 CIDR 블록:
0.0.0.0/0
을 입력합니다. - 대상 선택: pfSense 방화벽의 IP 주소인
172.16.0.20
를 입력합니다. - 경로 규칙 추가를 누릅니다.
-
이제
172.16.0.128/25
경로가 VCN_HUB_RT_DRG_TRANSIT 경로 테이블에 추가됩니다.다음 이미지는 모든 보안 목록과 경로 규칙이 있는 경로 지정 테이블이 있는 현재 허브 및 스포크 네트워크 구조를 보여줍니다.
작업 3: 백엔드 서버에 웹 서버 설치
Spoke VCN의 모든 인스턴스에 NGINX 웹 서버를 설치합니다. Oracle Linux 인스턴스에 NGINX 웹 서버를 설치하는 방법에 대한 자세한 내용은 작업 6: 인스턴스에 웹 서버 설치를 참조하십시오.
작업 4: 백엔드 서버에서 웹 페이지 생성 또는 수정
기본적으로 각 웹 서버는 기본 웹 페이지로 구성됩니다. OCI 로드 밸런서가 트래픽을 리디렉션하는 위치를 추적하려면 어떤 서버가 적중되었는지 알 수 있도록 웹 페이지에서 무언가를 변경하는 것이 좋습니다.
기본 NGINX index.html
파일의 내용을 변경하여 이 작업을 수행할 수 있습니다.
sudo nano /usr/share/nginx/html/index.html
Instance-A의 경우 헤더를 변경합니다.
<h1>Welcome to nginx! This is INSTANCE-A</h1>
Instance-B의 경우 헤더를 변경합니다.
<h1>Welcome to nginx! This is INSTANCE-B</h1>
Instance-C의 경우 헤더를 변경합니다.
<h1>Welcome to nginx! This is INSTANCE-C</h1>
index.html
파일을 변경한 후 저장해야 합니다.
작업 5: OCI 로드 밸런서 설치
OCI 로드 밸런서를 생성하기 전에 먼저 허브 VCN 보안 목록에서 포트 80 수신을 허용해야 합니다. 허브 VCN의 공용 서브넷에 있는 로드 밸런서에서 전송되는 트래픽을 비롯한 모든 트래픽은 HUB 방화벽으로 라우팅됩니다. 로드 밸런서가 엔드포인트를 사용할 인스턴스는 TCP/80 포트에서 수신 대기합니다. 따라서 트래픽이 라우팅되는 허브 VCN의 전용 서브넷에서 스포크 VCN에 대한 통신도 허용하도록 허브 VCN에서 포트 TCP/80 수신을 허용해야 합니다.
-
수신 규칙 추가.
- 왼쪽 상단 모서리에서 햄버거 메뉴 (≡)를 클릭합니다.
- 네트워킹을 누릅니다.
- Virtual cloud networks(가상 클라우드 네트워크)를 누릅니다.
- 가상 클라우드 네트워크 섹션에 있는지 확인합니다.
- HUB-VCN VCN을 누릅니다.
-
Security Lists를 누릅니다.
-
HUB-VCN에 대한 기본 보안 목록을 누릅니다.
- 수신 규칙 섹션에 있는지 확인합니다.
- 수신 규칙 추가를 누릅니다.
- 소스(
172.16.0.128/25
)에서 모든 대상으로 TCP/80이 허용되는 보안 규칙을 추가합니다.
참고:
-
HUB-VCN에 적용된 기본 보안 목록을 사용하므로 이 HUB-VCN 내의 모든 개별 서브넷에 적용됩니다.
-
즉, 공용 서브넷에서 HUB-VCN 내의 전용 서브넷으로 이동하는 트래픽도 두 서브넷 모두에 동일한 기본 보안 목록이 적용되므로 이 기본 보안 목록이 적용됩니다.
-
이러한 이유로 포트 TCP/80 수신을 허용하고 있습니다. 이렇게 하지 않으면 로드 밸런서가 백엔드 서버와 모두 같은 방식으로 통신할 수 없기 때문입니다. HUB-VCN의 전용 서브넷 내에 방화벽이 있는 HUB-and-Spoke 아키텍처를 사용하고 있기 때문에 트래픽이 공용 서브넷에서 전용 서브넷으로 전송됩니다.
-
다음 그림은 보안 규칙이 추가된 상태에서 지금까지 만든 내용을 보여줍니다.
-
로드 밸런서를 생성합니다.
- 왼쪽 상단 모서리에서 햄버거 메뉴 (≡)를 클릭합니다.
- 네트워킹을 누릅니다.
- 로드 밸런서를 누릅니다.
-
로드 밸런서 생성을 누릅니다.
- 로드 밸런서 이름을 입력합니다.
- 가시성 유형에 대해 공개를 선택합니다.
- Ephemeral IP address를 선택합니다.
- 아래로.
-
모든 항목을 기본값으로 유지하고 아래로 스크롤합니다.
- 로드 밸런서를 연결할 VCN을 선택합니다.
- 로드 밸런서를 연결할 서브넷을 선택합니다.
- 다음을 누릅니다.
- Weighted round Robin을 로드 균형 조정 정책으로 선택합니다.
- 백엔드 추가를 누릅니다.
- 스포크 VCN에 있는 인스턴스의 모든 백엔드를 선택합니다.
- 선택한 백엔드 추가를 누릅니다.
- 백엔드를 검토하고 필요한 경우 이 자습서에서 모든 백엔드 인스턴스가 포트 80을 수신합니다.
- 아래로.
-
건전성 검사 정책을 기본값으로 유지하고 다음을 누릅니다.
- 리스너 이름을 입력합니다.
- HTTP를 리스너가 처리하는 트래픽 유형으로 선택합니다.
- 리스너 포트를 80으로 입력합니다.
- 다음을 누릅니다.
- 로그 그룹을 선택합니다.
- 제출을 누릅니다.
-
로드 밸런서 상태는 CREATING입니다.
- 로드 밸런서 상태가 CREATING에서 ACTIVE로 변경되었습니다.
- 전체 건전성은 보류 중입니다.
- 백엔드 집합 건전성은 보류 중입니다.
- 로드 밸런서의 공용 IP 주소를 기록해 둡니다.
- 몇 분 후 전체 건전성은 확인입니다.
- 몇 분 후 백엔드 집합 건전성은 확인입니다.
-
아래로 이동하여 백엔드 집합을 자세히 살펴봅니다.
- 백엔드 집합을 누릅니다.
- 사용 가능한 백엔드 집합을 누릅니다.
- 전체 건전성은 확인입니다.
- 백엔드 집합 건전성은 확인입니다.
- 아래로.
- 백엔드를 누릅니다.
- 백엔드 섹션의 백엔드를 확인합니다.
- 새 브라우저를 엽니다.
- 로드 밸런서의 공용 IP 주소를 입력합니다.
- 로드 밸런서는 트래픽을 스포크 VCN B의 인스턴스로 리디렉션합니다.
- 페이지를 새로고침하십시오.
- 이제 로드 밸런서가 스포크 VCN C의 인스턴스로 트래픽을 리디렉션합니다.
- 페이지를 새로고침하십시오.
- 이제 로드 밸런서가 스포크 VCN B의 인스턴스로 트래픽을 다시 리디렉션합니다.
- 페이지를 새로고침하십시오.
- 이제 로드 밸런서가 스포크 VCN A의 인스턴스로 트래픽을 리디렉션합니다.
-
다음 그림은 지금까지 만든 내용과 트래픽이 흐르는 방식을 보여줍니다.
-
허브 방화벽이 로드 밸런서에서 백엔드 서버로의 포트 TCP/80을 허용하는지 확인합니다. 이 자습서에서는 테스트 목적으로 허브 방화벽의 모든 트래픽을 허용했습니다.
작업 6: OCI 웹 애플리케이션 방화벽 설치 및 구성
-
OCI Web Application Firewall을 구성합니다.
- 왼쪽 상단 모서리에서 햄버거 메뉴 (≡)를 클릭합니다.
- ID 및 보안을 누릅니다.
- Web Application Firewall을 누릅니다.
-
WAF 정책 생성을 누릅니다.
- WAF 정책에 대한 이름을 입력합니다.
- 다음을 누릅니다.
- 액세스 제어를 사용으로 설정이 사용으로 설정되었는지 확인합니다.
-
ISP IP 주소를 검색할 수 있는 웹 사이트를 사용하십시오. OCI 웹 애플리케이션 방화벽에서 액세스 제어를 구성하려면 이 작업이 필요합니다. 이 자습서에서는
www.ipchicken.com
를 사용하여 ISP IP 주소를 검색합니다. -
액세스 규칙 추가 섹션에서 다음 정보를 입력합니다.
- 액세스 규칙 추가를 누릅니다.
- 액세스 규칙의 이름을 입력합니다.
- 조건 유형: 소스 IP 주소를 선택합니다.
- 연산자: 목록에서를 선택합니다.
- CIDR IP 범위: 고유 ISP의 IP 주소를 입력합니다.
- 아래로.
- 규칙 작업에서 작업 이름을 입력하고 사전 구성된 401 응답 코드 작업을 선택합니다.
- 액세스 규칙 추가를 누릅니다.
- 액세스 규칙이 추가되었습니다.
- 다음을 누릅니다.
-
다음을 누릅니다.
-
다음을 누릅니다.
- WAF 정책을 구성할 로드 밸런서를 선택합니다. 작업 5에서 생성된 로드 밸런서를 사용합니다.
- 다음을 누릅니다.
-
WAF 정책 생성을 누릅니다.
-
WAF 정책이 생성됩니다.
- WAF 정책의 상태는 ACTIVE입니다.
- 정책을 눌러 WAF 정책 페이지로 돌아갑니다.
-
방금 구성한 WAF 정책에 유의하십시오.
작업 7: OCI WAF, OCI 로드 밸런서 연결 및 WAF 보안 테스트
-
작업 5에 사용된 브라우저를 열고 페이지를 새로 고칩니다.
주: 닫은 경우 로드 밸런서의 공용 IP 주소를 입력합니다.
-
WAF 정책으로 웹 서버를 차단했으므로 웹 서버에 더 이상 액세스할 수 없습니다.
확인
- 작성자 - Iwan Hoogendoorn(OCI 네트워크 전문가)
추가 학습 자원
docs.oracle.com/learn에서 다른 실습을 탐색하거나 Oracle Learning YouTube 채널에서 더 많은 무료 학습 콘텐츠에 액세스하세요. 또한 Oracle Learning Explorer가 되려면 education.oracle.com/learning-explorer을 방문하십시오.
제품 설명서는 Oracle Help Center를 참조하십시오.
Add OCI Load Balancer and OCI WAF to a Hub with Hub and Spoke VCN Routing Architecture
G12092-01
July 2024