Claude with Amazon Bedrock ってどんなコース?

Claude with Amazon Bedrockコースの概要

「Claude with Amazon Bedrock」は、Anthropic AcademyのシリーズNo.12に位置するクラウドエンジニア・DevOps・エンタープライズ開発者向けの中〜上級コースです。AWSのマネージドAIサービスであるAmazon Bedrockを通じてClaudeを本番環境にデプロイし、安全かつスケーラブルに運用するための知識を体系的に学びます。

このコースが重要なのは、企業でClaudeを使う場合、多くのケースで「Anthropic APIを直接叩く」のではなく「AWSのBedrock経由でアクセスする」パターンが選ばれるからです。セキュリティ、コンプライアンス、課金管理、既存インフラとの統合――企業が求めるあらゆる要件を満たすには、Bedrockという「エンタープライズの器」に乗せるのが最も合理的です。

コースは約2〜3時間で修了でき、6〜8のモジュール構成。AWSアカウントでの実際のハンズオン操作も含まれるため、座学だけでなく手を動かして学べる実践的な内容になっています。

🤖 メカメモ

Claude with Amazon Bedrock 基本情報

レベル — 中級〜上級(クラウドエンジニア / DevOps / エンタープライズ開発者向け)

所要時間 — 約2〜3時間

構成 — 6〜8モジュール + 最終アセスメント

修了証 — あり(最終アセスメント合格後)

前提知識 — AWSアカウント保有、AWSの基本操作(IAM、VPCなど)、Claude APIの基礎理解(推奨)

対象 — クラウドエンジニア、DevOps、AWS環境でAIをデプロイしたいエンタープライズ開発者

リア(興味津々)
リア

Bedrock……ベッドロック……? マインクラフトの地底にある硬いブロック……じゃないよね? AWSのサービスの名前ってこと?

メカ(通常)
メカ

正解です。Amazon BedrockはAWSが提供するフルマネージドの生成AIサービスで、Claude、Llama、Mistral、Titan、Stable Diffusionなど複数のファウンデーションモデルを1つのAPIから利用できるプラットフォームです。「Bedrock=岩盤」の名前の通り、エンタープライズAIの基盤として設計されています。

リア(軽い驚き)
リア

ってことは、Claudeだけじゃなくて色んなAIモデルが全部同じ場所から使えるってこと? なんか「AIのデパート」みたいだね!

メカ(満足)
メカ

良い例えです。ただし、このコースが注目するのはBedrock上のClaudeです。Bedrockの中でClaudeは最も利用されているモデルの1つであり、企業がBedrockを導入する最大の理由の1つが「Claudeを安全に使いたいから」です。

Amazon Bedrockの基本 ― マネージドAIサービスとしての位置づけ

Amazon Bedrockのアーキテクチャ概要

コースの最初のモジュールでは、Amazon Bedrockそのものの仕組みを学びます。Bedrockを理解するには、まず「マネージドAIサービスとは何か」を押さえる必要があります。

マネージドAIサービスとは

通常、大規模言語モデル(LLM)を本番環境で動かすには、GPUサーバーの調達、モデルのデプロイ、スケーリング、監視、セキュリティ設定……と膨大なインフラ構築が必要です。これを全部AWSが代行してくれるのが「マネージドサービス」という考え方です。

Amazon Bedrockの場合、ユーザーは以下のことを一切やる必要がありません

リア(軽い思考)
リア

要するに「面倒なインフラ全部AWSがやるから、開発者はAIの使い方に集中してね」ってサービスか。Anthropic APIを直接使うのとは何が違うの?

メカ(分析)
メカ

核心的な質問です。Anthropic APIを直接使う場合もサーバーレスで楽ですが、BedrockにはAWSのエコシステム全体との統合という決定的な違いがあります。IAMによるアクセス制御、VPCによるネットワーク分離、CloudTrailによる監査ログ、CloudWatchによるメトリクス監視――これらがすべてAWSネイティブに統合されるのです。次のセクションで詳しく比較しましょう。

Bedrockのアーキテクチャ概要

Bedrockのアーキテクチャは以下のレイヤーで構成されています。

