AWS(Amazon) 통합

AWS(Amazon) 통합 (AWS integrations · LangChain Python)

LangChain Python으로 AWS(Amazon Web Services) 플랫폼과 통합하는 방법을 정리한 페이지예요. Bedrock 채팅 모델, SageMaker 엔드포인트, 다양한 벡터 스토어, 리트리버, 그래프, 메모리, 런타임까지 AWS 전반의 통합을 다뤄요.

출처: 공식문서

채팅 모델 (Chat models)

Bedrock chat

Amazon Bedrock은 AI21 Labs, Anthropic, Cohere, Meta, Stability AI, Amazon 등 주요 AI 기업의 고성능 파운데이션 모델(FM)을 단일 API로 제공하는 완전 관리형 서비스예요. 보안·프라이버시·책임 있는 AI로 생성형 AI 애플리케이션을 만들 수 있고, 서버리스라 인프라를 관리할 필요가 없어요. 파인튜닝이나 RAG(Retrieval Augmented Generation)로 내 데이터로 모델을 커스터마이즈할 수 있어요.

from langchain_aws import ChatBedrock

Bedrock converse

AWS Bedrock의 Converse API는 Bedrock 모델을 위한 통합 대화 인터페이스로, 아직 커스텀 모델은 지원하지 않아요. 커스텀 모델이 필요 없다면 ChatBedrockConverse로 접근하는 걸 권장해요.

from langchain_aws import ChatBedrockConverse

LLM

  • Bedrock: from langchain_aws import BedrockLLM
  • SageMaker endpoint: Amazon SageMaker로 모델을 호스팅해 SageMaker Endpoint로 노출해요. from langchain_aws import SagemakerEndpoint

임베딩 모델 (Embedding models)

  • Bedrock: from langchain_aws import BedrockEmbeddings

문서 로더 (Document loaders)

Amazon MemoryDB

MemoryDB는 초고속 성능의 내구성 있는 인메모리 DB 서비스로, Redis OSS와 호환돼요. InMemoryVectorStore로 Amazon MemoryDB에 연결하는 벡터스토어를 쓸 수 있어요.

from langchain_aws.vectorstores.inmemorydb import InMemoryVectorStore
vds = InMemoryVectorStore.from_documents(
    chunks, embeddings,
    redis_url="rediss://cluster_endpoint:6379/ssl=True ssl_cert_reqs=none",
    vector_schema=vector_schema, index_name=INDEX_NAME,
)

Valkey

Valkey는 고성능 오픈소스 키/값 저장소예요. ValkeyVectorStore로 Amazon ElastiCache for Valkey 또는 Amazon MemoryDB for Valkey에 연결해요.

from langchain_aws.vectorstores import ValkeyVectorStore

리트리버 (Retrievers)

Amazon Bedrock (Knowledge bases)

Knowledge bases for Amazon Bedrock는 내 프라이빗 데이터로 RAG 애플리케이션을 빠르게 빌드하게 해주는 AWS 서비스예요. langchain-aws 라이브러리를 설치해야 해요.

pip install langchain-aws
from langchain_aws import AmazonKnowledgeBasesRetriever

도구 (Tools)

Amazon Bedrock AgentCore Browser

관리형 Chrome 브라우저로 에이전트가 웹 페이지를 탐색·콘텐츠 추출·웹 자동화할 수 있게 해줘요.

pip install langchain-aws bedrock-agentcore playwright beautifulsoup4
from langchain.agents import create_agent
from langchain_aws.tools import create_browser_toolkit
toolkit, browser_tools = create_browser_toolkit(region="us-west-2")
agent = create_agent(model=llm, tools=browser_tools)
result = await agent.ainvoke(
    {"messages":[{"role":"user","content":"Go to example.com and get the heading"}]},
    config={"configurable":{"thread_id":"session-1"}})
await toolkit.cleanup()

Amazon Bedrock AgentCore Code Interpreter

