APISIX 플러그인 오케스트레이션 및 게이트웨이 구성에 대한 간략한 가이드

Apache APISIX는 API 및 마이크로서비스 관리의 효율성을 높이기 위해 설계된 강력한 클라우드 네이티브 API 게이트웨이입니다. 이번 기사에서는 APISIX의 플러그인 오케스트레이션 및 게이트웨이 구성에 대해 살펴보겠습니다.

Young-jae

Young-jae

14 October 2025

APISIX 플러그인 오케스트레이션 및 게이트웨이 구성에 대한 간략한 가이드

Apidog 엔터프라이즈

온프레미스 배포

SSO & RBAC

SOC 2 준수

Apidog Enterprise 살펴보기

현대 API 게이트웨이 아키텍처에서 플러그인을 동적으로 오케스트레이션할 수 있는 기능은 트래픽 관리 및 요청 처리의 중요한 발전을 나타냅니다. Apache APISIX의 플러그인 오케스트레이션 시스템은 지향 비순환 그래프(DAG) 실행 모델을 통해 복잡한 API 시나리오를 처리하는 정교한 접근 방식을 구현합니다.

💡
시작하기 전에:

API 문서 작성에 여전히 어려움을 겪고 계신가요? 전문적이고 동적인 API 문서를 자동으로 생성하고 싶으신가요?

APIDog를 사용하여 API 문서를 자동으로 최신 상태로 유지하세요!
API 매개변수를 변경할 때마다 문서를 업데이트하는 귀찮음이 없습니다. APIDog는 항상 모든 것을 업데이트합니다!

APIDog로 API 테스트 효율성을 높이세요!
APIDog: 항상 최신 상태의 API 문서를 유지하세요
button

APISIX의 플러그인 오케스트레이션, 간단한 개요

APISIX에서의 플러그인 오케스트레이션은 플러그인 실행 결과에 따라 조건부 처리 경로를 가능하게 하여 사용자 정의 코드를 요구하지 않고 동적 요청 처리를 가능하게 합니다. 이 시스템은 제어 평면과 데이터 평면 간의 분리를 유지하면서 최적화된 상태 관리와 인메모리 처리로 높은 성능을 보장하는 분산 아키텍처를 통해 작동합니다.

APISIX의 플러그인 오케스트레이션

오케스트레이션 엔진은 실행 컨텍스트를 유지하면서 복잡한 조건 논리를 가능하게 하는 정교한 상태 관리 시스템을 통해 플러그인을 처리합니다. 체인의 각 플러그인은 후속 플러그인의 실행 경로에 영향을 미칠 수 있어, 동적이고 반응적인 처리 흐름을 생성합니다. 이 접근 방식은 다음과 같은 시나리오를 가능하게 합니다:

기술적 구현은 여러 핵심 구성 요소를 활용합니다:

  1. 플러그인 종속성과 흐름을 관리하는 DAG 실행 엔진
  2. 플러그인 실행 컨텍스트를 유지하는 상태 관리 시스템
  3. 고성능 작동을 위한 최적화된 인메모리 처리 시스템
  4. 실시간 업데이트를 위한 etcd를 사용하는 분산 구성 시스템

이 아키텍처는 높은 성능을 유지하면서 복잡한 API 관리 시나리오를 가능하게 하며, 상태 관리와 플러그인 실행 경로의 신중한 최적화를 통해 이를 달성합니다. 이 시스템은 동적 플러그인 로드, 사용자 정의 플러그인 통합 및 복잡한 조건 논리를 지원하며, 생산 배치를 위한 성능 특성을 유지합니다.

APISIX의 플러그인 오케스트레이션 시스템의 기술 구성 요소 및 실행 흐름

APISIX의 플러그인 오케스트레이션에서 "Context"는 플러그인 실행 생애 주기 동안 지속되는 공유 상태를 나타냅니다. 이 컨텍스트는 여러 실행 단계 사이에서 작동합니다: rewrite, access, before_proxy, header_filter, body_filter, 및 log. 예를 들어, 실행 컨텍스트는 다음을 유지합니다:

이 아키텍처를 구현함으로써 APISIX는 코드가 아닌 구성을 통해 복잡한 API 관리 요구 사항을 처리할 수 있는 유연하면서도 강력한 시스템을 제공합니다. 이는 운영 복잡성을 대폭 줄이면서 시스템의 신뢰성과 성능을 유지합니다.

