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
AWS CDK を支える Constructs について
Search
acomagu
January 10, 2021
Programming
0
150
AWS CDK を支える Constructs について
acomagu
January 10, 2021
Tweet
Share
More Decks by acomagu
See All by acomagu
Stripe SSoT をするべきか否か
acomagu
0
31
JP_Stripes: リコンサイル(突合処理)のテスト
acomagu
0
56
「境界付けられたコンテキスト間の関係」についてもっと語ろう
acomagu
0
54
地方 MaaS 事例: アプリの進化に伴って変化してきた Stripe 利用方法
acomagu
0
200
Stripe リコンサイルの勘所
acomagu
0
370
CDK 一発で全てのエラーログを Slack に流す
acomagu
0
2k
DDDとは結局何なのか
acomagu
0
260
API Gateway HTTP API について
acomagu
0
120
JP_Stripes: 一貫性に寄与する設計
acomagu
0
86
Other Decks in Programming
See All in Programming
php-conference-japan-2024
tasuku43
0
430
Package Traits
ikesyo
1
210
ChatGPT とつくる PHP で OS 実装
memory1994
PRO
3
190
ecspresso, ecschedule, lambroll を PipeCDプラグインとして動かしてみた (プロトタイプ) / Running ecspresso, ecschedule, and lambroll as PipeCD Plugins (prototype)
tkikuc
2
1.9k
ISUCON14感想戦で85万点まで頑張ってみた
ponyo877
1
590
いりゃあせ、PHPカンファレンス名古屋2025 / Welcome to PHP Conference Nagoya 2025
ttskch
1
180
非ブラウザランタイムとWeb標準 / Non-Browser Runtimes and Web Standards
petamoriken
0
430
DMMオンラインサロンアプリのSwift化
hayatan
0
190
AWS re:Invent 2024個人的まとめ
satoshi256kbyte
0
100
PHPカンファレンス 2024|共創を加速するための若手の技術挑戦
weddingpark
0
140
Асинхронность неизбежна: как мы проектировали сервис уведомлений
lamodatech
0
1.3k
技術的負債と向き合うカイゼン活動を1年続けて分かった "持続可能" なプロダクト開発
yuichiro_serita
0
300
Featured
See All Featured
Stop Working from a Prison Cell
hatefulcrawdad
267
20k
Into the Great Unknown - MozCon
thekraken
34
1.6k
It's Worth the Effort
3n
183
28k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
44
7k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
356
29k
Build your cross-platform service in a week with App Engine
jlugia
229
18k
Documentation Writing (for coders)
carmenintech
67
4.5k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
160
15k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
28
2.2k
Six Lessons from altMBA
skipperchong
27
3.6k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
GraphQLの誤解/rethinking-graphql
sonatard
68
10k
Transcript
AWS CDK を支える Constructs について @acomagu
AWS CDK とは Constructs Programming Model で CloudFormation Template を記述するための
ライブラリである
Costructs Programming Model とは? Construct と呼ばれるオブジェクトのツリー構造で任意の設定ファイルを生成する方法 github.com/aws/constructs に Constructs Programming
Model を実践するための支 援ライブラリがある。
Costructs Programming Model とは? Source Code
Costructs Programming Model とは? Source Code
Costructs Programming Model とは? Source Code
Costructs Programming Model とは? Source Code
Costructs Programming Model とは?
Question こうするには?
Answer
何が言いたいか: Construct のツリー構造がそのまま結果の構造になるわけではない (iff. 結果の構造がそのまま Construct のツリー構造に反映されるわけではない)
じゃあ ここって何に使うの...? →
じゃあ ここって何に使うの...? → 答え: 抽象化
抽象化する Source Code
抽象化する Source Code
抽象化する Source Code
抽象化する
何が嬉しいの?
何が嬉しいの?
何が嬉しいの?
何が嬉しいの? ライブラリ
何が嬉しいの?
実際の AWS CDK でどうなっているか
何が省略されているか - よく練られたデフォルト値 - lambda.Function も実際には CloudFormation の Function Resource
だけでな く、Deployment、CloudWatch(Log)、ServiceRole などを含んでいる - インターフェースやメソッドを駆使して設定を表現できる
その他やっていること - LambdaFunctionFactory という、Lambda.Function を作るための便利関数を作っ てたりする - ログの設定やデプロイ周りのコードがまとまっていたりする - ApiGatewayV2
というリソースがまだ完全に L2 Construct ライブラリ化されていな いので、社内で自作のものを共有している - 実質 CloudFormation のテンプレートをそのまま書くのと変わらないので、 CloudFormation に慣れ ていれば簡単 - 「特定の文字列が含まれるログを Slack に通知する」という機能を実現する Construct を OSS で公開している(TheDesignium/cdk-log-notifier)
まとめ - Constructs Programming Model とは Construct と呼ばれるオブジェクトのツリー 構造で設定ファイルを記述するパターンである -
AWS CDK とは Constructs Programming Model で CloudFormation Template を記述するための技術(ライブラリ群)である