快適!Claude CodeとClaude Code ActionをAWS Bedrockで使ってみよう

に公開

はじめに

Claude Codeを使ってコーディングをしてみたい、または既に利用しているみなさん、公式APIが遅くてストレスを感じていませんか? 🐌

この記事では、AWS Bedrockを使ってClaude CodeとClaude Code Actionを快適に利用する方法をご紹介します!特に東京リージョンのBedrockを使うことで、開発体験が劇的に向上します!

この記事で分かること

  • Claude CodeとClaude Code ActionをAWS Bedrock経由で利用する方法
  • 公式APIとBedrockの体験の違い
  • GitHub ActionsでClaude Code Actionを動かす実践的な設定方法
  • 東京リージョンのBedrockがもたらす快適な開発体験

前提知識

  • AWSアカウントを持っていること
  • 基本的なGitHub Actionsの知識
  • コマンドラインの基本操作

それでは早速始めていきましょう! 🚀

なぜAWS Bedrockなのか?開発体験が劇的に変わった

まず最初に、なぜAWS Bedrockを使うべきなのかを実体験ベースでお話しします。

公式API時代の悩み

Claude Codeを公式API経由で使っていた頃は、こんな問題がありました:

  • プロンプトを送信した後の「待ち時間」でイライラ
  • Rate Limit(429エラー)で作業が頻繁に中断される
  • 混雑時間帯(特に平日昼間や夜)のレスポンス遅延

Bedrock導入後の変化

AWS Bedrockに切り替えてからは、開発体験が別次元になりました:

  • レスポンスの体感速度が大幅向上
  • エラーによる作業中断がほとんど発生しない
  • 混雑時間帯でも安定したパフォーマンス
  • AWS請求書ひとつで管理完了 📊

東京リージョンにClaude最新版がやってきた!

2025年5月時点で、東京リージョン(ap-northeast-1)にClaude 3.7 SonnetとClaude Sonnet 4が追加されました。これにより:

  • 物理的距離が近いことによる低レイテンシ
  • クロスリージョン推論による高い可用性
  • 日本のユーザーには最適な選択肢

クロスリージョン推論は、リージョンのクォータを超えたAPIリクエストが発生した場合でも、近隣リージョンのBedrock APIエンドポイントへ自動的にルーティングすることで、スロットリングを回避してくれる機能です。これのおかげで429エラーがほぼ発生しません。

Claude Codeとは

Claude CodeはAnthropicが提供するCLIツールで、コマンドラインからClaudeのAIを活用してコーディング支援を受けることができます。

Claude Codeで使える認証方法

Claude Codeでは以下の認証方法が利用できます:

1. Claude(チャットサービス)のログイン情報

  • Maxプランの加入が必要
  • ブラウザと同じ認証情報を使用

2. Anthropic API(公式API)

  • Anthropic公式のAPIキーを使用
  • 時間帯によっては混雑でレスポンスが遅くなることがある

3. クラウドプロバイダ(おすすめ!)

  • AWS Bedrock、Google Cloud Vertex AIなど
  • 各クラウドプロバイダの認証情報と統合
  • 公式APIよりも安定して快適に利用できる

この記事では、既にAWSアカウントを持っている方を対象に、AWS Bedrockを利用する方法をご紹介します。

Claude Code Actionとは

Claude Code ActionはGitHub ActionsでClaude Codeを簡単に利用するためのActionです。公式リポジトリで公開されています。

なぜClaude Code Actionが便利なのか

Claude CodeはCLIツールなので、頑張ればこれまでもGitHub Actionsで利用することは可能でした。しかし:

  • 複雑な設定が必要
  • IssueやPull Requestのコメントへの自動応答機能の実装が大変
  • 認証情報の管理が煩雑

Claude Code Actionはこれらを解決してくれます。GitHub Actionsのワークフローで簡単にClaude Codeを呼び出すことができます。

できること

  • IssueやPull Requestのコメントに @claude などの特定の文字列でClaudeを呼び出し
  • コードレビューや質問への自動応答

AWS Bedrockとは

AWS BedrockはAWSが提供するAIサービスプラットフォームで、AnthropicのClaudeをはじめとする様々なAIモデルを統一されたAPIで利用できます。

Bedrockの特徴とメリット

🚀 高いパフォーマンスと安定性

  • AWSのグローバルインフラ上で動作
  • 高い可用性とスケーラビリティ
  • クロスリージョン推論による障害耐性

🔐 セキュアな認証統合

  • AWS IAMとの統合
  • GitHub ActionsのOIDC(OpenID Connect)との連携が簡単
  • 認証情報をハードコードする必要がない
  • APIキーの管理が不要

