리전별 데이터 격리를 위한 두 가지 경로: Mantle과 Classic

런던(`eu-west-2`) 리전에서 엄격한 데이터 격리가 필요한 경우 최신 Mantle 엔드포인트를 사용할 수 없으며 반드시 Classic Bedrock 경로를 선택해야 한다. 특정 리전 내 데이터 거주성(Data Residency) 요구사항이 있을 경우, 선택한 엔드포인트에 따라 인프라 구성 방식과 사용 가능한 모델 범위가 달라진다. 단순히 지리적 영역 내에 데이터가 머물면 되는 상황과 달리, 특정 리전 내부에서만 모든 처리가 완결되어야 하는 컴플라이언스 제약은 엔드포인트 선택지를 좁히고 구현 복잡도를 높인다.

대부분의 Amazon Bedrock 워크로드는 처리량을 최적화하고 최신 모델에 빠르게 접근하기 위해 교차 리전 추론(CRIS, Cross-Region Inference) 방식을 사용한다. 유럽 연합 내 어디든 상관없다면 EU 교차 리전 프로필를 사용하는 것이 가장 간단하다. 하지만 런던 리전처럼 특정 지점을 명시해야 하는 경우, EU 엔드포인트는 프랑크푸르트, 아일랜드, 파리 등으로 요청을 라우팅하므로 데이터가 리전 외부로 나가는 것을 막아야 하는 요구사항을 충족하지 못한다.

Mantle(`bedrock-mantle`)은 Anthropic 네이티브 API 형태를 사용하는 최신 엔드포인트로 단일 리전 라우팅 기능을 내장하고 있다. 현재 아일랜드, 스톡홀름, 도쿄, 멜버른, 버지니아 북부, 오하이오, 오리건 등 7개 리전에서 이를 지원한다. 해당 리전 사용자라면 별도의 프로필 생성 없이 프롬프트와 응답, 중간 처리 과정 전체를 단일 리전 내부에서만 처리하도록 강제할 수 있다.

반면 Classic Bedrock(`bedrock-runtime`)은 기존의 Invoke API를 사용하는 경로다. 이 방식은 단일 리전 라우팅을 위해 애플리케이션 추론 프로필(Application Inference Profile)이라는 별도의 구성 요소가 반드시 필요하다. 런던 리전은 Mantle의 단일 리전 라우팅을 지원하지 않으므로 오직 이 Classic Bedrock 경로를 통해서만 데이터 격리를 구현할 수 있다.

경로 1: Mantle 엔드포인트를 이용한 네이티브 단일 리전 설정

Mantle 엔드포인트는 지원되는 7개 리전에서 환경 변수 설정만으로 즉시 단일 리전 라우팅을 구현한다. 사용자가 `AWS_REGION`을 설정하면 이를 해당 리전의 엔드포인트로 직접 해석하여 요청을 전달하는 구조다. 기존 Bedrock 호출 방식에서 필수적이었던 애플리케이션 추론 프로필(특정 리전의 모델 ARN을 소스로 하는 가상 리소스 정의) 과정이 완전히 생략된다. 이로 인해 초기 설정 시간이 단축되며, Claude Sonnet 5와 같은 최신 모델을 리전 제약 없이 빠르게 적용할 수 있다.

실제 구현을 위해서는 세 가지 환경 변수를 정의해야 한다. 먼저 `CLAUDE_CODE_USE_MANTLE=1`로 Mantle 엔드포인트를 활성화한다. 이어 `AWS_REGION`에 대상 리전 식별자를 입력하고, `ANTHROPIC_DEFAULT_*_MODEL` 변수로 사용할 모델 이름을 지정한다. 이 설정은 Claude Code v2.1.94 버전 이상에서만 유효하며, 하위 버전에서는 라우팅 로직이 내장되어 있지 않아 작동하지 않는다.

설정 정확성은 Claude Code 실행 후 `/status` 명령어로 검증한다. 출력 결과의 Provider 항목이 'Amazon Bedrock (Mantle)'로 명시되어 있고, Region 항목이 `AWS_REGION` 설정값과 일치하는지 확인한다. Provider가 단순 'Amazon Bedrock'으로 출력된다면 Mantle 활성화 변수가 인식되지 않았거나 소프트웨어 버전이 v2.1.94 미만일 가능성이 크다. 이 검증을 통해 API 요청이 교차 리전 경로를 타지 않고 지정된 단일 리전 엔드포인트로 직접 전달됨을 확정한다.

경로 2: Classic Bedrock과 애플리케이션 추론 프로필 기반 구현

런던(eu-west-2) 리전은 Mantle의 단일 리전 라우팅을 지원하지 않아 Classic Bedrock 경로를 사용해야 한다. 이 환경에서 단일 리전 추론이 가능한 모델은 Claude Opus 4.6과 Sonnet 4.6으로 제한된다. Opus 4.7과 4.8 모델은 Geo-only(지리적 제한) 방식으로만 작동하므로 런던 리전 내 단일 리전 배포가 불가능하다.

단일 리전 호출을 위해서는 애플리케이션 추론 프로필을 직접 생성해야 한다. Bedrock의 시스템 정의 추론 프로필(`eu.` 또는 `global.` 접두사 사용)은 여러 리전으로 요청을 분산하는 교차 리전 방식으로 작동하기 때문이다. 일부 파운데이션 모델은 모델 ID로 직접 호출 시 온디맨드 처리량 미지원 오류를 반환하므로, 추론 프로필의 ID나 ARN(리소스 고유 식별자)을 사용해야 한다.

