Use Cases

Claude Code × Amazon Bedrock संपूर्ण गाइड | AWS पर Claude को प्रोडक्शन में चलाएं

Claude Code के साथ Amazon Bedrock उपयोग करने की संपूर्ण गाइड। IAM प्रमाणीकरण, स्ट्रीमिंग, Lambda इंटीग्रेशन, RAG कार्यान्वयन से लेकर लागत अनुकूलन तक — Masa के वास्तविक प्रोडक्शन अनुभव पर आधारित।

“मैं प्रोडक्शन सर्विस में Claude API का उपयोग करना चाहता हूं, लेकिन API key प्रबंधन की चिंता है” या “आंतरिक सुरक्षा नीति के कारण डेटा AWS से बाहर नहीं जा सकता” — इन समस्याओं के लिए Amazon Bedrock सबसे अच्छा समाधान है।

जब मैं काम पर ECS पर एक API सर्वर में AI इंटीग्रेट कर रहा था, तो पहले Anthropic की API सीधे इस्तेमाल करता था। लेकिन एक सुरक्षा ऑडिट में “बाहरी सेवाओं की API key प्रबंधन” को समस्या के रूप में चिह्नित किया गया। Bedrock पर स्विच करने के बाद, सिर्फ IAM role से प्रमाणीकरण पूरा हो गया और API key प्रबंधन से मुक्ति मिली। यह लेख Claude Code के साथ Bedrock कार्यान्वयन से लेकर प्रोडक्शन ऑपरेशन तक सब कुछ बताता है।


Amazon Bedrock क्या है?

Amazon Bedrock AWS का प्रबंधित AI मॉडल सेवा है। एक एकीकृत API के माध्यम से कई मॉडल — Claude (Anthropic), Llama (Meta), Titan (Amazon) — को कॉल किया जा सकता है।

Bedrock क्यों उपयोग करें?

पहलूAnthropic APIAmazon Bedrock
प्रमाणीकरणAPI keyAWS IAM role
बिलिंगAnthropic को सीधेAWS बिलिंग में एकीकृत
VPC सपोर्टनहींPrivateLink से पूर्ण निजी
डेटा रखरखावAnthropic की नीतिAWS की नीति
अनुपालनSOC2 आदिSOC2 / ISO27001 / HIPAA आदि

व्यक्तिगत विकास के लिए Anthropic API सुविधाजनक है, लेकिन एंटरप्राइज़, वित्त और स्वास्थ्य सेवा के लिए Bedrock ही एकमात्र विकल्प बनता जा रहा है।


Step 1: प्रारंभिक सेटअप

मॉडल एक्सेस के लिए आवेदन

पहले AWS कंसोल में Claude मॉडल तक पहुंच का अनुरोध करें।

# उपलब्ध मॉडलों की सूची देखें
aws bedrock list-foundation-models \
  --by-provider anthropic \
  --region us-east-1 \
  --query 'modelSummaries[].{id:modelId, name:modelName}'

# आउटपुट उदाहरण
[
  {"id": "anthropic.claude-opus-4-5",     "name": "Claude Opus 4.5"},
  {"id": "anthropic.claude-sonnet-4-6",   "name": "Claude Sonnet 4.6"},
  {"id": "anthropic.claude-haiku-4-5-20251001", "name": "Claude Haiku 4.5"}
]

महत्वपूर्ण: मुख्य उपलब्ध regions us-east-1 (वर्जीनिया) और us-west-2 (ओरेगन) हैं। Tokyo region को Cross-region inference के माध्यम से उपयोग किया जा सकता है।

SDK इंस्टॉलेशन

npm install @anthropic-ai/sdk @aws-sdk/client-bedrock-runtime

Step 2: बेसिक कार्यान्वयन

Anthropic SDK के बिल्ट-इन Bedrock सपोर्ट का उपयोग (अनुशंसित)

आधिकारिक Anthropic SDK में Bedrock सपोर्ट बिल्ट-इन है। सिंटैक्स नियमित Anthropic API के लगभग समान होने के कारण, मौजूदा कोड से माइग्रेशन लागत न्यूनतम है

// src/lib/bedrock-client.ts
import Anthropic from "@anthropic-ai/sdk";

// IAM role उपयोग होने पर credentials की जरूरत नहीं (जैसे Lambda/ECS)
const bedrock = new Anthropic.AnthropicBedrock({
  awsRegion: process.env.AWS_REGION ?? "us-east-1",
  // लोकल डेवलपमेंट में AWS CLI प्रोफाइल स्वचालित रूप से उपयोग होता है
});

