- 公開日
- 最終更新日
【Amazon EC2】Claude Code on AWS構築ハンズオン
この記事を共有する
目次
パーソル&サーバーワークスの印鑰です。
AWSを中心としたクラウドインフラの設計・構築・運用を担当しています。
エージェント開発にも注力しているエンジニアです。
このハンズオンで学べること
このハンズオンでは、Amazon Bedrock上でClaude Codeを動かす一連の流れを体験できます。
- AWS CloudFormationによるIaC実践: VPC、IAM、Bedrockリソースを統合管理し、再現可能な環境を構築
- Bedrock Application Inference Profileの活用: クロスリージョン推論を設定し、Claudeの複数モデル(Haiku、Sonnet、Opus)をまとめて管理
- EC2での開発環境自動構築: AWS CloudFormationのUserDataでNode.js、Python、Claude Codeを一括セットアップ。IAMは最小権限でセキュアにアクセス
どんな人向け?
- Claude Codeを試してみたい方。 Claude Codeのアカウントがなくても、AWSアカウントとBedrockアクセスがあれば、すぐに試せる
- AWS マネジメントコンソールの基本操作ができて、Linuxコマンドライン(cd、ls、cat)の基礎がわかる方なら大丈夫
- AWS CloudFormationやBashスクリプトの知識があるとさらに楽しめますが、なくてもコピー&ペーストで進められる
1.概要
このシステムのポイントは次のとおりです。
| 特徴 | 説明 |
|---|---|
| Claude Code on Bedrock | Claude Codeアカウント不要で、Amazon Bedrock経由でClaude AIを利用可能 |
| 3つのモデル対応 | Haiku、Sonnet、Opusの3つのClaudeモデルをApplication Inference Profileで一元管理 |
| 完全自動セットアップ | Node.js、Python、Claude Code、uvがUserDataで自動インストール |
| セキュアアクセス | Session Manager経由でSSHポート不要、IAM最小権限でBedrock APIにアクセス |
2.システムアーキテクチャ
全体構成図

3.前提条件
ハンズオンをはじめる前に、以下をお読みください。
所要時間
- 約40分
- 構築作業:約15~25分
- 動作確認:約10分
- 環境削除:約5分
必要な権限
以下の権限が必要です。
- AWS マネジメントコンソールにアクセスできること
- AWS CloudFormationスタックをデプロイできること
- Amazon EC2、AWS IAM、Amazon Bedrockを操作できること
リージョン
東京リージョン(ap-northeast-1) にリソースを作成してください。
開発環境
ローカルPCに以下がインストール・設定済みであることをご確認してください。
- Windows 11
- Visual Studio Code
- AWS CLI(認証設定済み)
- Session Manager Plugin
費用について
このハンズオンの費用の目安は、東京リージョンで1時間あたり約$3程度です。
大事なポイント: 作業が終わったら、必ず環境削除の手順を実行してください。そのままにしておくと課金が続きます。また、為替やログ量、リージョン価格差で変動します。また、Claude Codeにて開発や修正するとその分のコストが発生します。
4.構築手順
さあ、ここからが本番です。一緒に作っていきましょう。
ステップ一覧
- クロスリージョン推論のInference Profile ID確認
- 基盤スタックのデプロイ
- EC2インスタンススタックのデプロイ
ステップ1: クロスリージョン推論のInference Profile ID確認
基盤スタックをデプロイする前に、利用可能なBedrock Inference Profile IDを確認します。
1-1. AWS CLIでInference Profile IDを確認
ローカルPCのターミナル(PowerShellまたはコマンドプロンプト)で以下のコマンドを実行します。
aws bedrock list-inference-profiles --query "inferenceProfileSummaries[?contains(inferenceProfileName,'Claude')].{inferenceProfileName:inferenceProfileName,inferenceProfileId:inferenceProfileId}" --output table --region ap-northeast-1
出力例
---------------------------------------------------------------------------------- | ListInferenceProfiles | +---------------------------------------------------------------+----------------+ | inferenceProfileId |inferenceProfile| | | Name | +---------------------------------------------------------------+----------------+ | jp.anthropic.claude-3-5-haiku-20241022-v1:0 | Claude 3.5... | | jp.anthropic.claude-haiku-4-5-20251001-v1:0 | Claude 3.5... | | jp.anthropic.claude-sonnet-4-5-20250929-v1:0 | Claude 3.5... | | global.anthropic.claude-opus-4-5-20251101-v1:0 | Claude Opus...| +---------------------------------------------------------------+----------------+
1-2. Inference Profile IDの選択
上記の出力から、Haiku、Sonnet、Opus のinferenceProfileIdをメモしておきます。
例)
| モデル | Inference Profile ID | リージョン |
|---|---|---|
| Haiku | jp.anthropic.claude-haiku-4-5-20251001-v1:0 |
日本 |
| Sonnet | jp.anthropic.claude-sonnet-4-5-20250929-v1:0 |
日本 |
| Opus | global.anthropic.claude-opus-4-5-20251101-v1:0 |
グローバル |
注意: inferenceProfileIdはリージョンやモデルバージョンによって異なります。
クロスリージョン推論の補足
- 複数のリージョンのモデルの負荷状況を考慮して利用可能なリージョンのモデルを選択してくれる機能
jp.プレフィックス: 日本リージョン内でのみ利用可能global.プレフィックス: 複数リージョンにまたがって利用可能- 2026年2月時点では、Opusはローバルプロファイルのみ提供
ステップ2: 基盤スタックのデプロイ
まずは、VPC、AWS IAMロール、Amazon Bedrock アプリケーション推論プロファイルといった基盤となるリソースを作っていきます。

