
연동 구조와 운영 기준
모델 호출 흐름부터 IAM 인증, 배포 환경 선택과 팀별 사용량 관리까지 설계 기준을 정리합니다.
LiteLLM Proxy는 애플리케이션과 Amazon Bedrock 사이에서 모델 호출과 접근 정책을 관리하는 LLM Gateway입니다. AWS 배포 방식, IAM 인증, 팀별 비용 관리와 도입 판단 기준을 설명합니다.
LiteLLM이란 무엇인가
LiteLLM은 AWS의 관리형 서비스가 아니라 여러 모델 제공자의 호출 방식을 연결하는 도구입니다. AWS에서 LiteLLM Proxy를 운영하면 애플리케이션의 요청을 Amazon Bedrock으로 전달하는 LLM Gateway를 구성할 수 있습니다. 모델 추론은 Bedrock에서 수행합니다.
사용 방식은 SDK와 Proxy로 나뉩니다. SDK는 애플리케이션 코드 안에 넣어 사용하고, Proxy는 별도 서버로 실행해 여러 애플리케이션의 공통 진입점으로 사용합니다. 이 글에서는 AWS에 LiteLLM Proxy를 배포하고 Amazon Bedrock에 연결하는 구조를 다룹니다.
공통 API를 사용해도 모델별 기능과 입력 제한까지 같아지는 것은 아닙니다. 모델을 교체할 때는 도구 호출, 출력 형식, 스트리밍 동작을 별도로 확인해야 합니다.
LiteLLM 공식 문서에서 SDK와 Proxy의 역할을 확인할 수 있습니다.
공식 문서 확인일은 2026년 9월 5일입니다. 이 글은 구성과 운영 판단을 설명하는 초안이며, 예시의 AWS 실제 호출은 검증하지 않았습니다.
Amazon Bedrock 앞에 LiteLLM을 두는 이유
Amazon Bedrock 앞에 LiteLLM Proxy를 두는 주된 이유는 여러 애플리케이션의 모델 접근 정책과 사용량 관리를 공통화하기 위해서입니다. 단일 애플리케이션의 요구를 Bedrock 직접 호출로 충족한다면 별도 Gateway가 필수는 아닙니다.
가상의 예로, 문서 제목을 제안하는 도구와 고객 문의를 분류하는 도구를 서로 다른 개발팀이 운영한다고 생각해 보겠습니다. 두 팀이 각각 모델 접근 설정과 사용량 집계를 구현하면 정책을 바꿀 때 수정 지점도 늘어납니다.
Proxy를 공통 진입점으로 두면 애플리케이션이 호출할 모델 이름과 접근 정책을 한곳에서 관리하는 구성을 만들 수 있습니다. 다만 공통 진입점에 장애가 생기면 여러 서비스가 영향을 받으므로 운영 책임도 함께 정해야 합니다.
Bedrock 자체도 Converse API를 통해 여러 모델의 호출 형식을 통일할 수 있습니다. 따라서 모델을 여러 개 사용한다는 이유만으로 별도 Gateway가 필요한 것은 아닙니다. 팀별 통제나 다른 제공자와의 연동이 필요한지부터 확인합니다.
| 비교 항목 | Bedrock 직접 호출 | LiteLLM Proxy 경유 |
|---|---|---|
| 호출 경로 | 애플리케이션에서 Bedrock으로 전달 | 애플리케이션에서 Proxy를 거쳐 전달 |
| 정책 적용 위치 | 각 애플리케이션과 AWS 권한 체계 | Proxy 정책과 AWS 권한 체계를 함께 설계 |
| 운영 범위 | 애플리케이션과 AWS 연동 관리 | Proxy의 가용성·배포·상태 저장소 관리 추가 |
AWS에서 전체 요청 흐름 이해하기
클라이언트는 Proxy 주소로 요청을 보내면서 모델 별칭을 지정합니다. Proxy는 요청자의 접근 권한을 확인하고, 별칭에 연결된 Bedrock 모델을 찾아 호출합니다. Bedrock의 응답은 다시 Proxy를 거쳐 클라이언트에 전달됩니다.
예를 들어 애플리케이션에는 demo-assistant라는 이름만 노출하고, 실제 모델 식별자는 Proxy 설정에 둡니다. 모델 연결을 바꾸더라도 애플리케이션의 별칭을 유지할 수 있지만, 응답 품질과 기능 호환성 검증은 필요합니다.
모델의 실행 위치는 Bedrock입니다. Proxy 서버에 GPU를 추가한다고 연결된 Bedrock 모델의 추론 속도가 직접 빨라지는 것은 아닙니다.
AWS 배포 방식 선택하기
처음부터 복잡한 배포 구조를 정하기보다 현재 운영 중인 기반과 담당자의 관리 범위를 확인합니다. 작은 검증 환경에서는 단일 실행 환경으로 호출 흐름을 이해하고, 운영 전환 시 가용성과 확장 요구를 반영하는 편이 단계별 검증에 유리합니다.
ECS와 EKS는 컨테이너 운영 방식의 선택이며, Fargate는 컨테이너 실행에 사용할 수 있는 컴퓨팅 방식입니다. 세 가지를 완전히 같은 층위의 제품으로 비교하지 않도록 구분합니다.
운영 구성에서는 요청을 받는 경로, Proxy 실행 환경, Bedrock에 도달하는 통신 경로를 각각 설계합니다. 여러 Proxy를 실행한다면 키와 사용량 같은 상태를 어떻게 공유할지도 검토해야 합니다.
배포 환경별 선택 기준은 EKS·ECS·Fargate 차이와 선택 기준에서 확인할 수 있습니다.
| 배포 방식 | 검토할 상황 | 운영 시 확인할 내용 |
|---|---|---|
| EC2 | 서버에서 직접 설치와 동작을 확인하는 경우 | 운영체제 업데이트, 프로세스 복구, 증설 |
| ECS | 기존 ECS 기반으로 컨테이너를 운영하는 경우 | Task Role, 서비스 배포, 로드 밸런서 연결 |
| EKS | 기존 Kubernetes 운영 기반을 활용하는 경우 | Pod 권한, 배포 정책, 클러스터 관리 부담 |
인증 구조 이해하기: 사용자 키와 IAM Role
인증은 두 구간으로 나눠 생각해야 합니다. 애플리케이션이 Proxy에 접근할 권한과, Proxy가 Bedrock을 호출할 권한은 별개입니다. 클라이언트 키가 정상이어도 AWS 권한이 부족하면 모델 호출은 실패할 수 있습니다.
이 글은 AWS에서 실행되는 Proxy에 IAM Role을 부여하는 구성을 기준으로 합니다. 장기 AWS 자격 증명을 본문이나 설정 파일에 넣지 않고, 실행 환경에 연결된 역할에서 임시 자격 증명을 얻도록 구성합니다.
ECS에서는 컨테이너 내부 애플리케이션의 AWS 접근 권한을 Task Role에 부여합니다. 이미지 가져오기 등 ECS 실행 작업에 쓰이는 Task Execution Role과 혼동하지 않아야 합니다. AWS Task Role 문서에서 역할의 적용 범위를 확인할 수 있습니다.
EKS에서는 EKS Pod Identity 또는 IRSA 같은 Pod 단위 권한 구성을 검토합니다. 선택한 방식에 필요한 SDK 지원과 설정 조건을 확인합니다. EKS Pod Identity 문서를 참고할 수 있습니다.
Bedrock 호출 권한은 사용할 모델과 호출 방식에 맞춰 제한합니다. Converse 호출에는 bedrock:InvokeModel, 스트리밍에는 bedrock:InvokeModelWithResponseStream 권한이 관련됩니다. Inference Profile을 쓰면 그에 맞는 리소스 범위도 확인해야 합니다. Bedrock 추론 사전 조건을 기준으로 점검합니다.
AWS 권한의 기본 개념은 IAM Role·User·Policy 차이에서 이어서 확인할 수 있습니다.
LiteLLM과 Amazon Bedrock 연결하기
다음은 연결 관계를 보여 주는 config.yaml 초안입니다. BEDROCK_MODEL_ID_TO_REPLACE는 실제 모델명이 아니므로, 사용할 리전에서 호출 가능한 모델 또는 Inference Profile 식별자로 교체해야 합니다. 리전과 모델 접근 조건을 확인하기 전에는 그대로 실행할 수 없습니다.
model_name은 애플리케이션이 요청할 별칭이고, litellm_params의 model은 제공자 경로와 실제 모델 식별자를 연결합니다. AWS_REGION_NAME 환경 변수에는 대상 리전을 설정합니다. AWS 자격 증명은 앞서 구성한 IAM Role을 통해 얻는 방식을 전제로 합니다.
LITELLM_MASTER_KEY 환경 변수에는 별도로 생성한 관리자용 비밀 값을 주입합니다. 관리자 키는 애플리케이션 배포용으로 공유하지 않습니다. 아래 설정은 모델 연결의 최소 골격이며, 팀별 Virtual Key 운영에 필요한 데이터베이스 설정은 다음 절에서 설명합니다.
설치할 LiteLLM 버전을 정하고 proxy 의존성과 boto3를 준비한 뒤, litellm --config config.yaml 명령으로 설정을 읽을 수 있습니다. 실제 배포에서는 패키지나 컨테이너 버전을 고정하고 접근 가능한 네트워크 범위를 제한합니다.
LiteLLM Bedrock 연결 문서와 Proxy 설정 문서에서 배포 버전의 지원 설정을 확인합니다.
애플리케이션에서 모델 호출하기
클라이언트는 Proxy의 호출 주소와 발급받은 키, 모델 별칭을 사용합니다. 아래 요청 본문은 가상의 전시 안내 문구를 줄이는 예시이며, 실제 업무 내용이나 개인 정보를 포함하지 않습니다.
POST /v1/chat/completions 경로로 다음 JSON을 전달합니다. Authorization 헤더에는 발급된 클라이언트 키를 Bearer 방식으로 넣고 Content-Type은 application/json으로 지정합니다. 실제 주소와 키는 실행 환경에서 주입하며 본문에 기록하지 않습니다.
일반 응답에서는 반환된 메시지와 오류 여부를 확인합니다. 스트리밍을 검증할 때는 stream 값을 true로 변경하고 클라이언트가 연속 이벤트를 처리하는지 확인합니다. 앞단 로드 밸런서와 클라이언트의 제한 시간도 응답 방식에 맞게 점검합니다.
이 예시는 요청 형태를 설명하는 초안이며 AWS 환경에서 실행 검증한 결과는 아닙니다. 모델별 지원 매개변수와 응답 동작은 실제 연결 후 확인해야 합니다.
팀별 사용량과 비용 관리하기
Virtual Key는 Proxy가 관리하는 호출 키입니다. 키별로 접근할 모델과 사용 정책을 구분하면 어떤 용도의 요청인지 나눠 관리하기 쉬워집니다. AWS IAM 자격 증명을 클라이언트마다 전달하는 것과는 다른 구조입니다.
문서상의 Virtual Key 구성에는 PostgreSQL 연결과 관리자 키가 필요합니다. DATABASE_URL을 안전하게 주입하고 데이터베이스 연결을 준비한 뒤, 관리 경로인 /key/generate에서 키를 생성하는 흐름을 사용합니다. Virtual Key 공식 문서를 기준으로 설정합니다.
가상의 demo-editor와 demo-helper를 별도 사용 단위로 두고, 허용 모델·예산 기간·호출 제한을 각각 정하는 방식으로 설계할 수 있습니다. 배포할 버전과 사용 기능의 제공 조건은 적용 전에 확인합니다.
Gateway에 기록되는 사용량만으로 AWS 전체 비용을 설명할 수는 없습니다. 모델 호출 비용 외에 Proxy 실행 환경, 데이터베이스, 로드 밸런서와 네트워크 비용도 함께 봐야 합니다. 비용 집계는 AWS 청구 내역과 대조하고, 예산 제한은 진행 중인 호출과 동시 요청이 있는 조건에서도 검증합니다.
운영 환경에서 확인할 보안·안정성 기준
Proxy는 여러 애플리케이션이 공유하는 서비스가 되므로 관리 기능과 일반 호출 경로의 접근 범위를 정해야 합니다. 외부 통신에는 HTTPS를 적용하고, 관리자 키와 데이터베이스 연결 정보는 비밀 값 저장 체계로 관리합니다.
관측 지표는 요청 수, 오류율, 응답 시간, 사용량부터 정합니다. 요청 본문과 응답 전체를 저장하면 민감한 내용이 로그에 남을 수 있으므로 기록 필요성과 보존 기간을 먼저 결정합니다.
재시도는 일시 오류 복구에 도움이 되지만, 호출량과 비용을 늘릴 수 있습니다. 클라이언트와 Proxy가 동시에 반복 요청을 만들지 않도록 재시도 횟수와 전체 대기 시간을 함께 설계합니다.
다른 모델로 전환하는 복구 방식을 도입한다면 가격뿐 아니라 답변 품질, 도구 호출 호환성, 처리 리전을 확인해야 합니다. 복구 성공 여부는 정상 응답 코드만으로 판단하지 않고 애플리케이션 결과까지 검증합니다.
호출 실패 시 어디부터 확인할까
문제가 생기면 요청이 어느 구간까지 도달했는지 먼저 확인합니다. Proxy에 도착하지 않은 요청과 Bedrock에서 거절된 요청을 같은 방식으로 조사하면 확인 범위가 불필요하게 넓어집니다.
상태 코드 하나로 원인을 확정하지 말고 Proxy 로그와 제공자 오류 내용을 함께 확인합니다. 로그를 공유할 때는 키·계정 정보·입력 내용을 제거합니다.
| 확인 구간 | 주요 점검 내용 |
|---|---|
| 클라이언트 → Proxy | 주소, TLS, 접근 경로, 클라이언트 인증 |
| Proxy 내부 | 모델 별칭, 허용 모델, 설정 로딩, 데이터베이스 상태 |
| Proxy → AWS 인증 | 실행 환경의 역할, 자격 증명 취득, IAM 권한 |
| Bedrock 모델 호출 | 리전, 모델 또는 Inference Profile 식별자, 접근 조건, 호출 한도 |
| 응답 전달 | 클라이언트 제한 시간, 스트리밍 처리, 중간 연결 종료 |
LiteLLM 도입 판단 기준
도입 여부는 모델 개수보다 공통 관리가 필요한 범위로 판단합니다. 여러 팀의 접근 정책과 사용량을 한곳에서 관리할 필요가 크고 운영 담당자가 있다면 Gateway를 검토할 수 있습니다.
단일 애플리케이션에서 Bedrock만 사용하고 별도 통제 요구가 적다면 직접 호출부터 시작하는 선택도 가능합니다. 기존 구성으로 해결하기 어려운 요구를 먼저 적고, Proxy를 추가했을 때 얻는 효과와 운영 비용을 비교합니다.
아래 표는 특정 제품의 성능 비교가 아니라 시스템 설계 시 사용할 판단 기준입니다.
| 판단 항목 | 도입 검토 상황 | 직접 호출로 시작할 상황 |
|---|---|---|
| 사용 범위 | 여러 팀·애플리케이션의 공통 정책 필요 | 단일 애플리케이션 중심 |
| 제공자 연동 | 다른 제공자까지 공통 호출 방식 필요 | Bedrock 연동으로 요구 충족 |
| 사용량 통제 | 키별 사용량·접근 모델을 중앙에서 관리 | 애플리케이션별 관리로 충분 |
| 운영 여건 | Gateway 배포·복구 담당자 확보 | 추가 서비스 운영 여력이 제한적 |
SUMMARY
FAQ
LiteLLM이 모델을 직접 실행하나요?
이 글의 구조에서는 Amazon Bedrock이 모델 추론을 수행하고 LiteLLM은 요청과 응답을 중계합니다.
Bedrock 모델을 여러 개 쓰면 LiteLLM이 꼭 필요한가요?
필수는 아닙니다. Bedrock 직접 호출로 요구를 충족하는지 확인하고 공통 정책과 제공자 통합 필요성을 기준으로 판단합니다.
EKS가 꼭 필요한가요?
아닙니다. EC2나 ECS도 검토할 수 있으며, 기존 운영 기반과 관리 여건에 따라 선택합니다.
최소 설정만으로 팀별 키 관리까지 되나요?
앞의 설정은 모델 연결 골격입니다. 설명한 Virtual Key 운영에는 PostgreSQL 연결과 관리자 키 준비가 추가로 필요합니다.
LiteLLM은 여러 애플리케이션의 모델 접근과 사용 정책을 공통으로 관리하려는 상황에서 검토할 수 있습니다. 먼저 단일 모델의 요청 흐름과 두 단계 인증을 확인하고, 키 관리와 비용 집계, 장애 대응을 순서대로 확장하는 것이 좋습니다. 도입 전에는 공통 관리로 줄일 수 있는 작업과 새로 맡아야 할 운영 책임을 함께 비교해야 합니다.
'AWS Guides' 카테고리의 다른 글
| AWS Network Firewall 구성 방식 총정리 단일 NFW 중앙 Inspection VPC 이중 방화벽 설계 비교 (0) | 2026.09.03 |
|---|---|
| AWS Control Tower 설계 기준 정리: Landing Zone, OU 구조, Control 정책, 초기 배포 방식 (0) | 2026.09.03 |
| EKS에서 mTLS를 적용하는 방식: Service Mesh와 Gateway 기준 (0) | 2026.09.03 |
| AWS Load Balancer Controller Deep Dive: EKS에서 ALB와 NLB가 생성되는 원리 (0) | 2026.08.31 |
| 도메인과 서브도메인 차이 이해하기: AWS와 애플리케이션에서 트래픽을 나누는 방식 (0) | 2026.08.31 |