export async function generateText(
  prompt: string,
  options: { model?: string; maxTokens?: number } = {}
): Promise<string> {
  const { model = "anthropic.claude-sonnet-4-6", maxTokens = 1024 } = options;

  const response = await bedrock.messages.create({
    model,
    max_tokens: maxTokens,
    messages: [{ role: "user", content: prompt }],
  });

  return response.content[0].type === "text" ? response.content[0].text : "";
}

Bedrock के मॉडल ID Anthropic API से अलग हैं:

Anthropic API: claude-sonnet-4-6
Bedrock:       anthropic.claude-sonnet-4-6  (प्रीफिक्स जोड़ा जाता है)

स्ट्रीमिंग सपोर्ट

लंबी प्रतिक्रियाओं के लिए स्ट्रीमिंग आवश्यक है।

// src/lib/bedrock-stream.ts
export async function* streamText(
  prompt: string,
  model = "anthropic.claude-sonnet-4-6"
): AsyncGenerator<string> {
  const stream = await bedrock.messages.stream({
    model,
    max_tokens: 4096,
    messages: [{ role: "user", content: prompt }],
  });

  for await (const chunk of stream) {
    if (
      chunk.type === "content_block_delta" &&
      chunk.delta.type === "text_delta"
    ) {
      yield chunk.delta.text;
    }
  }
}

// उपयोग उदाहरण (Next.js App Router)
export async function POST(req: Request) {
  const { prompt } = await req.json();
  const encoder = new TextEncoder();

  const stream = new ReadableStream({
    async start(controller) {
      for await (const text of streamText(prompt)) {
        controller.enqueue(encoder.encode(text));
      }
      controller.close();
    },
  });

  return new Response(stream, {
    headers: { "Content-Type": "text/event-stream" },
  });
}

Step 3: Lambda + Bedrock पैटर्न

सर्वरलेस AI फीचर्स प्रदान करने के लिए सबसे आम आर्किटेक्चर।

claude -p "
src/lambda/ai-handler.ts में निम्नलिखित Lambda function इम्प्लीमेंट करें:
- event से prompt और maxTokens प्राप्त करें
- Bedrock (claude-sonnet-4-6) को कॉल करें और परिणाम लौटाएं
- एरर हैंडलिंग: ThrottlingException (retry) और ValidationException (400)
- एक्जीक्यूशन टाइम लॉग करें
- handler के बाहर क्लाइंट इनिशियलाइज़ करें (cold start ऑप्टिमाइज़ेशन)
"
// src/lambda/ai-handler.ts
import { Handler, APIGatewayProxyEvent, APIGatewayProxyResult } from "aws-lambda";
import Anthropic from "@anthropic-ai/sdk";

// मॉड्यूल स्कोप में इनिशियलाइज़ (container पुनः उपयोग पर कैश होता है)
const bedrock = new Anthropic.AnthropicBedrock({
  awsRegion: process.env.AWS_REGION,
});

export const handler: Handler<APIGatewayProxyEvent, APIGatewayProxyResult> = async (event) => {
  const startTime = Date.now();

  try {
    const { prompt, maxTokens = 512 } = JSON.parse(event.body ?? "{}");

    if (!prompt) {
      return { statusCode: 400, body: JSON.stringify({ error: "prompt is required" }) };
    }

    const response = await bedrock.messages.create({
      model: "anthropic.claude-sonnet-4-6",
      max_tokens: maxTokens,
      messages: [{ role: "user", content: prompt }],
    });

    const duration = Date.now() - startTime;
    console.log(JSON.stringify({
      level: "INFO",
      duration_ms: duration,
      input_tokens: response.usage.input_tokens,
      output_tokens: response.usage.output_tokens,
    }));

    return {
      statusCode: 200,
      body: JSON.stringify({
        text: response.content[0].type === "text" ? response.content[0].text : "",
        usage: response.usage,
      }),
    };
  } catch (error: any) {
    if (error.name === "ThrottlingException") {
      console.warn("Rate limited by Bedrock, client should retry");
      return { statusCode: 429, body: JSON.stringify({ error: "Rate limited, please retry" }) };
    }
    console.error("Bedrock error:", error);
    return { statusCode: 500, body: JSON.stringify({ error: "AI generation failed" }) };
  }
};

Lambda IAM पॉलिसी

// CDK के साथ IAM कॉन्फ़िगरेशन
import * as iam from "aws-cdk-lib/aws-iam";

lambdaFunction.addToRolePolicy(new iam.PolicyStatement({
  effect: iam.Effect.ALLOW,
  actions: [
    "bedrock:InvokeModel",
    "bedrock:InvokeModelWithResponseStream",
  ],
  resources: [
    `arn:aws:bedrock:us-east-1::foundation-model/anthropic.claude-sonnet-4-6`,
    `arn:aws:bedrock:us-east-1::foundation-model/anthropic.claude-haiku-4-5-20251001`,
  ],
}));

