Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Amplify Gen2から知るAWS CDK Toolkit Libraryの使い方/How...
Search
MURAKAMI Masahiko
July 12, 2025
Technology
990
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Amplify Gen2から知るAWS CDK Toolkit Libraryの使い方/How to use the AWS CDK Toolkit Library as known from Amplify Gen2
MURAKAMI Masahiko
July 12, 2025
More Decks by MURAKAMI Masahiko
See All by MURAKAMI Masahiko
AmplifyHostingConstructからSSRフレームワークのためのホスティング設計を考察する/amplify-hosting-construct
fossamagna
1
570
AWS Blocks を触ってみた/first-tach-aws-blocks
fossamagna
2
240
AWS Amplifyをもっと便利に使うための取り組み/amplify-tools-and-contributions
fossamagna
1
190
Amazon Verified Permissions実践入門 〜Cedar活用とAppSync導入事例/Practical Introduction to Amazon Verified Permissions
fossamagna
2
470
AWS Amplify Gen2向けのVSCode拡張を作って公開してみた話/lts-techday-2024
fossamagna
0
77
CDKアプリとしてのAmplify Gen2 - @aws-amplify/backendのアーキテクチャにみるCDKベストプラクティス -
fossamagna
3
3.8k
Amplify Gen2の 新機能と実践的な使用例 AWS Amplify Gen 2 Festival in Japan/New features and practical use cases in Amplify Gen2
fossamagna
0
890
Amplify Gen2を 拡張してみよう JAWS-UG北陸新幹線 ( 福井開催 ) 2024-04-06/Let's extend Amplify Gen2
fossamagna
0
1.1k
みんな本当に AWS Amplify を知っている?/do-you-really-know-aws-amplify
fossamagna
0
210
Other Decks in Technology
See All in Technology
AI感のないAWS構成図をAIエージェントに描かせたい!
sagochiko
2
480
2026-09-26 Platform Engineering Kaigi 2026 インフラとアプリの境界線と委譲の設計 / Drawing the Infra and App Line
masasuzu
0
490
10年欲しかった音楽管理アプリを、AIと一緒に作りはじめた
judau
1
190
Account Factory for Terraformによる 標準化されたアカウント発行の自動化
pensuke628
0
120
[Kiro Meetup #7] Kiro Crew Dive Deep
konippi
0
420
覗いてみよう 関数型ビジュアル言語×2Dグラフィックスの世界
yohyamasaki
0
150
行動するAIのためのオントロジー | DevRev — Encraft #26.pdf
dvrv_tknrszk
1
600
ログラスのマルチプロダクトを 支える認証基盤 〜テナントごとに異なる統制とどう向き合うか〜
dada4386
3
230
全社共通データ基盤をつくる。ソニーのDatabricks活用とデータガバナンス設計の裏側
sony
0
240
LT:「このままでいいのかな?」から一歩踏み出した私のデータキャリア選択〜社会人3年目に上京を決意したリアル〜Snowflake女子会 vol.8
snowwmn0824
0
110
形式手法を使って仕様をコーディングしよう
mikanichinose
0
140
音声コミュニティを守るAI監視基盤_ 90%以上の入力削減を支えたServerless設計と運用判断
shuheioka123
0
120
Featured
See All Featured
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
63
46k
How to train your dragon (web standard)
notwaldorf
97
6.8k
Typedesign – Prime Four
hannesfritz
42
3.2k
Paper Plane (Part 1)
katiecoart
PRO
2
11k
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.9k
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
250
A Tale of Four Properties
chriscoyier
163
24k
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
590
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
520
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2.4k
AI Search: Implications for SEO and How to Move Forward - #ShenzhenSEOConference
aleyda
1
1.4k
Mobile First: as difficult as doing things right
swwweet
225
10k
Transcript
AWS Amplify Gen2から知るAWS CDK Toolkit Library の使い方 AWS CDK Conference
2025 presented by JAWS-UG 2025-07-12 株式会社永和システムマネジメント 村上雅彦 (a.k.a @fossamagna) 1
自己紹介 名前: 村上 雅彦 所属: 株式会社永和システムマネジメント コミュニティ活動: Amplify Japan User
Group 運営メ ンバー、AWS Community Builder (Front-End Web & Mobile since 2022) X (Twitter): @fossamagna GitHub: @fossamagna 2
このセッションで話すこと AWS CDK Toolkit Library、このライブラリを どういった時に使うのか? 使うと何ができるのか? について、実際にライブラリを利用している Amplify Gen2
( @aws-amplify/backend ) の実装を通して紹介します。 3
AWS CDK Toolkit Library とは? 公式ドキュメント: https://docs.aws.amazon.com/ja_jp/cdk/v2/guide/toolkit-library.html AWS CDK Toolkit
Libraryは、AWS CDKをプログラムで操作するためのライブラリ です。 4
何ができるのか? AWS 上でプログラムによるアクセスを必要とする CDK アクションを実行できま す。AWS CDK Toolkit Libraryを使用すると、ブートストラップ、合成、デプロイな どのアクションを、コマンドラインインターフェイス
(CLI) コマンドではなくコー ドで実装できます。 CLIで馴染みのある cdk deploy や cdk synth といったコマンド相当の処理を あなた の書いたプログラムから実行できる ようになります。 5
どういう時に使うのか? (ユースケース) このライブラリを使用すると、カスタムツールを作成したり、専用の CLI アプリ ケーションを構築したり、CDK のプログラムによるアクセス機能を開発ワークフ ローに統合したりできます。 まさに Amplify
Gen2 は、このライブラリを使って独自のCLI ( npx ampx ) を構築して いる良い例です。 6
AWS CDK Toolkit Libraryの基本的な使い方 npm: https://www.npmjs.com/package/@aws-cdk/toolkit-lib わずか5ステップで使い始めることができます。 1. @aws-cdk/toolkit-lib をインストール
2. Toolkit インスタンスを作成 3. CDKアプリ用のクラウドアセンブリソースを作成 4. CDKアプリのプログラムアクションを定義 5. (オプション) CDKツールキットをさらにカスタマイズ 7
コード例: cdk deploy を実行する // 1. `@aws-cdk/toolkit-lib`をインストール&パッケージインポート import { Toolkit
} from '@aws-cdk/toolkit-lib'; import { App, Stack } from 'aws-cdk-lib'; import * as s3 from 'aws-cdk-lib/aws-s3'; // 2. `Toolkit` インスタンスを作成 const toolkit = new Toolkit(); // 3. CDKアプリ用のクラウドアセンブリソースを作成(インラインで S3 バケットを作成) const cloudAssemblySource = await toolkit.fromAssemblyBuilder(async () => { const app = new App(); const stack = new Stack(app, 'SimpleStorageStack'); new s3.Bucket(stack, 'MyFirstBucket', { versioned: true }); return app.synth(); }); // 4. CDKアプリのプログラムアクションを定義(デプロイを実行) await toolkit.deploy(cloudAssemblySource); 8
Toolkit Libraryが提供する「アクション」 synth list diff deploy rollback watch drift destroy
bootstrap refactor 9
Amplify Gen2で使われているアクション Amplify Gen2 ( @aws-amplify/backend ) では、以下の3つのアクションが使われていま す。 deploy
: ampx deploy/sandbox でデプロイ実行 synth : ampx deploy/sandbox でデプロイ実行前にクラウドアセンブリソースを 作成 destroy : ampx sandbox でデプロイした環境を破棄 10
Amplify Gen2の実装から学ぶカスタマイズ術 AWS CDK Toolkit Libraryの真価は、そのカスタマイズ性にあります。 Amplify Gen2の実装を例に、次のポイントを見ていきましょう。 1. IIoHost
: CLIのUI/UXをカスタマイズ 2. Cloud Assembly Source : CDKアプリのソースを動的に生成 3. エラーハンドリング: 安全なエラー処理 11
1. IIoHost : CLIのUI/UXをカスタマイズ IIoHost はCDK Toolkitとアプリケーションとの間の通信を定義するインターフェース 独自の IIoHost を実装することで、CDKからの出力(プログレスバーなど)や、対話
的な問い合わせ(これらの変更をデプロイしますか?など)への応答をカスタマイズ できます。 export interface IIoHost { /** * メッセージ: 操作の進捗や状態通知 (応答不要) */ notify(msg: IoMessage<unknown>): Promise<void>; /** * リクエスト: 利用者からの応答が必要な問いかけ */ requestResponse<T>(msg: IoRequest<unknown, T>): Promise<T>; } 12
Amplify Gen2の実装: AmplifyIOHost Amplify Gen2は AmplifyIOHost という独自の IIoHost を実装しています。 requestResponse
は常にデフォルト応答を返す(非対話的) notify はイベントハンドラ( AmplifyEventLogger )を呼び出す TTYが有効な場合、リソース毎のプログレスバーを表示 リッチで分かりやすい進捗表示を実現 13
デプロイ時の表示: CLI利用 0:00 / 3:56 14
デプロイ時の表示: Toolkit Library(AmplifyIOHost)利用時 0:00 / 6:14 15
2. Cloud Assembly Source : CDKアプリのクラウドアセンブリソースを動 的に生成 ICloudAssemblySource は、CDKアプリからクラウドアセンブリを作成方法を定義す るインタフェースです。
クラウドアセンブリソース:CloudFormationのテンプレートやLambdaソースのア セットなど、synthプロセスで作成されるソース CDK Toolkitには以下のヘルパーメソッドが定義されていて、目的に応じてクラウドア ッセンブリーソースを設定できるようになっています。 fromCdkApp: ts-node app.ts のようなCDKがサポートしている任意の言語で既存 のCDKアプリを操作する場合に利用 fromAssemblyBuilder: synthプロセスをプログラムで制御する場合に利用 fromAssemblyDirectory: synth済みのクラウドアセンブリソースを使用する場合に 利用 16
Amplify Gen2の実装: tsxの利用 Amplify Gen2では fromAssemblyBuilder ヘルパーを使い、動的にCloud Assembly を生成 amplify/backend.ts
をエントリーポイントとして tsx で読み込む this.cdkToolkit.fromAssemblyBuilder( async () => { // tsx (tsImport)で.amplify/backend.ts をエントリーポイントとして読み込む await tsImport( pathToFileURL(this.backendLocator.locate()).toString(), import.meta.url, ); return new CloudAssembly(this.absoluteCloudAssemblyLocation); }, { contextStore: new MemoryContext(contextParams), outdir: this.absoluteCloudAssemblyLocation, // .amplify/artifacts/cdk.outに出力 }, ); 17
3. エラーハンドリング CDK Toolkit Libraryからスローされるエラーには、発生元( toolkit or user )を示す フラグが付与されています。
注意点: instanceof でエラーの型を判定するとバグの元になります。公式が提供 するヘルパー関数 ( isToolkitError ) を使いましょう。 import { isToolkitError } from '@aws-cdk/toolkit-lib'; try { // ... toolkit action } catch (e) { if (isToolkitError(e)) { // Handle toolkit-specific error console.error(`Toolkit error: ${e.message}`); } else { // Handle other errors } } 18
まとめ AWS CDK Toolkit Library を使うと、CDKの各種アクションをプログラムから実行 できる。 ユースケースは、カスタムCLIの構築や開発ワークフローへの統合。 Amplify Gen2
は、このライブラリを活用した好例。 IoHost や CloudAssemblySource などのカスタマイズポイントを理解すること で、より高度で柔軟なツールを開発できる。 AWS CDKを利用したツールや開発ワークフローでの利用時にはCDK Toolkit Libraryを検 討してみてください! 19
参考資料 公式ドキュメント https://docs.aws.amazon.com/ja_jp/cdk/v2/guide/toolkit-library.html npm https://www.npmjs.com/package/@aws-cdk/toolkit-lib AWS Blog Build custom CLIs,
deployment automation, and more with the AWS CDK Toolkit Library 20
ご清聴ありがとうございました。 21