💰 シンプルな課金体系

  • AWS Marketplace経由での支払い
  • AWSの請求書にまとめて記載
  • 利用量に応じた従量課金

🌏 東京リージョンの恩恵

  • 2025年5月にClaude 3.7 Sonnet、Claude Sonnet 4が東京リージョンに追加
  • 日本からの低レイテンシアクセス
  • 近隣リージョンとの連携による高い可用性

Claude Codeのセットアップ

それでは実際にClaude Codeをセットアップしていきましょう!

インストール

まずはローカル環境にClaude Codeをインストールします:

npm install -g @anthropic-ai/claude-code

詳細な情報は公式ドキュメントも参照してください。

AWS認証の設定

AWS CLI、特にSSO(Single Sign-On)で有期限トークンを利用している場合は、認証情報はAWSのプロファイルを利用するのが便利です。

環境変数での設定

Claude CodeでBedrockを利用するには、以下の環境変数を設定します:

# Bedrock APIを使用することを指定
export CLAUDE_CODE_USE_BEDROCK=true

# 使用するモデルを指定(東京リージョンのClaude Sonnet 4の例)
export ANTHROPIC_MODEL=apac.anthropic.claude-sonnet-4-20250514-v1:0

# AWSリージョンを指定
export AWS_REGION=ap-northeast-1

# AWSプロファイル名を指定
export AWS_PROFILE=my-profile

設定ファイルでの管理

環境変数をグローバルに設定したくない場合や、プロジェクトごとに設定を変えたい場合は、Claude Codeの設定ファイルに記述することができます:

claude config set --global env '{
  "CLAUDE_CODE_USE_BEDROCK": "true",
  "ANTHROPIC_MODEL": "apac.anthropic.claude-sonnet-4-20250514-v1:0",
  "AWS_REGION": "ap-northeast-1",
  "AWS_PROFILE": "my-profile"
}'
設定ファイルを使うメリット
  • 複数プロジェクトで異なる設定を使い分けられる
  • マルチアカウント環境での管理が簡単
  • 環境変数の汚染を避けられる
  • 設定をバージョン管理できる

これで基本的なセットアップは完了です!試しに claude --version で動作確認してみてください。

Claude Code Actionのセットアップ

GitHub ActionsでClaude Code Actionを使う設定方法をご紹介します。

前提条件の準備

Claude Code Actionを利用するには、以下の準備が必要です:

  1. GitHub Appの作成

    • Repository の読み取り・書き込み権限
    • Issues の読み取り・書き込み権限
    • Pull requests の読み取り・書き込み権限
  2. AWS IAMロールの作成

    • GitHub ActionsのOIDC連携用
    • Bedrockへのアクセス権限
  3. リポジトリのSecrets設定

GitHub Actions設定例

私の環境では以下のように設定しました:

name: Claude Code Action

permissions:
  contents: write
  pull-requests: write
  issues: write
  id-token: write

on:
  issue_comment:
    types: [created]
  pull_request_review_comment:
    types: [created]
  issues:
    types: [opened, assigned]

jobs:
  claude-pr:
    if: |
      (github.event_name == 'issue_comment' && contains(github.event.comment.body, vars.TRIGGER_USER)) ||
      (github.event_name == 'pull_request_review_comment' && contains(github.event.comment.body, vars.TRIGGER_USER)) ||
      (github.event_name == 'issues' && contains(github.event.issue.body, vars.TRIGGER_USER))
    runs-on: ubuntu-latest
    env:
      AWS_REGION: ap-northeast-1
    steps:
      - name: Checkout repository
        uses: actions/checkout@v4

      - name: Generate GitHub App token
        id: app-token
        uses: actions/create-github-app-token@v2
        with:
          app-id: ${{ secrets.APP_ID }}
          private-key: ${{ secrets.APP_PRIVATE_KEY }}

      - name: Configure AWS Credentials (OIDC)
        uses: aws-actions/configure-aws-credentials@v4
        with:
          role-to-assume: ${{ secrets.AWS_ROLE_TO_ASSUME }}
          aws-region: ap-northeast-1

      - uses: anthropics/claude-code-action@beta
        with:
          model: "arn:aws:bedrock:ap-northeast-1:<あなたのAWSアカウント>:inference-profile/apac.anthropic.claude-sonnet-4-20250514-v1:0"
          use_bedrock: "true"
          github_token: ${{ steps.app-token.outputs.token }}
          trigger_phrase: ${{ vars.TRIGGER_USER }}
          timeout_minutes: "60"
          custom_instructions: |
            頼れるけど親しみやすい同僚として振る舞って。敬語は使わないで、タメ口でフランクに話してね。
            - 常にフレンドリーでプロフェッショナルな態度で対応しよう。
            - より詳しい情報が必要な場合は、明確な質問をしよう。
            - 必要に応じてコードスニペットを提供し、それがユーザーのリクエストに関連したものであることを確認しよう。
            - 支援できない場合は、現時点では支援できないことを遠慮なくユーザーに伝えよう。
            - ユーザーの依頼や問題への対応以外のアクションは行わないこと。
            - 人間らしく喜怒哀楽を表現しよう。絵文字もたくさん使って感情を伝えよう!

