Slide 1

Slide 1 text

͍·͔Β࢝ΊΔAWS CDK ʙϞμϯͳΠϯϑϥߏஙೖ໳ʙ ੡଄ϏδωεςΫϊϩδʔ෦ 2025/03/13 ࠤ౻ஐथ

Slide 2

Slide 2 text

2 ࣗݾ঺հ ● 2020೥ Ϋϥεϝιουೖࣾ AWS CDK ར༻։࢝ɹ ● 2021೥ AWS DevDayͰCDKӡ༻ϊ΢ϋ΢঺հ ● 2022೥ CDKࢧ෦্ཱͪ͛ ● 2023೥ AWS CDK Conference Japan ։࠵ ● 2024೥ AWS CDK Conference Japan ։࠵ ● 2025೥ ● CDKࢧ෦ ఆظΠϕϯτ։࠵ 20ճ໨(༧ఆ) ● AWS CDK Conference Japan։࠵(༧ఆ) ● ෦ॺ ○ ੡଄ϏδωεςΫϊϩδʔ෦ ● ໊લʢχοΫωʔϜʣ ○ ࠤ౻ஐथ ʢtmk2154/tomoki10ʣ

Slide 3

Slide 3 text

໨࣍ ⚫ ࣗݾ঺հ ⚫ AWS CDKΛ͓͢͢Ί͢Δഎܠ ⚫ AWS CDKͱ͸Կ͔ʁ ⚫ CDKͷ࣮ྫ ⚫ CDKͷར఺ ⚫ AWS CDKͷ֓೦ͱ۩ମతͳಈ͖ 3 AWS Cloud Development Kit (AWS CDK)

Slide 4

Slide 4 text

ొஃͷલʹ AWS CDKͷೖ໳తͳ಺༰ʹཹΊ͍ͯ·͢ɻ΋͠ൃలతͳ಺༰͕ฉ͖͍ͨ৔߹ ҎԼͷಈը΍ࢿྉΛݟ͍ͯͩ͘͞ 4 https://pages.awscloud.com/rs/112-TZM-766/images/AWS-Black-Belt_2023_AWS-CDK-Basic-2-Features_0831_v1.pdf

Slide 5

Slide 5 text

ϞμϯͬͯԿͩΑʁ 5

Slide 6

Slide 6 text

ϞμϯͬͯԿͩΑʁ →ݱ୅తͰ͋Δ͜ͱɻࠓ෩Ͱ͠ΌΕ͍ͯΔ͜ͱɻ ʢσδλϧେࣙઘΑΓʣ 6

Slide 7

Slide 7 text

7 ࣗݾ঺հ ● 2016೥~2020೥ SIer ࡏ੶ ● 2020೥ Ϋϥεϝιουೖࣾ AWS CDK ར༻։࢝ɹ ● 2021೥ AWS DevDayͰCDKӡ༻ϊ΢ϋ΢঺հ ● 2022೥ CDKࢧ෦্ཱͪ͛ ● 2023೥ AWS CDK Conference Japan ։࠵ ● 2024೥ AWS CDK Conference Japan ։࠵ ● 2025೥ ● CDKࢧ෦ ఆظΠϕϯτ։࠵ 20ճ໨(༧ఆ) ● AWS CDK Conference Japan։࠵(༧ఆ) ● ෦ॺ ○ ੡଄ϏδωεςΫϊϩδʔ෦ ● ໊લʢχοΫωʔϜʣ ○ ࠤ౻ஐथ ʢtmk2154/tomoki10ʣ

Slide 8

Slide 8 text

։ൃऀ ΠϯϑϥมߋͷྲྀΕ 8 ΤϯλʔϓϥΠζͳݱ৔ͷ৔߹ AWS CDKΛϑϧ׆༻Ͱ͖Δ৔߹ ϝʔϧ Πϯϑϥ୲౰ऀ ސ٬୲౰ऀ खॱॻ࡞੒ Πϯϑϥ୲౰ऀ ঝೝ ϨϏϡʔ ࣮ߦ ։ൃऀ ։ൃऀ มߋ PR࡞੒ ϨϏϡʔ ґཔ ϨϏϡʔ ׬ྃ ϨϏϡʔ ґཔ ސ٬୲౰ऀ CD͔ΒσϓϩΠ ঝೝ

Slide 9

Slide 9 text

։ൃऀ ΠϯϑϥมߋͷྲྀΕ 9 ΤϯλʔϓϥΠζͳݱ৔ͷ৔߹ AWS CDKΛϑϧ׆༻Ͱ͖Δ৔߹ ϝʔϧ Πϯϑϥ୲౰ऀ ސ٬୲౰ऀ खॱॻ࡞੒ Πϯϑϥ୲౰ऀ ঝೝ ϨϏϡʔ ࣮ߦ ։ൃऀ ։ൃऀ มߋ PR࡞੒ ϨϏϡʔ ґཔ ϨϏϡʔ ׬ྃ ϨϏϡʔ ґཔ ސ٬୲౰ऀ CD͔ΒσϓϩΠ ঝೝ ͜͜ͷੈքΛઌʹ஌Δʂ

