주:

Oracle Cloud Infrastructure Web Application Firewall 대기시간이 Oracle Cloud Infrastructure Load Balancer에 미치는 영향 측정

소개

이 사용지침서에서는 고성능 HTTP 로드 테스트 도구인 Siege를 사용하여 OCI 로드 밸런서에 Oracle Cloud Infrastructure Web Application Firewall(OCI WAF)의 성능 영향을 벤치마크합니다.

OCI WAF 사용 여부에 관계없이 OCI 로드 밸런서에 대해 Siege 테스트를 실행하여 대기 시간, 처리량, 트랜잭션 속도 및 동시성과 같은 주요 성능 측정항목을 측정합니다. 목표는 OCI WAF가 도입한 오버헤드의 양을 파악하고 보안과 성능 간의 장단점을 파악하는 것입니다.

이 벤치마킹은 OCI WAF를 사용으로 설정하는 것이 응답 시간에 큰 영향을 미치는지 여부 및 추가 보안의 이점이 트래픽이 많은 환경의 성능 비용보다 큰지 여부에 대한 액세스에 도움이 됩니다.

소개

이 사용지침서에서는 연결된 지역 OCI WAF와 함께 전용 OCI 로드 밸런서를 배포하여 대기 시간에 미치는 영향을 분석합니다. 아키텍처는 다음으로 구성됩니다.

이 튜토리얼은 왜 필수적인가?

보안과 성능은 모던 클라우드 애플리케이션의 두 가지 핵심 요소입니다. OCI WAF는 사이버 위협으로부터 보호하는 데 도움이 되지만, 사용자 경험에 영향을 미치는 추가 대기 시간을 유발할 수 있습니다. OCI WAF가 엔드 투 엔드 TLS를 통해 OCI 로드 밸런서의 성능에 어떤 영향을 미치는지 이해하는 것은 설계자와 엔지니어가 보안 및 응답성을 최적화하는 데 매우 중요합니다.

이 사용지침서에서는 OCI WAF로 인한 대기 시간을 측정하는 실용적인 접근 방식을 제공합니다. OCI WAF에 대한 자세한 내용은 OCI WAF를 참조하십시오.

Oracle Cloud Infrastructure Flexible Network Load Balancer란 무엇입니까?

OCI의 유연한 로드 밸런서는 HTTP, HTTPS 및 TCP 트래픽을 여러 백엔드 서버에 자동으로 분산시키는 전담 관리 서비스입니다. 수동 개입 없이도 확장성, 고가용성 및 트래픽 관리를 제공합니다. OCI Flexible Network Load Balancer는 최신 애플리케이션의 요구를 충족하기 위해 SSL/TLS 종료, OCI WAF 통합 및 고급 라우팅 기능으로 쉽게 구성할 수 있습니다. 자세한 내용은 Oracle Cloud Infrastructure Flexible Network Load Balancer를 참조하십시오.

구조

이 아키텍처 설계는 Siege HTTPS 벤치마크 유틸리티를 기반으로 한 하나의 VM(클라이언트 가상 머신)을 보여 주며, 로컬/지역 OCI WAF를 연결할 전용 로드 밸런서와 HTTPS를 사용하는 세 개의 서로 다른 Apache Tomcat 백엔드 서버를 연결합니다. OCI WAF를 사용하거나 사용하지 않고 로드 밸런서를 테스트합니다.

구조

대상

이 사용지침서는 OCI 로드 밸런서 및 OCI WAF를 사용하는 클라우드 설계자, DevOps 엔지니어 및 보안 전문가를 위한 것입니다. 성능을 저하시키지 않고 보안을 최적화해야 하는 경우 이 자습서를 사용할 수 있습니다.

목표

필요 조건

작업 1: 네트워킹 구성요소(VCN, 서브넷, OCI 로드 밸런서 및 OCI WAF) 배치

  1. 선택한 IPv4 CIDR을 사용하거나 권장 아키텍처를 따라 테넌시에 세 개 이상의 서브넷(Siege, LB, WebTier)이 있는 VCN(가상 클라우드 네트워크)을 배치합니다. 자세한 내용은 다음을 참조하십시오.

  2. OCI 로드 밸런서 서브넷에 WAF와 함께 OCI Flexible Network Load Balancer를 배포합니다. 자세한 내용은 다음을 참조하십시오.

이 테스트에서는 다음과 같이 300개 이상의 보호 권장 규칙을 사용하여 OCI WAF 정책을 로드했습니다.

