bedrock-agentcore-deployment
本Skillは、Amazon Bedrock AgentCoreを活用したAIエージェントを本番環境へ安全に展開するために、初期設定からCI/CDパイプライン構築、インフラのコード管理まで、効率的な導入・運用を支援するSkill。
📜 元の英語説明(参考)
Amazon Bedrock AgentCore deployment patterns for production AI agents. Covers starter toolkit, direct code deploy, container deploy, CI/CD pipelines, and infrastructure as code. Use when deploying agents to production, setting up CI/CD, or managing agent infrastructure.
🇯🇵 日本人クリエイター向け解説
本Skillは、Amazon Bedrock AgentCoreを活用したAIエージェントを本番環境へ安全に展開するために、初期設定からCI/CDパイプライン構築、インフラのコード管理まで、効率的な導入・運用を支援するSkill。
※ jpskill.com 編集部が日本のビジネス現場向けに補足した解説です。Skill本体の挙動とは独立した参考情報です。
下記のコマンドをコピーしてターミナル(Mac/Linux)または PowerShell(Windows)に貼り付けてください。 ダウンロード → 解凍 → 配置まで全自動。
mkdir -p ~/.claude/skills && cd ~/.claude/skills && curl -L -o bedrock-agentcore-deployment.zip https://jpskill.com/download/9371.zip && unzip -o bedrock-agentcore-deployment.zip && rm bedrock-agentcore-deployment.zip
$d = "$env:USERPROFILE\.claude\skills"; ni -Force -ItemType Directory $d | Out-Null; iwr https://jpskill.com/download/9371.zip -OutFile "$d\bedrock-agentcore-deployment.zip"; Expand-Archive "$d\bedrock-agentcore-deployment.zip" -DestinationPath $d -Force; ri "$d\bedrock-agentcore-deployment.zip"
完了後、Claude Code を再起動 → 普通に「動画プロンプト作って」のように話しかけるだけで自動発動します。
💾 手動でダウンロードしたい(コマンドが難しい人向け)
- 1. 下の青いボタンを押して
bedrock-agentcore-deployment.zipをダウンロード - 2. ZIPファイルをダブルクリックで解凍 →
bedrock-agentcore-deploymentフォルダができる - 3. そのフォルダを
C:\Users\あなたの名前\.claude\skills\(Win)または~/.claude/skills/(Mac)へ移動 - 4. Claude Code を再起動
⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。
🎯 このSkillでできること
下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。
📦 インストール方法 (3ステップ)
- 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
- 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
- 3. 展開してできたフォルダを、ホームフォルダの
.claude/skills/に置く- · macOS / Linux:
~/.claude/skills/ - · Windows:
%USERPROFILE%\.claude\skills\
- · macOS / Linux:
Claude Code を再起動すれば完了。「このSkillを使って…」と話しかけなくても、関連する依頼で自動的に呼び出されます。
詳しい使い方ガイドを見る →- 最終更新
- 2026-05-18
- 取得日時
- 2026-05-18
- 同梱ファイル
- 1
📖 Skill本文(日本語訳)
※ 原文(英語/中国語)を Gemini で日本語化したものです。Claude 自身は原文を読みます。誤訳がある場合は原文をご確認ください。
Amazon Bedrock AgentCore デプロイメント
概要
複数のアプローチを使用して、AIエージェントを Amazon Bedrock AgentCore にデプロイします。迅速なデプロイメントのためのスターターツールキット、カスタマイズのための直接コードデプロイメント、複雑な依存関係のためのコンテナデプロイメントがあります。CI/CD パターンと Infrastructure as Code が含まれています。
目的: ベストプラクティスを用いて、開発から本番環境へエージェントをデプロイする
パターン: ワークフローベース (4つのデプロイメント方法)
主要原則 (AWS により 2025年12月に検証済み):
- インフラストラクチャ不要 - マネージドコンピューティング、管理するサーバーは不要
- arm64 アーキテクチャ - すべてのデプロイメントで arm64 を使用
- セッション分離 - セッション間の完全な分離
- 複数のエントリポイント - SDK デコレーターまたは REST エンドポイント
- 組み込みの可観測性 - CloudWatch および OTel 統合
- フレームワークに依存しない - 任意の Python エージェントフレームワークで動作
品質目標:
- デプロイ時間: < 5 分
- コールドスタート: < 2 秒
- パッケージサイズ: 250MB (zip), 750MB (解凍後)
使用するタイミング
bedrock-agentcore-deployment は、以下の場合に使用します。
- エージェントコードを本番環境にデプロイする場合
- エージェントの CI/CD パイプラインをセットアップする場合
- 開発環境から本番環境に移行する場合
- 複数のエージェントバージョンを管理する場合
- Blue-Green デプロイメントを実装する場合
使用しないタイミング:
- ローカルでの開発/テスト (ローカルサーバーを使用)
- アクショングループを持つ標準の Bedrock Agents
前提条件
必須
- AgentCore へのアクセス権を持つ AWS アカウント
- Python 3.10+ (推奨: 3.13)
- AgentCore のアクセス許可を持つ IAM ロール
- 基盤モデルへのアクセスが有効になっていること
推奨
- AWS CLI が構成されていること
- Docker (コンテナデプロイメントの場合)
- GitHub Actions または GitLab CI (CI/CD の場合)
デプロイメント方法 1: スターターツールキット (最速)
時間: 2-5 分 複雑さ: 低 最適な用途: 迅速なデプロイメント、シンプルなエージェント
ステップ 1: ツールキットのインストール
pip install bedrock-agentcore strands-agents bedrock-agentcore-starter-toolkit
# 確認
agentcore --help
ステップ 2: エージェントの作成
# main.py
from bedrock_agentcore import BedrockAgentCoreApp
from strands import Agent
app = BedrockAgentCoreApp()
agent = Agent(model="anthropic.claude-sonnet-4-20250514-v1:0")
@app.entrypoint
def invoke(payload):
prompt = payload.get("prompt", "Hello!")
result = agent(prompt)
return {"response": result.message}
if __name__ == "__main__":
app.run()
ステップ 3: 構成
# 構成の初期化
agentcore configure -e main.py -n my-production-agent
# これにより .bedrock_agentcore.yaml が作成されます
ステップ 4: ローカルでのテスト
# ローカルサーバーの起動
python main.py &
# テスト
curl -X POST http://localhost:8080/invocations \
-H "Content-Type: application/json" \
-d '{"prompt": "Hello, world!"}'
# ローカルサーバーの停止
pkill -f main.py
ステップ 5: デプロイ
# AWS へのデプロイ
agentcore deploy
# 出力: エージェント ARN
# arn:aws:bedrock-agentcore:us-east-1:123456789012:agent-runtime/my-production-agent
ステップ 6: デプロイされたエージェントのテスト
# CLI 経由でのテスト
agentcore invoke '{"prompt": "Hello from production!"}'
# boto3 経由でのテスト
python -c "
import boto3
client = boto3.client('bedrock-agentcore')
response = client.invoke_agent_runtime(
agentRuntimeArn='arn:...',
runtimeSessionId='test-1',
payload={'prompt': 'Hello!'}
)
print(response['payload'])
"
デプロイメント方法 2: 直接コードデプロイ
時間: 10-15 分 複雑さ: 中 最適な用途: カスタム依存関係、特定の構成
ステップ 1: プロジェクト構造
my-agent/
├── main.py # エントリポイント
├── agent/
│ ├── __init__.py
│ └── logic.py # エージェントロジック
├── pyproject.toml # 依存関係
└── requirements.txt # 代替の依存関係形式
ステップ 2: エントリポイントの作成
# main.py - REST エンドポイントパターン
from flask import Flask, request, jsonify
app = Flask(__name__)
@app.route('/invocations', methods=['POST'])
def invoke():
payload = request.get_json()
prompt = payload.get('prompt', '')
# ここにエージェントロジックを記述
from agent.logic import process_request
result = process_request(prompt)
return jsonify({'response': result})
@app.route('/ping', methods=['GET'])
def ping():
return 'OK', 200
if __name__ == '__main__':
app.run(host='0.0.0.0', port=8080)
ステップ 3: arm64 向けにパッケージ化
# 仮想環境の作成
uv init agent-deploy --python 3.13
cd agent-deploy
# arm64 向けの依存関係をインストール
uv pip install \
--python-platform aarch64-manylinux2014 \
--python-version 3.13 \
--target=deployment_package \
--only-binary=:all: \
-r requirements.txt
# ZIP ファイルの作成
cd deployment_package
zip -r ../deployment_package.zip .
cd ..
# main.py の追加
zip deployment_package.zip main.py
# agent モジュールの追加
zip -r deployment_package.zip agent/
ステップ 4: S3 へのアップロード
aws s3 cp deployment_package.zip s3://my-bucket/agents/v1.0.0/package.zip
ステップ 5: エージェントランタイムの作成
import boto3
control = boto3.client('bedrock-agentcore-control')
response = control.create_agent_runtime(
name='my-custom-agent',
description='Production agent with custom dependencies',
agentRuntimeArtifact={
's3': {
'uri': 's3://my-bucket/agents/v1.0.0/package.zip'
}
},
roleArn='arn:aws:iam::123456789012:role/AgentCoreExecutionRole',
pythonRuntime='PYTHON_3_13',
entryPoint=['main.py'],
environmentVariables={
'LOG_LEVEL': 'INFO',
'CUSTOM_CONFIG': 'production'
}
)
agent_arn = response['agentRuntimeArn']
print(f"Deployed: {agent_arn}")
デプロイメント方法 3: コンテナデプロイ
時間: 15-30 分 複雑さ: 高 最適な用途: 複雑な依存関係、カスタムランタイム、大きなパッケージ
ステップ 1: Dockerfile の作成
# Dockerfile
FROM public.ecr.aws/lambda/python:3.13-arm64
# 依存関係のインストール
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
# エージェントコードのコピー
COPY main.py .
COPY agent/ agent/
# エントリポイントの設定
(原文がここで切り詰められています) 📜 原文 SKILL.md(Claudeが読む英語/中国語)を展開
Amazon Bedrock AgentCore Deployment
Overview
Deploy AI agents to Amazon Bedrock AgentCore using multiple approaches: starter toolkit for rapid deployment, direct code deployment for customization, and container deployment for complex dependencies. Includes CI/CD patterns and infrastructure as code.
Purpose: Deploy agents from development to production with best practices
Pattern: Workflow-based (4 deployment methods)
Key Principles (validated by AWS December 2025):
- Zero Infrastructure - Managed compute, no servers to manage
- arm64 Architecture - All deployments use arm64
- Session Isolation - Complete isolation between sessions
- Multiple Entry Points - SDK decorator or REST endpoints
- Observability Built-in - CloudWatch and OTel integration
- Framework Agnostic - Works with any Python agent framework
Quality Targets:
- Deployment time: < 5 minutes
- Cold start: < 2 seconds
- Package size: 250MB (zip), 750MB (unzipped)
When to Use
Use bedrock-agentcore-deployment when:
- Deploying agent code to production
- Setting up CI/CD pipelines for agents
- Migrating from development to production
- Managing multiple agent versions
- Implementing blue-green deployments
When NOT to Use:
- Local development/testing (use local server)
- Standard Bedrock Agents with action groups
Prerequisites
Required
- AWS account with AgentCore access
- Python 3.10+ (recommended: 3.13)
- IAM role with AgentCore permissions
- Foundation model access enabled
Recommended
- AWS CLI configured
- Docker (for container deployments)
- GitHub Actions or GitLab CI (for CI/CD)
Deployment Method 1: Starter Toolkit (Fastest)
Time: 2-5 minutes Complexity: Low Best For: Rapid deployment, simple agents
Step 1: Install Toolkit
pip install bedrock-agentcore strands-agents bedrock-agentcore-starter-toolkit
# Verify
agentcore --help
Step 2: Create Agent
# main.py
from bedrock_agentcore import BedrockAgentCoreApp
from strands import Agent
app = BedrockAgentCoreApp()
agent = Agent(model="anthropic.claude-sonnet-4-20250514-v1:0")
@app.entrypoint
def invoke(payload):
prompt = payload.get("prompt", "Hello!")
result = agent(prompt)
return {"response": result.message}
if __name__ == "__main__":
app.run()
Step 3: Configure
# Initialize configuration
agentcore configure -e main.py -n my-production-agent
# This creates .bedrock_agentcore.yaml
Step 4: Test Locally
# Start local server
python main.py &
# Test
curl -X POST http://localhost:8080/invocations \
-H "Content-Type: application/json" \
-d '{"prompt": "Hello, world!"}'
# Stop local server
pkill -f main.py
Step 5: Deploy
# Deploy to AWS
agentcore deploy
# Output: Agent ARN
# arn:aws:bedrock-agentcore:us-east-1:123456789012:agent-runtime/my-production-agent
Step 6: Test Deployed
# Test via CLI
agentcore invoke '{"prompt": "Hello from production!"}'
# Test via boto3
python -c "
import boto3
client = boto3.client('bedrock-agentcore')
response = client.invoke_agent_runtime(
agentRuntimeArn='arn:...',
runtimeSessionId='test-1',
payload={'prompt': 'Hello!'}
)
print(response['payload'])
"
Deployment Method 2: Direct Code Deploy
Time: 10-15 minutes Complexity: Medium Best For: Custom dependencies, specific configurations
Step 1: Project Structure
my-agent/
├── main.py # Entry point
├── agent/
│ ├── __init__.py
│ └── logic.py # Agent logic
├── pyproject.toml # Dependencies
└── requirements.txt # Alternative deps format
Step 2: Create Entry Point
# main.py - REST endpoint pattern
from flask import Flask, request, jsonify
app = Flask(__name__)
@app.route('/invocations', methods=['POST'])
def invoke():
payload = request.get_json()
prompt = payload.get('prompt', '')
# Your agent logic here
from agent.logic import process_request
result = process_request(prompt)
return jsonify({'response': result})
@app.route('/ping', methods=['GET'])
def ping():
return 'OK', 200
if __name__ == '__main__':
app.run(host='0.0.0.0', port=8080)
Step 3: Package for arm64
# Create virtual environment
uv init agent-deploy --python 3.13
cd agent-deploy
# Install dependencies for arm64
uv pip install \
--python-platform aarch64-manylinux2014 \
--python-version 3.13 \
--target=deployment_package \
--only-binary=:all: \
-r requirements.txt
# Create ZIP
cd deployment_package
zip -r ../deployment_package.zip .
cd ..
# Add main.py
zip deployment_package.zip main.py
# Add agent module
zip -r deployment_package.zip agent/
Step 4: Upload to S3
aws s3 cp deployment_package.zip s3://my-bucket/agents/v1.0.0/package.zip
Step 5: Create Agent Runtime
import boto3
control = boto3.client('bedrock-agentcore-control')
response = control.create_agent_runtime(
name='my-custom-agent',
description='Production agent with custom dependencies',
agentRuntimeArtifact={
's3': {
'uri': 's3://my-bucket/agents/v1.0.0/package.zip'
}
},
roleArn='arn:aws:iam::123456789012:role/AgentCoreExecutionRole',
pythonRuntime='PYTHON_3_13',
entryPoint=['main.py'],
environmentVariables={
'LOG_LEVEL': 'INFO',
'CUSTOM_CONFIG': 'production'
}
)
agent_arn = response['agentRuntimeArn']
print(f"Deployed: {agent_arn}")
Deployment Method 3: Container Deploy
Time: 15-30 minutes Complexity: High Best For: Complex dependencies, custom runtimes, large packages
Step 1: Create Dockerfile
# Dockerfile
FROM public.ecr.aws/lambda/python:3.13-arm64
# Install dependencies
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
# Copy agent code
COPY main.py .
COPY agent/ agent/
# Set entry point
ENV PORT=8080
EXPOSE 8080
CMD ["main.py"]
Step 2: Build Image
# Login to ECR
aws ecr get-login-password --region us-east-1 | \
docker login --username AWS --password-stdin 123456789012.dkr.ecr.us-east-1.amazonaws.com
# Build for arm64
docker buildx build \
--platform linux/arm64 \
-t 123456789012.dkr.ecr.us-east-1.amazonaws.com/my-agent:v1.0.0 \
--push .
Step 3: Create Agent Runtime
response = control.create_agent_runtime(
name='my-container-agent',
description='Agent deployed via container',
agentRuntimeArtifact={
'container': {
'imageUri': '123456789012.dkr.ecr.us-east-1.amazonaws.com/my-agent:v1.0.0'
}
},
roleArn='arn:aws:iam::123456789012:role/AgentCoreExecutionRole'
)
Deployment Method 4: Infrastructure as Code (Terraform)
Time: 20-30 minutes setup, then automated Complexity: High Best For: Production environments, team deployments
Terraform Configuration
# main.tf
terraform {
required_providers {
aws = {
source = "hashicorp/aws"
version = "~> 5.0"
}
}
}
provider "aws" {
region = "us-east-1"
}
# IAM Role for Agent
resource "aws_iam_role" "agentcore_execution" {
name = "agentcore-execution-role"
assume_role_policy = jsonencode({
Version = "2012-10-17"
Statement = [{
Action = "sts:AssumeRole"
Effect = "Allow"
Principal = {
Service = "bedrock-agentcore.amazonaws.com"
}
}]
})
}
resource "aws_iam_role_policy" "agentcore_policy" {
name = "agentcore-policy"
role = aws_iam_role.agentcore_execution.id
policy = jsonencode({
Version = "2012-10-17"
Statement = [
{
Effect = "Allow"
Action = [
"bedrock:InvokeModel",
"bedrock:InvokeModelWithResponseStream"
]
Resource = "arn:aws:bedrock:*::foundation-model/*"
},
{
Effect = "Allow"
Action = [
"logs:CreateLogGroup",
"logs:CreateLogStream",
"logs:PutLogEvents"
]
Resource = "*"
},
{
Effect = "Allow"
Action = [
"s3:GetObject"
]
Resource = "${aws_s3_bucket.agent_artifacts.arn}/*"
}
]
})
}
# S3 Bucket for Agent Artifacts
resource "aws_s3_bucket" "agent_artifacts" {
bucket = "my-agentcore-artifacts-${data.aws_caller_identity.current.account_id}"
}
# Upload agent package
resource "aws_s3_object" "agent_package" {
bucket = aws_s3_bucket.agent_artifacts.id
key = "agents/${var.agent_version}/package.zip"
source = "${path.module}/deployment_package.zip"
etag = filemd5("${path.module}/deployment_package.zip")
}
# Note: AgentCore resources may require custom provider or AWS CLI
# Use null_resource with local-exec as workaround
resource "null_resource" "create_agent_runtime" {
triggers = {
package_etag = aws_s3_object.agent_package.etag
}
provisioner "local-exec" {
command = <<-EOT
aws bedrock-agentcore-control create-agent-runtime \
--name ${var.agent_name} \
--description "Terraform-managed agent" \
--agent-runtime-artifact '{"s3":{"uri":"s3://${aws_s3_bucket.agent_artifacts.id}/agents/${var.agent_version}/package.zip"}}' \
--role-arn ${aws_iam_role.agentcore_execution.arn} \
--python-runtime PYTHON_3_13 \
--entry-point '["main.py"]'
EOT
}
depends_on = [aws_s3_object.agent_package]
}
data "aws_caller_identity" "current" {}
variable "agent_name" {
default = "my-production-agent"
}
variable "agent_version" {
default = "1.0.0"
}
CI/CD Pipeline: GitHub Actions
# .github/workflows/deploy-agent.yml
name: Deploy AgentCore Agent
on:
push:
branches: [main]
pull_request:
branches: [main]
env:
AWS_REGION: us-east-1
AGENT_NAME: my-production-agent
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.13'
- name: Install dependencies
run: |
pip install -r requirements.txt
pip install pytest
- name: Run tests
run: pytest tests/
- name: Test local server
run: |
python main.py &
sleep 5
curl -f http://localhost:8080/ping
curl -X POST http://localhost:8080/invocations \
-H "Content-Type: application/json" \
-d '{"prompt": "test"}'
pkill -f main.py
deploy:
needs: test
if: github.ref == 'refs/heads/main'
runs-on: ubuntu-latest
permissions:
id-token: write
contents: read
steps:
- uses: actions/checkout@v4
- name: Configure AWS credentials
uses: aws-actions/configure-aws-credentials@v4
with:
role-to-assume: arn:aws:iam::${{ secrets.AWS_ACCOUNT_ID }}:role/GitHubActionsRole
aws-region: ${{ env.AWS_REGION }}
- name: Install AgentCore toolkit
run: pip install bedrock-agentcore-starter-toolkit
- name: Configure agent
run: agentcore configure -e main.py -n ${{ env.AGENT_NAME }}
- name: Deploy agent
run: agentcore deploy
- name: Verify deployment
run: |
agentcore invoke '{"prompt": "Health check"}'
CI/CD Pipeline: GitLab CI
# .gitlab-ci.yml
stages:
- test
- build
- deploy
variables:
AWS_REGION: us-east-1
AGENT_NAME: my-production-agent
test:
stage: test
image: python:3.13
script:
- pip install -r requirements.txt
- pip install pytest
- pytest tests/
build:
stage: build
image: python:3.13
script:
- pip install uv
- uv pip install --python-platform aarch64-manylinux2014 --python-version 3.13 --target=deployment_package --only-binary=:all: -r requirements.txt
- cd deployment_package && zip -r ../package.zip . && cd ..
- zip package.zip main.py
artifacts:
paths:
- package.zip
deploy:
stage: deploy
image: amazon/aws-cli
script:
- aws s3 cp package.zip s3://${ARTIFACT_BUCKET}/agents/${CI_COMMIT_SHA}/package.zip
- |
aws bedrock-agentcore-control update-agent-runtime \
--agent-runtime-id ${AGENT_RUNTIME_ID} \
--agent-runtime-artifact "{\"s3\":{\"uri\":\"s3://${ARTIFACT_BUCKET}/agents/${CI_COMMIT_SHA}/package.zip\"}}"
only:
- main
Version Management
Blue-Green Deployment
def blue_green_deploy(agent_name, new_version):
"""Deploy new version alongside old, then switch"""
# Get current (blue) version
blue = control.get_agent_runtime(name=f"{agent_name}-blue")
# Deploy new (green) version
green = control.create_agent_runtime(
name=f"{agent_name}-green",
agentRuntimeArtifact={'s3': {'uri': f's3://bucket/agents/{new_version}/package.zip'}},
roleArn=blue['roleArn'],
pythonRuntime='PYTHON_3_13',
entryPoint=['main.py']
)
# Test green
test_result = run_smoke_tests(green['agentRuntimeArn'])
if test_result.passed:
# Update endpoint to point to green
control.update_agent_runtime_endpoint(
endpointId='production-endpoint',
agentRuntimeArn=green['agentRuntimeArn']
)
# Delete old blue
control.delete_agent_runtime(name=f"{agent_name}-blue")
# Rename green to blue
# (Note: actual rename may require recreate)
else:
# Rollback - delete failed green
control.delete_agent_runtime(name=f"{agent_name}-green")
raise Exception("Green deployment failed tests")
Rollback
# Quick rollback via CLI
agentcore rollback --to-version v1.0.0
# Via boto3
control.update_agent_runtime(
agentRuntimeId='runtime-xxx',
agentRuntimeArtifact={
's3': {'uri': 's3://bucket/agents/v1.0.0/package.zip'}
}
)
Related Skills
- bedrock-agentcore: Core platform features
- bedrock-agentcore-evaluations: Pre-deployment testing
- terraform-aws: Infrastructure as code
- ecs-deployment: Alternative deployment patterns
References
references/iam-policies.md- IAM policy templatesreferences/troubleshooting.md- Common deployment issuesreferences/performance-tuning.md- Optimization guide