🤖 メカメモ

Bedrockで利用可能な主要Claudeモデル(2026年4月時点)

Claude Opus 4 — 最高品質。複雑な推論・分析・コード生成に最適

Claude Sonnet 4 — バランス型。コスト効率と品質の両立。最も汎用的

Claude Haiku 3.5 — 超高速・低コスト。分類・要約・軽量タスク向け

モデルID例anthropic.claude-sonnet-4-20250514-v1:0

注意 — モデルは手動で有効化が必要(デフォルトでは使えない)

なぜBedrock経由でClaudeを使うのか ― 直接API vs Bedrock の徹底比較

直接APIとBedrock経由の比較

このセクションはコースの中でも特に重要なパートです。「Anthropic APIを直接使えばいいのでは?」という疑問に、コースは明確に答えを出します。結論から言えば、エンタープライズ環境では圧倒的にBedrockが有利ですが、ユースケースによっては直接APIの方が適切な場合もあります。

比較1: セキュリティとアクセス制御

直接Anthropic APIの場合、APIキーの管理は開発者の責任です。キーが漏洩すれば不正利用される可能性があり、きめ細かなアクセス制御(「このユーザーにはSonnetのみ許可、Opusは禁止」など)を実装するには自前のミドルウェアが必要になります。

Bedrock経由の場合、AWSのIAM(Identity and Access Management)がそのまま使えます。

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "bedrock:InvokeModel",
      "Resource": "arn:aws:bedrock:us-east-1::foundation-model/anthropic.claude-sonnet-4-*"
    },
    {
      "Effect": "Deny",
      "Action": "bedrock:InvokeModel",
      "Resource": "arn:aws:bedrock:us-east-1::foundation-model/anthropic.claude-opus-4-*"
    }
  ]
}

このIAMポリシーの例では、「Claude Sonnetの呼び出しは許可するが、Claude Opusの呼び出しは拒否する」というアクセス制御を宣言しています。APIキーを個別に管理する必要はなく、AWSの既存のユーザー・ロール管理の仕組みがそのまま使えるのです。

リア(分析中)
リア

なるほど……! APIキーを1個渡して「はいどうぞ」じゃなくて、「誰が何のモデルをどの条件で使えるか」を細かく設定できるのか。企業だと「新人はHaikuだけ、シニアはOpusもOK」みたいな制御が必要なんだろうね。

メカ(通常)
メカ

その通りです。さらにIAMにはConditionキーがあり、「特定のVPCからのアクセスのみ許可」「特定のタグが付いたリソースからのみ許可」など、非常にきめ細かい制御が可能です。エンタープライズのセキュリティチームが求める要件の大半はIAMで実現できます。

比較2: ネットワークセキュリティ

Anthropic APIを直接呼ぶ場合、トラフィックはインターネットを経由します。企業によっては「社内データをインターネットに出すのはNG」というポリシーがあり、これが直接APIの利用を阻むことがあります。

BedrockではVPCエンドポイント(AWS PrivateLink)を使うことで、トラフィックがAWSネットワーク内に閉じた経路を通ります。インターネットに一切出ることなくClaudeを呼び出せるため、金融機関や医療機関など厳格なネットワークポリシーを持つ組織でも導入できます。

比較3: 監査ログとコンプライアンス

エンタープライズでは「誰が、いつ、どのモデルを、何の目的で使ったか」を記録する監査ログが必須です。BedrockではAWS CloudTrailが全APIコールを自動的に記録し、Model Invocation Loggingで入出力の内容まで保存できます(オプション)。

これにより、SOC 2、HIPAA、GDPRなどのコンプライアンス要件への対応が格段に楽になります。「AIの利用履歴を監査可能な形で保持する」という要件を、追加開発なしで満たせるのです。

比較4: 支払い一元化

企業のIT部門にとって「新しいベンダーとの契約」はそれだけで大きなハードルです。Bedrock経由であればClaude の利用料金はAWSの請求書に統合されます。既にAWSと契約がある企業なら、新しい契約手続きや購買稟議なしでClaudeを使い始められます。

