본문 바로가기
AI 뉴스

AWS Bedrock OpenAI 모델 사용법 완벽 정리 (2026)

by 정부우르사 2026. 6. 2.
반응형

"GPT-5.5를 OpenAI 키 없이, AWS 계정 안에서 바로 부를 수 있다고?"


📌 핵심 3줄 요약

  • 2026년 6월 1일 AWS Bedrock OpenAI 정식 출시. GPT-5.5·GPT-5.4·Codex·gpt-oss 계열을 AWS 계정 한 곳에서 호출할 수 있다.
  • OpenAI 직접 API와 달리 별도 OpenAI 키가 필요 없다. AWS IAM + Bedrock 모델 액세스만 있으면 boto3로 바로 부른다.
  • Claude on Bedrock과 같은 IAM·청구·VPC 흐름에 합류한다. 사내 거버넌스에 그대로 묶을 수 있다는 게 가장 큰 차이다.

🗓️ 무엇이 어떻게 바뀌었나

OpenAI 모델이 처음으로 AWS Bedrock 위에 올라왔다. 6월 1일 GA 라인업은 GPT-5.5, GPT-5.4, gpt-oss-20b/120b 오픈 웨이트 계열, 그리고 코딩 에이전트 Codex까지다. Bedrock Managed Agents는 같은 발표에 묶여 있지만 현재는 Limited Preview 단계라 별도 신청이 필요하다.

달라지는 건 호출 방식이다. OpenAI 직접 API는 api.openai.com에 OpenAI 키를 보낸다. Bedrock 경유는 그 자리를 AWS 자격증명이 대신하고, 모델 ID·엔드포인트·요금 주체가 전부 AWS 쪽으로 옮겨온다.

💡 핵심 한 줄

"내가 가진 OpenAI API 키로 호출하는 게 아니다." Bedrock OpenAI는 AWS IAM·Bedrock 모델 액세스로 호출하는 별도 경로다. 청구도 AWS 청구서에 합산된다.


🆚 OpenAI 직접 호출 vs Bedrock 경유

항목 OpenAI 직접 Bedrock 경유
인증 OpenAI API 키 AWS IAM 또는 Bedrock API key
엔드포인트 api.openai.com bedrock-runtime.<region>.amazonaws.com
청구 OpenAI 별도 청구 AWS 청구서에 합산
권한 관리 OpenAI 조직 콘솔 IAM 정책 + Bedrock 모델 액세스
네트워크 공용 인터넷 VPC 엔드포인트 활용 가능
Guardrails 자체 모더레이션 API Bedrock Guardrails 헤더로 적용

🚀 5분 만에 첫 호출까지

AWS CLI와 boto3가 깔려 있다면 네 단계로 끝난다.

  1. 리전 확인 — GPT-5.5는 us-east-2(Ohio), GPT-5.4는 us-east-2·us-west-2(Oregon) 지원.
  2. 모델 액세스 요청 — Bedrock 콘솔의 "Model access"에서 OpenAI 모델을 선택해 액세스 요청.
  3. IAM — 호출 주체에 bedrock:InvokeModel, bedrock:Converse 권한을 붙인다.
  4. boto3 호출 — 아래 코드 카드의 패턴을 복사해 모델 ID만 바꾼다.

bedrock_openai_hello.py · Python

import boto3
from botocore.exceptions import ClientError

client = boto3.client("bedrock-runtime", region_name="us-east-2")

# 정확한 모델 ID는 Bedrock 콘솔 > Model catalog에서 확인
# 예: "openai.gpt-oss-20b-1:0", "openai.gpt-5.5" 등
model_id = "openai.gpt-oss-20b-1:0"

try:
    response = client.converse(
        modelId=model_id,
        messages=[
            {"role": "user",
             "content": [{"text": "한국어로 한 줄만 자기소개해줘."}]}
        ],
        system=[{"text": "You are a concise assistant."}],
        inferenceConfig={"maxTokens": 200, "temperature": 0.7},
    )
    for block in response["output"]["message"]["content"]:
        print(block.get("text", ""))

except ClientError as e:
    print(f"ERROR: {e}")

InvokeModel을 직접 쓰면 OpenAI 원본 스키마를 거의 그대로 보낼 수 있고, 응답에 reasoning 토큰까지 같이 들어온다.

invoke_model_openai.py · Python

import boto3, json

client = boto3.client("bedrock-runtime", region_name="us-east-2")
model_id = "openai.gpt-oss-20b-1:0"

