본문으로 건너뛰기

[Bedrock] 접속,활용 가이드

Prerequisite

본 가이드를 진행하기 전에 다음 항목이 준비되어 있어야 합니다:

  • AWS 계정 보유: 없다면 AWS 공식 사이트에서 가입합니다.
  • 결제 카드 등록: Bedrock은 사용한 만큼 요금이 청구되는 종량제 서비스이므로 카드 등록이 필요합니다.
  • IAM 권한: Bedrock을 사용할 수 있는 권한(AmazonBedrockFullAccess 등)이 필요합니다.
  • (API 사용 시) 로컬 환경: Python과 AWS CLI가 설치되어 있어야 합니다.

알아두기: Bedrock이 뭔가요?

Bedrock을 쉽게 비유하면 AI 모델 전문 편의점과 같습니다. 편의점 한 곳에서 여러 브랜드의 음료수를 고를 수 있듯이, Bedrock 한 곳에서 Anthropic(Claude), Meta(Llama), Amazon(Titan) 등 여러 회사의 AI 모델을 골라 쓸 수 있습니다. 직접 AI 모델을 만들거나 서버에 설치할 필요 없이, "이 모델 주세요" 하고 요청만 하면 답을 받을 수 있는 서비스입니다.


Process

1. 콘솔 접속 및 리전 선택

  1. AWS Console에 로그인합니다.

  2. 우측 상단에서 리전을 선택합니다.

    리전은 편의점의 지점과 비슷합니다. 지점마다 들여놓은 상품(모델)이 조금씩 다를 수 있습니다. 특별한 이유가 없다면 최신 Claude 모델 종류가 가장 다양하게 준비된 미국 동부(버지니아 북부, us-east-1) 또는 미국 서부(오레곤, us-west-2) 리전을 추천합니다.

    (Notice) 서울 리전(ap-northeast-2)은 최신 Claude 모델을 바로 호출하지 못하고 별도 설정(Cross-Region Inference)이 필요한 경우가 있습니다. 처음 배우는 단계라면 us-east-1을 사용하는 것이 훨씬 간단합니다.

  3. 검색창에 Bedrock을 입력하고 서비스로 이동합니다.


2. 모델 사용 준비 (Model catalog에서 선택)

(중요) 예전에는 Model access(모델 액세스) 페이지에서 모델마다 일일이 사용 신청을 해야 했지만, 이 페이지는 폐지되었습니다. 지금은 표준 리전(예: us-east-1, us-west-2)에서 서버리스 파운데이션 모델이 계정에 자동으로 활성화되어 있습니다. 즉, 편의점에 들어가면 상품이 이미 진열대에 다 나와 있는 상태라고 보면 됩니다.

따라서 별도 신청 절차 없이 바로 다음처럼 진행하면 됩니다:

  1. 좌측 메뉴에서 Model catalog(모델 카탈로그) 메뉴를 클릭합니다.

  1. 사용하려는 모델(예: Anthropic Claude 계열)을 선택합니다.
  2. Open in Playground(플레이그라운드에서 열기) 버튼을 클릭합니다.

(Notice) 일부 모델은 처음 실행할 때 이용 약관(EULA) 동의가 필요할 수 있습니다. 이 경우 Playground에서 모델을 처음 호출하면 약관 동의가 자동으로 처리되므로, 그냥 한 번 실행해보면 됩니다.

(중요) 접근 제한은 이제 페이지 신청이 아니라 IAM 정책이나 SCP(Service Control Policy) 등으로 관리합니다. 개인/학생 계정에서는 보통 신경 쓸 필요가 없지만, 회사나 학교의 조직 계정을 쓴다면 관리자가 특정 리전이나 모델을 막아둔 경우 오류가 날 수 있습니다.


3. Playground에서 첫 대화 해보기

Playground는 카카오톡 채팅창과 비슷합니다. 메시지를 입력하면 AI가 답장을 보내주는 화면입니다.

  1. 좌측 메뉴에서 Chat / Text playground를 클릭합니다.
  2. 상단에서 방금 액세스를 신청한 모델을 선택합니다.
  3. 하단 입력창에 질문을 입력하고 Run을 클릭합니다.


4. (학생 활용) 코드로 직접 호출해보기

Playground는 사람이 손으로 직접 채팅하는 방식이지만, 과제나 프로젝트에서는 프로그램이 자동으로 질문을 보내고 답을 받아야 할 때가 많습니다. 이럴 때 API를 사용합니다. API는 정해진 형식으로 버튼을 누르면 정해진 결과물이 나오는 자판기와 같다고 생각하면 됩니다.

4-1. 자격 증명(인증) 준비하기 — EC2 Role 사용

코드가 AWS에 접속하려면 "나는 이 계정 사용자예요"라는 신분증(자격 증명)이 반드시 필요합니다. 신분증 없이 익명으로 모델을 부르는 방법은 없습니다.

(중요) 학생 계정은 조직 정책으로 개인 노트북(로컬)에서 Bedrock을 직접 호출할 수 없도록 막혀 있습니다. 따라서 개발은 EC2 인스턴스 위에서 진행하고, 인증은 인스턴스에 붙은 IAM Role로 처리합니다.

이렇게 하면 Access Key를 발급할 필요도, 키를 코드에 적을 필요도 없습니다. 비유하면, EC2라는 방에 들어가는 순간 출입증(자격 증명)이 자동으로 목에 걸리는 구조입니다.

  1. IAM에서 Role을 생성하고 Bedrock 권한(예: AmazonBedrockFullAccess, 또는 관리자가 부여한 역할)을 부여합니다.
  2. 개발에 사용할 EC2 인스턴스에 이 Role을 연결합니다. (EC2 콘솔 > 인스턴스 선택 > 작업(Actions) > 보안(Security) > IAM 역할 수정(Modify IAM role))
  3. 이후 EC2 안에서 실행하는 코드는 자격 증명을 따로 설정하지 않아도 됩니다. boto3가 인스턴스에 붙은 Role의 자격 증명을 자동으로 가져다 씁니다.