リア(ひらめき)
リア

あー! 企業だと「新しいサービスの契約」って購買部門の承認が必要だったりするんだよね! でもAWSならもう契約済みだから、「AWSの使い方を増やすだけ」で通せる! これは企業のIT部門にとっては超でかいメリットだ!

比較5: まとめ表

観点 直接Anthropic API Amazon Bedrock経由
認証 APIキー IAMロール / 一時認証情報
アクセス制御 APIキー単位(粗い) IAMポリシー(非常にきめ細かい)
ネットワーク インターネット経由 VPC PrivateLink対応
監査ログ 自前で実装 CloudTrail自動記録
課金 Anthropicに直接支払い AWS請求書に統合
追加機能 なし(APIのみ) Guardrails, Knowledge Bases, Agents
最新モデル 即日利用可能 数日〜数週間の遅延あり
セットアップ APIキー取得のみ(簡単) IAM, モデル有効化等(やや手間)
適用場面 個人開発、PoC、スタートアップ エンタープライズ、規制業種、大規模運用
メカ(ドヤ顔)
メカ

補足すると、「最新モデルへのアクセス速度」は直接APIの方が有利です。Anthropicが新モデルをリリースしてからBedrockに反映されるまで数日〜数週間のタイムラグがあります。最新モデルを即座に試したいPoCフェーズでは直接API、本番環境に載せるならBedrockという使い分けが一般的です。

学べる内容 ― 各モジュール詳細

各モジュールの学習内容

ここからはコースの各モジュールで学ぶ内容を、実際のコード例を交えながら詳しく解説します。

モジュール1: Bedrockでのモデル有効化手順

Bedrockではモデルはデフォルトで無効になっています。Claudeを使い始めるには、AWSマネジメントコンソールから明示的にモデルアクセスをリクエストする必要があります。

手順は以下の通りです。

  1. AWSマネジメントコンソールにログイン
  2. Amazon Bedrockコンソールを開く
  3. 左メニューから「Model access(モデルアクセス)」を選択
  4. Anthropicセクションから使いたいClaudeモデルにチェックを入れる
  5. 「Request model access(モデルアクセスをリクエスト)」をクリック
  6. 利用規約に同意して送信
  7. 数分以内にアクセスが有効化される(Anthropicモデルの場合、通常は自動承認)
リア(軽い困惑)
リア

えっ、デフォルトで使えないの!? 「有効化」を忘れてて「動かない!」ってパニックになる人いそうだね。

メカ(無表情)
メカ

実際に非常に多い「Bedrock初心者あるある」の第1位です。AccessDeniedExceptionが出たらまずモデルアクセスの有効化を確認してください。もう1つの注意点として、リージョンごとに有効化が必要です。us-east-1で有効化しても、ap-northeast-1(東京)では別途有効化が必要です。

モジュール2: Bedrock APIの使い方(boto3での呼び出し)

Bedrockでは、AWSの公式SDK(PythonならBoto3)を使ってClaudeを呼び出します。Anthropic直接APIとはリクエスト形式が異なる点がコースの重要ポイントです。

まず、最もシンプルな呼び出しコードを見てみましょう。

import boto3
import json

# Bedrock Runtimeクライアントを作成
client = boto3.client(
    service_name="bedrock-runtime",
    region_name="us-east-1"
)

# リクエストボディを構築(Anthropic Messages API形式)
request_body = json.dumps({
    "anthropic_version": "bedrock-2023-05-31",
    "max_tokens": 1024,
    "messages": [
        {
            "role": "user",
            "content": "Amazon Bedrockとは何ですか?日本語で簡潔に説明してください。"
        }
    ]
})

# モデルを呼び出す
response = client.invoke_model(
    modelId="anthropic.claude-sonnet-4-20250514-v1:0",
    contentType="application/json",
    accept="application/json",
    body=request_body
)

# レスポンスを解析
response_body = json.loads(response["body"].read())
print(response_body["content"][0]["text"])

注目すべきポイントがいくつかあります。

リア(画面集中)
リア

