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
550
AWS CDKでまるっと インフラ環境をIaCしたぞ!
PHPConference2022 ゴールドスポンサーLT 2022/09/24
kubotak
September 24, 2022
Tweet
Share
More Decks by kubotak
See All by kubotak
Laravelにはdeleted_atがありますけど?
kubotak
2
61
PHPでWebSocketサーバーを実装しよう2025
kubotak
0
1.6k
情報漏洩させないための設計
kubotak
6
2.9k
Svelteコンポーネントの依存関係に秩序を〜
kubotak
0
190
DMARCレポート可視化ツールを SvelteKitで作った話
kubotak
2
620
Superforms本番投入で分かった良さとハマりどころ
kubotak
0
1k
Storybookを書くだけでリグレッションテストが 実行される世界へようこそ
kubotak
31
11k
(うまくいった||いかなかった) 技術選定は何を考えていたか
kubotak
1
1.4k
ウォーターフォールに思えたプロジェクトにあったアジャイルの要素
kubotak
2
960
Other Decks in Programming
See All in Programming
ふつうの Rubyist、ちいさなデバイス、大きな一年
bash0c7
0
480
nilとは何か 〜interfaceの構造とnil!=nilから理解する〜
kuro_kurorrr
3
1.6k
Claude Codeセッション現状確認 2026福岡 / fukuoka-aicoding-00-beacon
monochromegane
4
390
Rで始めるML・LLM活用入門
wakamatsu_takumu
0
160
Codexに役割を持たせる 他のAIエージェントと組み合わせる実務Tips
o8n
0
200
今、アーキテクトとして 品質保証にどう関わるか
nealle
0
200
CSC307 Lecture 13
javiergs
PRO
0
310
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
230
AI駆動開発の本音 〜Claude Code並列開発で見えたエンジニアの新しい役割〜
hisuzuya
4
480
エラーログのマスキングの仕組みづくりに役立ったASTの話
kumoichi
0
110
20260228_JAWS_Beginner_Kansai
takuyay0ne
5
440
AI活用のコスパを最大化する方法
ochtum
0
120
Featured
See All Featured
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
2
490
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
5.9k
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
400
Darren the Foodie - Storyboard
khoart
PRO
3
2.7k
Ecommerce SEO: The Keys for Success Now & Beyond - #SERPConf2024
aleyda
1
1.8k
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.1k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
エンジニアに許された特別な時間の終わり
watany
106
240k
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
130
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
330
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
55
3.3k
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
62
51k
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 :)