메뉴 닫기

Amazon Bedrock 기반 크로스 계정 Redshift 연동으로 지능형 AI 에이전트 구현하기

아마존 베드록(Amazon Bedrock) 기반 AI 활용을 위한 크로스 계정 지식베이스 연동 가이드

최근 기업들은 구조화된 데이터 리포지토리에 손쉽게 접근하고 이를 기반으로 지능형 AI 에이전트를 구동하기 위한 방안을 고민하고 있습니다. 이러한 활용은 특히 Amazon Redshift와 같은 데이터 웨어하우스를 여러 AWS 계정에 분산 운영할 때 높은 보안성과 자동화된 연결을 요구하게 됩니다.

이번 글에서는 Amazon Bedrock 에이전트가 다른 AWS 계정에 위치한 Amazon Redshift 기반의 지식베이스에 안전하게 접근하도록 구성하는 활용 방안을 소개합니다. 이를 통해 Amazon Bedrock을 도입한 기업의 멀티 계정 환경에서 효과적인 지식베이스 통합 및 자동화된 질의 응답이 가능해집니다.

도입 배경

Amazon Bedrock 에이전트를 사용하여 AI 어시스턴트를 구축하는 기업의 많은 데이터는 Amazon Redshift 서버리스 형태로 운영됩니다. 그러나, 이 데이터가 AI 에이전트가 위치한 계정과 다른 AWS 계정에 존재할 경우 Amazon Bedrock의 기본 기능만으로는 직접적인 데이터참조가 불가합니다. 이에 따라 다음과 같은 요구사항이 발생합니다:

  • 계정 간 구조화된 데이터 공유 및 분석 자동화
  • 보안 및 접근 제어 분리 유지
  • 중복 데이터 저장 없이 통합 질문 응답 체계 구현

해결 방안: 서버리스 아키텍처 기반의 안전한 연결

Amazon에서는 AWS Lambda를 중간 계층으로 활용하는 서버리스 아키텍처를 제안합니다. 이 방식은 IAM 역할 기반의 역할 위임(AssumeRole)을 통해, 다양한 계정 간 권한을 안전하게 이동하면서 데이터 접근을 가능하게 합니다. 이 구조는 다음과 같이 작동합니다:

Amazon Bedrock 크로스 계정 지식베이스 아키텍처 다이어그램

  1. 사용자가 Bedrock 에이전트에서 자연어 질의를 입력합니다.
  2. 에이전트는 사전 구성된 Lambda 함수를 호출해 다른 계정의 지식베이스에 접근합니다.
  3. Lambda는 해당 계정의 IAM 역할을 위임받아 Amazon Redshift Serverless의 데이터를 쿼리합니다.
  4. 결과는 에이전트로 반환되어 사용자가 실시간으로 응답을 확인합니다.

핵심 구성 요소

  • Bedrock 에이전트(Account A)
  • Redshift 서버리스 워크그룹(Account B, private VPC/Subnet)
  • Bedrock 지식베이스(Redshift 연결)
  • Lambda 함수(Account A)
  • 액션 그룹(Action Group) 설정
  • IAM 역할 및 정책 설정(Lambda 및 지식베이스 접근용)

도입 및 배포 가이드

다음은 해당 아키텍처를 실제 환경에 배포하기 위한 단계입니다. 배포 자동화와 코드 활용성 향상을 위해 GitHub에 제공된 스크립트를 활용합니다.

1단계: 사전 준비

  • 두 개의 AWS 계정 생성 및 AWS CLI 구성
  • jq 설치(jq는 JSON을 CLI로 처리)
  • Llama3 (agent-kb 계정), Nova Pro (agent 계정) 모델 접근 권한 활성화

2단계: 지식베이스 환경 구성(agent-kb 계정)

  • Amazon Redshift Serverless 워크그룹 구성
  • TPCH 샘플 데이터 적재 및 쿼리 테스트
  • Bedrock 지식베이스 생성 및 ID 저장
  • 에이전트 학습 데이터 기반 훈련 수행

3단계: IAM 역할 및 정책 자동 생성

다음 스크립트를 이용하여 IAM 역할, 정책을 자동 생성합니다:

./create_bedrock_agent_kb_roles_policies.sh --agent-profile agent \
--agent-kb-profile agent-kb \
--lambda-role lambda_bedrock_kb_query_role \
--kb-access-role bedrock_kb_access_role \
--kb-access-policy bedrock_kb_access_policy \
--lambda-policy lambda_bedrock_kb_query_policy \
--knowledge-base-id XXXXXXXXXX \
--agent-account 111122223333 \
--agent-kb-account 999999999999

4단계: CloudFormation을 통한 에이전트 자동 배포

  • CloudFormation 템플릿 업로드
  • ARN 값에 맞춰 파라미터 세팅
  • Stack 배포 완료 후 에이전트 설정 확인

CloudFormation을 이용한 자동 에이전트 배포 과정

5단계: 테스트 및 운영

Amazon Bedrock 콘솔에서 “에이전트 테스트”를 통해 자연어 쿼리를 실행해 봅니다. 예시는 다음과 같습니다.

  • "사우디아라비아 상위 5 고객은 누구인가요?"
  • "미국 내 가장 많은 부품을 공급한 공급업체는 누구인가요?"
  • "1998년 지역별 총 수익은 어떻게 되나요?"

에이전트 실행 테스트 화면 예시

지속적 운영 팁 및 Guardrails 활용

  • 질문을 구체화하여 표현
  • 데이터셋 명칭 사용
  • 예제 기반의 유사 질문 먼저 테스트
  • Bedrock Guardrails 사용하여 부적절 질문 제어 기능 적용

마무리 및 리소스 정리

불필요한 요금 방지를 위해 리소스 정리가 필요합니다. 다음 스크립트를 통해 IAM 및 CloudFormation 리소스를 자동 삭제할 수 있습니다:

./delete-bedrock-agent-kb-roles-policies.sh –agent-profile agent \
--agent-kb-profile agent-kb \
--lambda-role lambda_bedrock_kb_query_role \
--kb-access-role bedrock_kb_access_role \
--kb-access-policy bedrock_kb_access_policy \
--lambda-policy lambda_bedrock_kb_query_policy \
--agent-account 111122223333 \
--agent-kb-account 999999999999

결론

이번에 소개한 솔루션을 활용하면, Amazon Bedrock 에이전트를 다양한 AWS 계정 기반에서 안전하고 자동화된 방법으로 Amazon Redshift의 구조화된 데이터에 접근시킬 수 있습니다. 이 아키텍처는 멀티 계정 보안을 유지하면서 효율적인 데이터 활용과 AI 응답 자동화라는 두 가지를 결합합니다.

향후 Amazon Bedrock의 기능이 확장됨에 따라 더욱 다양한 데이터 소스, 모델 및 리전 간 추론을 적용할 수 있게 되며, 이를 통해 여러분의 AI 시스템은 더욱 지능화되고 견고해질 것입니다.

[1] https://aws.amazon.com/blogs/machine-learning/connect-amazon-bedrock-agents-to-cross-account-knowledge-bases/

AI, Cloud 관련한 문의는 아래 연락처로 연락주세요!

(주)에이클라우드
이메일 : acloud@a-cloud.co.kr
회사 번호 : 02-538-3988
회사 홈페이지 : https://www.a-cloud.co.kr/
문의하기


AI, Cloud 도입 상담 배너