コードの雰囲気は直接APIと似てるけど、微妙に違うところがたくさんあるんだね。特に認証が「AWSの仕組み」になるのが大きな違いか……。APIキーをコードに書かなくていいのはセキュリティ的にかなり良いね!

次に、ストリーミングレスポンス(回答を少しずつリアルタイムで受け取る)のコード例です。チャットアプリのようにリアルタイム表示したい場合に使います。

import boto3
import json

client = boto3.client(
    service_name="bedrock-runtime",
    region_name="us-east-1"
)

request_body = json.dumps({
    "anthropic_version": "bedrock-2023-05-31",
    "max_tokens": 2048,
    "messages": [
        {
            "role": "user",
            "content": "Bedrockを使う3つのメリットを教えて"
        }
    ]
})

# ストリーミングで呼び出し
response = client.invoke_model_with_response_stream(
    modelId="anthropic.claude-sonnet-4-20250514-v1:0",
    contentType="application/json",
    accept="application/json",
    body=request_body
)

# ストリームからチャンクを逐次読み取り
for event in response["body"]:
    chunk = json.loads(event["chunk"]["bytes"])
    if chunk["type"] == "content_block_delta":
        print(chunk["delta"]["text"], end="", flush=True)

print()  # 最終改行
🤖 メカメモ

Bedrock API vs 直接Anthropic APIの主な差分

認証 — 直接API: x-api-keyヘッダー → Bedrock: AWS SigV4署名(SDKが自動処理)

エンドポイント — 直接API: api.anthropic.com → Bedrock: bedrock-runtime.{region}.amazonaws.com

モデル指定 — 直接API: model: "claude-sonnet-4-20250514" → Bedrock: modelId: "anthropic.claude-sonnet-4-20250514-v1:0"

バージョン — 直接API: anthropic-versionヘッダー → Bedrock: リクエストボディ内のanthropic_version

ストリーミング — 直接API: SSE形式 → Bedrock: EventStream形式(invoke_model_with_response_stream

モジュール3: IAMポリシー設定 ― 最小権限の原則を実現する

コースの中盤で重点的に扱われるのがIAMによるアクセス制御です。AWSの「最小権限の原則(Principle of Least Privilege)」をBedrock環境に適用する方法を学びます。

以下は、本番環境で推奨されるIAMポリシーの例です。

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "AllowClaudeSonnetInvocation",
      "Effect": "Allow",
      "Action": [
        "bedrock:InvokeModel",
        "bedrock:InvokeModelWithResponseStream"
      ],
      "Resource": [
        "arn:aws:bedrock:us-east-1::foundation-model/anthropic.claude-sonnet-4-*"
      ],
      "Condition": {
        "StringEquals": {
          "aws:RequestedRegion": "us-east-1"
        }
      }
    },
    {
      "Sid": "AllowBedrockGuardrails",
      "Effect": "Allow",
      "Action": [
        "bedrock:ApplyGuardrail"
      ],
      "Resource": "arn:aws:bedrock:us-east-1:123456789012:guardrail/*"
    },
    {
      "Sid": "DenyHighCostModels",
      "Effect": "Deny",
      "Action": "bedrock:InvokeModel",
      "Resource": [
        "arn:aws:bedrock:us-east-1::foundation-model/anthropic.claude-opus-4-*"
      ]
    }
  ]
}

このポリシーでは、以下の3つのルールを定義しています。

  1. Claude Sonnetの呼び出しを許可(ストリーミング含む、us-east-1リージョン限定)
  2. Guardrailsの適用を許可(後述するAIの安全性制御機能)
  3. Claude Opusの呼び出しを明示的に拒否(コスト制御のため)
リア(感嘆)
リア

すごい……! 「このモデルだけ使える」「このリージョンだけ」「Opusは使わせない」って全部JSONで宣言するだけで制御できるんだ。これはセキュリティチームが好きそう。

メカ(通常)
メカ

IAMの強力さは「宣言的であること」にあります。「やっていいこと」と「やってはいけないこと」をJSONで書くだけで、AWSが強制的にそのルールを適用する。コード側で認可チェックを実装する必要がない。コースではLambda関数にIAMロールをアタッチして、サーバーレスでBedrockを呼ぶパターンも紹介されます。

