Bạn đang trong buổi Sprint Planning.
Product Owner nói:
"Hay mình thêm AI để trả lời khách hàng tự động nhé?"
Cả phòng im lặng vài giây.
Rồi trong đầu bạn bắt đầu hiện lên hàng loạt câu hỏi:
- Phải train model à?
- Thuê GPU ở đâu?
- Có cần tuyển ML Engineer không?
- Có phải học Deep Learning trước không?
- Chắc dự án này kéo dài thêm 6 tháng...
Thực ra, đó cũng chính là vấn đề mà Amazon Bedrock được tạo ra để giải quyết.
Amazon Bedrock là gì
Amazon Bedrock là một Fully Managed Service cung cấp quyền truy cập tới nhiều Foundation Model (FM) từ nhiều nhà cung cấp khác nhau (Anthropic Claude, Meta Llama, Amazon Titan/Nova, Stability AI, Cohere, Mistral...) thông qua một API thống nhất (InvokeModel, InvokeModelWithResponseStream, hoặc qua Converse API).
Về bản chất, Bedrock đóng vai trò là một lớp trừu tượng hóa (abstraction layer) nằm giữa ứng dụng của bạn và hạ tầng inference của các FM. Bạn không thấy GPU, không thấy container, không thấy model server — chỉ thấy một endpoint HTTPS nằm trong region AWS bạn chọn.
Một request cơ bản (ví dụ gọi từ .NET dùng AWS SDK AWSSDK.BedrockRuntime) trông như sau:
var client = new AmazonBedrockRuntimeClient(RegionEndpoint.APSoutheast1);
var request = new InvokeModelRequest
{
ModelId = "anthropic.claude-sonnet-4-6-v1:0",
ContentType = "application/json",
Body = new MemoryStream(Encoding.UTF8.GetBytes(payloadJson))
};
var response = await client.InvokeModelAsync(request);Foundation Model là gì?
Đây là khái niệm xuất hiện rất nhiều khi đọc tài liệu về Bedrock.
Foundation Model (FM) là những mô hình AI đã được huấn luyện trên lượng dữ liệu rất lớn.
Bạn có thể hình dung:
- Claude giống một lập trình viên rất giỏi.
- Llama là một lập trình viên khác.
- Titan là lập trình viên do Amazon đào tạo.
Bạn không cần biết họ học như thế nào.
Bạn chỉ cần giao việc.
Prompt
│
▼
Foundation Model
│
▼
Response
Đó cũng là lý do Bedrock giúp các đội Backend tích hợp AI nhanh mà không cần tự huấn luyện mô hình.
Bedrock không dùng API Key?
Đây là điểm mình thích nhất.
Hầu hết dịch vụ AI hiện nay đều sử dụng API Key.
flowchart LR
App["Application"]
Key["API Key"]
AI["AI Service"]
App --> Key
Key --> AI
Nếu API Key bị lộ?
- Bất kỳ ai cũng có thể sử dụng.
- Phải rotate API Key.
- Phải lưu Secret.
- Phải quản lý từng môi trường Development, Staging và Production.
Amazon Bedrock thì khác.
Bedrock sử dụng AWS IAM để xác thực thay vì API Key.
IAM hoạt động như thế nào?
Khi ứng dụng chạy trên AWS (EC2, ECS, EKS hoặc Lambda), ứng dụng sẽ được gán một IAM Role.
IAM Role quyết định:
- Có được gọi Amazon Bedrock hay không.
- Được gọi Foundation Model nào.
- Được gọi ở Region nào.
flowchart LR
App["ASP.NET Core API"]
Role["IAM Role"]
Bedrock["Amazon Bedrock"]
Claude["Claude"]
App --> Role
Role -->|"bedrock:InvokeModel"| Bedrock
Bedrock --> Claude
Nếu IAM Role không có quyền bedrock:InvokeModel, AWS sẽ từ chối request ngay lập tức.
Điều này giúp doanh nghiệp không cần quản lý API Key và giảm đáng kể rủi ro bị lộ Secret.
Ví dụ IAM Policy
Bạn có thể chỉ cho phép ứng dụng gọi đúng một Foundation Model.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"bedrock:InvokeModel"
],
"Resource": [
"arn:aws:bedrock:ap-southeast-1::foundation-model/anthropic.claude-sonnet-4"
]
}
]
}
Policy trên chỉ cho phép gọi model Claude.
- Được gọi Claude
- Không được gọi Llama
- Không được gọi Titan
- Không được gọi Mistral
Nhờ vậy, doanh nghiệp có thể kiểm soát chi phí, phân quyền giữa các hệ thống và đảm bảo nguyên tắc Least Privilege.
Kiến trúc đơn giản nhất
Trong hầu hết ứng dụng, luồng hoạt động sẽ như sau:
flowchart LR
User["User"]
API["ASP.NET Core API"]
Role["IAM Role"]
Bedrock["Amazon Bedrock"]
Claude["Claude Foundation Model"]
User --> API
API --> Role
Role -->|"InvokeModel()"| Bedrock
Bedrock --> Claude
Claude --> Bedrock
Bedrock --> API
API --> User
Toàn bộ việc xác thực đều do IAM đảm nhiệm.
Ứng dụng chỉ cần gọi AWS SDK, Bedrock sẽ thay mặt bạn giao tiếp với Foundation Model.
Kết luận
Nếu chỉ nhớ một điều sau bài viết này thì hãy nhớ:
Amazon Bedrock không phải là một AI Model.
Bedrock là dịch vụ của AWS giúp bạn truy cập nhiều Foundation Model thông qua một API thống nhất, đồng thời tận dụng toàn bộ hệ thống bảo mật của AWS như IAM.
Ở bài tiếp theo trong series, chúng ta sẽ tạo IAM Role và viết ứng dụng ASP.NET Core đầu tiên để gọi Claude trên Amazon Bedrock bằng AWS SDK.
Nhận xét
Đăng nhận xét