๋ณธ๋ฌธ์œผ๋กœ ๊ฑด๋„ˆ๋›ฐ๊ธฐ

๐Ÿ›Œ Amazon Bedrock๊ณผ ํ†ตํ•ฉ

๊ฒฝ๊ณ 

์ด ํŠœํ† ๋ฆฌ์–ผ์€ ์ปค๋ฎค๋‹ˆํ‹ฐ ๊ธฐ์—ฌ๋กœ ์ž‘์„ฑ๋˜์—ˆ์œผ๋ฉฐ Open WebUI ํŒ€์—์„œ ์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํŠน์ • ์šฉ๋„์— ๋งž๊ฒŒ Open WebUI๋ฅผ ์‚ฌ์šฉ์ž ์ •์˜ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์‹œ์—ฐํ•˜๊ธฐ ์œ„ํ•œ ๋ชฉ์ ๋งŒ์œผ๋กœ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค. ๊ธฐ์—ฌํ•˜๊ณ  ์‹ถ์œผ์‹ ๊ฐ€์š”? ๊ธฐ์—ฌ ํŠœํ† ๋ฆฌ์–ผ์„ ํ™•์ธํ•ด๋ณด์„ธ์š”.


Open-WebUI์™€ Amazon Bedrock ํ†ตํ•ฉ

์ด ํŠœํ† ๋ฆฌ์–ผ์—์„œ๋Š” Open-WebUI๋ฅผ Amazon Bedrock๊ณผ ํ†ตํ•ฉํ•˜๋Š” ๊ฐ€์žฅ ์ผ๋ฐ˜์ ์ด๊ณ  ์ธ๊ธฐ ์žˆ๋Š” ์ ‘๊ทผ ๋ฐฉ์‹์„ ์‚ดํŽด๋ด…๋‹ˆ๋‹ค.

์‚ฌ์ „ ์ค€๋น„์‚ฌํ•ญโ€‹

์ด ํŠœํ† ๋ฆฌ์–ผ์„ ๋”ฐ๋ผํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋‹ค์Œ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค:

  • ํ™œ์„ฑํ™”๋œ AWS ๊ณ„์ •
  • ํ™œ์„ฑํ™”๋œ AWS ์•ก์„ธ์Šค ํ‚ค ๋ฐ ๋น„๋ฐ€ ํ‚ค
  • Bedrock ๋ชจ๋ธ์„ ํ™œ์„ฑํ™”ํ•  ์ˆ˜ ์žˆ๋Š” AWS์˜ IAM ๊ถŒํ•œ ๋˜๋Š” ์ด๋ฏธ ํ™œ์„ฑํ™”๋œ ๋ชจ๋ธ
  • ์‹œ์Šคํ…œ์— ์„ค์น˜๋œ Docker

Amazon Bedrock์ด๋ž€โ€‹

AWS ์›น์‚ฌ์ดํŠธ์— ๋”ฐ๋ฅด๋ฉด:

"Amazon Bedrock์€ AI21 Labs, Anthropic, Cohere, Luma, Meta, Mistral AI, poolside(๊ณง ์ถœ์‹œ ์˜ˆ์ •), Stability AI, Amazon๊ณผ ๊ฐ™์€ ์ฃผ์š” AI ํšŒ์‚ฌ์˜ ๊ณ ์„ฑ๋Šฅ ํŒŒ์šด๋ฐ์ด์…˜ ๋ชจ๋ธ(FM)์„ ํ•˜๋‚˜์˜ API๋กœ ์ œ๊ณตํ•˜๋Š” ์™„์ „ ๊ด€๋ฆฌํ˜• ์„œ๋น„์Šค์ž…๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๋ณด์•ˆ, ํ”„๋ผ์ด๋ฒ„์‹œ ๋ฐ ์ฑ…์ž„ ์žˆ๋Š” AI๋ฅผ ๊ฐ–์ถ˜ ์ƒ์„ฑํ˜• AI ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ตฌ์ถ•ํ•˜๊ธฐ ์œ„ํ•œ ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. Amazon Bedrock์„ ์‚ฌ์šฉํ•˜๋ฉด ์‚ฌ์šฉ ์‚ฌ๋ก€์— ์ ํ•ฉํ•œ ์ตœ๊ณ  FM์„ ์†์‰ฝ๊ฒŒ ์‹คํ—˜ํ•˜๊ณ  ํ‰๊ฐ€ํ•˜๋ฉฐ, ๋ฏธ์„ธ ์กฐ์ • ๋ฐ ๊ฒ€์ƒ‰ ์ฆ๊ฐ• ์ƒ์„ฑ(RAG)๊ณผ ๊ฐ™์€ ๊ธฐ์ˆ ์„ ์‚ฌ์šฉํ•ด ๊ฐœ์ธ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉํ•ด ๋งž์ถคํ™”ํ•˜๊ฑฐ๋‚˜ ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ์‹œ์Šคํ…œ ๋ฐ ๋ฐ์ดํ„ฐ ์†Œ์Šค๋ฅผ ์‚ฌ์šฉํ•ด ์ž‘์—…์„ ์‹คํ–‰ํ•˜๋Š” ์—์ด์ „ํŠธ๋ฅผ ๊ตฌ์ถ•ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Amazon Bedrock์€ ์„œ๋ฒ„๋ฆฌ์Šค์ด๋ฏ€๋กœ ์ธํ”„๋ผ๋ฅผ ๊ด€๋ฆฌํ•  ํ•„์š”๊ฐ€ ์—†์œผ๋ฉฐ ์ด๋ฏธ ์ต์ˆ™ํ•œ AWS ์„œ๋น„์Šค๋ฅผ ์‚ฌ์šฉํ•ด ์ƒ์„ฑํ˜• AI ๊ธฐ๋Šฅ์„ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ์•ˆ์ „ํ•˜๊ฒŒ ํ†ตํ•ฉํ•˜๊ณ  ๋ฐฐํฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค."