4-2. 모델 호출용 추론 프로파일 ID 확인하기 (US 지역만 사용)

인증이 준비되면, 이제 "어떤 모델을 부를지"를 정합니다. 코드의 modelId 자리에 넣을 값인데, 우리는 교차 리전 추론(CRIS) 중에서도 Geographic cross-Region inference(지역 기반 CRIS)의 US 지역 프로파일만 사용합니다. 즉 modelIdus. 프리픽스가 붙은 프로파일 ID만 사용합니다.

(중요) us. 프로파일은 소스 리전(코드에서 지정하는 region_name)이 미국 리전일 때만 동작합니다. 서울(ap-northeast-2)을 소스 리전으로 두고 us. 프로파일을 부르면 오류가 납니다. 따라서 boto3 클라이언트의 region_nameus-west-2(오레곤) 또는 us-east-1(버지니아 북부) 로 설정합니다. (EC2 인스턴스 자체는 서울에 있어도 되며, 코드에서 지정하는 리전만 US로 맞추면 됩니다. 요금도 이 소스 리전 기준으로 청구됩니다.)

  1. Bedrock 콘솔에서 사용할 모델의 추론 프로파일로 이동합니다.
  2. us.로 시작하는 추론 프로파일 ID를 복사합니다. 예: us.anthropic.claude-...

(중요) 프로파일 ID는 콘솔에서 직접 복사한 값을 사용하세요. 임의로 지어내면 ValidationException이 발생합니다.

4-3. 파이썬 코드 예시 (EC2에서 실행)

import boto3

소스 리전은 반드시 US 리전으로 지정 (us. 프로파일 사용 조건)

EC2에 붙은 Role의 자격 증명은 boto3가 자동으로 사용합니다.

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

response = client.converse( modelId="[콘솔에서 복사한 us. 프로파일 ID, 예: us.anthropic.claude-...]", messages=[ {"role": "user", "content": [{"text": "안녕! 자기소개 해줘"}]} ] )

print(response["output"]["message"]["content"][0]["text"])

  • region_nameus-west-2 또는 us-east-1 같은 US 리전이어야 합니다. modelIdus. 프리픽스와 짝이 맞아야 하기 때문입니다.
  • 자격 증명을 코드에 적거나 aws configure를 할 필요가 없습니다. Role이 붙은 EC2 위에서 실행하는 것만으로 인증이 됩니다.
  • boto3가 없다면 EC2에서 pip install boto3로 먼저 설치합니다.

알아두기: Bedrock 핵심 용어

  • Foundation Model (FM): 미리 학습이 끝난 대형 AI 모델. 이미 요리를 다 배운 셰프에게 주문만 하는 것과 비슷합니다.
  • Model ID: 모델을 부르는 이름표 (예: anthropic.claude-3-5-sonnet-20240620-v1:0).
  • Playground: 코드 없이 웹 화면에서 바로 모델을 테스트해보는 공간.
  • Converse API: 대화형으로 모델을 호출하는 표준 방식.
  • Cross-Region Inference (CRIS): 내 지점(리전)에 재고가 없을 때 다른 지점의 재고를 끌어와 쓰는 것과 비슷한 개념.

Trouble Shooting

AccessDeniedException / Operation not allowed

원인: (모델 액세스 페이지는 폐지되었으므로) 대부분 IAM 권한 부족, EULA 미동의, 또는 SCP 제한 때문입니다.

해결 방법:

  1. IAM 정책에 AmazonBedrockFullAccess 또는 관련 권한이 포함되어 있는지 확인합니다.
  2. 해당 모델을 Playground에서 한 번 실행해봅니다. 이용 약관(EULA) 동의가 필요한 모델은 이 과정에서 자동으로 동의가 처리됩니다.
  3. 조직(회사/학교) 계정이라면 관리자에게 SCP로 해당 리전이나 Bedrock이 차단되어 있는지 문의합니다.

ValidationException (모델 ID 관련 오류)

원인: modelId가 잘못되었거나, us. 프로파일을 US가 아닌 소스 리전에서 호출한 경우

해결 방법:

  1. modelId가 콘솔에서 복사한 us.로 시작하는 프로파일 ID가 맞는지 확인합니다.
  2. boto3 클라이언트의 region_nameus-west-2 또는 us-east-1 등 US 리전인지 확인합니다. us. 프로파일은 US 소스 리전에서만 동작합니다.

AccessDeniedException + us. 프로파일 사용 시

원인: SCP나 IAM 정책이 US 목적지 리전(us-east-1, us-east-2, us-west-2)을 막고 있는 경우. 지역 기반 CRIS는 요청이 지역 내 여러 리전으로 라우팅되므로, 목적지 리전이 하나라도 막혀 있으면 실패합니다.

해결 방법: 관리자에게 US 지역의 목적지 리전들에 대한 Bedrock 접근이 SCP/IAM에서 허용되어 있는지 확인 요청합니다.

Unable to locate credentials

원인: 코드가 실행되는 환경에 AWS 자격 증명이 없음 (예: Role이 없는 곳에서 실행)

해결 방법: 코드를 Bedrock 권한이 있는 IAM Role이 연결된 EC2 인스턴스 위에서 실행하고 있는지 확인합니다. Role이 제대로 연결되어 있으면 별도 설정 없이 자격 증명이 자동으로 잡힙니다.

또 다른 질문이 있으십니까? 문의 등록