WAF 보호 규칙

작업 2: 테스트를 위해 서브넷에 VM 배치

Siege라는 HTTP 벤치마크 도구와 나중에 Apache Tomcat을 백엔드 서버로 설치하려면 Oracle Linux 9 이미지를 배포해야 합니다.

VM을 생성하려면 다음 설명서를 참조하십시오. OCI 인스턴스 배치

클라이언트 서브넷에 Siege용 VM을 하나 배치해야 합니다.

작업 3: Oracle Linux에 Siege 설치

  1. Oracle Linux에서 EPEL(Enterprise Linux) 저장소에 대해 추가 패키지를 사용으로 설정합니다. 자세한 내용은 How To Enable EPEL Repository on Oracle Linux 8/9을 참조하십시오.

  2. 다음 명령을 루트로 실행하여 Siege를 설치합니다.

    yum install siege
    

    Siege 설치

  3. 다음 명령을 실행하여 Siege 버전을 확인합니다.

    siege -v
    

    다른 도움말 명령과 함께 현재 Siege 버전이 표시됩니다.

작업 4: Oracle Linux에 Apache Tomcat 설치

이때 백엔드 서버가 구성되지 않은 OCI Flexible Network Load Balancer가 제공됩니다. 이제 Oracle Linux 8 또는 9에 Apache Tomcat의 Linux 버전을 설치할 것입니다.

  1. Web Private 서브넷에 2개 또는 3개의 Linux VM을 배치합니다. 자세한 내용은 OCI 인스턴스 배포를 참조하십시오.

  2. 해당 VM에 Apache 웹 서버를 설치합니다. 자세한 내용은 Apache 웹 서버 설치Oracle Cloud의 Oracle Linux에 Tomcat 설치를 참조하십시오.

  3. Apache 웹 서버가 작동되어 실행 중이면 OCI 로드 밸런서 서브넷이 웹 전용 서브넷에 도달할 수 있는지 확인하여 OCI 로드 밸런서 서브넷에서 웹 전용 서브넷(포트 443)으로 HTTPS 트래픽을 허용합니다. 이제 백엔드 서버를 추가하려면 작업 3: OCI 로드 밸런서 구성의 8단계를 참조하십시오.

  4. OCI 콘솔로 이동하여 네트워킹, 로드 밸런서, 로드 밸런서, 로드 밸런서 세부정보, 백엔드 집합, 백엔드 집합 세부정보로 이동하고 백엔드를 누르면 두 개의 백엔드 서버가 표시됩니다.

    Bacnend 서버

    이제 OCI WAF를 사용하거나 사용하지 않고 OCI 로드 밸런서 성능을 테스트합니다.

작업 5: 벤치마크 분석 포위 – OCI WAF 사용 및 사용 안함 OCI 로드 밸런서 성능

이제 OCI 로드 밸런서 및 OCI WAF가 백엔드 서버와 함께 구성되었으므로 Siege가 HTTPS 연결을 통해 작업할 수 있도록 몇 가지 초기 단계를 수행해야 합니다.

OCI 로드 밸런서 및 백엔드 서버에 설치된 서버 인증서에 서명하기 위해 CA(Lab Certification Authority) 인증서를 사용했습니다. 그러나 OCI 로드 밸런서가 TLS 접속을 종료하고 백엔드 서버에 대한 두번째 TLS 접속을 설정하므로 OCI 로드 밸런서의 서버 인증서에만 집중하면 됩니다. 이 두 번째 연결은 Siege (클라이언트)에 투명합니다.