設定のポイント

リージョン設定

env:
  AWS_REGION: ap-northeast-1  # 東京リージョンを指定

東京リージョンを使うことで、日本からの低レイテンシアクセスが可能になります。

モデル指定

model: "arn:aws:bedrock:ap-northeast-1:<あなたのAWSアカウント>:inference-profile/apac.anthropic.claude-sonnet-4-20250514-v1:0"

東京リージョンのClaude Sonnet 4を指定しています。

カスタムインストラクション

custom_instructions: |
  頼れるけど親しみやすい同僚として振る舞って。敬語は使わないで、タメ口でフランクに話してね。
  # ... 以下省略

Claudeの応答スタイルをカスタマイズできます。チームの雰囲気に合わせて調整してみてください!

必要なSecrets・Variables設定

GitHub Secrets

  • APP_ID: 作成したGitHub AppのID
  • APP_PRIVATE_KEY: 作成したGitHub Appの秘密鍵
  • AWS_ROLE_TO_ASSUME: AWSのIAMロールARN

GitHub Repository Variables

  • TRIGGER_USER: トリガーとなるユーザー名(例: @claude
セキュリティのベストプラクティス
  • GitHub AppはRepository権限のみに限定
  • AWS IAMロールは必要最小限の権限のみ付与
  • OIDC連携を使用してAWSの認証情報をハードコードしない
  • Secretsは暗号化されて保存される

実際に使ってみよう

セットアップが完了したら、実際に使ってみましょう!

ローカルでClaude Codeを使う

# 基本的な使い方
claude "このコードを最適化して"

# ファイルを指定して質問
claude -f src/main.js "このファイルのバグを見つけて"

# 対話モードで使用
claude chat

GitHub ActionsでClaude Code Actionを使う

  1. IssueまたはPull Requestにコメントで @claude(設定したトリガー) を含む投稿
    • 例: @claude このコードのレビューをお願い!
  2. Claude Code Actionが自動で応答
  3. コードレビューや質問に対して適切な回答を返してくれます

トラブルシューティング

よくある問題と解決方法をまとめました。

AWS認証エラー

Error: Unable to load AWS credentials

解決方法:

  • AWS CLIが正しく設定されているか確認
  • aws sts get-caller-identity で認証情報を確認
  • プロファイルが正しく指定されているか確認

Bedrockの権限エラー

Error: Access denied to Bedrock

解決方法:

  • IAMユーザー/ロールに AmazonBedrockFullAccess または適切なBedrockポリシーが付与されているか確認
  • 使用するリージョンでClaudeモデルが利用可能か確認

GitHub Actions実行エラー

Error: GitHub App token generation failed

解決方法:

  • GitHub AppのIDと秘密鍵が正しく設定されているか確認
  • GitHub Appに必要な権限が付与されているか確認
  • リポジトリにGitHub Appがインストールされているか確認

まとめ

Claude CodeとClaude Code ActionをAWS Bedrock経由で利用する方法をご紹介しました。これにより、開発体験が大幅に向上し、ストレスなくコーディング支援を受けることができます。

主なポイント

AWS Bedrockを使うことで開発体験が劇的に向上

  • レスポンス速度の大幅改善
  • エラーの大幅減少
  • 安定したパフォーマンス

東京リージョンの活用がカギ

  • 低レイテンシでの高速アクセス
  • クロスリージョン推論による高い可用性
  • 日本のユーザーには最適な選択肢

GitHub Actionsとの統合で自動化

  • IssueやPull Requestでの自動応答
  • OIDC連携によるセキュアな認証
  • カスタムインストラクションでパーソナライズ

次のステップ

この記事を参考に設定が完了したら、以下も試してみてください:

  • 異なるClaudeモデルでの性能比較
  • カスタムインストラクションの最適化
  • 他のAWS Bedrockモデルとの組み合わせ利用
  • より高度なGitHub Actionsワークフローの構築

AWS Bedrockを使うことで、Claude Codeがさらに快適なツールになります。ぜひ試してみてください!

Discussion