Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Mastraに入門してみた ~AWS CDKを添えて~
Search
つくぼし
April 22, 2025
Technology
0
110
Mastraに入門してみた ~AWS CDKを添えて~
つくぼし
April 22, 2025
Tweet
Share
More Decks by つくぼし
See All by つくぼし
Amazon Bedrock GenUハンズオン座学資料 #2 GenU環境でRAGを体験してみよう
tsukuboshi
0
170
Amazon Bedrock GenUハンズオン座学資料 #1 GenU環境で生成AIを体験してみよう
tsukuboshi
0
430
AWSエンジニアに捧ぐLangChainの歩き方
tsukuboshi
3
1k
世界の中心でApp Runnerを叫ぶ ~Aurora DSQLを添えて~
tsukuboshi
0
290
初めてのGPTs ~ネコ派を〇〇派に変える技術~
tsukuboshi
0
550
Amplify Gen 2ではじめる 生成AIアプリ開発入門
tsukuboshi
1
1.1k
AWSで構築するパターン別RAG構成解説
tsukuboshi
5
5.6k
AWS構成図から CloudFormationとパラメータシートを 自動生成するシステムを作ってみた
tsukuboshi
0
9.3k
5分で分かる(かもしれない) Vector engine for OpenSearch Serverless
tsukuboshi
1
1.4k
Other Decks in Technology
See All in Technology
大AI時代で輝くために今こそドメインにディープダイブしよう / Deep Dive into Domain in AI-Agent-Era
yuitosato
1
360
新卒エンジニアがCICDをモダナイズしてみた話
akashi_sn
2
200
Spice up your notifications/try!Swift25
noppefoxwolf
2
350
Amazon CloudWatch Application Signals ではじめるバーンレートアラーム / Burn rate alarm with Amazon CloudWatch Application Signals
ymotongpoo
5
460
AI Agentを「期待通り」に動かすために:設計アプローチの模索と現在地
kworkdev
PRO
2
440
プロダクト開発におけるAI時代の開発生産性
shnjtk
2
230
Ops-JAWS_Organizations小ネタ3選.pdf
chunkof
2
150
LLM as プロダクト開発のパワードスーツ
layerx
PRO
1
240
似たような課題が何度も蘇ってくるゾンビふりかえりを撲滅するため、ふりかえりのテーマをフォーカスしてもらった話 / focusing on the theme
naitosatoshi
0
450
サーバレス、コンテナ、データベース特化型機能をご紹介。CloudWatch をもっと使いこなそう!
o11yfes2023
0
150
フロントエンドも盛り上げたい!フロントエンドCBとAmplifyの軌跡
mkdev10
2
270
低レイヤを知りたいPHPerのためのCコンパイラ作成入門 / Building a C Compiler for PHPers Who Want to Dive into Low-Level Programming
tomzoh
1
230
Featured
See All Featured
A better future with KSS
kneath
239
17k
Optimising Largest Contentful Paint
csswizardry
36
3.2k
GitHub's CSS Performance
jonrohan
1030
460k
Speed Design
sergeychernyshev
29
900
How GitHub (no longer) Works
holman
314
140k
Building Flexible Design Systems
yeseniaperezcruz
329
38k
Side Projects
sachag
452
42k
Mobile First: as difficult as doing things right
swwweet
223
9.6k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
251
21k
The Straight Up "How To Draw Better" Workshop
denniskardys
232
140k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
45
7.2k
Navigating Team Friction
lara
184
15k
Transcript
Mastraに⼊⾨してみた ~AWS CDKを添えて~ 2025/4/23 Mita.ts
2 ⾃⼰紹介 • 部署 ◦ AWS事業本部コンサルティング部 • ニックネーム ◦ つくぼし
• 最近推しているAWSサービス ◦ AWS Infrastructure Composer • SNS/ブログ ◦ X(@tsukuboshi0755) ◦ DevelopersIO(つくぼし)
3 これからAIエージェント作るなら Mastraを推したい
Mastraの特徴 4 ⚫ TypeScript製のAIエージェントフレームワーク ⚫ エージェント、メモリ、ワークフロー、RAG、可観測性、評価、⾳声といったLLMアプ リに必要な機能がオールインワンで揃う ⚫ Mastra単独でもビルド時にHonoベースのHTTPサーバが⽣成され、プレイグラウンドの GUIがすぐ試せる
⚫ Next.jsとの統合が容易で、バックエンドサーバとして呼び出す他に、Next.jsアプリ⾃体 に直接統合する事も可能
LangGraphの⼈気を約半年で抜かしたMastra 5
Mastraの実態はVercel AI SDKのスーパーセット 6 参照:https://mastra.ai/ja/docs/frameworks/ai-sdk
⚫ LangChainとMastraという単語が有名なので直接⽐較されるのを⾒かけるが、そもそもフ レームワークのレイヤーが異なるため、この2つを⽐較してもあまり意味がない事が多い ⚫ もし⼤雑把で良いから⽐較したい場合、LangChain vs Vercel AI SDK、LangGraph vs
Mastraの構造の⽅がまだ良いのでは?と考えている 余談①:LangChainとMastraは同軸で⽐較するものではない 7 ファミリー系列 LLM処理汎用化フレームワーク AIエージェントフレームワーク LangChain系 LangChain LangGraph Vercel AI SDK系 Vercel AI SDK Mastra
MastraでのMCPサーバ定義 8 ⚫ @mastra/mcpモジュールのMCPConfigurationで定義可能 ⚫ servers内に使⽤したいMCPサーバの設定を記載する
Mastraエージェントのツール呼び出し 9 ⚫ name(エージェント名)、instructions(システムプロンプト)、model(AIモデル)を定義 ⚫ toolsにはエージェントで呼び出したいツール群を定義する ⚫ MCPサーバをツールで呼び出す場合はawait mcp.getTools()を指定
Mastraエージェントの便利機能 10 ⚫ エージェントはステップ単位でタスクを実⾏する ⚫ maxStepsを使うと、LLM連続呼び出しの最⼤数を増減し、ステップ回数を制御できる ⚫ onStepFinishを使うと、各ステップ終了時の結果を出⼒し、タスクの進捗状況を表⽰で きる
余談②:Mastraのライセンス(ELv2)をどの程度気にする必要があるか? 11 ⚫ Elastic Licenseは、OSS公開されていたElasticSearchがクラウドプロバイダー社のマ ネージドサービスとして有料提供された事に対して、提供元のElastic社が反発した事が きっかけで⽣まれたライセンス ⚫ MastraにはELv2(Elastic License
v2)が付くので、使⽤の許可基準は以下のようになる ◯ Mastraを元に作ったAIエージェントアプリケーションを顧客に提供する→⭕ ◯ クラウドにおけるマネージドサービスとして、MastraのAPI各種とUIにそのままアク セスできる形で顧客に提供する→❌ ⚫ 結論:MastraでSaaSアプリを開発/提供するレベルであればほぼ気にしなくて良い認識
12 MastraをAWSにデプロイしたい どうせならTypeScriptで組みたい...
13 IaCにはAWS CDKを使おう!
AWS CDKとは 14 ⚫ AWSリソースをプログラミング⾔語で記載できるTypeScript製のフレームワーク ⚫ 裏側ではCDKコードがCloudFormationテンプレートに変換されデプロイされる仕組み ⚫ CDKのライブラリはコンストラクトレベルという単位で分けられている ◯
L1はAWSリソースがCloudFormationとほぼ同⼀の項⽬で、細かいパラメータを制御 できる ◯ L2はAWSリソースのベストプラクティスがデフォルト値として事前に設定されてお り、より少ないパラメータでリソースを構築できる ◯ L3は複数のAWSリソースがパターン化され、特定のユースケースにおけるアーキテク チャ全体を⼀括で展開できる
検証⽤AWSアーキテクチャ 15
コンテナイメージのビルド/ECRへのプッシュ⾃動化 16 ⚫ cdk-docker-image-deploymentのDockerImageDeploymentを使⽤する事で、コンテナ イメージのビルドとECRへのプッシュをCDKデプロイ時に丸っと⾃動化可能 ⚫ ContainerImage.fromAssetが同⼀のECRリポジトリしか使えないのに対して、 cdk-docker-image-deploymentはイメージ毎にECRリポジトリを指定する事が可能
マイクロサービスアーキテクチャパターンの構築 17 ⚫ ecs_patternsのApplicationLoadBalancedFargateServiceを使⽤する事で、ALB + ECS Fargateの構成を簡単に構築できる ⚫ ネットワーク/ロードバランサー/各種ECSリソース等の設定がベストプラクティスで抽象 化され、少ない⾏数でデプロイ可能
npm run cdk:deployコマンドを実⾏するだけでAWSにデプロイできます 18
サンプルコードを知りたい⽅向け 19 https://zenn.dev/tsukuboshi/articles/mastra-mcp-with-ecs-bedrock
次回予告 20 Mastraに競⾺予想させて⼀攫千⾦狙ってみた
None