Slide 1

Slide 1 text

© 2022, Amazon Web Services, Inc. or its Affiliates. Sr. Developer Advocate, ASEAN Amazon Web Services Infrastructure as à is Code with AWS CDK Donnie Prakoso Quick Start @donnieprakoso donnieprakoso go.donnie.id/youtube donnieprakoso

Slide 2

Slide 2 text

© 2022, Amazon Web Services, Inc. or its affiliates. All rights reserved. @donnieprakoso donnieprakoso go.donnie.id/youtube donnieprakoso Donnie Prakoso, MSc Senior Developer Advocate, ASEAN • 17+ years in software development and system operations • Banking industry, telco to startups • From software developer to R&D manager to CTO • I talk a lot about microservices and machine learning • Self-proclaimed Barista and Café Racer enthusiasts donnieprakoso go.donnie.id/youtube @donnieprakoso donnieprakoso

Slide 3

Slide 3 text

© 2022, Amazon Web Services, Inc. or its Affiliates. @donnieprakoso donnieprakoso go.donnie.id/youtube donnieprakoso DEMO

Slide 4

Slide 4 text

© 2022, Amazon Web Services, Inc. or its Affiliates. @donnieprakoso donnieprakoso go.donnie.id/youtube donnieprakoso Manual Scripted Declarative Wikis, Playbooks #!/bin/bash CloudFormation, Terraform

Slide 5

Slide 5 text

© 2022, Amazon Web Services, Inc. or its Affiliates. • Single source of truth to deploy the whole stack • Infrastructure that you can replicate, re-deploy, and re-purpose • Control versioning on your infrastructure and your application together • Service rolls back to the last good state on failures • Build your infrastructure and run it through your CI/CD pipeline Template Stack Stack Stack Dev Test Staging Prod Demos Regions Infrastructure as code

Slide 6

Slide 6 text

© 2022, Amazon Web Services, Inc. or its Affiliates. • JSON/YAML format template • Presents template to AWS CloudFormation • AWS CloudFormation translates it to an API request • Forms a stack of resources • FREE – you only pay for resources • All regions • APIs are called in parallel • Manages dependencies/relationships Code in YAML or JSON directly or use sample templates Upload local files or from an S3 bucket Create stack using API via AWS CloudFormation Stacks and resources are provisioned as a running environment Infrastructure as code

Slide 7

Slide 7 text

© 2022, Amazon Web Services, Inc. or its Affiliates. @donnieprakoso donnieprakoso go.donnie.id/youtube donnieprakoso Manual Scripted Generators Abstractions Declarative Wikis, Playbooks #!/bin/bash CloudFormation, Terraform Troposphere, GoFormation AWS CDK, Pulumi

Slide 8

Slide 8 text

© 2022, Amazon Web Services, Inc. or its Affiliates. Infrastructure is code (in your favorite programming language) with the AWS CDK

Slide 9

Slide 9 text

© 2022, Amazon Web Services, Inc. or its Affiliates. @donnieprakoso donnieprakoso go.donnie.id/youtube donnieprakoso AWS Cloud Development Kit Your language Just classes and methods AutoComplete Inline documentation Sane defaults Reusable classes DEV PREVIEW

Slide 10

Slide 10 text

© 2022, Amazon Web Services, Inc. or its Affiliates. @donnieprakoso donnieprakoso go.donnie.id/youtube donnieprakoso CDK Example

Slide 11

Slide 11 text

© 2022, Amazon Web Services, Inc. or its Affiliates. @donnieprakoso donnieprakoso go.donnie.id/youtube donnieprakoso Main Components Core Framework AWS Construct Library AWS CDK CLI App Stacks Resources Serverless App Integration / Foundational Services Containers CI/CD

Slide 12

Slide 12 text