body = {
    "messages": [
        {"role": "system", "content": "You are a helpful assistant."},
        {"role": "user", "content": "Bedrock에서 보내는 첫 메시지입니다."},
    ],
    "max_completion_tokens": 200,
    "temperature": 0.7,
}

resp = client.invoke_model(modelId=model_id, body=json.dumps(body))
data = json.loads(resp["body"].read())
print(data["choices"][0]["message"]["content"])

🔧 Claude on Bedrock과는 뭐가 다른가

이미 Claude를 Bedrock에서 쓰는 팀이라면 변경 포인트가 좁다. 호출 SDK·IAM·청구 흐름은 그대로, 모델 ID 접두사와 응답 형식만 다르다.

  • 모델 ID 접두사가 anthropic.*에서 openai.*로 바뀐다.
  • OpenAI 모델은 https://bedrock-runtime.<region>.amazonaws.com/openai/v1에서 OpenAI 호환 Chat Completions API도 받는다. 기존 OpenAI SDK의 base_url과 키만 바꾸면 그대로 돈다.
  • InvokeModel 응답은 <reasoning> 태그 안에 모델의 사고 흐름이 먼저 붙어 나온다.

📘 알아두기

기존 OpenAI SDK 코드는 base_url을 Bedrock 호환 엔드포인트로, api_keyAWS_BEARER_TOKEN_BEDROCK 값으로 바꾸면 거의 그대로 돈다. Codex CLI도 같은 변수를 읽는다.


🙋 누구에게 맞고 누구에게는 비추

  • 추천 — Claude·OpenAI·Llama를 한 AWS 계정 안에서 거버넌스하려는 팀, VPC 내부 호출이 강제되는 환경, 비용을 단일 청구서로 묶으려는 조직.
  • 추천 — Codex를 회사 IAM·SSO 흐름에 묶고 싶은 개발팀, Bedrock Guardrails로 입출력 모더레이션을 일관 적용하려는 경우.
  • 비추 — 개인 토이 프로젝트로 GPT-5만 쓰는 사용자. OpenAI 직접 API가 셋업이 더 빠르다.
  • 비추 — 한국 리전(ap-northeast-2)이 강하게 필요한 워크로드. 가용 리전 확장까지 기다리는 편이 낫다.

⚠️ 단점과 주의할 점

  • 지원 리전이 us-east-2·us-west-2 중심이라 한국에서 호출 시 RTT가 따라온다. 지연이 민감한 워크로드면 측정부터.
  • 모델 ID는 콘솔의 Model catalog가 진리값이다. 블로그에 적힌 ID를 그대로 복사했다가 명명이 바뀌면 호출이 깨질 수 있다.
  • 가격은 토큰 단위라 AWS 공식 가격표를 매번 확인한다. 본문에 숫자를 박아두지 않는 이유다.
  • Codex CLI 배포 시 AWS_BEARER_TOKEN_BEDROCK 환경 변수가 셸 기록에 남지 않도록 자격증명 매니저를 같이 쓴다.

🚀 지금 바로 할 일

  1. Bedrock 콘솔의 Model catalog에서 호출할 OpenAI 모델을 찾아 액세스를 요청한다.
  2. 호출 주체에 bedrock:InvokeModel·bedrock:Converse 권한을 붙인 IAM 정책을 적용한다.
  3. 위 boto3 코드 카드의 Converse 예제를 그대로 실행해 첫 응답을 받아본다.

💬 의견

이미 Claude on Bedrock을 쓰는 팀이라면 OpenAI 합류 이후 거버넌스가 얼마나 단순해질지, 댓글로 경험을 들려주시면 좋겠습니다.

✅ 핵심 정리

  • Bedrock에서 OpenAI 모델 호출은 OpenAI 키가 아니라 AWS IAM·Bedrock 모델 액세스로 한다.
  • boto3 Converse API 한 호출이면 GPT-5.x·gpt-oss·Codex를 같은 인터페이스로 다룬다.
  • Claude on Bedrock과 IAM·청구·VPC 흐름이 동일해 거버넌스 통합이 가장 큰 이득이다.
  • 모델 ID·리전·가격은 콘솔과 공식 문서에서 매번 확인한다.

참고 자료


작성자: AI·클라우드 인프라 변화를 공식 문서와 1차 발표만 기반으로 정리해 글로 옮긴다. 가격·모델 ID처럼 자주 바뀌는 값은 본문에 박지 않고 출처 링크로 돌려보낸다.

반응형