인프라 설정, 첫 번째로 중요한 것

안전한 APISIX 배포의 기초는 적절한 네트워크 격리 및 구성으로 시작됩니다. 먼저 특정 서브넷 구성으로 전용 네트워크를 만듭니다:

docker network create \
--driver=bridge \
--subnet=172.18.0.0/16 \
--ip-range=172.18.5.0/24 \
--gateway=172.18.5.254 \
apisix

이 네트워크 구성은 APISIX 구성 요소 간의 적절한 격리 및 통신을 보장합니다.

핵심 구성 요소 배포

ETCD 구성

ETCD는 구성 센터 역할을 합니다. 적절한 보안 설정으로 배포합니다:

docker run -it --name etcd-server \
-v $(pwd)/example/etcd_conf/etcd.conf.yml:/opt/bitnami/etcd/conf/etcd.conf.yml \
-p 2379:2379 \
-p 2380:2380 \
--network apisix \
--ip 172.18.5.10 \
--env ALLOW_NONE_AUTHENTICATION=yes bitnami/etcd:3.4.9

이 구성은 데이터 지속성과 네트워크 접근성을 보장합니다.

APISIX 핵심 설치

종합적인 로그 및 구성을 포함하여 APISIX를 배포합니다:

docker run --name test-api-gateway \
-v $(pwd)/example/apisix_conf/config.yaml:/usr/local/apisix/conf/config.yaml \
-v $(pwd)/example/apisix_log:/usr/local/apisix/logs \
-p 9080:9080 \
-p 9091:9091 \
-p 9443:9443 \
--network apisix \
--ip 172.18.5.11 \
-d apache/apisix

이 설정은 구성 및 로그를 위한 볼륨 마운트를 포함합니다.

보안 구현

인증 레이어

APISIX는 강력한 키 기반 인증을 제공합니다. 완전한 구현은 다음과 같습니다:

# 인증과 함께 소비자 생성
curl http://127.0.0.1:9180/apisix/admin/consumers -H "X-API-KEY: $admin_key" -X PUT -d '
{
    "username": "jack",
    "plugins": {
        "key-auth": {
            "key": "auth-one"
        }
    }
}'

# 인증이 있는 경로 구성
curl http://127.0.0.1:9180/apisix/admin/routes/1 -H "X-API-KEY: $admin_key" -X PUT -d '
{
    "methods": ["GET"],
    "uri": "/index.html",
    "plugins": {
        "key-auth": {}
    },
    "upstream": {
        "type": "roundrobin",
        "nodes": {
            "127.0.0.1:1980": 1
        }
    }
}'

이 구성은 접근에 API 키가 필요한 안전한 인증 레이어를 생성합니다.

속도 제한 구현

정교한 속도 제한으로 API를 남용으로부터 보호하세요:

curl http://127.0.0.1:9180/apisix/admin/routes/1 -H "X-API-KEY: $admin_key" -X PUT -d '
{
    "uri": "/index.html",
    "plugins": {
        "limit-count": {
            "count": 2,
            "time_window": 60,
            "rejected_code": 503,
            "key": "remote_addr",
            "policy": "redis",
            "redis_host": "127.0.0.1",
            "redis_port": 6379,
            "redis_password": "password",
            "redis_database": 1,
            "redis_timeout": 1001
        }
    },
    "upstream": {
        "type": "roundrobin",
        "nodes": {
            "127.0.0.1:1980": 1
        }
    }
}'

이 구성은 Redis 기반의 분산 속도 제한을 구현합니다.

고급 속도 제한 전략

소비자 차별화를 통한 클러스터 수준의 속도 제한:

curl -i http://127.0.0.1:9180/apisix/admin/routes/1 \
-H "X-API-KEY: $admin_key" -X PUT -d '
{
    "uri": "/index.html",
    "plugins": {
        "limit-count": {
            "count": 2,
            "time_window": 60,
            "rejected_code": 503,
            "key_type": "var_combination",
            "key": "$consumer_name $remote_addr"
        }
    },
    "upstream": {
        "type": "roundrobin",
        "nodes": {
            "127.0.0.1:9001": 1
        }
    }
}'

이 구성은 소비자 정체성과 IP 주소를 기반으로 한 정교한 속도 제한을 허용합니다.

건강 모니터링 및 메트릭

Prometheus 통합

