YAPC::Tokyo 2019 前夜祭 LTソン
AWS CDKʹ͍ͭͯYAPC::Tokyo 2019 લࡇ LTιϯid:cohalz
View Slide
ࣗݾհ• id:cohalz / @cohalz• גࣜձࣾͯͳ SRE(ژ)• Perlະܦݧ
AWS CDKฉ͍ͨ͜ͱ͋Δਓ
AWS CDKͬͯΔਓ
AWS CDKͱ• https://awslabs.github.io/aws-cdk/• AWSެࣜͷϑϨʔϜϫʔΫ• TypeScriptͰCloudFormationϦιʔεΛॻ͍ͯσϓϩΠ• ։ൃऀϓϨϏϡʔ ͷஈ֊
Ϟνϕʔγϣϯ• ڊେͳYAMLಡΈॻ͖͍ͨ͠Ͱ͔͢ʁ• CFnͰෳࡶͳذͯ͠ͳ͍Ͱ͔͢ʁ
TypeScript• ܕʹΑΔิ• ߴͳϩδοΫͷ࣮ݱ• ϥΠϒϥϦͷΈ߹Θͤ
རͦΕ͚ͩʁ
CDK Construct Library• ҰൠతͳύλʔϯΛϥΠϒϥϦͱͯ͠ఏڙ• ར༻ऀͷهड़ྔΛେ෯ʹݮ• ެࣜϥΠϒϥϦͷଞʹࣗ࡞વՄೳ
࣮ࡍͷίʔυ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"),});
σϓϩΠπʔϧ• cdk deploy• TypeScriptΛॻ͍ͯͦͷ··σϓϩΠͰ͖Δ• cdk diff• ਓ͕ؒಡΊΔมߋΛग़͢
ηΩϡϦςΟ• IAMͱSecurity GroupͷมߋΛܯࠂ
CDKͷϝϦοτ• SRE͔Β• ϦιʔεΛςϯϓϨʔτͱͯ͠ఏڙ͍͢͠• ΞϓϦέʔγϣϯΤϯδχΞ͔Β• TypeScriptͩͱ৮Γ͍͢• ηΩϡϦςΟͷܯࠂخ͍͠
େมͳ͜ͱ͋Δ• Construct Libraryͱ͍ͬͯ͘• தͰԿΛͬͯΔͷ͔֬ೝ͢Δͷ͍͠• ར༻ऀগͳ͍ͷͰใ͕ͳ͍• ؾ͕͍ͭͨΒຊਓτοϓͷίϯτϦϏϡʔλʹͳͬͯͨ
·ͱΊ• YAMLͰͳ͘TypeScriptͷ࣌• CDKͷπʔϧ܈ຊʹศར• ։ൃऀϓϨϏϡʔதͳͷͰར༻ҙ