Slide 10

Slide 10 text

AWS CDKͱ͸ ϓϩάϥϛϯάݴޠͰAWSΠϯϑϥΛߏஙͰ͖Δ πʔϧ/αʔϏε ● Πϯϑϥߏ଄ΛTypeScript/JavaScript, Python, Java, C#, GoͰهड़ ● AWSϦιʔε΍Ұ෦SaaS੡඼ΛίʔυͰهड़ ͠؅ཧ ● Lambda΍ECS΁σϓϩΠ͢ΔΞϓϦίʔυ΋ ·ͱΊͯ؅ཧ΍σϓϩΠՄೳ ● Open Source SoftwareͳͷͰ࣮૷ͷৄࡉ΋ ιʔεϨϕϧͰ֬ೝՄೳ 10 https://docs.aws.amazon.com/ja_jp/cdk/v2/guide/home.html

Slide 11

Slide 11 text

CDKͷछྨ CfnςϯϓϨʔτͳͲ Λੜ੒͠Ϋϥ΢υΠϯ ϑϥ؀ڥΛίʔυ؅ཧ AWSϦιʔε΍Ұ෦ SaaS੡඼Λந৅Խͯ͠ ؅ཧ TerraformςϯϓϨʔ τΛੜ੒͠ɺΫϥ΢υ Πϯϑϥ؀ڥΛίʔυ ؅ཧ AWS΍ଞCSPɺSaaS ੡඼Λந৅Խͯ͠؅ཧ k8sϚχϡϑΣετΛ ੜ੒͠ɺk8s؀ڥΛख ଓ͖ܕͷॻ͖ํͰ؅ཧ k8sΛίʔυͰ؅ཧ 11 "84$%, ↑ࠓ೔͸͜͜ͷ࿩ʂ

Slide 12

Slide 12 text

AWS CDKͷίʔυྫ 12 ίʔυྫ ࡞੒͞ΕΔϦιʔεʢҰ෦ʣ

Slide 13

Slide 13 text

AWS CDKΛଞIaCͱൺ΂ͨ৔߹ͷར఺/ܽ఺ 13 ● ར఺ ● YAML΍JSONɺDSLͰͳ͘ϓϩάϥϛϯάݴޠͰΠϯϑϥΛఆٛͰ͖ΔͨΊϓϩάϥ Ϛʔʹͱͬͯ͸ֶशίετ͕௿͍ ● ܕ҆શੑʹΑΔίʔυิ׬ʹΑͬͯࣄલݕূ͕༰қ ● ੜ੒AI࣌୅Ͱ΋੩తܕ෇͚ʹΑΔܕ҆શੑ͸νΣοΫͱͯ͠༗ޮ ● ΞϓϦͷίʔυ΋Πϯϑϥͱ·ͱΊͯ؅ཧ/ςετ/σϓϩΠՄೳ ● ܽ఺ ● ࠔͬͨࡍʹֶश͢΂͖಺༰͕ൺֱతଟ͍ɺෳࡶԽ͠΍͍͢ͳͲ

Slide 14

Slide 14 text

AWS CDKͷ֓೦ਤ 14 https://docs.aws.amazon.com/ja_jp/cdk/v2/guide/home.html ● App ● ΞϓϦέʔγϣϯͷ୯Ґ ● σϓϩΠͷΤϯτϦʔϙΠϯτ ● Stack(s) ● CloudFormationͷStack୯Ґ ● σϓϩΠ୯Ґͷ࠷খ ● Construct ● AWSϦιʔεΛ࣮૷͢Δ୯Ґ ● ެࣜ/ಠࣗͰ֦ுɺෳ਺Ϧιʔε؅ཧՄೳ

Slide 15

Slide 15 text

AWS CDKͷApp/Stack෦෼ 15 https://docs.aws.amazon.com/ja_jp/cdk/v2/guide/home.html App Stack

Slide 16

Slide 16 text

AWS CDKͷApp෦෼ 16 Iac-night-demo.ts App Stack

Slide 17

Slide 17 text

AWS CDKͷStack/Construct෦෼ 17 Iac-night-demo-stack.ts Stack Construct

Slide 18

Slide 18 text

Constructͷछྨ 18 Amazon SQS Amazon SQS L1 Construct … CloudFormationͷύϥϝʔλͱ1:1Ͱੜ੒ L2 Construct … L1Λந৅Խͯ͠ར༻͠΍࣮͘͢૷ L3 Construct … L2Λ͞Βʹ֦ு࣮૷ͨ͠΋ͷ ɹˢSQSͱAPIGatewayΛ૊Έ߹Θͤͯੜ੒Ͱ͖Δྫ

Slide 19

Slide 19 text

