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
400
Mastraに入門してみた ~AWS CDKを添えて~
つくぼし
April 22, 2025
Tweet
Share
More Decks by つくぼし
See All by つくぼし
Amazon Bedrock GenUハンズオン座学資料 #2 GenU環境でRAGを体験してみよう
tsukuboshi
0
200
Amazon Bedrock GenUハンズオン座学資料 #1 GenU環境で生成AIを体験してみよう
tsukuboshi
0
510
AWSエンジニアに捧ぐLangChainの歩き方
tsukuboshi
3
1.1k
世界の中心でApp Runnerを叫ぶ ~Aurora DSQLを添えて~
tsukuboshi
0
310
初めてのGPTs ~ネコ派を〇〇派に変える技術~
tsukuboshi
0
580
Amplify Gen 2ではじめる 生成AIアプリ開発入門
tsukuboshi
1
1.1k
AWSで構築するパターン別RAG構成解説
tsukuboshi
5
5.8k
AWS構成図から CloudFormationとパラメータシートを 自動生成するシステムを作ってみた
tsukuboshi
0
9.5k
5分で分かる(かもしれない) Vector engine for OpenSearch Serverless
tsukuboshi
1
1.4k
Other Decks in Technology
See All in Technology
試作とデモンストレーション / Prototyping and Demonstrations
ks91
PRO
0
130
ユーザーコミュニティが海外スタートアップのDevRelを補完する瞬間
nagauta
0
190
経済メディア編集部の実務に小さく刺さるAI / small-ai-with-editorial
nkzn
2
410
Part2 GitHub Copilotってなんだろう
tomokusaba
2
810
20 Years of Domain-Driven Design: What I’ve Learned About DDD
ewolff
1
360
MagicPod MCPサーバー開発の裏側とAIエージェント活用の展望
magicpod
0
230
Ninno LT
kawaguti
PRO
1
120
Google Cloud Next 2025 Recap アプリケーション開発を加速する機能アップデート / Application development-related features of Google Cloud
ryokotmng
0
230
LangfuseではじめるAIアプリのLLMトレーシング
codenote
0
170
転職したらMCPサーバーだった件
nwiizo
5
3.4k
製造業向けIoTソリューション提案資料.pdf
haruki_uiru
0
270
事業と組織から目を逸らずに技術でリードする
ogugu9
8
1.5k
Featured
See All Featured
GraphQLとの向き合い方2022年版
quramy
46
14k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
30
2k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
233
17k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
53k
Unsuck your backbone
ammeep
671
58k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
3.8k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
331
21k
Automating Front-end Workflow
addyosmani
1370
200k
The Invisible Side of Design
smashingmag
299
50k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
656
60k
Code Reviewing Like a Champion
maltzj
523
40k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
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エージェントフレームワーク ⚫ OpenAI、Anthropic、Gemini等の様々なAIプロバイダーとシームレスに連携可能 ⚫ エージェント、メモリ、ワークフロー、RAG、可観測性、評価、⾳声といったLLMアプ リに必要な機能がオールインワンで揃う
LangGraphの⼈気を約半年で抜かしたMastra 5
Mastraのアクセス画⾯ 6 ⚫ ビルド時にHonoベースのHTTPサーバが⽣成され、Mastra単独でも以下の画⾯ですぐ試せる ⚫ Next.jsと直接統合できるので、フロントエンドをカスタマイズする事も容易
Mastraの実態はVercel AI SDKのスーパーセット 7 参照:https://mastra.ai/ja/docs/frameworks/ai-sdk
⚫ LangChainとMastraという単語が有名なので直接⽐較されるのを⾒かけるが、そもそもフ レームワークのレイヤーが異なるため、この2つを⽐較してもあまり意味がない事が多い ⚫ もし⼤雑把で良いから⽐較したい場合、LangChain vs Vercel AI SDK、LangGraph vs
Mastraの構造の⽅がまだ良いのでは?と考えている LangChainとMastraは同軸で⽐較するものではない 8 ファミリー系列 LLM処理汎用化フレームワーク AIエージェントフレームワーク LangChain系 LangChain LangGraph Vercel AI SDK系 Vercel AI SDK Mastra
Mastraエージェントの定義 9 ⚫ name(エージェント名)、instructions(システムプロンプト)、model(AIモデル)を定義 ⚫ toolsにはエージェントで呼び出したいツール群を定義する ⚫ MCPサーバをツールで呼び出す場合はawait mcp.getTools()を指定
MastraにおけるMCPサーバの定義 10 ⚫ @mastra/mcpモジュールのMCPConfigurationで定義可能 ⚫ servers内に使⽤したいMCPサーバの設定を記載する
Mastraエージェントの便利機能 11 ⚫ エージェントはステップ単位でタスクを実⾏する ⚫ maxStepsを使うと、LLM連続呼び出しの最⼤数を増減し、ステップ回数を制御できる ⚫ onStepFinishを使うと、各ステップ終了時の結果を出⼒し、タスクの進捗状況を表⽰で きる
Mastraのライセンス(ELv2)をどの程度気にする必要があるか? 12 ⚫ Elastic Licenseは、OSS公開されていたElasticSearchがクラウドプロバイダー社のマ ネージドサービスとして有料提供された事に対して、提供元のElastic社が反発した事が きっかけで⽣まれたライセンス ⚫ MastraにはELv2(Elastic License
v2)が付くので、使⽤の許可基準は以下のようになる ◯ Mastraを元に作ったAIエージェントアプリケーションを顧客に提供する→⭕ ◯ クラウドにおけるマネージドサービスとして、MastraのAPI各種とUIにそのままアク セスできる形で顧客に提供する→❌ ⚫ 結論:MastraでSaaSアプリを開発/提供するレベルであればほぼ気にしなくて良い認識
13 MastraをAWSにデプロイしたい どうせならTypeScriptで組みたい...
14 IaCにはAWS CDKを使おう!
AWS CDKとは 15 ⚫ AWSリソースをプログラミング⾔語で記載できるTypeScript製のフレームワーク ⚫ 裏側ではCDKコードがCloudFormationテンプレートに変換されデプロイされる仕組み ⚫ CDKのライブラリはコンストラクトレベルという単位で分けられている ◯
L1はAWSリソースがCloudFormationとほぼ同⼀の項⽬で、細かいパラメータを制御 できる ◯ L2はAWSリソースのベストプラクティスがデフォルト値として事前に設定されてお り、より少ないパラメータでリソースを構築できる ◯ L3は複数のAWSリソースがパターン化され、特定のユースケースにおけるアーキテク チャ全体を⼀括で展開できる
コンテナイメージのビルド/ECRへのプッシュ⾃動化 16 ⚫ cdk-docker-image-deploymentのDockerImageDeploymentを使⽤する事で、コンテナ イメージのビルドとECRへのプッシュをCDKデプロイ時に丸っと⾃動化可能 ⚫ ContainerImage.fromAssetが同⼀のECRリポジトリしか使えないのに対して、 cdk-docker-image-deploymentはイメージ毎にECRリポジトリを指定する事が可能
ALB + ECS Fargateの構成パターンを1つのモジュールで構築 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