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でまるっと インフラ環境をIaCしたぞ!
Search
kubotak
September 24, 2022
Programming
0
440
AWS CDKでまるっと インフラ環境をIaCしたぞ!
PHPConference2022 ゴールドスポンサーLT 2022/09/24
kubotak
September 24, 2022
Tweet
Share
More Decks by kubotak
See All by kubotak
情報漏洩させないための設計
kubotak
5
1.8k
Svelteコンポーネントの依存関係に秩序を〜
kubotak
0
110
DMARCレポート可視化ツールを SvelteKitで作った話
kubotak
2
510
Superforms本番投入で分かった良さとハマりどころ
kubotak
0
810
Storybookを書くだけでリグレッションテストが 実行される世界へようこそ
kubotak
31
11k
(うまくいった||いかなかった) 技術選定は何を考えていたか
kubotak
1
1.2k
ウォーターフォールに思えたプロジェクトにあったアジャイルの要素
kubotak
2
750
Felteで作る簡単フォームバリデーション
kubotak
1
1.6k
SvelteKitを本番投入してみて
kubotak
2
2k
Other Decks in Programming
See All in Programming
安全に倒し切るリリースをするために:15年来レガシーシステムのフルリプレイス挑戦記
sakuraikotone
5
2.3k
アプリを起動せずにアプリを開発して品質と生産性を上げる
ishkawa
0
280
AI時代のプログラミング教育 / programming education in ai era
kishida
23
20k
生成AIの使いどころ
kanayannet
0
100
PHPUnit 高速化テクニック / PHPUnit Speedup Techniques
pinkumohikan
1
1.2k
ニックトレイン登壇資料
ryotakurokawa
0
140
令和トラベルにおけるコンテンツ生成AIアプリケーション開発の実践
ippo012
1
260
SLI/SLOの設定を進めるその前に アラート品質の改善に取り組んだ話
tanden
2
730
아직도 SOLID 를 '글'로만 알고 계신가요?
sh1mj1
0
360
バックエンドNode.js × フロントエンドDeno で開発して得られた知見
ayame113
5
1.3k
Coding Experience Cpp vs Csharp - meetup app osaka@9
harukasao
0
110
爆速スッキリ! Rspack 移行の成果と道のり - Muddy Web #11
dora1998
1
150
Featured
See All Featured
Being A Developer After 40
akosma
90
590k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
356
30k
The Power of CSS Pseudo Elements
geoffreycrofte
75
5.7k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
12k
How GitHub (no longer) Works
holman
314
140k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
3.8k
Optimising Largest Contentful Paint
csswizardry
35
3.2k
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
A better future with KSS
kneath
238
17k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
30
1.1k
Gamification - CAS2011
davidbonilla
81
5.2k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
Transcript
Copyright© M&AΫϥυ AWS CDKͰ·Δͬͱ ΠϯϑϥڥΛIaCͨͧ͠ʂ PHP Conference Japan 2022 /
Kenjiro Kubota
Copyright© M&AΫϥυ ͓ͳ͡ΈɺM&AΫϥυͰ͢ PHPConferenceͱ͍͑M&AΫϥυ ※ࣾઆɺॾઆ͋Γ·͢ • PHPConference 2020(4໊) • PHPConference
2021(5໊) • PHPConference 2022(4໊) M&AΫϥυࡏ੶ΤϯδχΞͷPHPConferenceొஃྺ
Copyright© M&AΫϥυ ٻਓࠂαΠτͷΑ͏ͳM&AμΠϨΫτϚονϯά 3 ങ͍ख ɾҊ݅ใुM&AޭใुͷΈ ɾ࠷खྉͳ͠ ɾചΓखιʔγϯάͷνϟωϧ͕૿͑Δ ɾM&AχʔζΛൃ৴͢Δ͚ͩͰചΓखΛू٬ ɾհۀऀΛհͣ͞ʹμΠϨΫτʹΓऔΓՄೳ
ɾજࡏʹϦʔν͕Մೳ खྉແ ྉ ※ϓϥοτϑΥʔϜҊ݅ͷ߹ ※ ചΓख 1.ܝࡌ͢Δ ɾങ͍खͷM&AχʔζΛࣗΒௐΔ͜ͱ͕Մೳ ɾհۀऀΛհͣ͞ʹμΠϨΫτʹΓऔΓՄೳ ɾങ͍खͷM&A୲ऀʹίϯλΫτΛͱΕΔ ɾհۀऀΛΘͳ͍ͷͰखྉ͕ແྉ 2.ΦϑΝʔ͢Δ M&Aɾग़ࢿχʔζΛܝࡌ ങ͍खͷϝϦοτ ചΓखͷϝϦοτ ɾհۀऀΛΘͳ͍ͷͰखྉ͕ແྉ ʓʓྖҬͷձࣾΛ ืू͠·͢ ͜ͷձࣾͱҰॹʹ ͍͖͍ͬͯͨʂ 3 PR
Copyright© M&AΫϥυ ࢿۚௐୡϓϥοτϑΥʔϜ 2022ౙఏڙ։࢝ PR ࡢࠓͷࢿۚௐୡχʔζٸ૿ʹ͋ΘͤɺैདྷM&AΫϥυͰఏڙ͍ͯͨ͠ ʮࢿۚௐୡͷػೳʯΛΓग़͠ɺࢿۚௐୡʹಛԽͨ͠৽αʔϏεΛߏஙதͰ͢ɻ ͜ΕʹΑΓɺຊதͷελʔτΞοϓاۀͷࢿۚௐୡΛεϜʔζʹ͠ɺΑΓεϐʔυ ײΛ࣋ͬͨࣄۀʹߩݙͯ͠·͍Γ·͢ɻ
Copyright© M&AΫϥυ AWS CDKͱ
Copyright© M&AΫϥυ AWS CDKͱ AWS Cloud Development Kit (AWS CDK)
AWS CloudFormationΛ࣮ߦ͢ΔίʔυΛએݴతͳςϯϓϨʔτͱͯ͠ఆٛ͢Δ͜ͱͰϓϩϏ δϣχϯάΛ࣮ݱͰ͖ΔϑϨʔϜϫʔΫ CloudFormationʹΑΓIaC͕࣮ߦ͞ΕΔͷͰࣗಈϩʔϧόοΫυϦϑτݕग़ʢखಈมߋͯ͠͠ ·ͬͨ߹ʹఆٛͱ࣮ମ͕ဃ͢Δ͜ͱΛݕग़ʣ͕Ͱ͖Δɻ ҎԼͷݴޠ͕αϙʔτ͞Ε͍ͯΔ PHPͳ͍
Copyright© M&AΫϥυ AWS CDKͱ AWS CDK Constructs CDKAPPɺStackɺConstructͷ֤ཁૉʹΑͬͯߏ͞Ε͍ͯΔɻ • APP
◦ Stackͷґଘؔͷఆٛ • Stack ◦ CloudformationͷStack୯Ґ ◦ σϓϩΠͷ࠷খ୯Ґ • Construct ◦ AWSͷϦιʔε
Copyright© M&AΫϥυ AWS CDKͱ Construct Library CDKConstruct LibraryΛ༻ͯ͠AWSϦιʔεΛఆٛ͠·͢ɻ Construct LibraryʹҎԼͷ3छྨʹ͚ΒΕ·͢ɻ
• low-level constructsʢL1ʣ ◦ ײతʹϦιʔεΛఆٛ͢Δ͜ͱ͕Ͱ͖ɺσϑΥϧτ͕ઃఆࡁΈͷศརͳϝιου ͕ఏڙ͞ΕΔ • higher-level, intent-based APIʢL2ʣ ◦ ϓϩύςΟΛ໌ࣔతʹઃఆ͢Δඞཁ͕͋ΔͨΊɺύϥϝʔλΛৄࡉʹઃఆͰ͖Δ ◦ Ϋϥε໊ʹCfnϓϨϑΟοΫε͕͍͍ͭͯΔ • patternsʢL3ʣ ◦ ҰൠతͳΞʔΩςΫνϟύλʔϯʹै͏ߴϨϕϧͷConstructΛఏڙ
Copyright© M&AΫϥυ AWS CDKͱ AWS SDKʹ͍ͭͯৄ͘͠Γ͍ͨํ ͪ͜ΒͷηογϣϯΛνΣοΫʂ ʢ͢ͰʹऴΘ͍ͬͯΔηογϣϯͳͷͰεϥΠυ͔ಈըΛࢀর͍ͩ͘͞ʣ
Copyright© M&AΫϥυ M&AΫϥυͷࣄྫ M&AΫϥυͷΠϯϑϥ Amazon Web Service(AWS)্Ͱߏங͍ͯ͠·͢ɻ ओʹҎԼͷαʔϏεΛར༻ • ECS(Fargate)
• ECR • Lambda • Cloudfront • Open Search Service • ALB • CloudWatch • Athena • S3 • RDS • ElastiCache • SQS • etc
Copyright© M&AΫϥυ AWS CDKΛಋೖ͢Δલ ϒϥβͷAWSίϯιʔϧ͔Βૢ࡞ αʔϏεΠϯ͔Β3ఔ࣮͜ͷঢ়ଶͰಛʹʹͳͬͯͳ͔ͬͨɻ ࡞ۀΛεΫγϣͯ͠υΩϡϝϯτʹ͢ͳͲߦ͍ͬͯͯΘ͕͋ͬͨ͠͞ɺසൟʹΠϯϑϥʹ खΛೖΕΔ͜ͱ͕ͳ͔ͬͨɻ Ұ෦Serverless FrameworkΛ͏ͳͲIaCʹͳ͍ͬͯΔͷ͋ͬͨɻ
Copyright© M&AΫϥυ ֬ೝڥΛ૿ͦ͏
Copyright© M&AΫϥυ ։ൃऀ͕૿͑ɺνʔϜΛ͚ͨ νʔϜ͕͔Εͨ͜ͱʹΑΓ֬ೝڥʢ͍ΘΏΔεςʔδڥʣͰಈ࡞֬ೝ͍ͨ͠λΠϛ ϯά͕ҟͳΓσϓϩΠौ͕ൃੜͨ͠ɻ ͦͷͨΊɺ֬ೝڥΛෳ࡞Δ͜ͱʹɾɾɾ
Copyright© M&AΫϥυ ෳڥ࡞Δࡍͷো
Copyright© M&AΫϥυ εϖοΫΛ͋Θͤͯෳڥ࡞Δखؒ ϒϥβίϯιʔϧ͔ΒڥΛ࡞Δͷ͕ඇৗʹखؒ কདྷతʹ͞ΒʹνʔϜ͕૿͑ͨ߹ɺ·ͨಉ͡Λͬͯ࡞Δख͕ؒൃੜ͢Δ ͞ΒʹฐࣾͰCloudfrontͷBehaviorΛར༻ͯ͠ύε͝ͱʹ ΞϓϦέʔγϣϯͷ͖ઌΛมߋ͢Δॲཧ͕େྔʹ͋ͬͨɻ ڥΛෳ࡞Δࡍʹͱͯͭͳ͍࡞ۀ֬ೝ͕ඞཁʹͳΔɻ
Copyright© M&AΫϥυ ͦ͜ͰɺAWS CDK
Copyright© M&AΫϥυ AWS CDKΛར༻ͯ͠ڥߏங Stack୯ҐͰڞ௨Խ͠ɺڥʹΑͬͯҟͳΔมΛ༩͑Δ͜ͱͰεϖοΫ֤छIPΞυϨε ͷมಈ͕Ͱ͖ΔΑ͏ʹߏங CloudfrontͷBehaviorྻͰอ࣋͠ɺCDK͔ΒҰׅͰө͞ΕΔΑ͏ʹରԠ ෳڥ·ͱΊͯಉ͡BehaviorΛઃఆ͢Δ͜ͱ͕Ͱ͖ΔΑ͏ʹͳͬͨɻ
Copyright© M&AΫϥυ ͪΐͬͱ೦ͳͱ͜Ζ
Copyright© M&AΫϥυ AWS CDKΛར༻ͯ͠ݟ͑ͨ՝ • CloudFromation͕࣮ߦ͞ΕΔͨΊɺྃ·Ͱ݁ߏ͕͔͔࣌ؒΔɻ ◦ ಛʹCloudfront֤Edgeαʔόʔͷө·Ͱ͍ͬͯΔײ͡ʁͰ͍ • Fargate
SpotΛ͏ͨΊʹL1 ConstructͰ͏·͘ߦ͔ͳ͔ͬͨͷͰL2ʹΑΔCfnΫϥ εΛ͏ඞཁ͕͋ͬͨɻͦͷଞʹ݁ہCfnΫϥεͰॻ͔ͳ͍ͱࢦఆͰ͖ͳ͍ͷ͕ଟ͔ͬ ͨ • ϥΠϒϥϦ͕TypeScriptͷݴޠͷྑ͞Λ͍Ε͍ͯͳ͍ ◦ ܾ·ͬͨจࣈ͔͑͠ͳ͍ͳΒUnionͰఆٛͯ͠΄͍͠ɻStringʹͳ͍ͬͯΔͷͰɺ ͳʹ͕ࢦఆͰ͖Δ͔Θ͔Βͳ͍ͷ͕݁ߏ͋Δʢ݁ہެࣜυΩϡϝϯτΛݟͳ͚Ε ͑ͳ͍ʣ • CDKͷίʔυͨͩཏྻ͢Δ͚ͩͰͳ͘StackConstruct୯ҐΛ͏·͘ઃܭ͢Δඞཁ͕ ͋Δͱײͨ͡
Copyright© M&AΫϥυ ·ͱΊ • Թ͔Έͷ͋Δख࡞ۀ͔ΒIaCʹҠߦͨ͜͠ͱͰࠓޙڥ͕૿͑ͯఆٛΛ΄΅ίϐϖ Ͱ૿͚ͩ͢Ͱྑ͍Ϩϕϧʹͳͬͨʂ • CloudfrontͷBehaviorͣͬͱ՝ײ͕͕͋ͬͨCDKͰεοΩϦͨ͠ • ୀ۶ͳ͜ͱCDKʹΒͤΑ͏ɻ
Copyright© M&AΫϥυ Thanks for watching this :)