Bedrock์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€: Amazon Bedrock ๊ณต์‹ ํŽ˜์ด์ง€๋ฅผ ๋ฐฉ๋ฌธํ•˜์„ธ์š”.

ํ†ตํ•ฉ ๋‹จ๊ณ„

1๋‹จ๊ณ„: Amazon Bedrock Base Model ์•ก์„ธ์Šค ํ™•์ธโ€‹

Bedrock๊ณผ ํ†ตํ•ฉํ•˜๊ธฐ ์ „์— ์ตœ์†Œ ํ•˜๋‚˜ ์ด์ƒ์˜ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ Base Model์— ์•ก์„ธ์Šคํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ€๋Šฅํ•œ ๋งŽ์„์ˆ˜๋ก ์ข‹์Šต๋‹ˆ๋‹ค. ์ž‘์„ฑ ์‹œ์ (2025๋…„ 2์›”)์—๋Š” 47๊ฐœ์˜ ๋ฒ ์ด์Šค ๋ชจ๋ธ์ด ์ œ๊ณต๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์•„๋ž˜ ์Šคํฌ๋ฆฐ์ƒท์—์„œ ์—ฌ๋Ÿฌ ๋ชจ๋ธ์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ์Œ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ชจ๋ธ ์˜†์— "โœ… Access Granted"๋ผ๊ณ  ํ‘œ์‹œ๋˜๋ฉด ํ•ด๋‹น ๋ชจ๋ธ์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ์Œ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ์–ด๋А ๋ชจ๋ธ์—๋„ ์ ‘๊ทผํ•  ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ ๋‹ค์Œ ๋‹จ๊ณ„์—์„œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

AWS๋Š” ์ด๋Ÿฌํ•œ ๋ชจ๋ธ์— ๋Œ€ํ•œ ์š”์ฒญ์„ ์•ก์„ธ์Šคํ•˜๊ณ  ํ™œ์„ฑํ™”ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์ข‹์€ ๋ฌธ์„œ๋ฅผ ์ œ๊ณตํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค: Amazon Bedrock ๋ชจ๋ธ ์•ก์„ธ์Šค ๋ฌธ์„œ

Amazon Bedrock Base Models

2๋‹จ๊ณ„: Bedrock Access Gateway ๊ตฌ์„ฑโ€‹

ํ•˜๋‚˜ ์ด์ƒ์˜ Bedrock ๋ฒ ์ด์Šค ๋ชจ๋ธ์— ์•ก์„ธ์Šคํ•œ ํ›„์—๋Š” Bedrock Access Gateway(BAG)๋ฅผ ๊ตฌ์„ฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. BAG์€ AWS ๋„ค์ดํ‹ฐ๋ธŒ ์—”๋“œํฌ์ธํŠธ/SDK๋ฅผ ๊ฐ์‹ธ๊ณ  Open-WebUI์—์„œ ์š”๊ตฌํ•˜๋Š” OpenAI ์Šคํ‚ค๋งˆ์™€ ํ˜ธํ™˜๋˜๋Š” ์—”๋“œํฌ์ธํŠธ๋ฅผ ๋…ธ์ถœํ•˜๋Š” AWS์—์„œ ๊ฐœ๋ฐœํ•œ ํ”„๋ก์‹œ ๋˜๋Š” ๋ฏธ๋“ค์›จ์–ด์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์ฐธ๊ณ ๋กœ, ์—”๋“œํฌ์ธํŠธ ๊ฐ„ ๊ฐ„๋‹จํ•œ ๋งคํ•‘์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค:

