Slide 1

Slide 1 text

AWS CDKʹ͍ͭͯ YAPC::Tokyo 2019 લ໷ࡇ LTιϯ id:cohalz

Slide 2

Slide 2 text

ࣗݾ঺հ • id:cohalz / @cohalz • גࣜձࣾ͸ͯͳ SRE(ژ౎) • Perlະܦݧ

Slide 3

Slide 3 text

AWS CDKฉ͍ͨ͜ͱ͋Δਓ

Slide 4

Slide 4 text

AWS CDK࢖ͬͯΔਓ

Slide 5

Slide 5 text

AWS CDKͱ͸ • https://awslabs.github.io/aws-cdk/ • AWSެࣜͷϑϨʔϜϫʔΫ • TypeScriptͰCloudFormationϦιʔεΛॻ͍ͯσϓϩΠ • ։ൃऀϓϨϏϡʔ ͷஈ֊

Slide 6

Slide 6 text

Ϟνϕʔγϣϯ • ڊେͳYAMLಡΈॻ͖͍ͨ͠Ͱ͔͢ʁ • CFnͰෳࡶͳ෼ذͯ͠ͳ͍Ͱ͔͢ʁ

Slide 7

Slide 7 text

TypeScript • ܕʹΑΔิ׬ • ߴ౓ͳϩδοΫͷ࣮ݱ • ϥΠϒϥϦͷ૊Έ߹Θͤ

Slide 8

Slide 8 text

ར఺ͦΕ͚ͩʁ

Slide 9

Slide 9 text

CDK Construct Library • ҰൠతͳύλʔϯΛϥΠϒϥϦͱͯ͠ఏڙ • ར༻ऀͷهड़ྔΛେ෯ʹ࡟ݮ • ެࣜϥΠϒϥϦͷଞʹࣗ࡞΋౰વՄೳ

Slide 10

Slide 10 text

࣮ࡍͷίʔυ const vpc = new ec2.VpcNetwork(this, 'MyVpc', { maxAZs: 2 }); const cluster = new ecs.Cluster(this, 'Cluster', { vpc }); const fargateService = new ecs.LoadBalancedFargateService(this, "FargateService", { cluster, image: ecs.ContainerImage.fromDockerHub("amazon/amazon-ecs-sample"), });

Slide 11

Slide 11 text

σϓϩΠπʔϧ • cdk deploy • TypeScriptΛॻ͍ͯͦͷ··σϓϩΠͰ͖Δ • cdk diff • ਓ͕ؒಡΊΔมߋ఺Λग़͢

Slide 12

Slide 12 text

ηΩϡϦςΟ • IAMͱSecurity GroupͷมߋΛܯࠂ

Slide 13

Slide 13 text

CDKͷϝϦοτ • SRE͔Β • ϦιʔεΛςϯϓϨʔτͱͯ͠ఏڙ͠΍͍͢ • ΞϓϦέʔγϣϯΤϯδχΞ͔Β • TypeScriptͩͱ৮Γ΍͍͢ • ηΩϡϦςΟͷܯࠂ΋خ͍͠

Slide 14

Slide 14 text

େมͳ͜ͱ΋͋Δ • Construct Libraryͱ΍͍ͬͯ͘ • தͰԿΛ΍ͬͯΔͷ͔֬ೝ͢Δͷ͸೉͍͠ • ར༻ऀগͳ͍ͷͰ৘ใ͕ͳ͍ • ؾ͕͍ͭͨΒ೔ຊਓτοϓͷίϯτϦϏϡʔλʹͳͬͯͨ

Slide 15

Slide 15 text

·ͱΊ • YAMLͰ͸ͳ͘TypeScriptͷ࣌୅ • CDKͷπʔϧ܈͸ຊ౰ʹศར • ։ൃऀϓϨϏϡʔதͳͷͰར༻͸஫ҙ