종합적인 메트릭 수집을 활성화합니다:

curl -i http://127.0.0.1:9180/apisix/admin/routes/1 \
-H "X-API-KEY: $admin_key" -X PUT -d '
{
    "uri": "/metrics",
    "plugins": {
        "prometheus": {
            "prefer_name": true,
            "metrics": {
                "http_status": true,
                "latency": true,
                "bandwidth": true
            }
        }
    },
    "upstream": {
        "type": "roundrobin",
        "nodes": {
            "prometheus:9090": 1
        }
    }
}'

이 구성은 모니터링 및 분석을 위한 상세한 메트릭 수집을 가능하게 합니다.

시스템 관리

서비스 초기화

설치 후, 적절한 구성으로 시스템을 초기화합니다:

# 구성 초기화
sudo apisix init

# 서비스 시작
sudo apisix start

# systemd 기반 시스템의 경우
systemctl start apisix

이 명령은 시스템 초기화 및 서비스 관리를 보장합니다.

구성 업데이트

환경을 강화하기 위해 관리 API 키를 업데이트합니다:

deployment:
  admin:
    admin_key:
      - name: "admin"
        key: newsupersecurekey
        role: admin

이 구성은 관리 API의 보안을 강화합니다.

결론

이러한 구성의 종합적인 구현은 강력하고 안전하며 확장 가능한 API 게이트웨이 인프라를 생성합니다. 인증, 속도 제한 및 모니터링의 조합은 보안과 신뢰성을 보장합니다. 관리자 키 업데이트 및 시스템 메트릭 모니터링을 포함한 정기적인 유지 관리가 배포의 건강을 유지하는 데 중요합니다.

이러한 구성을 특정 요구 사항 및 보안 필요에 따라 조정해야 합니다. APISIX의 모듈화된 특성은 플러그인 시스템을 통해 간편한 확장 및 사용자 정의를 가능하게 하여 단순한 API 관리 시나리오와 복잡한 API 관리 시나리오 모두에 적합합니다.

Explore more

EXAONE 3.0 7.8B 모델을 로컬에서 실행하는 방법

EXAONE 3.0 7.8B 모델을 로컬에서 실행하는 방법

이 글에서는 EXAONE 3.0 7.8B 모델을 자신의 컴퓨터에서 설치하고 실행하는 방법을 단계별로 상세히 알아보겠습니다

25 March 2025

Claude 3.7 소넷 API에 접근하고 Apidog을 사용하여 테스트하는 방법

Claude 3.7 소넷 API에 접근하고 Apidog을 사용하여 테스트하는 방법

Anthropic의 최신 출시인 Claude 3.7 Sonnet에 대해 기대하고 있으며, Apidog로 테스트하면서 API를 통한 기능을 탐색하고 싶다면, 올바른 장소에 오신 것입니다. 💡시작하기 전에 간단한 팁을 드리겠습니다: 오늘 Apidog를 무료로 다운로드하여 API 테스트 프로세스를 간소화하세요. 특히 Claude 3.7 Sonnet의 강력한 기능을 탐색하는 데 적합한 도구로, 최첨단 AI 모델을 테스트하려는 개발자에게 이상적입니다!버튼 Claude 3.7 Sonnet이 중요한 이유로 시작해봅시다. Anthropic은 최근 2025년 2월 24일에 이 모델을 공개했으며, 즉시 및 단계별 응답을 위한 하이브리드 추론 기능을 갖춘 가장 지능적인 창작물로 자리 잡았습니다. 이는 코딩, 추론 등 여러 부분에서 혁신적인 변화를 가져오며, 현재 e Anthropic API, Amazon Bedrock, Google Cloud의 Vertex AI를 통해 사용할 수 있습니다. 이 튜

25 February 2025

GitHub Copilot 무료: 어떻게 시작하나요?

GitHub Copilot 무료: 어떻게 시작하나요?

GitHub Copilot 무료 사용법을 알아보세요. 이 AI 기반 코딩 도우미에 대한 이 가이드는 VS Code와 JetBrains와 같은 인기 IDE의 설정 단계를 다루며, 무료로 스마트한 코드 제안 및 완성을 통해 생산성을 높일 수 있도록 도와줍니다!

19 December 2024

Apidog에서 API 설계-첫 번째 연습

API를 더 쉽게 구축하고 사용하는 방법을 발견하세요