モジュール4: Guardrails ― AIの出力を安全にコントロールする

GuardrailsはBedrock固有の最も重要な機能の1つです。Claudeの入出力に対して、企業が定めたポリシーに基づくフィルタリングを適用できます。直接Anthropic APIにはない、Bedrockならではの機能です。

Guardrailsでできることは以下の通りです。

import boto3
import json

client = boto3.client(
    service_name="bedrock-runtime",
    region_name="us-east-1"
)

# Guardrailを適用してモデルを呼び出す
request_body = json.dumps({
    "anthropic_version": "bedrock-2023-05-31",
    "max_tokens": 1024,
    "messages": [
        {
            "role": "user",
            "content": "競合のA社の製品について教えてください"
        }
    ]
})

response = client.invoke_model(
    modelId="anthropic.claude-sonnet-4-20250514-v1:0",
    contentType="application/json",
    accept="application/json",
    body=request_body,
    guardrailIdentifier="my-guardrail-id",   # GuardrailのID
    guardrailVersion="1"                      # Guardrailのバージョン
)

response_body = json.loads(response["body"].read())

# Guardrailがトリガーされた場合の処理
if response_body.get("amazon-bedrock-guardrailAction") == "GUARDRAIL_INTERVENED":
    print("Guardrailにより回答がブロックされました")
    print(response_body["content"][0]["text"])  # Guardrailの代替メッセージ
else:
    print(response_body["content"][0]["text"])
リア(キラキラ)
リア

おおお! 「競合のことは話さない」ってルールをAIに強制できるんだ! これはカスタマーサポートBotとかで超重要だね。うっかり「A社の製品の方がいいですよ」とか言っちゃうAIがいたら大問題だもん!

メカ(分析)
メカ

重要なのは、Guardrailsがモデルとは独立したレイヤーとして機能する点です。Claudeのシステムプロンプトに「競合のことは話すな」と書くだけでは、プロンプトインジェクションで突破される可能性がある。Guardrailsはモデルの外側で動作するため、より堅牢です。コースではGuardrailsの作成・テスト・運用の全プロセスを学びます。

モジュール5: Knowledge Bases ― RAGで社内知識を活用する

Knowledge Basesは、企業の独自データをClaudeの回答に反映させるRAG(Retrieval-Augmented Generation)システムをフルマネージドで構築する機能です。

RAGの仕組みを簡潔に言えば、「ユーザーの質問に関連する社内ドキュメントをベクトル検索で見つけ出し、その内容をClaudeに渡して回答を生成させる」というものです。これにより、Claudeの学習データにはない自社固有の情報(製品マニュアル、社内規定、FAQ等)に基づいた回答が得られます。

Knowledge Basesの構成要素は以下の通りです。

import boto3
import json

# Bedrock Agent Runtimeクライアント(Knowledge Basesの検索に使う)
agent_client = boto3.client(
    service_name="bedrock-agent-runtime",
    region_name="us-east-1"
)

# Knowledge Baseに対して質問する
response = agent_client.retrieve_and_generate(
    input={
        "text": "製品Xの返品ポリシーを教えてください"
    },
    retrieveAndGenerateConfiguration={
        "type": "KNOWLEDGE_BASE",
        "knowledgeBaseConfiguration": {
            "knowledgeBaseId": "KB12345678",
            "modelArn": "arn:aws:bedrock:us-east-1::foundation-model/anthropic.claude-sonnet-4-20250514-v1:0",
            "retrievalConfiguration": {
                "vectorSearchConfiguration": {
                    "numberOfResults": 5  # 上位5件のドキュメントを取得
                }
            }
        }
    }
)

# 回答を表示
print(response["output"]["text"])

# 参照元ドキュメントを表示
for citation in response["citations"]:
    for ref in citation["retrievedReferences"]:
        print(f"出典: {ref['location']['s3Location']['uri']}")
        print(f"抜粋: {ref['content']['text'][:200]}...")
        print("---")
メカ(満足)
メカ

