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
160
AWS CDK を支える Constructs について
acomagu
January 10, 2021
Tweet
Share
More Decks by acomagu
See All by acomagu
Stripe SSoT をするべきか否か
acomagu
0
44
JP_Stripes: リコンサイル(突合処理)のテスト
acomagu
0
73
「境界付けられたコンテキスト間の関係」についてもっと語ろう
acomagu
0
71
地方 MaaS 事例: アプリの進化に伴って変化してきた Stripe 利用方法
acomagu
0
250
Stripe リコンサイルの勘所
acomagu
0
430
CDK 一発で全てのエラーログを Slack に流す
acomagu
0
2.1k
DDDとは結局何なのか
acomagu
0
290
API Gateway HTTP API について
acomagu
0
130
JP_Stripes: 一貫性に寄与する設計
acomagu
0
92
Other Decks in Programming
See All in Programming
The Nature of Complexity in John Ousterhout’s Philosophy of Software Design
philipschwarz
PRO
0
160
fieldalignmentから見るGoの構造体
kuro_kurorrr
0
130
Bedrock × Confluenceで簡単(?)社内RAG
iharuoru
1
120
Instrumentsを使用した アプリのパフォーマンス向上方法
hinakko
0
240
インプロセスQAにおいて大事にしていること / In-process QA Meetup
medley
0
140
Embracing Ruby magic
vinistock
2
140
GitHub Copilot for Azureを使い倒したい
ymd65536
1
330
AIコーディングエージェントを 「使いこなす」ための実践知と現在地 in ログラス / How to Use AI Coding Agent in Loglass
rkaga
4
1.2k
ComposeでのPicture in Picture
takathemax
0
130
設計の本質:コード、システム、そして組織へ / The Essence of Design: To Code, Systems, and Organizations
nrslib
10
3.7k
読書シェア会 vol.4 『ダイナミックリチーミング 第2版』
kotaro666
0
110
オープンソースコントリビュート入門
_katsuma
0
120
Featured
See All Featured
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.3k
Designing for Performance
lara
608
69k
Reflections from 52 weeks, 52 projects
jeffersonlam
349
20k
Adopting Sorbet at Scale
ufuk
76
9.3k
How to Think Like a Performance Engineer
csswizardry
23
1.6k
How to Ace a Technical Interview
jacobian
276
23k
BBQ
matthewcrist
88
9.6k
The Cost Of JavaScript in 2023
addyosmani
49
7.8k
Build The Right Thing And Hit Your Dates
maggiecrowley
35
2.7k
Building Adaptive Systems
keathley
41
2.5k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
105
19k
Documentation Writing (for coders)
carmenintech
71
4.8k
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 を記述するための技術(ライブラリ群)である