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
AWS CDKでまるっと インフラ環境をIaCしたぞ!
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
kubotak
September 24, 2022
Programming
620
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
AWS CDKでまるっと インフラ環境をIaCしたぞ!
PHPConference2022 ゴールドスポンサーLT 2022/09/24
kubotak
September 24, 2022
More Decks by kubotak
See All by kubotak
僕も、PHPフレームワーク作ってみた
kubotak
0
300
ハーネスエンジニアリング白書
kubotak
0
170
Laravelにはdeleted_atがありますけど?
kubotak
2
120
PHPでWebSocketサーバーを実装しよう2025
kubotak
0
2.7k
情報漏洩させないための設計
kubotak
6
3.3k
Svelteコンポーネントの依存関係に秩序を〜
kubotak
0
250
DMARCレポート可視化ツールを SvelteKitで作った話
kubotak
2
730
Superforms本番投入で分かった良さとハマりどころ
kubotak
0
1.1k
Storybookを書くだけでリグレッションテストが 実行される世界へようこそ
kubotak
31
12k
Other Decks in Programming
See All in Programming
우리의 Nitro Modules는 당신의 Turbo Modules보다 아름답다
l2hyunwoo
0
220
graphql-ruby を Spinel で速くしようとした話
mtsmfm
0
120
golang-bob.pdf
iwatsukayura
0
140
Long Living Tokens, Die, Die, Die! (or: The One Ring is Banned in Modern)
sylph01
0
370
HTML-in-Canvasで作る未来のWeb UI表現
clockmaker
5
5.8k
[2026-10-14](C)Re:ゼロから始める異世界生活〜始まりの終わりと終わりの始まり〜
tosite
0
160
AIで開発が速くなった先で、開発チームは何を目指すか
shihochan
1
1.8k
AI-Powered Domain-Driven Design
ziobrando
0
320
オーケストレーション記述言語 Katari
yukikurage
0
200
SFCで実現する病院・医療システムの動的組み立て式UI
koukimiura
1
120
JIS keyboard support in Omarchy
lef237
0
160
AmebaブログはKMPから卒業します
kmars0605
0
240
Featured
See All Featured
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
2
960
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
580
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
460
A better future with KSS
kneath
240
18k
GraphQLとの向き合い方2022年版
quramy
50
15k
Deep Space Network (abreviated)
tonyrice
0
380
Building the Perfect Custom Keyboard
takai
2
920
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
440
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
900
Heart Work Chapter 1 - Part 1
lfama
PRO
10
37k
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
4
4.4k
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 :)