에이전트가 보안 관리형 샌드박스에서 Python·JavaScript·TypeScript 코드를 실행해 계산·데이터 분석·시각화를 하게 해줘요.

pip install langchain-aws bedrock-agentcore
from langchain.agents import create_agent
from langchain_aws.tools import create_code_interpreter_toolkit
toolkit, code_tools = await create_code_interpreter_toolkit(region="us-west-2")
agent = create_agent(model=llm, tools=code_tools)
result = await agent.ainvoke(
    {"messages":[{"role":"user","content":"Calculate factorial of 10"}]},
    config={"configurable":{"thread_id":"session-1"}})
await toolkit.cleanup()

샌드박스 (Sandboxes)

  • AgentCoreSandbox: deepagents의 Amazon Bedrock AgentCore Code Interpreter 샌드박스 백엔드

그래프 (Graphs)

Amazon Neptune은 고성능 그래프 분석·서버리스 DB예요. Cypher·SPARQL 통합은 langchain-aws를 설치해야 해요.

  • Neptune with Cypher: from langchain_aws.graphs import NeptuneGraph, NeptuneAnalyticsGraph / from langchain_aws.chains import create_neptune_opencypher_qa_chain
  • Neptune with SPARQL: from langchain_aws.graphs import NeptuneRdfGraph / from langchain_aws.chains import create_neptune_sparql_qa_chain

메모리 (Memory)

Amazon Bedrock AgentCore Memory

LangGraph 에이전트를 위한 관리형 영속 저장을 제공해 세션 간 대화 이력과 상태 관리를 자동 스케일링·고가용성으로 처리해요.

pip install langgraph-checkpoint-aws
from langgraph_checkpoint_aws import AgentCoreMemorySaver
checkpointer = AgentCoreMemorySaver(memory_id="your-memory-id", region_name="us-west-2")
graph = workflow.compile(checkpointer=checkpointer)
config = {"configurable":{"thread_id":"user-123","actor_id":"my-agent"}}  # actor_id는 AgentCore에 필수
result = graph.invoke({"messages":[]}, config)

핵심 기능: 관리형 인프라(DB 설정 불필요), 자동 스케일링·고가용성, actor_id 격리로 멀티 에이전트 지원, 저장·전송 암호화.

Amazon Bedrock AgentCore Memory Store

LangGraph 에이전트를 위한 시맨틱 검색 장기 메모리를 제공해 세션 간 사용자 선호·사실·추출된 기억을 저장·검색해요.

from langgraph_checkpoint_aws import AgentCoreMemoryStore
store = AgentCoreMemoryStore(memory_id="your-memory-id", region_name="us-west-2")
# pre-model hook에서 store.put(namespace, ..., {...})으로 저장, store.search(..., query=..., limit=5)으로 검색

체인 (Chains)

Amazon Comprehend moderation chain

Amazon Comprehend는 텍스트에서 인사이트를 찾는 NLP 서비스예요. boto3nltk를 설치해야 해요. 주의: langchain-experimental 패키지는 더 이상 유지보수되지 않아요. langchain_experimental에서 import하는 예제는 오래되었거나 깨졌을 수 있어요.

pip install boto3 nltk
from langchain_experimental.comprehend_moderation import AmazonComprehendModerationChain

런타임 (Runtime)

Amazon Bedrock AgentCore Runtime

LangGraph 에이전트를 위한 관리형·서버리스 실행을 제공하며, 내장 관측성, 자동 스케일링, 다른 AgentCore 서비스와의 통합을 갖춰요.

pip install bedrock-agentcore
from bedrock_agentcore.runtime import BedrockAgentCoreApp
app = BedrockAgentCoreApp()
@app.entrypoint
def agent_invocation(payload, context):
    result = graph.invoke({"messages":[{"role":"user","content":payload["prompt"]}]})
    return {"result": result["messages"][-1].content}
app.run()

AgentCore CLI로 배포: agentcore configureagentcore launch -e your_agent.py

더 알아보기 (Learn more)