Share
Embed
Infrastructure as --> is Code with AWS CDK
Donnie Prakoso
March 24, 2022
Transcript
23 slides
-
© 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 -
© 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 -
© 2022, Amazon Web Services, Inc. or its Affiliates. @donnieprakoso
donnieprakoso go.donnie.id/youtube donnieprakoso DEMO -
© 2022, Amazon Web Services, Inc. or its Affiliates. @donnieprakoso
donnieprakoso go.donnie.id/youtube donnieprakoso Manual Scripted Declarative Wikis, Playbooks #!/bin/bash CloudFormation, Terraform -
© 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 -
© 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 -
© 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 -
© 2022, Amazon Web Services, Inc. or its Affiliates. Infrastructure
is code (in your favorite programming language) with the AWS CDK -
© 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 -
© 2022, Amazon Web Services, Inc. or its Affiliates. @donnieprakoso
donnieprakoso go.donnie.id/youtube donnieprakoso CDK Example -
© 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 -
© 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 -
© 2022, Amazon Web Services, Inc. or its Affiliates. @donnieprakoso
donnieprakoso go.donnie.id/youtube donnieprakoso Demo Use Case: Implementing Serverless API -
© 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 -
© 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 -
© 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 -
© 2022, Amazon Web Services, Inc. or its Affiliates. @donnieprakoso
donnieprakoso go.donnie.id/youtube donnieprakoso L2 -
© 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 -
© 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 -
© 2022, Amazon Web Services, Inc. or its Affiliates. @donnieprakoso
donnieprakoso go.donnie.id/youtube donnieprakoso Demo Use Case: Terraform Support -
© 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 -
© 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”