Knowledge Basesの最大のメリットは、「出典の明示」が自動で行われる点です。回答にどのドキュメントのどの部分が使われたかが分かる。これは企業利用では必須の要件で、「AIが勝手に作り話をしていないか」を確認できる証拠になります。Guardrailsと組み合わせれば、出典に基づかない回答をブロックすることも可能です。

リア(にっこり)
リア

「出典付き」って、学校のレポートで「参考文献」を載せるみたいだね! AIの回答が信頼できるかどうか、元のドキュメントに戻って確認できるのは安心感がある!

モジュール6: Bedrock Agents ― AIに自律的なタスク実行をさせる

Bedrock Agentsは、Claudeに外部ツールの呼び出しやマルチステップのタスク実行を行わせる機能です。単に質問に答えるだけでなく、「データベースを検索して、結果を整理して、メールで送信する」といった一連の処理をClaudeが自律的に計画・実行します。

Agentsの仕組みは以下の通りです。

  1. Instructions ― AgentにどのようなAIアシスタントとして振る舞うかを指示する(システムプロンプトに相当)
  2. Action Groups ― Agentが呼び出せるツール(Lambda関数やAPI)を定義する。OpenAPIスキーマで定義
  3. Knowledge Bases ― 前述のKnowledge Basesを接続して、社内知識も参照可能に
  4. Orchestration ― Claudeがユーザーの要求を分析し、必要なツールを選び、順序を決めて実行する

例えば、「カスタマーサポートAgent」を構築する場合、以下のようなAction Groupsを定義できます。

ユーザーが「注文ID 12345のステータスを教えて。もしキャンセルされていたら返金処理をして」と言えば、Agentは自動的にgetOrderStatusで状態を確認し、キャンセル済みならinitiateRefundを呼び、sendEmailで確認メールを送る――という一連のフローを自律的に実行します。

リア(ひらめき)
リア

これはもう「チャットBot」の次元を超えてるね! AIが実際にシステムを操作して仕事してくれるんだ! カスタマーサポートの自動化とか、このAgentsで一気に実現できそう!

メカ(通常)
メカ

注意点として、Agentsは強力ですが「何でもできるわけではない」です。コースではGuardrailsとの併用が強く推奨されています。Agentが「返金処理」のような金銭に関わる操作を行う場合、必ず人間の承認ステップを挟むか、金額の上限をGuardrailsで設定するなどの安全策が必要です。

モジュール7: Provisioned Throughput ― スループット保証と料金最適化

Bedrockのデフォルトの課金方式はオンデマンド(従量課金)です。リクエストごとに入力トークン数と出力トークン数に基づいて課金されます。個人開発やPoCではこれで十分ですが、大規模なエンタープライズ運用ではProvisioned Throughput(プロビジョンドスループット)の検討が必要になります。

Provisioned Throughputでは、一定量のモデル処理能力を事前に確保(予約)します。メリットは以下の通りです。

🤖 メカメモ

Bedrock料金体系の整理(Claudeモデル)

オンデマンド — 入力トークン単価 + 出力トークン単価 の従量課金。初期費用ゼロ。少量利用やPoCに最適

Provisioned Throughput — Model Unit(処理能力の単位)を時間単位で予約。月額固定。大規模運用に最適

バッチ推論 — 大量のリクエストをまとめて非同期処理。オンデマンドより50%割引。レイテンシ不要のバッチ処理向け

コスト最適化のコツ — PoCはオンデマンド → 本番はProvisioned or バッチの使い分けが基本

リア(深い考え)
リア

バッチ推論で50%割引はでかい! リアルタイムで返事が必要ないケース、例えば「夜中にまとめて1000件のドキュメントを要約する」みたいな用途ならバッチ推論が圧倒的にお得ってことだよね。

メカ(ドヤ顔)
メカ

正確です。コースではこの料金最適化についても具体的な試算方法を学びます。例えば「月間100万トークン処理するならオンデマンド vs Provisioned Throughputでどちらが安いか」をExcelやスプレッドシートで計算するハンズオンがあります。クラウドエンジニアにとって、コスト見積もりは上長への稟議で必ず求められるスキルです。