© 2022, Amazon Web Services, Inc. or its Affiliates. @donnieprakoso donnieprakoso go.donnie.id/youtube donnieprakoso Development Workflow CDK CLI AWS CloudFormation Stacks & Constructs Source Code Templates + Assets Cloud Assembly Cloud Resources execute synthesize deploy provision 📙 cdk init // create new project 🛠 cdk watch // watch changes 🔎 cdk diff // check what will change 🧬 cdk synth // create templates and assets 🚀 cdk deploy // push changes to the cloud

Slide 13

Slide 13 text

© 2022, Amazon Web Services, Inc. or its Affiliates. @donnieprakoso donnieprakoso go.donnie.id/youtube donnieprakoso Demo Use Case: Implementing Serverless API

Slide 14

Slide 14 text

© 2022, Amazon Web Services, Inc. or its Affiliates. CDK Constructs

Slide 15

Slide 15 text

© 2022, Amazon Web Services, Inc. or its Affiliates. @donnieprakoso donnieprakoso go.donnie.id/youtube donnieprakoso AWS Construct Library Serverless Application Integration / Foundational Services Containers CI/CD

Slide 16

Slide 16 text

© 2022, Amazon Web Services, Inc. or its Affiliates. @donnieprakoso donnieprakoso go.donnie.id/youtube donnieprakoso Construct Levels CloudFormation Resources L1 Automatically generated Purpose-built constructs L3+ Opinionated abstractions AWS Constructs L2 High level service constructs

Slide 17

Slide 17 text

© 2022, Amazon Web Services, Inc. or its Affiliates. @donnieprakoso donnieprakoso go.donnie.id/youtube donnieprakoso L1 • Generated mappings from CloudFormation Specification • abc.CfnXyz → AWS::ABC::XYZ CloudFormation Resource • ec2.CfnInstance → AWS::EC2::Instance • kms.CfnKey → AWS::KMS::Key 🧬 cdk synth

Slide 18

Slide 18 text

© 2022, Amazon Web Services, Inc. or its Affiliates. @donnieprakoso donnieprakoso go.donnie.id/youtube donnieprakoso L2

Slide 19

Slide 19 text

© 2022, Amazon Web Services, Inc. or its Affiliates. @donnieprakoso donnieprakoso go.donnie.id/youtube donnieprakoso “amazon-ecs-sample” image AWS VPC • Subnets • EIP • NAT Gateways • Internet Gateway • Route • Route Table Elastic Load Balancer • Security Group • Security Group Egress • Security Group Ingress • Task Definition • Listener • Target Group • IAM Roles • IAM Policies • Log Group • Configuration Fargate Service ECS Task Definition • image • CPU • memory • port 829 line CloudFormation template L3

Slide 20

Slide 20 text

© 2022, Amazon Web Services, Inc. or its Affiliates. @donnieprakoso donnieprakoso go.donnie.id/youtube donnieprakoso Demo Use Case: Dev/Prod Parity AWS CloudFormation CDK App Source Code Stack A Template A Template B AWS CloudFormation Stack B Parameterized Template Stack 1 Stack 2 CloudFormation Parameters and intrinsic functions CDK Typed OO language: loops, conditions, inheritence, etc

Slide 21

Slide 21 text

© 2022, Amazon Web Services, Inc. or its Affiliates. @donnieprakoso donnieprakoso go.donnie.id/youtube donnieprakoso Demo Use Case: Terraform Support

Slide 22

Slide 22 text

© 2022, Amazon Web Services, Inc. or its Affiliates. @donnieprakoso donnieprakoso go.donnie.id/youtube donnieprakoso Demo Use Case: CI/CD using CDK Pipelines Region Cloud Git push AWS CodeCommit AWS CodePipeline AWS CodeBuild AWS CloudFormation Test stack Change set Staging Production

Slide 23

Slide 23 text

© 2022, Amazon Web Services, Inc. or its Affiliates. https://go.donnie.id/content Donnie Prakoso @donnieprakoso donnieprakoso Sr. Developer Advocate, ASEAN Amazon Web Services go.donnie.id/youtube donnieprakoso Content Title: “Infrastructure as à is Code with AWS CDK”