快適!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を利用するには、以下の準備が必要です:
-
GitHub Appの作成
- Repository の読み取り・書き込み権限
- Issues の読み取り・書き込み権限
- Pull requests の読み取り・書き込み権限
-
AWS IAMロールの作成
- GitHub ActionsのOIDC連携用
- Bedrockへのアクセス権限
-
リポジトリの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を使う
- IssueまたはPull Requestにコメントで
@claude(設定したトリガー)
を含む投稿- 例:
@claude このコードのレビューをお願い!
- 例:
- Claude Code Actionが自動で応答
- コードレビューや質問に対して適切な回答を返してくれます
トラブルシューティング
よくある問題と解決方法をまとめました。
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