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
cdk deploy JawsSonic #MARATHONしながらAWSリソースをデプロイし...
Search
アキキー | Akihisa Ikeda
September 05, 2026
Programming
46
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
cdk deploy JawsSonic #MARATHONしながらAWSリソースをデプロイしてみよう
アキキー | Akihisa Ikeda
September 05, 2026
More Decks by アキキー | Akihisa Ikeda
See All by アキキー | Akihisa Ikeda
ドリフトを絶対に許さない(?)CDK運用 / CDK Ops with Zero Tolerance for Drifts (?)
akihisaikeda
1
260
ECSアプリログをFireLensでコスト削減しようとしたけど諦めた話 in Fargate×Node.js
akihisaikeda
4
4.5k
ECR拡張スキャンでSBOMを収集して サプライチェーン攻撃の影響調査を 爆速で終わらせてみた
akihisaikeda
2
310
AWSはOSSをどのように 考えているのか?
akihisaikeda
1
190
最初からAWS CDKで技術検証してもいいんじゃない?
akihisaikeda
4
260
責任感のあるCloudWatchアラームを設計しよう
akihisaikeda
5
280
AWS CDKの推しポイントN選
akihisaikeda
1
340
地獄絵図!CDKプロジェクトを手動更新して生まれた大量のプロパティ差分を解消する方法
akihisaikeda
5
1.5k
AWS CDK初期設定のプラクティス集 with Projen
akihisaikeda
3
520
Other Decks in Programming
See All in Programming
Discordを用いたラボオートメーション関連情報収集の自動化
noguhiro2002
0
490
T3DD26: From RAGs to Riches
martinhelmich
0
130
Webエンジニアなのにブラウザの仕組みがわからないので、Pythonで自作してみた
tatsuki12
4
1.6k
{ Android | Kotlin } Gradle Plugin in 2026
ryunen344
1
250
初めての模倣学習とVLA
natsutan
0
410
30年振りにコンパイラの定数整数除算を改善した
herumi
9
4.4k
バグを直したら useEffect が消えた
colorful12
3
800
初心者DevRelとして参加者だった私が、DevRel Talks!#2に登壇するまでにしてきたこと
sokohirai
0
320
いまどきの Codex で開発する visionOS アプリの開発スタイルについて
karad
0
180
信頼性の目標を誰も求めてない
shubox
0
470
My Marp Sample
sinoue0108
0
140
Flow は今どうなっているか
mizdra
PRO
0
840
Featured
See All Featured
Unsuck your backbone
ammeep
672
58k
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
430
Mind Mapping
helmedeiros
PRO
1
340
Large-scale JavaScript Application Architecture
addyosmani
515
110k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
1k
Building Adaptive Systems
keathley
44
3.2k
Typedesign – Prime Four
hannesfritz
42
3.2k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
69
65k
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.8k
世界の人気アプリ100個を分析して見えたペイウォール設計の心得
akihiro_kokubo
PRO
74
42k
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
970
Transcript
cdk deploy JawsSonic # MARATHONしながらAWSリソースをデプロイしてみよう 2026/9/5 sat. JAWS-UG CDK支部 /
アキキー(@akikii__)
JAWS-UG CDK支部 AWS CDKに関する知見やプラクティスを共有する専門支部 運営メンバー @tmk2154 @yamatatsu193 @HorseVictory @tniizawa @yktAWS
@hayatin @WinterYukky @rrrraaaaa6 @hedgehog051 @makies @akikii__ @kawaaaas https://jawsug-cdk.connpass.com
アキキー | 池田 晃尚 推しサービス AWS CDK 最近の趣味 ランニング 🏃
半年くらい前から ランニングを始めました 最初は 3〜4km くらい走るのがやっとでしたが… いまは 10km くらい走っています!
Q. なぜ走る距離が伸びたの? 気合い?根性?執念? A. 走りながらコーディングエージェントを動 かしているので暇じゃなくなったから 走りながら音声入力で指示しています! CDKでAWSリソースもデプロイできちゃいます!!!
音声でやりとりする仕組み Discord 話す ボイスチャンネル 聞く AWS Cloud ⾳声 読み上げ ⾳声
bot 受信 送信 ECS タスク AWS Fargate Discord Gateway Discord 接続・⾳声の⼊出⼒と制御 ⾳声→⽂字 ⽂章→⾳声 Speech to Text 投稿 検知 ⽂字起こしの オーケストレーション Text to Speech VOICEVOX で 読み上げ⾳声を合成 ⽂字起こし Claude Code channels プラグイン 通知 返信 Claude Code bot 読む 投稿 テキストチャンネル Transcribe Stream
音声でやりとりする制約 ランニング中はソースコードを読めないので 限りなく要約してもらったものをレビューしている 実装に不具合があった場合 何回もデプロイし直すことになり時間がかかってしまう
CDK × コーディングエージェント
CDK × コーディングエージェント AWS CDK とは? プログラミング言語を利用してAWSリソースを構築するIaCサービス プログラミング言語で AWSリソースを定義 →
AWSリソースの状態を見て 差分をデプロイ → AWSリソース
CDK × コーディングエージェント CDKはプログラミング言語で書けるので コーディングエージェントの得意分野! しかし コードの正しさを自身で判断できない なので 正しさを検証する仕組みを整えてあげる必要がある
CDK × コーディングエージェント CDKの検証サイクル CDKで利用できる検証ツール/コマンド 実装・修正する Linter 型チェッカー 単体テスト cdk
synth コーディングエージェント AWS CDK cdk diff cdk validate 検証してフィードバックを返す cdk drift cdk diagnose
CDK × コーディングエージェント CDKの検証サイクル CDKで利用できる検証ツール/コマンド 実装・修正する Linter 型チェッカー 単体テスト 検証サイクルを繰り返して正しい実装に近づけている
cdk synth コーディングエージェント AWS CDK cdk diff cdk validate 検証してフィードバックを返す cdk drift cdk diagnose
CDK × コーディングエージェント CDKの最近の動向 CDKの実装が正しいか検証できるコマンドが続々追加されている 2026/04 プレビュー 2026/06 プレビュー 2026/07
プレビュー cdk diagnose cdk validate cdk lsp デプロイに失敗した原因を調査 するコマンド デプロイログやCloudTrail、作 成したリソースのログなどを見 て判断する デプロイに失敗しないか検証す るコマンド オフラインバリデーション →ルールセットに照らして検証 オンラインバリデーション →AWSアカウントの実際の状 態に合わせて、デプロイ可能か 検証する コードを書いている最中に、 CDK特有のエラーや警告を教え てくれるLanguage Serverを 立てるコマンド 保存時にSynthesizeを実行し て、エラー箇所をソースコード とマッピングして返す
エージェントの動きをトレースしてみよう
CDKアプリの開発フロー エージェントの動きをトレースしてみよう ▲ 実行サイクルが速い / 変更の回数が多い ファイル編集 実装のためにファイルを編集する git commit
編集したファイルをまとめてコミットする git push コミットをまとめてリモートブランチにプッシュする 作成 PR cdk deploy プルリクエストを作成するとCIで検証が走る PRをマージするとCDから実環境にデプロイされる ▼ 実行サイクルが遅い / 変更の回数が少ない
CDKアプリの開発フロー エージェントの動きをトレースしてみよう ▲ 実行サイクルが速い / 変更の回数が多い ファイル編集 実装のためにファイルを編集する git commit
編集したファイルをまとめてコミットする 早いタイミングでエラーを潰すことで、検証サイクルを早められる! git push 作成 PR cdk deploy コミットをまとめてリモートブランチにプッシュする プルリクエストを作成するとCIで検証が走る PRをマージするとCDから実環境にデプロイされる ▼ 実行サイクルが遅い / 変更の回数が少ない
CDKで検証する仕組み エージェントの動きをトレースしてみよう ファイル編集 Linter / 型チェッカー git commit 単体テスト /
cdk synth git push cdk diff 作成 PR cdk deploy CI (cdk validate / cdk drift / Linter / 単体テスト / 型チェッカー) CD (cdk deploy) / cdk diagnose これらのタイミングで検証が走るように設定しています
エージェントの動きをトレースしてみよう それでは エージェントに機能追加を依頼します 音声での会話ログをS3に保存するようにして わかった!実装は任せて! 実際にどう検証されるのか見てみましょう!
エージェントの動きをトレースしてみよう ファイルを編集するよ〜 ファイル編集 git commit git push 作成 PR cdk
deploy ファイル編集後に検証する仕組み Linter ソースコードを静的解析して、プログラミング言語や CDKのルール違反を検証 型チェッカー ソースコードで定義している型に矛盾がないかを検証
エージェントの動きをトレースしてみよう Lintエラーが出ちゃった ファイル編集 Lint結果 $ pnpm lint git commit git
push 作成 PR cdk deploy awscdk-lint Lint plugins for AWS CDK × awscdk/pascal-case-construct-id Construct ID PascalCase は で指定してください Found 0 warnings and 1 error. awscdk-lint (eslint-plugin-awscdk/oxlint-plugin-awscdk) CDKのセオリーに基づくコーディング規約を提供する Lintプラグイン
エージェントの動きをトレースしてみよう 修正したよ ファイル編集 ソースコード git commit // Construct ID PascalCase
const bucket = new s3.Bucket(this, 'LogBucket', { removalPolicy: cdk.RemovalPolicy.RETAIN, }); git push 作成 PR cdk deploy ✅ を に修正
エージェントの動きをトレースしてみよう Lintエラーなくなった! ファイル編集 Lint結果 $ pnpm lint git commit git
push 作成 PR cdk deploy Found 0 warnings and 0 errors.
エージェントの動きをトレースしてみよう 一区切りついたしcommitするね ファイル編集 git commit git push commit前に検証する仕組み Synthesize(cdk synth)
作成 PR cdk deploy AWS CDK における単体テストの使い所を学ぶ CDKアプリを実行してCDKソースをCFnテンプレートに 合成し、デプロイできる状態にする CDKの単体テスト スナップショットテスト Fine-grained assertionsテスト バリデーションテスト
エージェントの動きをトレースしてみよう 一通り実装できたしpushするよ ファイル編集 git commit git push 作成 PR cdk
deploy push前に検証する仕組み cdk diff デプロイ済みのCFnテンプレートと合成した CFnテンプレートを見比べて差分を検証 AWSへアクセスして確認する
エージェントの動きをトレースしてみよう プルリクエスト作ったよ ファイル編集 git commit git push 作成 PR cdk
deploy プルリクエスト作成後の検証(CI) cdk validate オフライン:ルールセットに照らして検証 オンライン:AWSの状態を見てデプロイ可能か検証 cdk drift デプロイ済みのリソースに手で変更された形跡がない かを検証 Lint / 型チェック / 単体テスト
エージェントの動きをトレースしてみよう cdk validate ファイル編集 が失敗してる cdk validate結果 $ cdk validate
BotStack --unstable=validate git commit git push 作成 PR cdk deploy FATAL Resource of type 'AWS::S3::Bucket' with identifier 'akikii-conversation-log' already exists. # AWS S3 に同名の バケットが既に存在していた
エージェントの動きをトレースしてみよう 修正したよ ファイル編集 ソースコード git commit const bucket = new
s3.Bucket(this, 'LogBucket', { // bucketName CDK removalPolicy: cdk.RemovalPolicy.RETAIN, }); git push 作成 PR cdk deploy ✅ は指定せず、 に一意な名前を付けさせる
エージェントの動きをトレースしてみよう cdk validate ファイル編集 通った!CIも成功したよ cdk validate結果 $ cdk validate
BotStack --unstable=validate git commit git push 作成 PR cdk deploy ✨ Validation passed (1 stack)
エージェントの動きをトレースしてみよう 実装完了したよ!ニンゲン、これでいい? ファイル編集 git commit git push 作成 PR cdk
deploy 会話ログ用のS3バケット追加 会話を書込むようアプリ修正 おk、マージするね マージすると走るデプロイ $ cdk deploy --no-rollback # --no-rollaback # をつけるとデプロイ失敗してもリソースを切り戻さない 開発環境のような失敗しても問題ない環境で検証する
エージェントの動きをトレースしてみよう デプロイが失敗しちゃった... ファイル編集 デプロイログ git commit BotStack | UPDATE_FAILED |
AWS::ECS::Service Resource handler returned message: 'ECS Deployment Circuit Breaker was triggered' # git push 作成 PR cdk deploy タスクが起動できずデプロイ失敗 デプロイログからはタスク起動に失敗した理由がわ からない
エージェントの動きをトレースしてみよう cdk diagnose で原因を調べるね ファイル編集 cdk diagnose結果 git commit $
cdk diagnose BotStack --unstable=diagnose Source Location: new ConversationLog (lib/conversation-log.ts:31:5) git push 作成 PR cdk deploy Task stopped: Essential container in task exited Container "discord-bot" exited with code 1 # S3 Object upload failed: An error occurred (AccessDenied) when calling the PutObject operation: ... is not authorized to perform: s3:PutObject on resource: "arn:aws:s3:::botstack-.../run.log" 作成した バケットへ を書き込む権限がなかった ロールバックされずに残ったECSログから原因判明
エージェントの動きをトレースしてみよう 修正したよ ファイル編集 git commit git push 作成 PR cdk
deploy ソースコード const bucket = new s3.Bucket(this, 'LogBucket', { removalPolicy: cdk.RemovalPolicy.RETAIN, }); // Grants bucket.grants.write(props.taskRole); ✅ クラスで書き込み権限を付与
エージェントの動きをトレースしてみよう 再デプロイしたら成功した! ファイル編集 デプロイログ BotStack | UPDATE_COMPLETE | AWS::CloudFormation::Stack git
commit git push 作成 PR cdk deploy ✅ BotStack Deployment time: 274.4s
CDKで検証する仕組み エージェントの動きをトレースしてみよう ファイル編集 Linter / 型チェッカー git commit 単体テスト /
cdk synth git push cdk diff 作成 PR cdk deploy CI (cdk validate / cdk drift / Linter / 単体テスト / 型チェッカー) CD (cdk deploy) / cdk diagnose 検証サイクルを回すことでエージェントが自律的に修正できた!
まとめ
まとめ CDKには実装したコードを検証する仕組みが揃っている その仕組みを使うことで エージェントが自律的に検証して直せる これでみなさんも走りながらAWSにデプロイでき ますね!!!
宣伝
宣伝 久しぶりのテーマフリーLT会やります! jawsug-cdk.connpass.com/event/402841 2026/9/8 (火) 19:30 〜 21:00 オンライン
Thank You! \ ご清聴ありがとうございました! /