CloudFront + Lambda@Edge でつくる x402 AI Agent
요약
본 기술 기사는 AWS CloudFront와 Lambda@Edge를 활용하여 'x402'라는 마이크로페이먼트 프로토콜을 구현하고, 이를 통해 AI 에이전트가 자율적으로 결제하며 콘텐츠에 접근하는 시스템 아키텍처를 소개합니다. 이 시스템은 Strands Agent와 AgentCore Gateway(MCP)를 통합하여, 사용자가 USDC 등으로 결제할 때마다 필요한 비용을 지불하며 AI 에이전트가 콘텐츠를 소비하는 과정을 구현했습니다. 특히 Lambda@Edge를 x402 전용 게이트웨이로 사용하여, 원본 서비스는 마이크로페이먼트 로직의 존재를 알 필요 없이 높은 확장성을 유지하면서 결제 및 접근 제어 기능을 수행할 수 있도록 설계한 것이 핵심입니다.
핵심 포인트
- x402 프로토콜을 AWS CloudFront + Lambda@Edge 조합으로 구현하여 AI 에이전트 콘텐츠 소비에 적용함.
- AI 에이전트가 자율적으로 USDC 등의 암호화폐를 결제하며 콘텐츠를 가져가는 End-to-End 워크플로우를 구축함.
- Lambda@Edge를 x402 전용 게이트웨이로 활용하여, 원본 서비스의 복잡도를 낮추고 확장성을 극대화함.
- AgentCore Gateway(MCP)와 Strands Agent SDK (Python)를 통합하여 AI 에이전트의 자율적 결제 및 접근 로직을 구현함.
- Base Sepolia (EVM)와 Solana Devnet 등 다양한 블록체인 네트워크를 지원할 수 있도록 설계됨.
はじめに
最近 x402 という言葉を聞く機会が増えてきたのではないでしょうか?
AI Agent 同士の決済も現実味を帯びている中マイクロペイメント決済の手法としてこの x402 が注目を集めています。
既存の API を x402 化させる方法はいくつかありますが、AWS からかなりイケてる構成案が出ていたので今回はこれを使ってチャット UI の AI Agent を作成してみました!
技術スタックとかも解説しているのでぜひ最後まで読んでいってください!
作ったもの
概要
x402 プロトコルを使い、AWS CloudFront + Lambda@Edge で HTTP リクエストをマイクロペイメントでマネタイズするサンプル実装です。
具体的には Strands Agent × AgentCore Gateway (MCP) を統合し、AI エージェントが自律的に USDC で支払いながらコンテンツを取得するアプリになっています!
Base Sepolia (EVM) と Solana Devnet の両方をサポートし、クライアントはどちらのネットワークで支払っても OK です。
アプリの概要をまとめたスライド
とりあえずポイントだけ知りたいという方は以下のスライドをご覧ください!
スクリーンショット
全体像
今回作成したアプリは以下のように5つのレイヤーで構成されています。
┌──────────────────────────────────────────────────────────────────┐
│ [FrontendStack] CloudFront (S3) │
│ React "Neon Noir Payment Terminal" UI │
...
それぞれのスタックの役割分担は以下の通りになっています。
| スタック | ファイル | 役割 |
|---|---|---|
SecretsStack | ||
lib/secrets-stack.ts | ||
| EVM / Solana private key を SecretsManager で管理 | ||
CdkStack | ||
lib/cdk-stack.ts | ||
| CloudFront + Lambda@Edge (x402 エッジゲートウェイ) | ||
PaymentProxyStack | ||
lib/payment-proxy-stack.ts | ||
| x402 自動支払いプロキシ Lambda + API GW | ||
AgentCoreGatewayStack | ||
lib/agent-core-gateway-stack.ts | ||
| AgentCore Gateway (MCP Server) | ||
StrandsAgentStack | ||
lib/strands-agent-stack.ts | ||
| Strands Agent Lambda (Python) + API GW | ||
FrontendStack | ||
lib/frontend-stack.ts | ||
| React UI の CloudFront + S3 配信 |
機能毎の処理シーケンス図
1. x402 基本フロー — 未払い → 402
2. x402 基本フロー — 支払い済み → 成功
3. AI Agent フロー — エンドツーエンド
4. オリジンエラー時(課金なし)
システムアーキテクチャ図
実装時のポイント
任意のオリジンを x402 化させる 2 つの Lambda 関数
lambda-edge
今回重要となるのがこのlambda@Ddge用 Lambda 関数です。
オリジンとアクセス元との間に立ち、x402 関連のロジックの処理をこの Lambda 関数で担当します。
今回はオリジンに対して以下のパスにアクセスしたきた場合にそれぞれいくらステーブルコインの支払いを要求するかを設定しています。
/**
* x402 Configuration
*
...
x402 関連のリクエスト・レスポンスの処理はここで担当することでオリジン側は x402 の存在をほぼ意識する必要がありません。
オリジンへのリクエストとオリジンからのレスポンスはそれぞれ以下のように処理されるようになっています。
/**
* x402 の origin-request 処理。署名の検証と支払い要件のチェックを行う。
*
...
スケーラビリティも優れている非常にイケている設計だと思います。
payment-proxy
x402 自動支払いプロキシの Lambda 関数となります。
import {
GetSecretValueCommand,
SecretsManagerClient,
...
MCP サーバー
AgentCore Gatewayでは API を MCP 化することができます。
その際に必要なのが OpenAPI 使用の yaml ファイルになります!
上述の proxy サーバーを MCP サーバー化します。
openapi: "3.0.1"
info:
title: "x402 Payment Proxy API"
...
Strands Agent で実装した AI Agent
x402 対応コンテンツに MCP 経由でアクセスする AI エージェントの実装を担当する部分です。
PythonとStrands Agent SDKを使って実装しています。
実行環境にBedrock AgentCoreを採用しています。
Strands Agent Lambda handler
x402 対応 콘텐츠에 MCP 를 통해 액세스하는 AI 에이전트.
...
프론트엔드
프론트엔드 구현은 React.js 와 Vite 를 사용했습니다.
AI Agent 기능은 API 로 호출하도록 React Hook 으로 구현했습니다.
import { useCallback, useRef, useState } from "react";
import { loadConfig } from "../lib/config";
import type { Message, PaymentRecord } from "../types";
...
사용 방법
Phase A: 기존 x402 엣지 게이트웨이 배포
1. 레포지토리 클론
git clone https://github.com/your-org/x402-Cloudfront-LambdaEdge-Sample.git
cd x402-Cloudfront-LambdaEdge-Sample
2. CDK 의존성 패키지 설치
cd cdk
bun install
# Lambda@Edge 의 의존성 관계
...
3. 전체 스택 한 번에 배포
cd cdk
# 모든 스택을 한 번에 배포 (SecretsStack 은 먼저 배포하고, 비밀 키 설정 후 나머지 실행)
bunx cdk deploy SecretsStack
...
배포가 완료되면 CloudFront URL 이 출력되므로
스택 삭제
검증이 끝나면 자원을 삭제했습니다!
cd cdk
npx cdk destroy --all
Lambda@Edge 는 몇 시간 후 (리플리카가 삭제된 후) 수동으로 삭제해야 하므로 주의하세요!
aws lambda delete-function --function-name CdkStack-OriginResponseFn0BEDF56E-RYprtghbLxd7 --region us-east-1
aws lambda delete-function --function-name CdkStack-OriginRequestFn5947795F-p5ZOi0xo6Fi9 --region us-east-1
테스트 스크립트 검증 방법
scripts/
에는 x402 결제 페이로드 생성 및 동작 검증 스크립트가 포함되어 있습니다!
설정
cp scripts/.env.example scripts/.env
scripts/.env
을 편집:
# EVM 비밀 키 (Base Sepolia 테스트넷용)
EVM_PRIVATE_KEY=0x_YOUR_EVM_PRIVATE_KEY_HERE
# Solana 비밀 키 (Solana Devnet 용, base58 형식) ※ EVM 또는 Solana 중 한쪽만 가능
...
cd scripts && bun install
generate 모드 — 서명된 페이로드 생성 (결제 없음)
먼저 결제 없는 버전 처리를 시도해 보세요!
cd scripts
bun run generate # /api/hello 의 페이로드 생성
bun run generate:premium # /api/premium/data 의 페이로드 생성
...
pay 모드 — 전체 결제 (실제 USDC 소비)
다음으로 실제 결제 실행 스크립트를 시도해 보세요.
cd scripts
bun run pay # /api/hello 를 결제
bun run pay:premium # /api/premium/data 를 결제
...
출력 예시:
x402 Payment Script
Mode: 전체 결제 (--pay) ※ 실제로 USDC 를 소비합니다
Endpoint: /api/hello
...
요약
CloudFront + Lambda@Edge 로 임의의オリジンを x402 화하는 방법을 시도해 보았습니다!
관리 서비스를 최대한 활용하면서, 본질적인 로직이 구현된オリジ인 측 코드를 거의 변경하지 않는 구성은 매우 훌륭하다고 느꼈습니다.
하지만, 블록체인 지식이나 지갑,ステー블코인의 사전 준비 등 번거로운 단계가 여전히 필요하므로 이 부분의 환경 설정도 커버해 주어야 할 것 같습니다.
앞으로 이러한 구현이 점점 더 늘어나는 추세입니다.
이번에는 여기까지입니다!
읽어주셔서 감사합니다!
참고 자료
- GitHub x402-Cloudfront-LambdaEdge-Sample
- Monetize Any HTTP Application with x402 and CloudFront + Lambda@Edge
- Coinbase x402 GitHub — CloudFront Lambda@Edge Example
- x402 Protocol Specification
- AWS Bedrock AgentCore Gateway ドキュメント
- Strands Agents SDK
- AWS Lambda@Edge ドキュメント
- Model Context Protocol (MCP)
- 実際のトランザクション記録
AI 자동 생성 콘텐츠
본 콘텐츠는 Zenn AI의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기