AWS CLI를 통해 런던 리전의 특정 모델 ARN을 소스로 지정하여 추론 프로필을 생성한다.

bash
aws bedrock create-inference-profile --model-source-arn arn:aws:bedrock:eu-west-2:111122223333:foundation-model/anthropic.claude-3-5-sonnet-20240620-v1:0

명령어 실행 결과로 반환되는 `inferenceProfileArn`(`arn:aws:bedrock:eu-west-2:<account-id>:application-inference-profile/<id>` 형태)을 저장하여 Claude Code의 최종 식별자로 할당한다.

최종 구현을 위해 `CLAUDE_CODE_USE_BEDROCK=1`을 설정하여 Bedrock 런타임 API를 활성화하고, `AWS_REGION`에 `eu-west-2`를 입력한다. 이후 생성된 `inferenceProfileArn`을 모델 변수에 할당하면 요청이 런던 리전 내부에서만 처리된다. 이 방식은 AWS 청구서 상에서 프로필별 비용과 사용량을 정밀하게 추적할 수 있는 관리적 이점을 제공한다.

IAM 정책을 통한 리전 외부 호출 물리적 차단

IAM 정책의 `aws:RequestedRegion` 조건을 설정하면 환경 변수 입력 실수로 인해 데이터가 의도치 않은 지역으로 전송되는 경로를 물리적으로 차단할 수 있다. 개발자가 사용하는 IAM 역할(IAM Role)이나 로컬 프로필의 사용자 계정에 아래 정책을 연결한다.

{

"Version": "2012-10-17",

"Statement": [

{

"Effect": "Allow",

"Action": "bedrock:InvokeModel",

"Resource": "*",

"Condition": {

"StringEquals": {

"aws:RequestedRegion": "eu-west-2"

}

}

}

]

}

위 정책은 요청 리전이 `eu-west-2`와 정확히 일치하지 않는 모든 호출을 거부한다. 단순한 설정값 의존을 넘어 권한 체계 자체에서 리전 제약을 강제하는 구조다.

Mantle과 Classic Bedrock은 IAM 제어 방식에서 차이가 있다. Mantle은 리소스를 프로젝트 단위로 관리하므로 IAM 정책으로는 호출 리전만 제어할 수 있으며, 구체적인 모델 선택은 `ANTHROPIC_DEFAULT_*_MODEL` 환경 변수가 결정한다. 승인된 모델 목록만 사용하도록 강제하려면 SCP(Service Control Policy)를 추가로 운용해야 한다. 반면 Classic Bedrock은 ARN을 사용하여 리전과 모델을 동시에 고정할 수 있어, 하나의 정책만으로 특정 리전의 특정 모델 호출만 허용하는 정밀한 제어가 가능하다.

구축한 리전 가드레일의 작동 여부는 AWS CloudTrail 로그를 통해 검증한다. 로그에 기록된 모든 Bedrock 호출 엔드포인트가 지정한 단일 리전 주소와 일치하는지 전수 확인하여 외부 리전으로의 호출 시도가 없었음을 증명한다. 이는 소프트웨어적 설정과 인프라적 제약을 이중으로 적용한 결과물을 확인하는 최종 단계다.

한국 AI 실무자를 위한 리전 선택 및 검증 기준

도쿄 리전(ap-northeast-1)은 Mantle 지원 리전에 포함된다. 국내 기업이 이 리전을 사용할 경우 복잡한 추론 프로필 생성 없이 `AWS_REGION=ap-northeast-1` 설정만으로 단일 리전 격리가 가능하다. 추가 리소스 프로비저닝 과정이 생략되므로 초기 배포 시간이 단축된다.

리전 선택 기준은 데이터 거주성 요구 수준과 운영 목적에 따라 결정한다. 반드시 특정 리전 내부에 데이터가 머물러야 한다는 규정이 있다면 본 가이드의 단일 리전 패턴을 적용한다. 이때 설정 속도가 중요하다면 Mantle 경로를, 팀별 또는 프로젝트별로 정확한 비용 청구와 사용량 추적이 필요한 환경이라면 Classic Bedrock의 프로필 관리 방식이 더 적합하다. 팀 단위 배포 시에는 개별 엔지니어의 셸 설정 대신 관리형 설정 파일에 이를 정의하여 구성의 일관성을 유지한다.

모델 업데이트 시에는 선택한 리전의 단일 리전 추론 지원 여부를 모델 카드(모델 상세 사양서)에서 반드시 확인해야 한다. 최종적으로 Claude Code 내 `/status` 명령어를 통해 Provider와 Region이 설정값과 일치하는지 확인하여 실제 호출 경로를 검증한다.

데이터 거주성 준수를 위해 도쿄 리전을 사용한다면 Mantle 경로를 선택하고, 런던 리전 사용이나 프로필 단위의 세밀한 비용 추적이 필수적인 환경이라면 Classic Bedrock 경로를 선택한다.

이 검증 과정은 환경 변수라는 소프트웨어적 설정과 IAM 정책이라는 인프라적 제약을 이중으로 적용한 결과물을 확인하는 단계다. 로그 분석을 통해 실제 호출 경로가 설정한 정책 범위 내에서만 움직이는 것을 확인하면 물리적인 데이터 격리 환경이 최종적으로 완성된다.