예를 들어, CA 인증서 파일의 이름은 my-ca.crt입니다.

  1. Linux 시스템에 my-ca.cert를 업로드하고 sudo cp my-ca.crt /etc/pki/ca-trust/source/anchors/ 명령을 실행합니다. 그러면 CA가 신뢰할 수 있는 CA 저장소에 복사됩니다.

  2. 다음 명령을 실행하여 신뢰할 수 있는 CA 저장소를 업데이트합니다.

    sudo update-ca-trust extract
    

    또는 Oracle Linux 9를 사용하는 경우

    sudo update-ca-trust
    
  3. 다음 명령을 실행하여 설치를 확인합니다.

    openssl verify /etc/pki/ca-trust/source/anchors/my-ca.crt
    

    모든 신뢰할 수 있는 인증서를 나열합니다.

    trust list | grep "my-ca"
    
  4. 이제 Siege가 HTTPS를 통해 OCI 로드 밸런서에 연결되면 수신된 인증서를 확인할 수 있습니다. www.fwtest.com를 CN(일반 이름) 및 SAN(주제 대체 이름)으로 사용하고 있습니다.

    전용 DNS를 사용하지 않으므로 Linux 파일 /etc/hosts 파일에 다음 항목을 추가하면 됩니다.

    LB 전용 IP www.fwtest.com

    예를 들면 다음과 같습니다.

    127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4\
    ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6\
    192.168.4.99 linux9-siege-intravcntest-v2.siegesubnet.vcn1inter.oraclevcn.com linux9-siege-intravcntest-v2\
    192.168.6.237  www.fwtest.com  <--- Add this entry
    
  5. 로드 밸런서 프라이빗 IP를 가져오려면 네트워킹, 로드 밸런서, 로드 밸런서로 이동하고 로드 밸런서 세부정보를 누릅니다.

    Siege 설치

  6. 이전에 설치한 OCI 로드 밸런서 서버 인증서를 포함하여 TLS 접속을 테스트하려면 다음 명령을 실행합니다.

    openssl s_client -connect www.fwtest.com:443 -tls1_2
    

    다음과 같이 얻을 수 있습니다.

    LB 접속 검사

  7. 무작위 HTTP 헤더 크기를 사용하는 250개의 동시 HTTPS 클라이언트인 Siege를 사용하여 첫번째 테스트를 수행합니다.

    siege -c 250  -t1m --header="User-Agent: $(head -c 500 </dev/urandom | base64)"  https://www.fwtest.com/request.php
    
    Lifting the server siege...\
    Transactions:              237238    hits\
    Availability:                 100.00 %\
    Elapsed time:                  60.79 secs\
    Data transferred:             192.67 MB\
    **Response time:                 27.81 ms**\
    **Transaction rate:            3902.58 trans/sec**\
    **Throughput:                     3.17 MB/sec**\
    Concurrency:                  108.51\
    **Successful transactions:   237421**\
    Failed transactions:            0\
    Longest transaction:          440.00 ms\
    Shortest transaction:           0.00 ms\
    

    이제 OCI WAF 없이 동일한 명령을 실행합니다.

    Lifting the server siege...
    Transactions:              238843    hits\
    Availability:                 100.00 %\
    Elapsed time:                  60.54 secs\
    Data transferred:             193.98 MB\
    **Response time:                 17.97 ms**\
    **Transaction rate:            3945.21 trans/sec**\
    **Throughput:                     3.20 MB/sec**\
    Concurrency:                   70.88\
    **Successful transactions:   239018**\
    Failed transactions:            0\
    Longest transaction:          540.00 ms\
    Shortest transaction:           0.00 ms\
    

OCI WAF의 성능 영향(Siege Benchmark)

주요 Metrics 비교:

측정항목 OCI WAF 사용 OCI WAF 사용 안함 영향
트랜잭션 237,238 238,843 -1,605 (-0.67%)
가용성(%) 100.00 100.00 변경사항 없음
경과 시간(초) 60.79 60.54 +0.25s
전송된 데이터(MB) 192.67 193.98 -1.31MB (-0.68%)
응답 시간(밀리초) 27.81 17.97 +9.84밀리초 (+54.8%)
트랜잭션 속도(트랜잭션/초) 3,902.58 3,945.21 -42.63 트랜잭션/초 (-1.08%)
처리량(MB/초) 3.17 3.20 -0.03 MB/초 (-0.94%)
동시성 108.51 70.88 +37.63(OCI WAF의 경우 53.1% 더 높음)

관찰 사항 및 주요 요점:

결론

Note: The test results obtained using Siege depend highly on various factors, including network conditions, hardware/software configurations, and software settings specific to your environment. As such, these results may differ significantly from those in other environments. Do not use these results to make any definitive conclusions about the expected performance of your network or equipment. They should be considered as indicative rather than absolute measures of performance.

확인

추가 학습 자원

docs.oracle.com/learn에서 다른 실습을 탐색하거나 Oracle Learning YouTube 채널에서 더 많은 무료 학습 콘텐츠에 액세스하세요. 또한 Oracle Learning Explorer가 되려면 education.oracle.com/learning-explorer을 방문하십시오.

제품 설명서는 Oracle Help Center를 참조하십시오.