モジュール8: エンタープライズデプロイパターン

コースの最後のモジュールでは、実際の本番環境アーキテクチャのパターンが紹介されます。代表的な3つのパターンを解説します。

パターン1: サーバーレスアーキテクチャ(Lambda + API Gateway + Bedrock)

最もシンプルで推奨されるパターンです。ユーザーのリクエストをAPI Gateway → Lambda → Bedrock Runtimeの流れで処理します。サーバー管理が不要で、自動スケーリング。小〜中規模のアプリケーションに最適です。

import boto3
import json
import os

# Lambda関数: API GatewayからのリクエストをBedrockに中継
def lambda_handler(event, context):
    client = boto3.client("bedrock-runtime", region_name="us-east-1")

    # リクエストボディからユーザーのメッセージを取得
    body = json.loads(event["body"])
    user_message = body["message"]

    request_body = json.dumps({
        "anthropic_version": "bedrock-2023-05-31",
        "max_tokens": 2048,
        "system": "あなたは親切なカスタマーサポート担当者です。日本語で回答してください。",
        "messages": [
            {"role": "user", "content": user_message}
        ]
    })

    response = client.invoke_model(
        modelId="anthropic.claude-sonnet-4-20250514-v1:0",
        contentType="application/json",
        accept="application/json",
        body=request_body,
        guardrailIdentifier=os.environ["GUARDRAIL_ID"],
        guardrailVersion=os.environ["GUARDRAIL_VERSION"]
    )

    response_body = json.loads(response["body"].read())

    return {
        "statusCode": 200,
        "headers": {"Content-Type": "application/json"},
        "body": json.dumps({
            "response": response_body["content"][0]["text"]
        }, ensure_ascii=False)
    }

パターン2: コンテナアーキテクチャ(ECS / EKS + Bedrock)

より複雑なアプリケーション、例えばWebSocketによるリアルタイムチャット、セッション管理、マルチターン会話の状態保持などが必要な場合は、ECS(Elastic Container Service)やEKS(Elastic Kubernetes Service)上のコンテナからBedrockを呼び出すパターンが使われます。

パターン3: マルチアカウント / マルチリージョン構成

大企業では、開発環境・ステージング環境・本番環境をAWSの別アカウントで分離するのが一般的です。各アカウントからクロスアカウントIAMロールでBedrockを呼び出す構成や、障害対策として複数リージョンに分散するパターンも紹介されます。

リア(眠い)
リア

マルチアカウント・マルチリージョン……スケールがでかすぎて頭がクラクラしてきた……。でも大企業ってそういうレベルで設計するんだね……。

メカ(通常)
メカ

安心してください。コースでは最初にパターン1(サーバーレス)をハンズオンで構築し、そこからスケールアップする場合の選択肢としてパターン2、3が紹介されるという流れです。まずはパターン1を理解すれば十分実用的です。

直接API vs Bedrock ― どちらを選ぶべきか判断基準

APIとBedrockの選択判断基準

コースの終盤では、「結局どっちを使えばいいの?」という最も実用的な判断基準が提示されます。以下のフローチャートで判断できます。

直接Anthropic APIを選ぶべきケース

Amazon Bedrockを選ぶべきケース

リア(やる気)
リア

なるほど! 要するに「個人・小規模・PoC → 直接API」「企業・大規模・本番 → Bedrock」って大まかに覚えておけばいいんだね!

メカ(満足)
メカ

良いまとめです。実際の現場では「PoCは直接APIで素早く作り、承認が取れたらBedrock環境に移行する」というパターンが非常に多いです。コースではこの移行パターン(APIのリクエスト形式の変換、IAMの設定方法等)も詳しく扱われます。

受講のコツ ― AWSの無料利用枠を活用して実際に試す

受講のコツとAWS無料利用枠の活用

このコースを最大限に活用するためのコツをまとめます。

コツ1: AWSアカウントを事前に準備する

