Triển khai Claude trên AWS Bedrock — Hướng dẫn production cho doanh nghiệp
Điểm nổi bật
Nhấn để đến mục tương ứng
- 1 Traffic nằm hoàn toàn trong mạng nội bộ AWS, giảm thiểu rủi ro intercept và đáp ứng yêu cầu bảo mật nghiêm ngặt của các ngành tài chính, y tế, bảo hiểm.
- 2 Bạn không muốn phải chờ approval khi production đang gặp sự cố ở region chính.
- 3 Các bước quan trọng nhất: thiết lập IAM least privilege, cấu hình VPC endpoint cho private access, implement retry logic bền vững, và monitoring toàn diện với CloudWatch.
- 4 Data residency và kiểm soát dữ liệu Khi sử dụng Claude qua Bedrock, dữ liệu của bạn không rời khỏi AWS account.
- 5 IAM integration — quản lý quyền tập trung Thay vì quản lý API key riêng biệt, bạn tận dụng IAM roles và policies đã có.
AWS Bedrock là dịch vụ managed AI của Amazon Web Services, cho phép doanh nghiệp truy cập các model AI hàng đầu — bao gồm Claude — mà không cần quản lý infrastructure. Đối với các tổ chức đã đầu tư vào hệ sinh thái AWS, Bedrock là con đường ngắn nhất để đưa Claude vào production với đầy đủ tính năng bảo mật, tuân thủ và khả năng mở rộng cấp enterprise.
Bài viết này hướng dẫn bạn triển khai Claude trên AWS Bedrock từ A đến Z: từ lý do chọn Bedrock, cấu hình IAM và VPC, tích hợp SDK, cho đến auto-scaling, giám sát và tối ưu chi phí.
Tại sao chọn AWS Bedrock cho Claude?
Data residency và kiểm soát dữ liệu
Khi sử dụng Claude qua Bedrock, dữ liệu của bạn không rời khỏi AWS account. Điều này khác biệt quan trọng so với việc gọi trực tiếp qua Anthropic API:
- Dữ liệu không được dùng để training: AWS cam kết không sử dụng input/output của bạn để huấn luyện bất kỳ model nào
- Data residency theo region: Bạn chọn được dữ liệu xử lý ở region nào (us-east-1, us-west-2, eu-west-1, ap-southeast-1...)
- Tuân thủ quy định nội bộ: Nhiều doanh nghiệp tại Việt Nam yêu cầu dữ liệu phải đi qua kênh đã được IT security phê duyệt — Bedrock nằm trong hệ sinh thái AWS đã có sẵn compliance framework
VPC isolation — mạng riêng hoàn toàn
Với VPC endpoint, request từ ứng dụng của bạn đến Claude không bao giờ đi qua public internet. Traffic nằm hoàn toàn trong mạng nội bộ AWS, giảm thiểu rủi ro intercept và đáp ứng yêu cầu bảo mật nghiêm ngặt của các ngành tài chính, y tế, bảo hiểm.
IAM integration — quản lý quyền tập trung
Thay vì quản lý API key riêng biệt, bạn tận dụng IAM roles và policies đã có. Mọi request được authenticate qua SigV4 — cùng cơ chế bảo mật với S3, DynamoDB hay bất kỳ dịch vụ AWS nào khác. Đội ngũ security của bạn không cần học thêm hệ thống mới.
Billing hợp nhất
Chi phí Claude qua Bedrock nằm trong AWS bill chung. Với các doanh nghiệp có Enterprise Discount Program (EDP) hoặc Reserved Instance commitment, đây là lợi thế đáng kể về mặt tài chính và quản lý ngân sách.
Bước 1: Enable Claude models trong Bedrock Console
Kiểm tra region hỗ trợ
Không phải tất cả AWS region đều hỗ trợ Claude qua Bedrock. Các region chính hiện tại:
- US East (N. Virginia) — us-east-1: Đầy đủ model, khuyến nghị cho production
- US West (Oregon) — us-west-2: Đầy đủ model, phù hợp làm failover region
- Europe (Frankfurt) — eu-central-1: Có sẵn cho yêu cầu data residency EU
- Asia Pacific (Singapore) — ap-southeast-1: Latency thấp nhất cho Việt Nam, kiểm tra model availability trước khi chọn
- Asia Pacific (Tokyo) — ap-northeast-1: Alternative cho khu vực châu Á
Lưu ý: Model availability thay đổi thường xuyên. Luôn kiểm tra tại AWS documentation trước khi quyết định region.
Quy trình enable model
- Đăng nhập AWS Console với account có quyền admin hoặc Bedrock full access
- Chuyển đến Amazon Bedrock > Model access trong console
- Click "Manage model access"
- Tìm mục Anthropic trong danh sách providers
- Chọn các model cần sử dụng:
- Claude 3.5 Haiku: Nhanh, rẻ — phù hợp cho classification, extraction, chatbot đơn giản
- Claude 3.5 Sonnet: Cân bằng giữa chất lượng và chi phí — phù hợp cho hầu hết use case production
- Claude 4 Opus: Chất lượng cao nhất — phù hợp cho phân tích phức tạp, code generation, research
- Submit request và chờ approval (thường trong vài phút, một số trường hợp cần 24-48h)
- Kiểm tra trạng thái: model hiển thị "Access granted" là sẵn sàng sử dụng
Tip: Enable model ở cả primary và failover region ngay từ đầu. Bạn không muốn phải chờ approval khi production đang gặp sự cố ở region chính.
Bước 2: Thiết lập IAM Policies — nguyên tắc Least Privilege
Policy cho ứng dụng gọi Claude (execution role)
Đây là IAM policy tối thiểu cho một ứng dụng cần invoke Claude qua Bedrock. Áp dụng nguyên tắc least privilege — chỉ cấp quyền thật sự cần thiết:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "InvokeClaudeModels",
"Effect": "Allow",
"Action": [
"bedrock:InvokeModel",
"bedrock:InvokeModelWithResponseStream"
],
"Resource": [
"arn:aws:bedrock:us-east-1::foundation-model/anthropic.claude-3-5-sonnet-*",
"arn:aws:bedrock:us-east-1::foundation-model/anthropic.claude-3-5-haiku-*",
"arn:aws:bedrock:us-east-1::foundation-model/anthropic.claude-4-opus-*"
]
}
]
}
Giải thích quan trọng:
- Chỉ InvokeModel và InvokeModelWithResponseStream: Ứng dụng không cần quyền quản lý model, tạo endpoint hay thay đổi cấu hình
-
Resource giới hạn theo model: Thay vì dùng wildcard
*cho tất cả model, chỉ cho phép các model Claude cụ thể. Nếu ứng dụng chỉ dùng Sonnet, hãy bỏ Haiku và Opus khỏi resource list - Region-specific: Resource ARN chỉ định region cụ thể, tránh việc ứng dụng vô tình gọi model ở region khác (có thể ảnh hưởng cost và latency)
Policy cho team DevOps (management role)
Team DevOps cần thêm quyền để quản lý model access, provisioned throughput và monitoring:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "BedrockManagement",
"Effect": "Allow",
"Action": [
"bedrock:GetFoundationModel",
"bedrock:ListFoundationModels",
"bedrock:GetModelInvocationLoggingConfiguration",
"bedrock:PutModelInvocationLoggingConfiguration",
"bedrock:CreateProvisionedModelThroughput",
"bedrock:GetProvisionedModelThroughput",
"bedrock:ListProvisionedModelThroughputs",
"bedrock:UpdateProvisionedModelThroughput",
"bedrock:DeleteProvisionedModelThroughput"
],
"Resource": "*"
}
]
}
Service Control Policy (SCP) cho tổ chức
Nếu bạn sử dụng AWS Organizations, hãy tạo SCP để đảm bảo không ai trong tổ chức có thể sử dụng model ngoài danh sách được phê duyệt:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "DenyNonApprovedModels",
"Effect": "Deny",
"Action": "bedrock:InvokeModel",
"Resource": "*",
"Condition": {
"ForAnyValue:StringNotLike": {
"bedrock:FoundationModel": [
"anthropic.claude-*"
]
}
}
}
]
}
Bước 3: Cấu hình VPC Endpoint cho Private Access
Tại sao cần VPC endpoint?
Mặc định, request từ EC2/ECS/Lambda đến Bedrock đi qua internet (NAT Gateway). VPC endpoint (PrivateLink) cho phép traffic đi hoàn toàn trong mạng AWS nội bộ:
- Bảo mật: Không expose traffic ra internet
- Latency: Giảm latency do không cần routing qua NAT Gateway và internet
- Chi phí: Tiết kiệm NAT Gateway data processing charges (khoảng $0.045/GB)
- Compliance: Đáp ứng yêu cầu "no internet access" của nhiều security framework
Tạo VPC Endpoint bằng AWS CLI
# Tạo VPC Endpoint cho Bedrock Runtime
aws ec2 create-vpc-endpoint --vpc-id vpc-0123456789abcdef0 --service-name com.amazonaws.us-east-1.bedrock-runtime --vpc-endpoint-type Interface --subnet-ids subnet-0123456789abcdef0 subnet-0123456789abcdef1 --security-group-ids sg-0123456789abcdef0 --private-dns-enabled
# Tạo thêm endpoint cho Bedrock control plane (nếu cần quản lý)
aws ec2 create-vpc-endpoint --vpc-id vpc-0123456789abcdef0 --service-name com.amazonaws.us-east-1.bedrock --vpc-endpoint-type Interface --subnet-ids subnet-0123456789abcdef0 subnet-0123456789abcdef1 --security-group-ids sg-0123456789abcdef0 --private-dns-enabled
Security Group cho VPC Endpoint
Security group của VPC endpoint cần cho phép HTTPS (port 443) inbound từ các subnet chứa ứng dụng:
# Security group cho VPC Endpoint
aws ec2 authorize-security-group-ingress --group-id sg-0123456789abcdef0 --protocol tcp --port 443 --source-group sg-app-security-group
Best practice: Tạo VPC endpoint ở ít nhất 2 Availability Zones để đảm bảo high availability. Nếu AZ chứa endpoint gặp sự cố, traffic tự động chuyển sang AZ còn lại.
Bước 4: Tích hợp SDK — Python và Node.js
Python với boto3
import boto3
import json
# Khởi tạo Bedrock Runtime client
bedrock_runtime = boto3.client(
service_name='bedrock-runtime',
region_name='us-east-1'
)
def invoke_claude(prompt, model_id='anthropic.claude-3-5-sonnet-20241022-v2:0',
max_tokens=4096, temperature=0.7):
"""
Gọi Claude qua Bedrock với error handling cho production.
"""
body = json.dumps({
"anthropic_version": "bedrock-2023-05-31",
"max_tokens": max_tokens,
"temperature": temperature,
"messages": [
{
"role": "user",
"content": prompt
}
]
})
try:
response = bedrock_runtime.invoke_model(
modelId=model_id,
contentType='application/json',
accept='application/json',
body=body
)
response_body = json.loads(response['body'].read())
return {
'content': response_body['content'][0]['text'],
'usage': response_body['usage'],
'stop_reason': response_body['stop_reason']
}
except bedrock_runtime.exceptions.ThrottlingException as e:
# Rate limit — implement exponential backoff
raise
except bedrock_runtime.exceptions.ModelTimeoutException as e:
# Request timeout — consider reducing max_tokens
raise
except bedrock_runtime.exceptions.ValidationException as e:
# Invalid input — check prompt format
raise
# Sử dụng
result = invoke_claude("Phân tích xu hướng thị trường fintech Việt Nam 2025")
print(result['content'])
print(f"Tokens used: {result['usage']}")
Python — Streaming Response
Với các response dài, streaming giúp giảm time-to-first-token và cải thiện UX:
def invoke_claude_stream(prompt, model_id='anthropic.claude-3-5-sonnet-20241022-v2:0'):
"""
Streaming response từ Claude qua Bedrock.
"""
body = json.dumps({
"anthropic_version": "bedrock-2023-05-31",
"max_tokens": 4096,
"messages": [{"role": "user", "content": prompt}]
})
response = bedrock_runtime.invoke_model_with_response_stream(
modelId=model_id,
contentType='application/json',
accept='application/json',
body=body
)
full_response = ""
for event in response['body']:
chunk = json.loads(event['chunk']['bytes'])
if chunk['type'] == 'content_block_delta':
text = chunk['delta'].get('text', '')
full_response += text
print(text, end='', flush=True)
return full_response
Node.js với AWS SDK v3
import {
BedrockRuntimeClient,
InvokeModelCommand,
InvokeModelWithResponseStreamCommand
} from '@aws-sdk/client-bedrock-runtime';
const client = new BedrockRuntimeClient({ region: 'us-east-1' });
async function invokeClaude(prompt, options = {}) {
const {
modelId = 'anthropic.claude-3-5-sonnet-20241022-v2:0',
maxTokens = 4096,
temperature = 0.7
} = options;
const body = JSON.stringify({
anthropic_version: 'bedrock-2023-05-31',
max_tokens: maxTokens,
temperature,
messages: [{ role: 'user', content: prompt }]
});
const command = new InvokeModelCommand({
modelId,
contentType: 'application/json',
accept: 'application/json',
body
});
try {
const response = await client.send(command);
const responseBody = JSON.parse(
new TextDecoder().decode(response.body)
);
return {
content: responseBody.content[0].text,
usage: responseBody.usage,
stopReason: responseBody.stop_reason
};
} catch (error) {
if (error.name === 'ThrottlingException') {
// Implement retry with exponential backoff
throw error;
}
throw error;
}
}
// Sử dụng
const result = await invokeClaude(
'Tóm tắt báo cáo tài chính Q3 sau đây: ...'
);
console.log(result.content);
Retry với Exponential Backoff
Trong production, bạn cần retry logic bền vững. Đây là pattern khuyến nghị:
import time
import random
def invoke_with_retry(prompt, max_retries=3, base_delay=1):
"""
Invoke Claude với exponential backoff và jitter.
"""
for attempt in range(max_retries):
try:
return invoke_claude(prompt)
except bedrock_runtime.exceptions.ThrottlingException:
if attempt == max_retries - 1:
raise
delay = base_delay * (2 ** attempt) + random.uniform(0, 1)
print(f"Rate limited. Retry sau {delay:.1f}s...")
time.sleep(delay)
except bedrock_runtime.exceptions.ModelTimeoutException:
if attempt == max_retries - 1:
raise
delay = base_delay * (2 ** attempt)
time.sleep(delay)
Bước 5: Auto-scaling — Provisioned Throughput vs On-Demand
On-Demand (mặc định)
Khi bạn gọi Claude qua Bedrock mà không cấu hình thêm, bạn đang dùng on-demand mode:
- Ưu điểm: Không cần commit, pay-per-use, tự động scale
- Nhược điểm: Có rate limit mặc định (requests per minute và tokens per minute), latency có thể biến động khi demand cao
- Phù hợp cho: Development, testing, workload không đều, traffic thấp đến trung bình
Provisioned Throughput
Khi workload ổn định và bạn cần guaranteed performance:
# Tạo Provisioned Throughput
aws bedrock create-provisioned-model-throughput --model-units 1 --provisioned-model-name "claude-sonnet-prod" --model-id "anthropic.claude-3-5-sonnet-20241022-v2:0" --commitment-duration "OneMonth"
- Ưu điểm: Throughput ổn định, latency thấp và nhất quán, không bị throttled
- Nhược điểm: Chi phí cố định hàng tháng (dù có dùng hay không), cần estimate workload chính xác
- Phù hợp cho: Production workload ổn định, SLA yêu cầu latency nhất quán, high-throughput application
Chiến lược hybrid
Nhiều doanh nghiệp áp dụng chiến lược kết hợp:
- Base load: Provisioned Throughput cho lượng request baseline (ví dụ: 80% peak traffic)
- Burst: On-demand cho phần traffic vượt baseline
- Development/Staging: Luôn dùng on-demand
Tăng quota khi cần
Nếu on-demand rate limit mặc định không đủ, bạn có thể request tăng quota qua AWS Service Quotas:
# Kiểm tra quota hiện tại
aws service-quotas get-service-quota --service-code bedrock --quota-code L-XXXXXXXX
# Request tăng quota
aws service-quotas request-service-quota-increase --service-code bedrock --quota-code L-XXXXXXXX --desired-value 1000
Bước 6: Tối ưu chi phí — Chọn đúng model cho đúng việc
Nguyên tắc Model Routing
Không phải mọi request đều cần model mạnh nhất. Phân loại workload và route đến model phù hợp giúp tiết kiệm đáng kể:
| Use case | Model khuyến nghị | Lý do |
|---|---|---|
| Classification, tagging, extraction đơn giản | Claude 3.5 Haiku | Nhanh, rẻ, đủ chính xác cho task có cấu trúc |
| Chatbot, tóm tắt, viết nội dung, phân tích | Claude 3.5 Sonnet | Cân bằng chất lượng-chi phí, phù hợp hầu hết production |
| Phân tích phức tạp, code generation, research | Claude 4 Opus | Chất lượng cao nhất khi cần reasoning sâu |
Implement Model Router
def route_to_model(task_type, complexity='medium'):
"""
Route request đến model phù hợp dựa trên task type và complexity.
"""
model_map = {
'classification': 'anthropic.claude-3-5-haiku-20241022-v1:0',
'extraction': 'anthropic.claude-3-5-haiku-20241022-v1:0',
'tagging': 'anthropic.claude-3-5-haiku-20241022-v1:0',
'chatbot': 'anthropic.claude-3-5-sonnet-20241022-v2:0',
'summarization': 'anthropic.claude-3-5-sonnet-20241022-v2:0',
'content_writing': 'anthropic.claude-3-5-sonnet-20241022-v2:0',
'code_generation': 'anthropic.claude-4-opus-20250514-v1:0',
'complex_analysis': 'anthropic.claude-4-opus-20250514-v1:0',
'research': 'anthropic.claude-4-opus-20250514-v1:0',
}
model_id = model_map.get(task_type, 'anthropic.claude-3-5-sonnet-20241022-v2:0')
# Override: nếu complexity thấp, downgrade model
if complexity == 'low' and task_type in ['chatbot', 'summarization']:
model_id = 'anthropic.claude-3-5-haiku-20241022-v1:0'
return model_id
Các kỹ thuật giảm chi phí khác
- Cache response: Với các query lặp lại (FAQ, classification cùng input), cache kết quả vào ElastiCache/DynamoDB
- Prompt optimization: Prompt ngắn gọn, rõ ràng giúp giảm input tokens. Loại bỏ context không cần thiết
- Max tokens hợp lý: Đặt max_tokens vừa đủ cho task. Không cần 4096 tokens cho một câu trả lời yes/no
- Batch processing: Gom nhiều item nhỏ vào một request thay vì gọi riêng lẻ (khi phù hợp)
- Prompt caching: Bedrock hỗ trợ prompt caching — với system prompt dài hoặc context lặp lại, bạn tiết kiệm đến 90% input token cost
Bước 7: Monitoring với CloudWatch
Metrics quan trọng cần theo dõi
Bedrock tự động publish metrics lên CloudWatch. Các metrics quan trọng:
- Invocations: Số lượng request — theo dõi trend và anomaly
- InvocationLatency: Thời gian xử lý — set alarm khi vượt ngưỡng chấp nhận được
- InvocationClientErrors (4xx): Lỗi từ phía client — input không hợp lệ, vượt limit
- InvocationServerErrors (5xx): Lỗi từ phía Bedrock — cần escalate nếu tần suất cao
- InvocationThrottles: Bị throttle — cần tăng quota hoặc chuyển sang Provisioned Throughput
- InputTokenCount / OutputTokenCount: Theo dõi token usage để dự báo chi phí
Thiết lập CloudWatch Alarms
# Alarm khi latency trung bình vượt 10 giây
aws cloudwatch put-metric-alarm --alarm-name "bedrock-claude-high-latency" --metric-name "InvocationLatency" --namespace "AWS/Bedrock" --statistic "Average" --period 300 --threshold 10000 --comparison-operator "GreaterThanThreshold" --evaluation-periods 3 --alarm-actions "arn:aws:sns:us-east-1:123456789:bedrock-alerts" --dimensions Name=ModelId,Value=anthropic.claude-3-5-sonnet-20241022-v2:0
# Alarm khi throttle rate cao
aws cloudwatch put-metric-alarm --alarm-name "bedrock-claude-throttles" --metric-name "InvocationThrottles" --namespace "AWS/Bedrock" --statistic "Sum" --period 60 --threshold 10 --comparison-operator "GreaterThanThreshold" --evaluation-periods 2 --alarm-actions "arn:aws:sns:us-east-1:123456789:bedrock-alerts"
Enable Model Invocation Logging
Để debug và audit, enable invocation logging ghi lại input/output của mỗi request:
aws bedrock put-model-invocation-logging-configuration --logging-config '{
"cloudWatchConfig": {
"logGroupName": "/aws/bedrock/model-invocations",
"roleArn": "arn:aws:iam::123456789:role/BedrockLoggingRole",
"largeDataDeliveryS3Config": {
"bucketName": "my-bedrock-logs",
"keyPrefix": "invocation-logs/"
}
},
"s3Config": {
"bucketName": "my-bedrock-logs",
"keyPrefix": "full-logs/"
},
"textDataDeliveryEnabled": true,
"imageDataDeliveryEnabled": false,
"embeddingDataDeliveryEnabled": false
}'
Cảnh báo bảo mật: Invocation logging ghi lại toàn bộ prompt và response. Đảm bảo S3 bucket và CloudWatch log group được mã hóa và giới hạn quyền truy cập. Không enable logging cho môi trường xử lý PII nếu chưa có biện pháp bảo vệ dữ liệu phù hợp.
Dashboard tổng hợp
Tạo CloudWatch Dashboard để team có cái nhìn tổng quan:
aws cloudwatch put-dashboard --dashboard-name "Bedrock-Claude-Production" --dashboard-body '{
"widgets": [
{
"type": "metric",
"properties": {
"title": "Invocations per minute",
"metrics": [
["AWS/Bedrock", "Invocations", "ModelId",
"anthropic.claude-3-5-sonnet-20241022-v2:0"]
],
"period": 60, "stat": "Sum"
}
},
{
"type": "metric",
"properties": {
"title": "Latency (p50, p90, p99)",
"metrics": [
["AWS/Bedrock", "InvocationLatency", "ModelId",
"anthropic.claude-3-5-sonnet-20241022-v2:0",
{"stat": "p50"}],
["...", {"stat": "p90"}],
["...", {"stat": "p99"}]
],
"period": 300
}
}
]
}'
Bước 8: Security — Encryption, Audit và Compliance
Encryption at Rest
Bedrock mã hóa tất cả dữ liệu at rest bằng AWS-managed keys mặc định. Để kiểm soát tốt hơn, sử dụng Customer Managed Key (CMK) qua KMS:
- Tạo KMS key dedicated cho Bedrock
- Cấu hình key policy cho phép Bedrock service sử dụng
- Enable key rotation tự động
- Log mọi key usage qua CloudTrail
Encryption in Transit
Mặc định, mọi communication với Bedrock sử dụng TLS 1.2+. Khi kết hợp với VPC endpoint, bạn có encryption end-to-end mà không cần cấu hình thêm.
Audit Logging với CloudTrail
CloudTrail tự động ghi lại mọi API call đến Bedrock. Đảm bảo:
- CloudTrail trail đang active cho region chứa Bedrock
- Log files được lưu vào S3 bucket riêng, mã hóa bằng KMS
- Enable log file validation để phát hiện tampering
- Thiết lập S3 lifecycle policy để archive log cũ sang Glacier
Compliance Frameworks
AWS Bedrock đạt các chứng nhận compliance quan trọng:
- SOC 2 Type II: Kiểm soát bảo mật, availability và confidentiality
- HIPAA eligible: Phù hợp cho xử lý dữ liệu y tế (cần ký BAA với AWS)
- ISO 27001: Hệ thống quản lý an toàn thông tin
- GDPR: Hỗ trợ tuân thủ quy định bảo vệ dữ liệu EU
- CSA STAR: Cloud Security Alliance framework
Đối với doanh nghiệp Việt Nam, việc Bedrock nằm trong hệ sinh thái AWS có compliance đầy đủ giúp đơn giản hóa quá trình audit nội bộ và đáp ứng yêu cầu từ đối tác quốc tế.
Guardrails cho nội dung
Bedrock Guardrails cho phép bạn thiết lập rào chắn an toàn cho output của Claude:
- Content filters: Chặn nội dung không phù hợp (hate speech, violence, sexual content)
- Denied topics: Ngăn Claude thảo luận về các chủ đề bị cấm trong tổ chức
- Word filters: Chặn các từ khóa nhạy cảm trong output
- PII detection: Tự động phát hiện và redact thông tin cá nhân
Production Checklist
Trước khi go-live, đảm bảo hoàn thành tất cả các mục sau:
Infrastructure
- ☐ Model access đã được enable ở primary region
- ☐ Model access đã được enable ở failover region
- ☐ VPC endpoint đã tạo ở ít nhất 2 AZ
- ☐ Security group cho VPC endpoint đã cấu hình đúng
- ☐ DNS resolution qua VPC endpoint đã verify
Security
- ☐ IAM policy áp dụng nguyên tắc least privilege
- ☐ Không có IAM user dùng long-term credentials — chỉ dùng IAM roles
- ☐ KMS CMK đã tạo và key rotation enabled
- ☐ CloudTrail đang active, log gửi về S3 bucket mã hóa
- ☐ Invocation logging đã cấu hình (nếu cần audit trail)
- ☐ Guardrails đã thiết lập cho content filtering và PII
- ☐ SCP đã áp dụng ở Organization level (nếu dùng AWS Organizations)
Application
- ☐ SDK integration đã test thành công
- ☐ Retry logic với exponential backoff đã implement
- ☐ Error handling cover tất cả exception types (Throttling, Timeout, Validation)
- ☐ Streaming đã implement cho response dài
- ☐ Model routing logic đã thiết lập (nếu dùng nhiều model)
- ☐ Request timeout đã cấu hình hợp lý
Monitoring
- ☐ CloudWatch alarms đã set cho latency, errors và throttles
- ☐ Dashboard đã tạo với metrics quan trọng
- ☐ SNS topic và notification channel đã cấu hình
- ☐ Cost alerts đã set trong AWS Budgets
- ☐ Token usage tracking đã implement để dự báo chi phí
Operations
- ☐ Runbook cho các incident thường gặp (throttling, timeout, region outage)
- ☐ Failover procedure đã document và test
- ☐ On-call schedule đã thiết lập
- ☐ Quota increase request đã submit nếu cần
- ☐ Cost estimation đã review và budget đã approve
Kết luận
Triển khai Claude trên AWS Bedrock không chỉ là việc gọi API — đó là quá trình xây dựng một hệ thống AI production-ready với đầy đủ tầng bảo mật, khả năng mở rộng và giám sát. Bằng cách tuân thủ các bước trong hướng dẫn này, bạn có nền tảng vững chắc để đưa Claude vào phục vụ business workload thực tế.
Các bước quan trọng nhất: thiết lập IAM least privilege, cấu hình VPC endpoint cho private access, implement retry logic bền vững, và monitoring toàn diện với CloudWatch. Production checklist ở cuối bài là tài liệu tham khảo hữu ích mỗi khi bạn triển khai môi trường mới.
Khám phá thêm các hướng dẫn triển khai enterprise tại Thư viện Ứng dụng Claude.
Bai viet co huu ich khong?
Bản quyền thuộc về tác giả. Vui lòng dẫn nguồn khi chia sẻ.