2-1. AWS CloudFormationテンプレートファイルの作成
ローカルPCでec2-claude-base-stack.yamlという名前のファイルを作って、以下の内容をコピー&ペーストしてください。
ここを押すと展開します
AWSTemplateFormatVersion: '2010-09-09'
Description: 'Base stack: VPC, IAM, KeyPair, Bedrock Application Inference Profiles'
Parameters:
Environment:
Type: String
Default: dev
ProjectId:
Type: String
Default: '001'
ProjectInfix:
Type: String
Default: 'claude'
VpcCidr:
Type: String
Default: '10.0.0.0/16'
PublicSubnetCidr:
Type: String
Default: '10.0.1.0/24'
HaikuInferenceProfileId:
Type: String
Default: 'jp.anthropic.claude-haiku-4-5-20251001-v1:0'
Description: 'Haiku inference profile ID'
SonnetInferenceProfileId:
Type: String
Default: 'jp.anthropic.claude-sonnet-4-5-20250929-v1:0'
Description: 'Sonnet inference profile ID'
OpusInferenceProfileId:
Type: String
Default: 'global.anthropic.claude-opus-4-5-20251101-v1:0'
Description: 'Opus inference profile ID'
Metadata:
AWS::CloudFormation::Interface:
ParameterGroups:
-
Label:
default: Stack Configuration
Parameters:
- Environment
- ProjectId
- ProjectInfix
-
Label:
default: Network Configuration
Parameters:
- VpcCidr
- PublicSubnetCidr
-
Label:
default: Bedrock Configuration
Parameters:
- HaikuInferenceProfileId
- SonnetInferenceProfileId
- OpusInferenceProfileId
Resources:
VPC:
Type: AWS::EC2::VPC
Properties:
CidrBlock: !Ref VpcCidr
EnableDnsHostnames: true
EnableDnsSupport: true
Tags:
- Key: Name
Value: !Sub '${Environment}-${ProjectId}-${ProjectInfix}-vpc'
InternetGateway:
Type: AWS::EC2::InternetGateway
AttachGateway:
Type: AWS::EC2::VPCGatewayAttachment
Properties:
VpcId: !Ref VPC
InternetGatewayId: !Ref InternetGateway
PublicSubnet:
Type: AWS::EC2::Subnet
Properties:
VpcId: !Ref VPC
CidrBlock: !Ref PublicSubnetCidr
AvailabilityZone: !Select [0, !GetAZs '']
MapPublicIpOnLaunch: true
Tags:
- Key: Name
Value: !Sub '${Environment}-${ProjectId}-${ProjectInfix}-public-subnet'
PublicRouteTable:
Type: AWS::EC2::RouteTable
Properties:
VpcId: !Ref VPC
PublicRoute:
Type: AWS::EC2::Route
DependsOn: AttachGateway
Properties:
RouteTableId: !Ref PublicRouteTable
DestinationCidrBlock: '0.0.0.0/0'
GatewayId: !Ref InternetGateway
PublicSubnetRouteTableAssociation:
Type: AWS::EC2::SubnetRouteTableAssociation
Properties:
SubnetId: !Ref PublicSubnet
RouteTableId: !Ref PublicRouteTable
EC2SecurityGroup:
Type: AWS::EC2::SecurityGroup
Properties:
GroupDescription: 'Security Group for SSM-only'
VpcId: !Ref VPC
SecurityGroupEgress:
- IpProtocol: tcp
FromPort: 443
ToPort: 443
CidrIp: '0.0.0.0/0'
EC2KeyPair:
Type: AWS::EC2::KeyPair
Properties:
KeyName: !Sub '${Environment}-${ProjectId}-${ProjectInfix}-ec2-keypair'
KeyType: rsa
KeyFormat: pem
EC2Role:
Type: AWS::IAM::Role
Properties:
RoleName: !Sub '${Environment}-${ProjectId}-${ProjectInfix}-ec2-ssm-bedrock-rl'
AssumeRolePolicyDocument:
Version: '2012-10-17'
Statement:
- Effect: Allow
Principal:
Service: ec2.amazonaws.com
Action: sts:AssumeRole
ManagedPolicyArns:
- arn:aws:iam::aws:policy/AmazonSSMManagedInstanceCore
Tags:
- Key: Environment
Value: !Ref Environment
- Key: ProjectId
Value: !Ref ProjectId
EC2BedrockPolicy:
Type: AWS::IAM::Policy
DependsOn:
- EC2SonnetProfile
- EC2OpusProfile
- EC2HaikuProfile
Properties:
PolicyName: !Sub '${Environment}-${ProjectId}-${ProjectInfix}-ec2-bedrock-pl'
Roles:
- !Ref EC2Role
PolicyDocument:
Version: "2012-10-17"
Statement:
- Sid: AllowModelInvocation
Effect: Allow
Action:
- bedrock:InvokeModel
- bedrock:InvokeModelWithResponseStream
- bedrock:ListInferenceProfiles
Resource:
- !GetAtt EC2SonnetProfile.InferenceProfileArn
- !GetAtt EC2OpusProfile.InferenceProfileArn
- !GetAtt EC2HaikuProfile.InferenceProfileArn
- arn:aws:bedrock:*:*:foundation-model/*
- arn:aws:bedrock:*:*:inference-profile/*
EC2AWSMCPPolicy:
Type: AWS::IAM::Policy
Properties:
PolicyName: !Sub '${Environment}-${ProjectId}-${ProjectInfix}-ec2-awsmcp-pl'
Roles:
- !Ref EC2Role
PolicyDocument:
Version: "2012-10-17"
Statement:
- Sid: AllowAWSMCPAccess
Effect: Allow
Action:
- aws-mcp:InvokeMcp
- aws-mcp:CallReadOnlyTool
- aws-mcp:CallReadWriteTool
Resource:
- "*"
EC2InstanceProfile:
Type: AWS::IAM::InstanceProfile
Properties:
InstanceProfileName: !Sub '${Environment}-${ProjectId}-${ProjectInfix}-ec2-instance-profile'
Roles:
- !Ref EC2Role
EC2HaikuProfile:
Type: AWS::Bedrock::ApplicationInferenceProfile
Properties:
InferenceProfileName: !Sub '${Environment}-${ProjectId}-${ProjectInfix}-haiku'
Description: !Sub 'inferenceProfileId: ${HaikuInferenceProfileId}'
ModelSource:
CopyFrom: !Sub 'arn:aws:bedrock:${AWS::Region}:${AWS::AccountId}:inference-profile/${HaikuInferenceProfileId}'
Tags:
- Key: Application
Value: !Sub '${Environment}-${ProjectId}'
- Key: Category1
Value: !Sub '${Environment}-${ProjectId}-${ProjectInfix}-haiku'
- Key: Category2
Value: !Sub '${HaikuInferenceProfileId}'
EC2SonnetProfile:
Type: AWS::Bedrock::ApplicationInferenceProfile
Properties:
InferenceProfileName: !Sub '${Environment}-${ProjectId}-${ProjectInfix}-sonnet'
Description: !Sub 'inferenceProfileId: ${SonnetInferenceProfileId}'
ModelSource:
CopyFrom: !Sub 'arn:aws:bedrock:${AWS::Region}:${AWS::AccountId}:inference-profile/${SonnetInferenceProfileId}'
Tags:
- Key: Application
Value: !Sub '${Environment}-${ProjectId}'
- Key: Category1
Value: !Sub '${Environment}-${ProjectId}-${ProjectInfix}-sonnet'
- Key: Category2
Value: !Sub '${SonnetInferenceProfileId}'
EC2OpusProfile:
Type: AWS::Bedrock::ApplicationInferenceProfile
Properties:
InferenceProfileName: !Sub '${Environment}-${ProjectId}-${ProjectInfix}-opus'
Description: !Sub 'inferenceProfileId: ${OpusInferenceProfileId}'
ModelSource:
CopyFrom: !Sub 'arn:aws:bedrock:${AWS::Region}:${AWS::AccountId}:inference-profile/${OpusInferenceProfileId}'
Tags:
- Key: Application
Value: !Sub '${Environment}-${ProjectId}'
- Key: Category1
Value: !Sub '${Environment}-${ProjectId}-${ProjectInfix}-opus'
- Key: Category2
Value: !Sub '${OpusInferenceProfileId}'
Outputs:
PublicSubnetId:
Value: !Ref PublicSubnet
Export:
Name: !Sub '${Environment}-${ProjectId}-${ProjectInfix}-public-subnet-id'
SecurityGroupId:
Value: !Ref EC2SecurityGroup
Export:
Name: !Sub '${Environment}-${ProjectId}-${ProjectInfix}-ec2-sg-id'
EC2InstanceProfile:
Value: !Ref EC2InstanceProfile
Export:
Name: !Sub '${Environment}-${ProjectId}-${ProjectInfix}-ec2-instance-profile-name'
KeyPairName:
Value: !Ref EC2KeyPair
Export:
Name: !Sub '${Environment}-${ProjectId}-${ProjectInfix}-ec2-keypair-name'
EC2HaikuProfile:
Value: !GetAtt EC2HaikuProfile.InferenceProfileArn
Export:
Name: !Sub '${Environment}-${ProjectId}-${ProjectInfix}-ec2-haiku-profile-arn'
EC2SonnetProfile:
Value: !GetAtt EC2SonnetProfile.InferenceProfileArn
Export:
Name: !Sub '${Environment}-${ProjectId}-${ProjectInfix}-ec2-sonnet-profile-arn'
EC2OpusProfile:
Value: !GetAtt EC2OpusProfile.InferenceProfileArn
Export:
Name: !Sub '${Environment}-${ProjectId}-${ProjectInfix}-ec2-opus-profile-arn'
ファイルを保存してください。
2-2. AWS CloudFormationコンソールを開く
- AWS マネジメントコンソールにログイン
- サービスメニューから「AWS CloudFormation」を選択
- 「スタックの作成」→「新しいリソースを使用(標準)」を選択
2-3. テンプレートのアップロード
- 「既存のテンプレートを選択」を選択
- 「テンプレートファイルのアップロード」を選択
- 作成したAWS CloudFormationテンプレートファイルを選んでアップロード
- 「次へ」を選択
2-4. スタック詳細の指定
スタック名: ec2-claude-base-stack
パラメーターはこんな感じで設定してください。
| パラメーター | 推奨値 | 説明 |
|---|---|---|
| Environment | dev |
環境識別子 |
| ProjectId | 001 |
プロジェクトID |
| ProjectInfix | claude |
リソース名の接中辞 |
| VpcCidr | 10.0.0.0/16 |
VPC CIDR |
| PublicSubnetCidr | 10.0.1.0/24 |
サブネットCIDR |
| HaikuInferenceProfileId | {ステップ1で確認したHaikuのinferenceProfileId} | Haiku Profile ID |
| SonnetInferenceProfileId | {ステップ1で確認したSonnetのinferenceProfileId} | Sonnet Profile ID |
| OpusInferenceProfileId | {ステップ1で確認したOpusのinferenceProfileId} | Opus Profile ID |
「次へ」を選択してください。
2-5. スタックオプションの設定
- 「AWS CloudFormationによってAWS IAMリソースが作成される場合があることを承認します」にチェックを入れ、「次へ」を選択
2-6. 確認して作成
- 設定内容をざっと確認し、「送信」を選択
2-7. デプロイ完了の確認
スタックのステータスが「CREATE_COMPLETE」になるまで、待ちましょう。(約3~5分かかります)
ステップ3: EC2インスタンススタックのデプロイ
次は、監視対象となるEC2インスタンスを作っていきます。

3-1. AWS CloudFormationテンプレートファイルの作成
ローカルPCでec2-claude-instance-stack.yamlという名前のファイルを作って、以下の内容をコピー&ペーストしてください。
ここを押すと展開します
AWSTemplateFormatVersion: '2010-09-09'
Description: 'EC2 instance stack'
Parameters:
Environment:
Type: String
Default: dev
ProjectId:
Type: String
Default: '001'
ProjectInfix:
Type: String
Default: 'claude'
InstanceIndex:
Type: String
Default: '01'
Description: Instance Index
InstanceType:
Type: String
Default: t3.medium
AllowedValues: [ t3.micro, t3.small, t3.medium, t3.large ]
ImageId:
Type: String
Default: ami-03d1820163e6b9f5d
AllowedPattern: "^ami-[0-9a-f]{17}$"
EbsVolumeSize:
Type: Number
Default: 20
MinValue: 8
MaxValue: 50
Metadata:
AWS::CloudFormation::Interface:
ParameterGroups:
-
Label:
default: Stack Configuration
Parameters:
- Environment
- ProjectId
- ProjectInfix
-
Label:
default: EC2 Configuration
Parameters:
- InstanceIndex
- InstanceType
- ImageId
- EbsVolumeSize
Resources:
EC2Instance:
Type: AWS::EC2::Instance
Properties:
ImageId: !Ref ImageId
InstanceType: !Ref InstanceType
KeyName:
Fn::ImportValue: !Sub '${Environment}-${ProjectId}-${ProjectInfix}-ec2-keypair-name'
IamInstanceProfile:
Fn::ImportValue: !Sub '${Environment}-${ProjectId}-${ProjectInfix}-ec2-instance-profile-name'
NetworkInterfaces:
- AssociatePublicIpAddress: true
DeviceIndex: 0
GroupSet:
- Fn::ImportValue: !Sub '${Environment}-${ProjectId}-${ProjectInfix}-ec2-sg-id'
SubnetId:
Fn::ImportValue: !Sub '${Environment}-${ProjectId}-${ProjectInfix}-public-subnet-id'
BlockDeviceMappings:
- DeviceName: /dev/sda1
Ebs:
VolumeSize: !Ref EbsVolumeSize
VolumeType: gp3
UserData:
Fn::Base64:
Fn::Sub:
- |
#!/bin/bash
set -e
exec > >(tee /var/log/user-data.log)
exec 2>&1
echo "UserData script started: $(date)"
sudo dnf update -y
# Install Node.js 22
curl -fsSL https://rpm.nodesource.com/setup_22.x | bash -
sudo dnf install -y nodejs
node --version
# Install development tools for pyenv
sudo dnf groupinstall -y "Development Tools"
sudo dnf install -y gcc zlib-devel bzip2-devel readline-devel sqlite sqlite-devel openssl-devel tk-devel libffi-devel xz-devel
# Run everything as ec2-user
sudo -u ec2-user bash << 'EOFU'
set -e
export HOME=/home/ec2-user
cd $HOME
echo "Starting ec2-user setup: $(date)"
# Set PATH first
export PATH="$HOME/.local/bin:$PATH"
# Install pyenv
echo "Installing pyenv..."
curl -fsSL https://pyenv.run | bash
# Set pyenv environment variables immediately
echo "Configuring pyenv..."
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
# Initialize pyenv for non-interactive shell
if [ -d "$PYENV_ROOT/bin" ]; then
eval "$(pyenv init --path)"
eval "$(pyenv init -)"
fi
# Configure pyenv in bashrc for future sessions
cat << 'EOT' >> ~/.bashrc
export PYENV_ROOT="$HOME/.pyenv"
[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init --path)"
eval "$(pyenv init -)"
EOT
# Install latest stable Python version
echo "Installing latest Python version..."
LATEST_PYTHON=$(pyenv install --list 2>/dev/null | grep -E '^\s*[0-9]+\.[0-9]+\.[0-9]+$' | tail -1 | tr -d ' ')
echo "Installing Python $LATEST_PYTHON..."
pyenv install $LATEST_PYTHON
pyenv global $LATEST_PYTHON
echo "Python version installed:"
python --version
# Install Claude Code
curl -fsSL https://claude.ai/install.sh | bash -s stable
# Install uv
curl -LsSf https://astral.sh/uv/install.sh | sh
uv -V
# Environment variables
cat << EOT >> ~/.bashrc
# AWS Configuration
export CLAUDE_CODE_USE_BEDROCK=1
export AWS_REGION=${AWS::Region}
export AWS_DEFAULT_REGION=${AWS::Region}
# Configure Bedrock Application Inference Profiles for Claude Code
export ANTHROPIC_DEFAULT_SONNET_MODEL="${EC2SonnetProfileArn}"
export ANTHROPIC_DEFAULT_OPUS_MODEL="${EC2OpusProfileArn}"
export ANTHROPIC_DEFAULT_HAIKU_MODEL="${EC2HaikuProfileArn}"
export CLAUDE_CODE_SUBAGENT_MODEL="${EC2HaikuProfileArn}"
# Claude Code Configuration
export CLAUDE_CODE_MAX_OUTPUT_TOKENS=4096
export MAX_THINKING_TOKENS=1024
export PATH="\$HOME/.local/bin:\$PATH"
EOT
source ~/.bashrc
# Claude Code settings
mkdir -p ~/.claude
cat << 'EOT' > ~/.claude/settings.json
{
"provider": "bedrock",
"awsRegion": "${AWS::Region}",
"autoUpdates": true,
"autoUpdatesChannel": "stable",
"model": "haiku",
"language": "japanese",
"statusLine": {
"type": "command",
"command": "npx -y ccstatusline@latest",
"padding": 0
},
"permissions": {
"allow": [
"Bash(ls:*)",
"Bash(cat:*)",
"Bash(npm run dev)",
"Bash(npm run build)",
"Bash(npm test)"
],
"deny": [
"Bash(rm -rf:*)",
"Bash(sudo:*)",
"Read(.env)"
]
}
}
EOT
# Verify Claude Code
if command -v claude &> /dev/null; then
echo "Claude Code installed successfully for ec2-user"
claude --version
else
echo "Warning: claude command not found after installation"
fi
EOFU
echo "Claude Code installation completed"
echo "UserData script completed: $(date)"
- EC2HaikuProfileArn:
Fn::ImportValue: !Sub '${Environment}-${ProjectId}-${ProjectInfix}-ec2-haiku-profile-arn'
EC2SonnetProfileArn:
Fn::ImportValue: !Sub '${Environment}-${ProjectId}-${ProjectInfix}-ec2-sonnet-profile-arn'
EC2OpusProfileArn:
Fn::ImportValue: !Sub '${Environment}-${ProjectId}-${ProjectInfix}-ec2-opus-profile-arn'
Tags:
- Key: Name
Value: !Sub '${Environment}-${ProjectId}-${ProjectInfix}-${InstanceIndex}'
- Key: Environment
Value: !Ref Environment
- Key: ProjectId
Value: !Ref ProjectId
ファイルを保存してください。
3-2. 新しいスタックの作成とデプロイ
ステップ2: 基盤スタックのデプロイ の手順を参考に、リソースをデプロイします。
スタック名: ec2-claude-instance-stack
パラメーターはこんな感じで設定してください。
| パラメーター | 推奨値 | 説明 |
|---|---|---|
| Environment | dev | 環境識別子 |
| ProjectId | 001 | プロジェクトID |
| ProjectInfix | claude | リソース名の接中辞 |
| InstanceIndex | 01 | インスタンス識別用の連番 |
| InstanceType | t3.medium | EC2インスタンスタイプ(t3.micro / t3.small / t3.medium / t3.large) |
| ImageId | ami-03d1820163e6b9f5d | 使用するAMI ID(パターン: ^ami-[0-9a-f]{17}$) |
| EbsVolumeSize | 20 | ルートボリュームサイズ(8〜50GiB) |
注意: ImageIdはリージョンごとにことなります。Amazon EC2 コンソールを使用した AL2023 の起動の手順を参照し、最新のAMI IDに更新してください。
5.Session Managerポートフォワーディング経由のSSH接続
Session Managerのポートフォワーディング機能を使って、ローカルPCからSSH接続する方法を説明します。
ステップ一覧
- キーペアのダウンロード
- SSH Configファイルの設定
- Visual Studio Code Remote-SSH拡張機能のインストール
- Session Managerポートフォワーディングの開始
- Visual Studio Code Remote SSHで接続
ステップ1: キーペアのダウンロード
AWS CloudFormationで作成されたキーペアの秘密鍵を取得します。
1-1. キーペアIDの確認
- AWS マネジメントコンソールで「Amazon EC2」を開く
- 左ペインから「ネットワーク & セキュリティ」→「キーペア」を選択
- dev-001-claude-ec2-keypairを検索して選択
- 「キーペアID」をコピー(key-xxxxxxxxxxxxxxxxxの形式)
1-2. AWS Systems Manager Parameter Storeから秘密鍵を取得
- AWS マネジメントコンソールで「AWS Systems Manager」を開く
- 左ペインから「パラメーターストア」を選択
- 先程、コピーしたキーペアIDで検索して選択
- 「復号化された値を表示」をオンにして、表示された値を控える
1-3. 秘密鍵ファイルの保存
- エクスプローラーで「C:\Users\【ユーザー名】\.ssh」フォルダーを開く
- dev-001-claude-ec2-keypair.pemという名前で新規ファイルを作成
- 控えた秘密鍵の内容を貼り付けて保存
- ファイルを右クリック→「プロパティ」→「読み取り専用」にチェック→「OK」
補足: .sshフォルダーがない場合は作成してください。
ステップ2: SSH Configファイルの設定
SSH接続の設定を記述します。
2-1. Configファイルの作成・編集
- エクスプローラーで「C:\Users\【ユーザー名】\.ssh」フォルダーを開く
- configファイルがなければ作成(拡張子なし)
- テキストエディターで開いて、以下の内容を入力または追記
補足: 【ユーザー名】の部分は実際のユーザー名に置き換えてください
Host dev-001-claude-01
HostName localhost
User ec2-user
Port 10022
IdentityFile C:\Users\【ユーザー名】\.ssh\dev-001-claude-ec2-keypair.pem
IdentitiesOnly yes
StrictHostKeyChecking no
UserKnownHostsFile NUL
ステップ3: Visual Studio Code Remote-SSH拡張機能のインストール
Visual Studio CodeでSSH接続できるようにします。
- Visual Studio Codeを開く
- 左サイドバーの「拡張機能」アイコンを選択
- 検索ボックスにRemote - SSHと入力
- Microsoft公式の「Remote - SSH」拡張機能をインストール
- インストール完了後、VS Codeを再起動
ステップ4: Session Managerポートフォワーディングの開始
接続フロー

4-1. EC2インスタンスIDの取得
- AWS マネジメントコンソールで「Amazon EC2」を開く
- 左ペインから「インスタンス」を選択
- dev-001-claude-01という名前の「インスタンスの状態」が「実行中」および「ステータスチェック」が「3/3 のチェックに合格しました」となっていることを確認
- 「インスタンス ID」を控える
補足: ステップ3: EC2インスタンススタックのデプロイの直後は、EC2が自動で起動します。もし、「インスタンスの状態」が「停止済み」の場合は、EC2インスタンスを選択し、「インスタンスの状態 > インスタンスを開始」を選択し、EC2を起動させます。
4-2. ポートフォワーディング開始
PowerShellを開いて、以下のコマンドを実行します。(このウィンドウは開いたままにしてください)
# ポートフォワーディング開始
aws ssm start-session `
--target {「4-1 EC2インスタンスIDの取得」にて控えた値} `
--document-name AWS-StartPortForwardingSession `
--parameters '{\"portNumber\":[\"22\"],\"localPortNumber\":[\"10022\"]}' `
--region ap-northeast-1
例) 控えたインスタンスIDが「i-12345678912345678」の場合のコマンド
# ポートフォワーディング開始
aws ssm start-session `
--target i-12345678912345678 `
--document-name AWS-StartPortForwardingSession `
--parameters '{\"portNumber\":[\"22\"],\"localPortNumber\":[\"10022\"]}' `
--region ap-northeast-1
成功すると以下のように表示されます
Instance ID: i-12345678912345678 Starting session with SessionId: your-session-id Port 10022 opened for sessionId your-session-id. Waiting for connections...
大事なポイント: このPowerShellウィンドウは閉じないでください。ポートフォワーディングが動作し続けます。
ステップ5: Visual Studio Code SSH接続
5-1. Visual Studio CodeにてSSH接続
- Visual Studio Codeを開く
- F1キーを押してコマンドパレットを開く
- Remote-SSH: Connect to Host...と入力して選択
- dev-001-claude-01を選択
- 新しいウィンドウが開いて、接続が開始
- 初回「Select the platform~」と表示しますのでLinuxを選択
- Ctrl + @キーを押下し、ターミナルを起動
6.Claude Codeのセットアップ
Claude Codeのセットアップ方法をご説明いたします。
ステップ一覧
- Claude Codeの初回起動と設定確認
- Claude Code カスタマイズ ウィジェット
- Claude Code カスタマイズ MCPサーバー
ステップ1: Claude Codeの初回起動と設定確認
前提条件
本手順は、「5.Session Managerポートフォワーディング経由のSSH接続」のステップ5にて、Visual Studio CodeにてSSH接続した状態で実施して下さい。
1-1. ユーザーデータ入力の完了
- Visual Studio Code にて、Ctrl + @ キーを押下して、ターミナルを起動
- ターミナルにて以下のコマンドを実行し、「UserData script completed~」と表示されることを確認。表示されなければ、5分待機し再度コマンドを実行し、ターミナルにて「source ~/.bashrc」を実行
sudo tail -1 /var/log/user-data.log
1-2. プロジェクトフォルダの作成
- ターミナルにて以下のコマンドを実行
cd ~ mkdir claude-handson && cd claude-handson
1-3. Claude Codeの初回起動
- ターミナルにて以下のコマンドを実行
claude
1-4. Claude Codeの配色
1.「Choose the text style that looks best with your terminal」にてお好みで配色を選択し、Enter キーを押下

1-5. Claude Codeの設定
- 「Due to prompt injection risks, only use it with code you trust」にて、Enter キーを押下
- 「Use Claude Code's terminal setup?」 にて、「1. Yes, use recommended settings」を選択し、Enter キーを押下
- 「Do you trust the files in this folder?」にて、「1. Yes, I trust this folder」を選択し、Enter キーを押下
- 以下が表示した場合は、Enter キーを押下

補足: もし Claude Codeにて「Select login method」と表示した場合は、Ctrl + c キーを 3 回 押下して、ターミナルにて「source ~/.bashrc」を実行し、「1. ターミナルにて以下のコマンドを実行」の手順に戻ります。
1-6. Claude CodeでHaikuモデルの動作確認
- Claude Code にて以下を入力し、Enter キーを押下。回答されることを確認
hi
回答例

補足: 今回の構成では、Claude Code ユーザー設定にて、デフォルトモデルを Haiku に設定しております。
1-7. モデル切り替え(Haiku→Sonnet)
- Claude Code にて以下を入力し、Enter キーを押下
- 「~. Default (recommended)」を選択し、Enter キーを押下
/model

1-8. Claude CodeでSonnetモデルの動作確認
- Claude Code にて以下を入力し、Enter キーを押下。回答されることを確認
hi
1-9. モデル切り替え(Sonnet→Opus)
- Claude Code にて以下を入力し、Enter キーを押下。「~. Opus 4.1」を選択し、Enter キーを押下
/model
1-10. Claude CodeでOpusモデルの動作確認
- Claude Code にて以下を入力し、Enter キーを押下。回答されることを確認
hi
1-11. モデル切り替え(Opus→Haiku)
- Claude Code にて以下を入力し、Enter キーを押下。「~. Haiku」を選択し、Enter キーを押下
/model
1-12. Claude Codeを閉じる
- Claude Code にて以下を入力し、Claude Codeを閉じる
/exit
1-13. 環境変数の確認
- Visual Studio Code にて「ファイル > フォルダーを開く」を押下
- 「/home/ec2-user/」を選択し「OK」を押下
- Visual Studio Code のエクスプローラにて「.bashrc」を選択
- CloudFormation デプロイ時に追加した環境変数が表示
- 内容を確認し、タブの「×」を選択し閉じる
設定イメージ
ここを押すと展開します
# AWS Configuration
export CLAUDE_CODE_USE_BEDROCK=1
export AWS_REGION=ap-northeast-1
export AWS_DEFAULT_REGION=ap-northeast-1
# Configure Bedrock Application Inference Profiles for Claude Code
export ANTHROPIC_DEFAULT_SONNET_MODEL="arn:aws:bedrock:{AWS Region}:{AWS Account ID}:application-inference-profile/xxxxxx"
export ANTHROPIC_DEFAULT_OPUS_MODEL="arn:aws:bedrock:{AWS Region}:{AWS Account ID}:application-inference-profile/xxxxxx"
export ANTHROPIC_DEFAULT_HAIKU_MODEL="arn:aws:bedrock:{AWS Region}:{AWS Account ID}:application-inference-profile/xxxxxx"
export CLAUDE_CODE_SUBAGENT_MODEL="arn:aws:bedrock:{AWS Region}:{AWS Account ID}:application-inference-profile/xxxxxx"
# Claude Code Configuration
export CLAUDE_CODE_MAX_OUTPUT_TOKENS=4096
export MAX_THINKING_TOKENS=1024
export PATH="$HOME/.local/bin:$PATH"
補足: 環境変数はお好みで修正可能ですが、修正後は、Ctrl + Sキーで上書き保存の上、ターミナルにて「source ~/.bashrc」を実行して下さい。
1-14. Claude Codeのユーザー設定の確認
- Visual Studio Code のエクスプローラにて「.claude/settings.json」を選択
- CloudFormation デプロイ時に追加したユーザー設定が表示
- 内容を確認し、タブの「×」を選択し閉じる
ここを押すと展開します
{
"permissions": {
"allow": [
"Bash(ls:*)",
"Bash(cat:*)",
"Bash(npm run dev)",
"Bash(npm run build)",
"Bash(npm test)"
],
"deny": [
"Bash(rm -rf:*)",
"Bash(sudo:*)",
"Read(.env)"
]
},
"model": "haiku",
"statusLine": {
"type": "command",
"command": "npx -y ccstatusline@latest",
"padding": 0
},
"language": "japanese",
"autoUpdatesChannel": "stable",
"provider": "bedrock",
"awsRegion": "ap-northeast-1",
"autoUpdates": true
}
補足: ユーザー設定はお好みで修正可能ですが、修正後は、Ctrl + sキーで上書き保存
ステップ2: Claude Code カスタマイズ ウィジェット
Claude Codeを使用時、リアルタイムにトークンやコストがわかるように、ウィジェットの設定します。
注意: Claude CodeをAPIで利用する場合、ウィジェットの出力(トークンやコスト)は、Claude Codeを起動するごとにリセットされます。付録:1.Amazon Bedrock モデルのコスト確認 にてご確認ください。
2-1. ccstatusline をインストール
- ターミナルにて以下のコマンドを実行し、ccstatusline をインストール
npx ccstatusline@latest
2-2. ウィジェットの設定
- 「Main Menu」にて「Edit Lines」を選択し、Enter キーを押下
- 「Select Line to Edit Items」にて「Line 1」を選択し、Enter キーを押下
- 「Edit Line 1」にて、以下の様に変更し、Esc キーを押下

●操作方法 ・ウィジェットの選択:上下キー ・ウィジェットの種類を変更:左右キーを押すと ・ウィジェットの追加:aキー ・ウィジェットの削除:dキー ・ウィジェットの移動:ウィジェットを選択し、*Enter* キーを押下後、上下キー
2-3. ウィジェットの保存
- 「Select Line to Edit Items」にて、Esc キーを押下
- 「Main Menu」にて「Save & Exit」を選択し、Enter キーを押下
2-4. プロジェクトフォルダへ移動
- ターミナルにて以下のコマンドを実行
cd ~ cd claude-handson
2-5. ウェジットの確認
- ターミナルにて以下のコマンドを実行。Claude Codeにてウィジェットの表示を確認
claude
設定イメージ

2-6. Claude Codeを閉じる
- Claude Code にて以下を入力し、Claude Codeを閉じる
/exit
ステップ3: Claude Code カスタマイズ MCPサーバー
成果物の品質を上げるため、MCPサーバーを設定し外部の情報を参照させます。
補足: MCPサーバーは、Claude Codeが外部のツールやデータソースと連携するための仕組みです。これにより、AIが最新のドキュメントを参照したり、図を作成したり、段階的な思考を行ったりできるようになります。詳細は「付録:4.Claude Code MCPサーバーのご説明」をご参照ください。
3-1. プロジェクトフォルダへ移動
- ターミナルにて以下のコマンドを実行
cd ~ cd claude-handson
3-2. .mcp.jsonを作成
- ターミナルにて以下のコマンドを実行
vi ~/.mcp.json
3-3. .mcp.jsonの修正
- i キーを押して挿入モードに入ったら、以下のコードをコピー&ペーストしてください。
ここを押すと展開します
{
"mcpServers": {
"aws-mcp": {
"command": "uvx",
"timeout": 100000,
"transport": "stdio",
"args": [
"mcp-proxy-for-aws@latest",
"https://aws-mcp.us-east-1.api.aws/mcp",
"--metadata",
"AWS_REGION=us-west-2"
]
},
"Context7": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@upstash/context7-mcp@latest"
]
},
"sequential-thinking": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-sequential-thinking"
]
},
"drawio": {
"command": "npx",
"args": ["-y", "@drawio/mcp"]
}
}
}
Esc キーを押して、:wq と入力して保存してください。
3-4. Claude Codeを起動
- ターミナルにて以下のコマンドを実行
claude
3-5. MCPサーバーの確認
- 「4 new MCP servers found in .mcp.json」にて、Enter キーを押下
- Claude Code にて以下を入力し、Enter キーを押下。すべてのMCPサーバーが「connected」と表示されることを確認し、Esc キーを押下
/mcp
3-6. MCPサーバーの動作確認
- Claude Code にて以下を入力し、にて、Enter キーを押下
- 「Tool use」というタイトルで、繰り返し確認が表示するため、「Yes」を選択し、Enter キーを押下
- Claude Code より、MCPサーバーの確認結果が表示
すべてののMCPサーバーの動作確認を実施して
出力例

3-7. Claude Codeを閉じる
- Claude Code にて以下を入力し、Claude Codeを閉じる
/exit
7.Claude Codeの開発
それでは、Claude Codeでの開発として、構成図の作成を行います。
ステップ一覧
- Visual Studio Code Draw.io拡張機能のインストール
- 構成図の作成
- 構成図の修正
ステップ1: Visual Studio Code Draw.io拡張機能のインストール
Visual Studio CodeでDraw.ioを表示できるようにします。
- SSH接続している Visual Studio Codeniteにて 左サイドバーの「拡張機能」アイコンを選択
- 検索ボックスにDraw.io Integrationと入力
- Henning Dieterichsの「Draw.io Integration」拡張機能をインストール
ステップ2: 構成図の作成
MCPサーバー drawioを利用して、Web3層構造の構成図を作成します。
2-1. プロジェクトフォルダへ移動
- ターミナルにて以下のコマンドを実行
cd ~ cd claude-handson
2-2. Claude Codeを起動
- ターミナルにて以下のコマンドを実行
claude
2-3. 構成図の作成
- ターミナルにて以下のコマンドを実行
- 繰り返し確認メッセージが表示するため、内容を確認し「Yes」または「No」選択し、Enter キーを押下
open_drawio_xml を利用して、シンプルなWeb3層構造の構成図を作成し、.dioファイルで保存して
draw.io MCPサーバーのツール
draw.io MCPサーバーを利用する場合、目的に合った機能を呼び出すためにツール名を指定しましょう。
| ツール名 | 機能 | ユースケース |
|---|---|---|
| open_drawio_xml | XML形式で図を作成・編集 | 詳細なカスタム図、既存の.dioファイル編集 |
| open_drawio_csv | CSVデータから図を自動生成 | 組織図、階層構造、ネットワーク構成図 |
| open_drawio_mermaid | Mermaid記法で図を生成 | フローチャート、シーケンス図、クラス図 |
2-4. 構成図の確認
- Visual Studio Code のエクスプローラにて「claude-handson」の配下に作成された「~.dio」を選択
出力例

2-5. 構成図を閉じる
- Visual Studio Code にて「~.dio」のタブの「×」を選択し閉じる
ステップ3: 構成図の修正
MCPサーバー drawioを利用して、構成図をAWS向けに修正します。
3-1. プロジェクトフォルダへ移動
- ターミナルにて以下のコマンドを実行
cd ~ cd claude-handson
3-2. Claude Codeを起動
- ターミナルにて以下のコマンドを実行
claude
3-3. 構成図の修正
- ターミナルにて以下のコマンドを実行
- 繰り返し確認メッセージが表示するため、内容を確認し「Yes」または「No」選択し、Enter キーを押下
open_drawio_xml を利用して、シンプルなWeb3層構造の構成図をAWSのアイコンに修正して
3-4. 構成図の確認
- Visual Studio Code のエクスプローラにて「claude-handson」の配下に作成された「~.dio」を選択
出力例

補足: もし、追加の修正が必要であれば「3-3. 構成図の修正」に戻り、Claude Codeへ指示して下さい。修正を行うたびにコストが発生するため、ご留意下さい。
3-5. 構成図を閉じる
- Visual Studio Code にて「~.dio」のタブの「×」を選択し閉じる
7.環境削除手順
テストが完了したら、以下の手順で環境をきれいにお掃除しましょう。
ステップ一覧
- SSH接続の終了
- EC2インスタンスの停止
- AWS CloudFormationスタックの削除
ステップ1: SSH接続の終了
SSH接続およびポートフォワーディングを終了する方法を記載します。
1-1. Visual Studio Code SSH接続の終了
- Visual Studio Codeの左下の「SSH: dev-001-claude-01」を選択
- 「リモート接続を終了する」を選択
1-2. Session Manager ポートフォワーディングの終了
- ポートフォワーディングを実行しているPowerShellウィンドウでCtrl + Cキーを押下
ステップ2: EC2インスタンスの停止
まずはインスタンスを停止します。
- AWS マネジメントコンソールで「Amazon EC2」を開く
- dev-001-claude-01 インスタンスを選択
- 「インスタンスの状態」→「インスタンスを停止」を選択
- インスタンスが「停止済み」になるまで待つ
ステップ3: AWS CloudFormationスタックの削除
3-1. EC2スタックの削除
- AWS マネジメントコンソールで「AWS CloudFormation」を開く
- スタック名: ec2-claude-instance-stackを選択
- 「削除」ボタンを選択
- 確認ダイアログで「削除」を選択
- ステータスが「DELETE_COMPLETE」になるまで待つ(約3~5分)
3-2. 基盤スタックの削除
- 3-1. EC2スタックの削除 の手順を参考に、スタック名: ec2-claude-base-stackを削除します。
大事なポイント: スタックは必ず上記の順序で削除してください。EC2スタックが基盤スタックのリソースに依存しているので、逆順で削除するとエラーになります。
まとめ
お疲れさまでした。Claude Code on AWS構築ハンズオンは以上です。いかがでしたでしょうか。
このハンズオンでは、以下の技術・サービスを組み合わせて、Amazon Bedrock上でClaude Codeを安全かつ再現性高く利用できる開発環境を構築しました。
| 技術・サービス | 役割 |
|---|---|
| AWS CloudFormation | インフラのコード化と再現性確保(VPC、IAM、KeyPair、Security Group、Bedrock Application Inference Profile、EC2 など) |
| Amazon Bedrock Application Inference Profile | クロスリージョン推論の設定と、Claudeの複数モデル(Haiku、Sonnet、Opus)の統合管理 |
| Amazon EC2 + UserData | 開発環境の自動構築(Node.js、pyenv+最新Python、Claude Code、uv のインストールと初期設定) |
| AWS Systems Manager Session Manager | SSHポート開放不要のセキュアな接続(ポートフォワーディングを用いたVS Code Remote-SSH接続) |
| AWS IAM(最小権限) | Bedrock API呼び出し権限、MCP関連権限の最小化(InvokeModelなどに限定) |
| Claude Code | Bedrock経由の対話型開発アシスタント(モデル切替、設定ファイル・環境変数によるカスタマイズ) |
| MCPサーバー(aws-mcp、Context7、sequential-thinking、drawio) | 外部ツール・知識への安全な拡張(図作成、思考支援、AWS連携など) |
| ccstatusline ウィジェット | トークン消費やモデル状態の可視化(開発中のコスト認識と運用性向上) |
補足: 必要に応じて、インスタンスタイプやEBSサイズ、モデル選択、推論プロファイルの構成を調整し、ワークロードに合わせた最適化を行ってください。
付録
1.Amazon Bedrock モデルのコスト確認
今回の構成では、モデルごとにアプリケーション推論プロファイルを作成しています。
AWS LambdaやAmazon EC2からAmazon Bedrockを利用する場合、モデル単位でコストが集計されます。アプリケーション推論プロファイルを活用するとタグ付けができ、呼び出し元ごとにコストをわかりやすく可視化できるメリットがあります。
アプリケーション推論プロファイルを利用しない場合のイメージ

アプリケーション推論プロファイルを利用する場合のイメージ

補足: アプリケーション推論プロファイルのタグはリソース作成時に設定が必要です。
コストの確認方法
- AWS マネジメントコンソールで「Billing and Cost Management」を開く
- 左ペインにて「Cost Explorer」を選択
- 以下を参考にパラメータでフィルターを設定
プロジェクト単位のコスト確認
| 項目 | 値 |
|---|---|
| 日付範囲 | 調査する期間 |
| 粒度 | 日別 |
| タグ | Application |
| タグ値 | dev-001 |
アプリケーション推論プロファイル単位のコスト確認
| 項目 | 値 |
|---|---|
| 日付範囲 | 調査する期間 |
| 粒度 | 日別 |
| タグ | Category1 |
| タグ値 | dev-001-claude-haiku dev-001-claude-opus dev-001-claude-sonnet |
出力例

補足: AWS Cost Explorerは24時間ごとに更新されるため、コストの反映に最大で約48時間かかる場合があります。
2.環境変数のご説明
| カテゴリ | 環境変数/値 | 説明 |
|---|---|---|
| Bedrock 統合設定 | CLAUDE_CODE_USE_BEDROCK=1 | Claude Code が AWS Bedrock を使用するように有効化 |
| AWS リージョン設定 | AWS_REGION=ap-northeast-1 AWS_DEFAULT_REGION=ap-northeast-1 |
AWS API/CLI のデフォルトリージョンを東京に設定 |
| Claude モデル指定(Application Inference Profile) |
ANTHROPIC_DEFAULT_SONNET_MODEL="arn:aws:bedrock:{AWS Region}:{AWS Account ID}:application-inference-profile/xxxxxx" ANTHROPIC_DEFAULT_OPUS_MODEL="arn:aws:bedrock:{AWS Region}:{AWS Account ID}:application-inference-profile/xxxxxx" ANTHROPIC_DEFAULT_HAIKU_MODEL="arn:aws:bedrock:{AWS Region}:{AWS Account ID}:application-inference-profile/xxxxxx" CLAUDE_CODE_SUBAGENT_MODEL="arn:aws:bedrock:{AWS Region}:{AWS Account ID}:application-inference-profile/xxxxxx" |
Amazon Bedrock Application Inference Profile を用いてモデルを指定(Haiku/Sonnet/Opus) モデルIDやリージョン差異を抽象化し、柔軟に切り替え可能 サブエージェントには Haiku を割り当てる構成 |
| 出力トークン制限 | CLAUDE_CODE_MAX_OUTPUT_TOKENS=4096 MAX_THINKING_TOKENS=1024 |
最大出力トークン数を 4096、思考用トークンを 1024 に制限(コスト/応答制御) |
| パス設定 | PATH="$HOME/.local/bin:$PATH" | ユーザーのローカル bin を優先してツールを実行 |
補足: プロンプトキャッシングは無効化しておりません。機密情報を扱い場合など、状況に応じて無効化をご検討下さい。プロンプトキャッシング設定
3.Claude Code ユーザー設定のご説明
| 項目 | キー/値 | 説明 |
|---|---|---|
| プロバイダー設定 | "provider": "bedrock" | Claude Code が Amazon Bedrock をバックエンドとして使用 |
| リージョン設定 | "awsRegion": "ap-northeast-1" | Amazon Bedrock API を呼び出すリージョンを東京に指定 |
| 自動更新(有効化) | "autoUpdates": true | Claude Code の自動更新を有効化 |
| 自動更新(チャネル) | "autoUpdatesChannel": "stable" | 安定版を取得(stable チャネル) |
| モデル設定 | "model": "haiku" | デフォルトモデルを Haiku(軽量・高速)に設定。 環境変数 ANTHROPIC_MODEL が指定されている場合はそちらが優先 |
| 言語設定 | "language": "japanese" | インターフェース言語を日本語に設定 |
| ステータスライン(種別) | "statusLine": { "type": "command", ... } | エディタのステータスバーにコマンド実行結果を表示 |
| ステータスライン(コマンド) | "command": "npx -y ccstatusline@latest" | 最新の ccstatusline ツールを実行してステータス情報を取得 |
| ステータスライン(余白) | "padding": 0 | ステータスラインの余白を 0 に設定 |
| 権限(許可) | "allow": ["Bash(ls:*)","Bash(cat:*)","Bash(npm run dev)","Bash(npm run build)","Bash(npm test)"] |
許可する操作の例: ・ls 実行(Bash(ls:*)) ・cat 実行(Bash(cat:*)) ・npm run dev / build / test の実行 |
| 権限(禁止) | "deny": ["Bash(rm -rf:*)","Bash(sudo:*)","Read(.env)"] |
禁止する操作の例: ・rm -rf(ファイル削除防止) ・sudo(権限昇格防止) ・.env の読み取り(機密情報保護) |
4.Claude Code MCPサーバーのご説明
| サーバー名 | 目的・概要 |
|---|---|
| AWS MCP Server | AWS Docsを参照し、常に最新のAWS情報をAIに提供することを目的としたMCPサーバーです。 |
| Context7 MCP | 参照ドキュメントのコンテキストを調整し、最新で正確な情報をAIに渡すためのMCPサーバーです。 |
| Sequential Thinking MCP | 段階的な思考(Chain of Thought)を支援し、推論プロセスを明示化して精度の高い回答やコード生成を可能にするMCPサーバーです。 |
| drawio MCP | 図の作成・編集をAIから操作するためのMCPサーバーで、アーキテクチャ図やフローの自動生成に役立ちます。 |
この記事は私が書きました
印鑰 幸太
記事一覧全ての AWS 認定を取得。AWSサービスでは、AWS CloudFormationが好きです。ジム通いが趣味です。