コースにはハンズオン要素が含まれています。AWSアカウントがないと座学だけの受講になってしまうため、事前にアカウントを作成しておきましょう。AWSアカウントの作成自体は無料です。ただし、Bedrockの利用には課金が発生する点に注意してください。

コツ2: AWS Free Tier(無料利用枠)を活用する

AWSには新規アカウント向けの無料利用枠があります。Bedrockも一部モデルで無料利用枠が提供されることがあります。コースの簡単なハンズオンであれば、数ドル〜数十ドル以内に収まることが多いですが、必ず利用後にBilling(請求)ダッシュボードで金額を確認する習慣をつけてください。

コツ3: CloudShellを活用する

AWSマネジメントコンソールにはCloudShell(ブラウザ内ターミナル)が備わっています。ローカルにPython環境を構築しなくても、CloudShellからboto3を使ったBedrock APIの呼び出しを即座に試せます。セットアップの手間を省きたい場合に便利です。

コツ4: 直接APIでの経験があると理解が早い

このコースの前提として「Claude APIの基礎理解」が推奨されています。先にAnthropicの直接APIでClaude を使った経験があると、「Bedrockでは何が違うのか」が明確に分かり、学習効率が大幅に上がります。まだの場合は「Real World Prompting」コースや「Building with the Claude API」コースを先に受けるのも良い選択です。

リア(笑顔)
リア

CloudShellいいね! 「ローカルに環境構築するのが面倒で手が動かない」パターンって多いから、ブラウザだけで試せるのは助かる! あと、お金のことは本当に大事……AWSは知らない間に課金されることがあるから、Billingダッシュボードの確認は絶対やろうね!

🤖 メカメモ

ハンズオン前の準備チェックリスト

AWSアカウント — 作成済みか確認。MFAの有効化も推奨

IAMユーザー — ルートアカウントではなくIAMユーザーで作業する(AWSのベストプラクティス)

リージョン — us-east-1(バージニア北部)を推奨(Claudeモデルが最も早く利用可能)

モデルアクセス — BedrockコンソールでClaude モデルへのアクセスを事前に有効化

Billing Alert — 予算アラートを設定して想定外の課金を防ぐ

次に進むコース ― Vertex AIとの対比、そしてその先へ

次に進むべきコースの案内

Claude with Amazon Bedrockを修了したら、次は以下のコースが自然な学習パスです。

リア(調査中)
リア

BedrockとVertex AIの両方を学べば、「AWS派」と「GCP派」のどちらのお客さんにも対応できるようになるんだね! クラウドエンジニアとしてはめっちゃ強い武器になりそう!

メカ(分析)
メカ

その通りです。BedrockとVertex AIの両方を比較学習すると、「Claudeをクラウドに載せる」という共通パターンと「各クラウド固有の差異」が見えてきます。マルチクラウド戦略を取る企業では、両方の知識を持つエンジニアは非常に重宝されます。

まとめ ― Bedrockは「企業がClaudeを安心して使うための器」

コースのまとめとBedrock活用の全体像

「Claude with Amazon Bedrock」コースの内容を総括します。

Claudeの能力を最大限に活かしつつ、企業が求めるセキュリティ・コンプライアンス・スケーラビリティを実現する――そのための「正しい載せ方」を教えてくれるのがこのコースです。AWSを使っている企業の開発者やクラウドエンジニアにとっては必修と言える内容です。

リア(自信)
リア

いやー、盛りだくさんだったね! IAM、Guardrails、Knowledge Bases、Agents、Provisioned Throughput……企業でClaudeを使うための「フルセット」が全部詰まったコースだ!

メカ(満足)
メカ

このコースの本質は「Claudeの使い方」ではなく「Claudeの載せ方」です。優れたAIモデルがあっても、企業のセキュリティ要件を満たせなければ本番環境には導入できない。Bedrockはその橋渡しをするサービスであり、このコースはその橋の渡り方を教えてくれます。AWSエンジニアは是非受講してください。

リア(ウインク)
リア

次はGoogle CloudのVertex AI版を紹介するよ! AWSとGCP、どっちのクラウドでClaudeを使うか迷ってる人はぜひ両方チェックしてね! じゃ、また次の記事で!