OpenAI EndpointBedrock Method
/modelslist_inference_profiles
/models/{model_id}list_inference_profiles
/chat/completionsconverse or converse_stream
/embeddingsinvoke_model

BAG ๋ ˆํฌ๋Š” ๋‹ค์Œ ์œ„์น˜์—์„œ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค: Bedrock Access Gateway Repo

BAG์„ ์„ค์ •ํ•˜๊ธฐ ์œ„ํ•œ ๋‹จ๊ณ„๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค:

  • BAG ๋ ˆํฌ๋ฅผ ํด๋ก ํ•ฉ๋‹ˆ๋‹ค.
  • ๊ธฐ๋ณธ dockerfile์„ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค.
  • Dockerfile_ecs์˜ ์ด๋ฆ„์„ Dockerfile๋กœ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค.

์ด์ œ ์•„๋ž˜ ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ Docker ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๋นŒ๋“œํ•˜๊ณ  ์‹คํ–‰ํ•  ์ค€๋น„๊ฐ€ ์™„๋ฃŒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค:

docker build . -f Dockerfile -t bedrock-gateway

docker run -e AWS_ACCESS_KEY_ID=$AWS_ACCESS_KEY_ID -e AWS_SECRET_ACCESS_KEY=$AWS_SECRET_ACCESS_KEY -e AWS_SESSION_TOKEN=$AWS_SESSION_TOKEN -e AWS_REGION=us-east-1 -d -p 8000:80 bedrock-gateway

์ด์ œ BAG์˜ swagger ํŽ˜์ด์ง€์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค: http://localhost:8000/docs

Bedrock Access Gateway Swagger

3๋‹จ๊ณ„: Open-WebUI์— ์—ฐ๊ฒฐ ์ถ”๊ฐ€โ€‹

์ด์ œ BAG์ด ์‹คํ–‰๋˜๊ณ  ์žˆ์œผ๋ฏ€๋กœ Open-WebUI์— ์ƒˆ ์—ฐ๊ฒฐ์„ ์ถ”๊ฐ€ํ•  ๋•Œ์ž…๋‹ˆ๋‹ค.

  • ๊ด€๋ฆฌ์ž ํŒจ๋„์—์„œ Settings -> Connections๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.
  • "+" (ํ”Œ๋Ÿฌ์Šค) ๋ฒ„ํŠผ์„ ์‚ฌ์šฉํ•˜์—ฌ OpenAI ์•„๋ž˜์— ์ƒˆ ์—ฐ๊ฒฐ์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.
  • URL์— "http://host.docker.internal:8000/api/v1"๋ฅผ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.
  • ๋น„๋ฐ€๋ฒˆํ˜ธ๋Š” BAG ๊ธฐ๋ณธ ์„ค์ •์—์„œ "bedrock"์œผ๋กœ ์ •์˜๋œ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด ๋น„๋ฐ€๋ฒˆํ˜ธ๋Š” BAG ์„ค์ •(DEFAULT_API_KEYS)์—์„œ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • "Verify Connection" ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜๋ฉด ์˜ค๋ฅธ์ชฝ ์ƒ๋‹จ์— "Server connection verified" ์•Œ๋ฆผ์ด ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

์ƒˆ ์—ฐ๊ฒฐ ์ถ”๊ฐ€ํ•˜๊ธฐ

4๋‹จ๊ณ„: Bedrock ๊ธฐ๋ณธ ๋ชจ๋ธ ์‚ฌ์šฉ ์‹œ์ž‘โ€‹

์ด์ œ ๋ชจ๋“  Bedrock ๋ชจ๋ธ์ด ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค!

Bedrock ๋ชจ๋ธ ์‚ฌ์šฉํ•˜๊ธฐ

๊ธฐํƒ€ ์œ ์šฉํ•œ ํŠœํ† ๋ฆฌ์–ผโ€‹

Amazon Bedrock์™€ Open-WebUI ํ†ตํ•ฉ ์ž‘์—… ์‹œ ์œ ์šฉํ•œ ๋ช‡ ๊ฐ€์ง€ ๋‹ค๋ฅธ ํŠœํ† ๋ฆฌ์–ผ์ž…๋‹ˆ๋‹ค.