AWS CDKͷCloud Assembly෦෼ 19 https://docs.aws.amazon.com/ja_jp/cdk/v2/guide/home.html

Slide 20

Slide 20 text

AWS CDKͷCloud Assembly෦෼ 20 IacNightDemoStack.template.json https://docs.aws.amazon.com/ja_jp/cdk/v2/guide/home.html

Slide 21

Slide 21 text

ʢ͓·͚ʣCloud Assemblyͷগ͠঺հ 21 ● {Stack໊}.template.json ● CDK͕ੜ੒ͨ͠CloudFormationςϯϓϨʔτ ● {Stack໊}.assets.json ● LambdaͷίʔυͳͲΞηοτͷσϓϩΠઌ΍ɺύοέʔδϯάํ๏ͳͲͷఆٛ ● manifest.json ● ֤ελοΫΛσϓϩΠ͢Δࡍͷϩʔϧ΍࠷௿ݶඞཁͳBootstrapόʔδϣϯͳͲΛ؅ཧ ● tree.json ● Construct Treeͷߏ଄ΛJSONͰग़ྗͨ͠ϑΝΠϧʢStack→Construct→ࢠConstruct…ʣ

Slide 22

Slide 22 text

AWS CDKͷϢʔβ͔Βݟͨಈ͖ 22 Client CI/CD Env Source code AWS CloudFormation AWS account OR AWS CDK AWS Lambda Amazon API Gateway Stack (Resource State) Generate $ npx cdk deploy

Slide 23

Slide 23 text

AWS CDKͷཪଆͷجຊతͳಈ͖ 23 Client CI/CD Env Source code OR AWS CDK Cfn Template 1.Synthesize Assets IacNightDemoStack.template.json

Slide 24

Slide 24 text

AWS CDKͷཪଆͷجຊతͳಈ͖ 24 Client CI/CD Env Source code OR AWS CDK Cfn Template 1.Synthesize Assets AWS account S3 Bucket 2.Upload

Slide 25

Slide 25 text

AWS CDKͷཪଆͷجຊతͳಈ͖ 25 Client CI/CD Env Source code OR AWS CDK Cfn Template 1.Synthesize Assets AWS CloudFormation AWS account S3 Bucket 2.Upload 3.Deploy

Slide 26

Slide 26 text

AWS CDKͷཪଆͷجຊతͳಈ͖ 26 Client CI/CD Env Source code OR AWS CDK Cfn Template 1.Synthesize Assets AWS CloudFormation AWS account Cfn Template S3 Bucket 3.Deploy 4.Pull 2.Upload

Slide 27

Slide 27 text

AWS CDKͷཪଆͷجຊతͳಈ͖ 27 Client CI/CD Env Source code OR AWS CDK Cfn Template 1.Synthesize Assets AWS CloudFormation AWS account Stack (Resource State) Cfn Template S3 Bucket 3.Deploy 5.Generate 4.Pull 2.Upload

Slide 28

Slide 28 text

AWS CDKͷཪଆͷجຊతͳಈ͖ 28 Client CI/CD Env Source code OR AWS CDK Cfn Template 1.Synthesize Assets AWS CloudFormation AWS account Stack (Resource State) Cfn Template S3 Bucket 3.Deploy 5.Generate AWS Lambda Amazon API Gateway 6.API Call 4.Pull 2.Upload

Slide 29

Slide 29 text

AWS CDKͷϢʔβ͔Βݟͨಈ͖ 29 Client CI/CD Env Source code AWS CloudFormation AWS account OR AWS CDK AWS Lambda Amazon API Gateway Stack (Resource State) Generate $ npx cdk deploy

Slide 30

Slide 30 text

AWS CDKʹڵຯ͕ग़͖ͯͨํ΁ 30 https://jawsug-cdk.connpass.com/ ͥͻJAWS-UG CDKࢧ෦ʹࢀՃΛʂ࣍ճ͸4/1༧ఆʂ

Slide 31

Slide 31 text

AWS CDKʹڵຯ͕ग़͖ͯͨํ΁̎ 31 ٕज़ॻయ18(6/1)ͰCDKͷຊग़͢༧ఆͰ͢ʂݱࡏࣥචத📝 CDKͷॳڃऀ͕ܧଓ։ൃ/ӡ༻Ͱ͖ΔΑ͏ʹͳΔ·ͰͷεςοϓΛ·ͱΊ·͢ʂ @tmk2154

Slide 32

Slide 32 text

·ͱΊ 32 ● AWS CDKͷར఺ʹֶ͍ͭͯश ● ੩తܕ෇ʹΑ࣮ͬͯ૷΍ݕ͕ࠪ༰қͰ࢖͍΍͍͢ ● AWS CDKͷσϓϩΠͷྲྀΕΛ஌Δ ● App/Stack/Constructͱ͍͏جຊతͳAWS CDKͷߏ଄Λ঺հ ● cdk deployͷཪଆͰى͍ͬͯ͜Δಈ࡞Λ֬ೝ