Step 4: RAG (Retrieval-Augmented Generation) कार्यान्वयन

एक पैटर्न जहां Claude आंतरिक दस्तावेज़ या उत्पाद जानकारी पढ़कर प्रश्नों का उत्तर देता है।

claude -p "
Bedrock Knowledge Base का उपयोग करके RAG सिस्टम इम्प्लीमेंट करें।

आर्किटेक्चर:
- S3 में दस्तावेज़ स्टोर करें
- Bedrock Knowledge Base वेक्टर इंडेक्सिंग
- यूज़र के सवालों के आधार पर दस्तावेज़ खोजें
- Claude Sonnet से जवाब जनरेट करें

TypeScript + AWS SDK v3 के साथ इम्प्लीमेंट करें।
Knowledge Base ID को KNOWLEDGE_BASE_ID environment variable से लें।
"
// src/lib/rag.ts
import {
  BedrockAgentRuntimeClient,
  RetrieveAndGenerateCommand,
} from "@aws-sdk/client-bedrock-agent-runtime";

const agentClient = new BedrockAgentRuntimeClient({ region: "us-east-1" });

export async function ragQuery(question: string): Promise<{
  answer: string;
  citations: string[];
}> {
  const response = await agentClient.send(
    new RetrieveAndGenerateCommand({
      input: { text: question },
      retrieveAndGenerateConfiguration: {
        type: "KNOWLEDGE_BASE",
        knowledgeBaseConfiguration: {
          knowledgeBaseId: process.env.KNOWLEDGE_BASE_ID!,
          modelArn: `arn:aws:bedrock:us-east-1::foundation-model/anthropic.claude-sonnet-4-6`,
          retrievalConfiguration: {
            vectorSearchConfiguration: { numberOfResults: 5 },
          },
        },
      },
    })
  );

  const answer = response.output?.text ?? "";
  const citations = (response.citations ?? [])
    .flatMap((c) => c.retrievedReferences ?? [])
    .map((r) => r.location?.s3Location?.uri ?? "")
    .filter(Boolean);

  return { answer, citations };
}

Step 5: लागत अनुकूलन

// मॉडल चयन यूटिलिटी
type TaskType = "classify" | "extract" | "summarize" | "generate" | "complex";

const MODEL_MAP: Record<TaskType, string> = {
  classify: "anthropic.claude-haiku-4-5-20251001",  // $0.80/1M इनपुट टोकन
  extract:  "anthropic.claude-haiku-4-5-20251001",
  summarize: "anthropic.claude-sonnet-4-6",          // $3.00/1M इनपुट टोकन
  generate: "anthropic.claude-sonnet-4-6",
  complex:  "anthropic.claude-opus-4-5",             // $15.00/1M इनपुट टोकन
};

export function selectModel(task: TaskType): string {
  return MODEL_MAP[task];
}

Prompt कैशिंग से इनपुट लागत कम करें

// Bedrock में भी prompt caching उपलब्ध है
const response = await bedrock.messages.create({
  model: "anthropic.claude-sonnet-4-6",
  max_tokens: 1024,
  system: [
    {
      type: "text",
      text: longSystemPrompt,
      cache_control: { type: "ephemeral" },  // 5 मिनट कैश
    },
  ],
  messages: [{ role: "user", content: userQuery }],
});

5 सामान्य गलतियां

1. Region सपोर्ट नहीं करती

Claude on Bedrock सभी regions में उपलब्ध नहीं है। 2026 तक, us-east-1 और us-west-2 मुख्य regions हैं। Tokyo से उपयोग करने के लिए Cross-region inference सक्षम करें।

// Cross-region inference के लिए model ARN उपयोग करें
const crossRegionModelArn = 
  "arn:aws:bedrock:us-east-1::foundation-model/anthropic.claude-sonnet-4-6";

2. मॉडल एक्सेस के लिए आवेदन भूल जाना

Bedrock में, आप जो भी मॉडल उपयोग करना चाहते हैं उसके लिए “Model access” का अनुरोध करना अनिवार्य है। बिना अनुरोध के मॉडल कॉल करने पर AccessDeniedException मिलता है। Claude Code से कोडिंग शुरू करने से पहले हमेशा आवेदन करें।

3. Lambda का timeout बहुत कम है

Claude की प्रतिक्रिया में 10-30 सेकंड लग सकते हैं। Lambda का डिफॉल्ट 3 सेकंड निश्चित रूप से timeout होगा। कम से कम 30 सेकंड, लंबी जनरेशन के लिए 60-300 सेकंड सेट करें।

