【ClaudeCode】TeamプランとAmazon Bedrockを切り替えて使う|ターミナルは--settings、VS Codeの拡張機能は専用フォルダ

スポンサーリンク
AWS
スポンサーリンク

職場では、Claude Code を Amazon Bedrock 経由で使えるようにしてあった。その後、会社で Claude の Team プランが配られたので、今は両方使える状態になっている。Bedrock は使った分だけ料金がかかるので、普段は Team プランを使い、Bedrock は必要なときだけ使いたい。

問題は切り替え方である。ターミナルの Claude Code と、VS Code の拡張機能の Claude Code の両方で、Team と Bedrock を手軽に切り替えたい。いろいろ考えて、次の形に落ち着いた。

どこで どう起動するか 使われるもの
普段のフォルダ ターミナルで claude Team プラン
普段のフォルダ VS Code の拡張機能 Team プラン
どこでも ターミナルで claude --settings ~/.claude/settings-bedrock.json Bedrock
Bedrock 専用のフォルダ ターミナルで claude Bedrock
Bedrock 専用のフォルダ VS Code の拡張機能 Bedrock

普段は Team プランを使い、好きなときに Bedrock に切り替えたい場合のポイントは2つある。ターミナルは起動するときに Bedrock 用の設定ファイルを指定する。VS Code の拡張機能は起動時に設定ファイルを指定できないので、Bedrock 用の設定を置いた専用のフォルダを開く。

Bedrock 用の設定ファイル

Bedrock に切り替えるための設定を、1つのファイルにまとめておく。私は ~/.claude/settings-bedrock.json という名前にした(Windows なら %USERPROFILE%\.claude\settings-bedrock.json)。中身は次のとおり(プロファイル名は自分の環境のものに置き換える)。

{
  "env": {
    "CLAUDE_CODE_USE_BEDROCK": "1",
    "AWS_PROFILE": "<作業用ロールのプロファイル名>",
    "AWS_REGION": "ap-northeast-1"
  },
  "awsAuthRefresh": "aws login --profile <ログイン用ユーザーのプロファイル名>"
}
設定 意味
CLAUDE_CODE_USE_BEDROCK 1 にすると、Claude Code が Bedrock 経由で動く
AWS_PROFILE 使う AWS のプロファイル。私の環境では、AWS 上のリソースを操作する権限があるロール
AWS_REGION Bedrock を使うリージョン。東京(ap-northeast-1)
awsAuthRefresh AWS の認証が切れたときに実行するコマンド。私の環境では、上のロールに切り替える権限と Bedrock の利用権限を持つユーザーで aws login する

awsAuthRefresh は、AWS の認証が切れたときだけ動く。公式ドキュメントによると、Claude Code はまず認証が本当に切れているかを確かめ、切れていれば指定したコマンドを実行してから、もう一度リクエストを送る。aws login はブラウザでサインインする方式(AWS CLI 2.32.0 以降)で、1回のサインインは最大12時間有効なので、長い作業の途中で切れても、ブラウザでサインインし直すだけで続けられる。aws login の使い方はEC2 へ RDP ポートを開けずに接続する記事でも紹介している。

ターミナルでの切り替え

普段どおり claude で起動すれば Team プラン、設定ファイルを指定して起動すれば Bedrock になる。

claude --settings ~/.claude/settings-bedrock.json

--settings で渡した設定は、その起動のときだけ効く。次に普通に claude で起動すれば、Team プランに戻る。

VS Code の拡張機能での切り替え

VS Code の拡張機能には、起動するときに設定ファイルを渡す方法がない。そこで、Bedrock で使いたいとき専用のフォルダ(私は claude-bedrock という名前にした)を作り、その中の .claude\settings.local.json に、上の settings-bedrock.json と同じ内容を書いておいた。

claude-bedrock\
└─ .claude\
   └─ settings.local.json   ← settings-bedrock.json と同じ内容

VS Code でこのフォルダを開いて拡張機能の Claude Code を使うと Bedrock になり、ほかのフォルダでは Team プランのままになる。このフォルダでターミナルから claude を起動した場合も、同じく Bedrock になる。

なぜこれで切り替わるのか

Claude Code の設定には優先順位がある。公式ドキュメントによると、高い順に次のとおり。

  1. 組織の管理者が配る設定(managed settings)
  2. 起動時に --settings で渡した設定
  3. フォルダの .claude\settings.local.json
  4. フォルダの .claude\settings.json
  5. 個人の ~/.claude/settings.json

--settings と settings.local.json は、個人の設定より優先される。そのため、普段の設定(Team プラン)はそのままに、起動のしかたや開いたフォルダによって Bedrock の設定を上に重ねられる。また、ターミナルの Claude Code と VS Code の拡張機能は同じ設定ファイルを読むので、フォルダの settings.local.json はどちらにも効く。

どちらで動いているかの確認

Claude Code の中で /status を実行すると確認できる。Team プランで動いているときは、ログインの方法(Login method)が Claude Team account と表示される。Bedrock で動いているときは、API provider が Amazon Bedrock と表示される。

会社の PC で試す場合、組織の管理者が配っている設定(managed settings)の適用のされ方は環境によって違う。思ったとおりに切り替わらないときは、/status で何が読み込まれているかを確認するとよい。

Bedrock で使うときの注意

  • 料金は Bedrock 側(AWS の請求)にかかる。使った分だけかかるので、長い作業は Team プランで、と使い分けている
  • 公式ドキュメントによると、Bedrock では WebSearch ツールが使えず、/logout も使えない(認証は AWS 側で行うため)
  • 新しいモデルを Bedrock で初めて使うときに 403 エラーになることがある。原因と対処はBedrock で新しい Claude モデルだけ 403 エラーになる記事にまとめた

この記事のまとめ

この記事のまとめ
  • Bedrock 用の設定(CLAUDE_CODE_USE_BEDROCK・AWS_PROFILE・AWS_REGION・awsAuthRefresh)を1つのファイルにまとめる
  • ターミナルは claude --settings でそのファイルを指定すると Bedrock、普通に claude なら Team プラン
  • VS Code の拡張機能は、同じ内容を settings.local.json に書いた専用フォルダを開くと Bedrock
  • どちらで動いているかは /status で確認する

関連記事

参考

コメント

タイトルとURLをコピーしました