4. Bedrock के मॉडल ID को Anthropic API के ID से भ्रमित करना

❌ Anthropic API का ID सीधे उपयोग: "claude-sonnet-4-6"
✅ Bedrock का ID: "anthropic.claude-sonnet-4-6"

5. Cross-region inference की latency को नज़रअंदाज़ करना

Tokyo से us-east-1 के मॉडल कॉल करने पर राउंड-ट्रिप नेटवर्क विलंब (~100-200ms) जुड़ जाता है। रियल-टाइम एप्लिकेशन में स्ट्रीमिंग से महसूस होने वाली देरी कम करें।


सारांश

कार्यClaude Code का योगदान
बेसिक कार्यान्वयनAnthropicBedrock क्लाइंट और फ़ंक्शन जनरेट करता है
Lambda इंटीग्रेशनHandler और IAM पॉलिसी एक साथ जनरेट करता है
RAG कार्यान्वयनKnowledge Base इंटीग्रेशन कोड स्वचालित रूप से जनरेट करता है
लागत अनुकूलनकार्य प्रकार के अनुसार मॉडल चयन लॉजिक डिज़ाइन करता है
समस्या निवारणएरर लॉग से कारण और समाधान सुझाता है

Claude Code से विकसित करें, Bedrock पर प्रोडक्शन में चलाएं — यह संयोजन सुरक्षा, लागत और स्केलेबिलिटी की सभी जरूरतें पूरी करता है। मुफ्त Bedrock ट्रायल से शुरू करें, और प्रोडक्शन में जाने के लिए बस IAM role कॉन्फ़िगर करना काफी है।

संबंधित लेख

संदर्भ

#claude-code #aws #bedrock #anthropic #typescript #generative-ai

अपने Claude Code वर्कफ़्लो को अगले स्तर पर ले जाएँ

Claude Code में तुरंत कॉपी-पेस्ट करने योग्य 50 आज़माए हुए प्रॉम्प्ट टेम्पलेट।

मुफ़्त

मुफ़्त PDF: 5 मिनट में Claude Code चीटशीट

बस अपना ईमेल दर्ज करें और हम तुरंत A4 एक-पृष्ठ चीटशीट PDF भेज देंगे।

हम आपकी व्यक्तिगत जानकारी की सुरक्षा करते हैं और स्पैम नहीं भेजते।

Masa

लेखक के बारे में

Masa

Claude Code का गहराई से उपयोग करने वाले इंजीनियर। claudecode-lab.com चलाते हैं, जो 10 भाषाओं में 2,000 से अधिक पेजों वाला टेक मीडिया है।

संबंधित लेख

Claude Code × AWS CodePipeline/CodeBuild पूर्ण गाइड | CI/CD पाइपलाइन स्वचालित रूप से बनाएं
Use Cases

Claude Code × AWS CodePipeline/CodeBuild पूर्ण गाइड | CI/CD पाइपलाइन स्वचालित रूप से बनाएं

Claude Code का उपयोग करके AWS CodePipeline और CodeBuild के साथ CI/CD स्वचालित रूप से बनाएं। पाइपलाइन डिज़ाइन, buildspec.yml जेनरेशन, टेस्ट ऑटोमेशन और CDK इन्फ्रास्ट्रक्चर के व्यावहारिक कोड उदाहरण।

Claude Code × AWS CloudWatch सम्पूर्ण गाइड | लॉग विश्लेषण, अलार्म सेटअप और डैशबोर्ड ऑटोमेशन
Use Cases

Claude Code × AWS CloudWatch सम्पूर्ण गाइड | लॉग विश्लेषण, अलार्म सेटअप और डैशबोर्ड ऑटोमेशन

Claude Code से AWS CloudWatch को और प्रभावी बनाएं। लॉग पैटर्न विश्लेषण, स्वचालित अलार्म कॉन्फ़िगरेशन, मेट्रिक्स डैशबोर्ड और इंसिडेंट जांच के लिए व्यावहारिक कोड।

Claude Code × AWS ECS/Fargate संपूर्ण गाइड | कंटेनर डिप्लॉयमेंट को स्वचालित करें
Use Cases

Claude Code × AWS ECS/Fargate संपूर्ण गाइड | कंटेनर डिप्लॉयमेंट को स्वचालित करें

Claude Code से AWS ECS/Fargate डिप्लॉयमेंट को स्वचालित करें। टास्क डेफिनिशन, सर्विस कॉन्फिगरेशन, Blue/Green डिप्लॉयमेंट और CDK इन्फ्रास्ट्रक्चर तक — Masa के वास्तविक अनुभव पर आधारित।