Will AWS CDK replace Terraform and Serverless Framework? (2023)

This is a post about managing infrastructure with AWS Serverless project code. However, many of the findings can also be applied to cloud management more generally. I recently had the opportunity to play with serverless frameworks, Terraform, and AWS CDK in the same month. It includes two new items and a conversion. All projects are serverless in nature and based on running on Lambda, but also include additional serverless cloud management. This is a great opportunity to compare them and share their experiences. Over the past four years, Serverless Framework has become a lackluster Lambda implementation tool. Terraform turned out to be a more feature-rich tool, and since 2018 there is an AWS CDK that promises to be a developer-friendly cloud management solution (for AWS). First, I will describe the journey of all three technologies and provide a summary in the final chapter. Although two of these tools are cloud-agnostic, I evaluated their usefulness for managing AWS resources.

First, some background on these projects. We use Lambda as the main business logic execution processor in three projects. There is a data processing project, using S3, RDS, Quicksight to generate reports. API project using API Gateway, Cognito, Dynamo and Web project using Dynamo, API Gateway, S3, SQS, SNS, Cognito. While all three are primarily based on basic serverless components, there are also more infrastructure resources in each project (not tied to a single Lambda) to build the necessary foundations (VPC, IAM, Cognito, Policies, and S3 pods).

Serverless framework environment

Over the past four years, Serverless Framework has released Lambda deployment automation. In the early days of Lambda, a few people experimented with the AWS Console Web IDE, and after some initial experimentation, they were looking for tools that would simplify Lambda development. By introducing a simple configuration file (serverless.yml) where you can declare your configuration, serverless frameworks are really ahead of the game. With just this file and another file containing the code, you can have your Lambda gateway and API up and running in seconds.

Here's an example Lambda infrastructure declaration using the serverless framework:

1Work: serverless simple http endpoint2supplier:3 Name: aws4 operating hours: Node 8.1056Function:7 current time:8 Trecero: service endpoint9 event:10 - URL:11 Camino: post12 method: get

Over time, serverless frameworks have expanded their offerings by providing some kind of dashboard/control plane with additional services like security, compliance checks, logs, metrics, etc. This article does not evaluate the merits of these additional services.

Serverless Framework will coordinate the creation and packaging of source code during deployment. It will generate a CloudFormation template and call the CloudFormation runner to start a new deployment. CloudFormation will then take care of the actual implementation.

What are the benefits of Serverless Framework?

I'm having a lot of fun with serverless frameworks. If you're starting a new project, you can easily enable some lambdas. Some known AWS resources used by Lamba are supported (eg: S3, SQS). It also has an active plugin ecosystem where third parties can contribute extended tool support. If you run into trouble, you're usually not alone, in fact most problems and solutions are well documented on Stack Overflow.

(Video) Terraform and Serverless Framework Working Together

What are the limitations of Serverless Framework?

Serverless Framework is explicitly designed to support the implementation of Lambdas, which limits its usefulness for managing entire cloud configurations. You can add CloudFormation scripts to extend their scope, but in this case you're just running CloudFormation and not Serverless Framework. In every project, I like to script my entire cloud account, which in practice forces me to use different tools for overall cloud sculpting and use serverless for my Lambdas. Switching between the two is a pain and breaks resource allocation (like getting the correct ARN to compose things).

Also, for resources that are common Lambda use cases, such as attaching buckets to Lambda, serverless frameworks are no longer sufficient. In many cases, you don't need lambdas for repository lifecycle dependencies. In an enterprise configuration, you want your repository to have complex lifecycle policies, access controls, logging, etc. So you might want some Lambas to read, some to write, and one to execute on write (a repository only allows one!). I would say these requirements are beyond the reasonable scope of using Serverless Framework.

Transformation experience

The quote on the Terraform website speaks for itself: "Use Infrastructure as Code to configure and manage any cloud, infrastructure, or service."
Terraform is a declarative syntax and command-line executable that manages clouds through a native CLI bridge.

Here is an example Lambda infrastructure declaration using Terraform:

1supplier"yes"{2area ="We are 1"3}4 5rescue“aws_lambda_function” "example"{6function-name="Serverless Example"7 8#cube nameaspreviously createdz "aws s3api create bucket"9s3_wiadro ="Serverless Retrofit Example"10key_s3 =“v1.0.0/example.zip”11 12#"main"is the name of the file in the zip file (main.js) i"Therese"13# this is the namezownership of its operationsFunction era14#exit W A file.15 trecero= "main.trecerosixteen operation time= "node.js10.X17 18 Role= "postscript{aws_iam_role.lambda_exec.arn}19}20 21# The IAM role that determines which other AWS services should be compatible with the Lambda function22# Accessibility.23resource"aws_iam_rola“”lambda_exec“{24name==serverless_example_lambda25 26set_role_policy =27<28{29Version“:”2012-10-17",30declaration“:[31{32action“:”pts: take paper",33main“:{34Work“:”lambda.amazonaws.com35},36Influence“:”allow",37database“:”38}39]40}41weekend42}43 44resource"aws_api_gateway_rest_api“”example“{45name==Serverless example46description = "Terraform serverless application example47}48 years old 49resource"aws_api_gateway_resource“”lawyer“{50rest_api_id = "${aws_api_gateway_rest_api.ejemplo.id}51parent_id = "${aws_api_gateway_rest_api.example.false_identifier_root}52Partial path = "{proxy+}53}54 55resource"aws_api_gateway_method“”lawyer“{56rest_api_id = "${aws_api_gateway_rest_api.ejemplo.id}57recurso_id = "${aws_api_gateway_resource.proxy.id}58http_metodo = "all59Authorization = "network card60}61 62resource"aws_api_gateway_integration“”lambda“{63rest_api_id = "${aws_api_gateway_rest_api.ejemplo.id}64recurso_id = "${aws_api_gateway_method.proxy.resource_id}sixty-fivehttp_metodo = "${aws_api_gateway_method.proxy.http_method}66 67http_integration_method = "Coreo68input==AWS_PROXY69uri="${aws_lambda_function.example.invoke_arn}70}

It provides a cloud provider-agnostic syntax for fully managed access to multiple cloud providers and services, such as Heroku or Mailgun, using a specific cloud provider.

During deployment, Terraform queries existing cloud resources, creates a plan outlining the transition to the desired end state, and sequentially makes the necessary changes in the correct order.

What are the benefits of Terraform?

AWS is awesome when it comes to resource management! I haven't found any specific resources or parameters that I can't properly control using Terraform. I've run through the Terraform setup, which includes full IAM, billing, accounts, and security setup.

(Video) Stop Using Terraform for AWS - Use this Instead

The framework has an active development team and community, is stable and extensible. When people find API inconvenient, they write their own providers and use modules to create use-case specific modules that provide good abstractions for resource bundles (like Lambda for Web API + API Gateway). .

Migrations in Terraform are really fast. Migrations in Terraform are a series of CLI commands that are not executed transactionally. If an error occurs during the migration, subsequent steps will be interrupted. Running the same script again will create a new diff for the remaining changes and execute them.

What are the limitations of Terraform?

I like Terraform, but I'm having some issues with the security model. In a simple, simple setup, your Terraform scripts in your favorite CI container can run on your favorite cloud. However, you need to give Terraform runners many IAM permissions, which is a potential security risk. Alternatively, in a more complex setup, you can run these Terraform scripts from your cloud account by running them in a virtual machine (or a Gitlab runner, for example), but this is very labor intensive and additionally expensive.

Terraform is bloated with its JSON-like structure. Most modules now support default values, which prevent you from saving all parameters, but still load details. This can be seen immediately by comparing the examples.

Also, migrations are not transactional, which can lead to strange infrastructure states that need to be resolved manually by importing or deleting resources and restarting deployments.

AWS CDK experience

The CDK was a novelty introduced at Re:Invent 2018. It promises to be a developer-friendly abstraction for managing cloud infrastructure as code in everyday programming languages. At the same time, it supports an impressive set of languages: TypeScript, Javascript, Python, Java, and C#.

An example Lambda infrastructure declaration using the CDK is as follows:

1untilget ALambda =newlambda(functionDiez,"get element function", {2 the code:newlambda.ActiveCode('Fuente'),3 trecero:"Download a .service program",4 operation time:lambda.Runtime.NODEJS_8_10,5 environment:{6 Table Name: dynamoTabela.nazwatabeli,7 master key:"Article ID"8}9});10 11untilInterface API =newapigateway.RestApi(Diez,"API elements", {12 restApi name:"Project Services"13});14 15untilsingleItem = items.addResource('{ID}');sixteenuntilgetOneIntegration =newapigateway.LambdaIntegration(getOneLambda);17Single element.addMethod('get', download integration);
(Video) An Introduction to AWS CDK (and why you should be using it!)

After deployment, your code that defines your infrastructure is compiled and "synthesized" in CloudFormation. In turn, CloudFormation will perform the actual transaction implementation.

What are the benefits of CDK?

AWS demonstrates its commitment by releasing CDKs in multiple languages. The fact that you can write your implementation in the same language as Lambda is a good idea (less changes). However, it's great that DevOps teams can create their own packages and libraries to control the infrastructure with relative ease. Of course, this technology is capable of supporting a large ecosystem of community-created CDK extensions (called builds).

You get all the benefits of the IDE's support, such as highlighting, syntax checking, inspections, refactoring support (a big plus!), and testability. This makes a compelling case for using the CDK.

What are the limitations of the CDK?

CDK development is still like using TypeScript (in my case) as a DSL to declare resources instead of actually developing them. Despite all the fancy programming possibilities, the fact that you declare framework state makes your code look like a declarative specification.

My biggest complaint at this point is the documentation. Typical resources like RDS or even VPC management take days to manage successfully. The API is still unstable, closed Stack Overflow tickets are often out of date, and I'm constantly staring at open pull requests. As of this writing, the CDK is by no means a permanent project.

It's clear that AWS' vision for the CDK is to please developers. They create new abstractions using CDK constructs that capture one or more resources. At build time, they convert these constructs into Cloudformation scripts. Due to my previous experience with the AWS console, AWS CLI, Terraform, and Cloudformation, I often feel lost when explaining these structures. The CDK developers really wanted to create a well-typed, easy-to-use library, but in the process they added a lot of structure that didn't map one-to-one to what I knew from previous experience. The good thing is, using your IDE, you can just click on the underlying library to see what's going on.

Comparison of CDK, Terraform, and Serverless Framework

Based on the findings, I have attempted to document my experience in the table below. Let's get one thing straight: all three tools are great for implementing Lambda on AWS! But in a real software project, actually implementing a single Lambda is never good enough. For each structure, I rate my experience and give a + when I feel relatively positive or negative about other candidates.

factorTerraformingMarco ServerlessCDK AWS
Basic Lambda application
Only small Lambda projects+++
Complex Lamda project with peripheral services++
Overall Cloud Management
AWS resource support++
transaction migration++
Add new collaborators++
official document++
Community based documentation (pull requests, stackoverflow)++
developer experience+
of course in a few weeks+
API/documentation maturity++

According to this table, there is no single winner here. The tools you can choose are truly relevant to your project and organization. Feel free to drop me a comment or message if there are other factors you'd like me to consider. I'm more than happy to add it.

(Video) 66. AWS SAM v Serverless Framework

Should you use the AWS CDK for your next serverless project?

All three tools are great for implementing Lambda on AWS! It is managing all the other resources that will keep your life from being happy or productive. I would consider using serverless frameworks only for smaller projects, PoCs and side projects. It's the perfect tool to get your projects up and running quickly. After months of inactivity, you (and your colleagues) can still read and modify your cloud settings.

From a developer perspective, I like Terraform because it has very strong documentation, and non-transactional migrations run quickly and are easy to understand. From an operational standpoint, CloudFormation's transaction stack changes are slower but more reliable than Terraform's. However, you will be able to fix Terraform errors much faster than CloudFormation migrations. The downside is that it requires some very complicated CI/CD setup if you want Terraform migrations to be safe.

The AWS CDK promises to take advantage of CloudFormation's mature and secure migration orchestration while being easy for developers to use because you can write the implementation in code. The CDK build concept will make your hair pull out the first week, but it will grow back. While the CDK looks promising, I still wouldn't recommend it for enterprise projects. This is for one reason: the maturity of the API and documentation. I am not conservative. There are a lot of alpha/beta level projects that I'm very happy with, I'm not looking for the most stable API in the world, I just need more comprehensive documentation and relevant examples. I recommend checking it outGithub list exampleRegularly and make sure your use case is covered.

CDK has a bright future

Once you get it set up (or rather coded) it's a really nice experience. But at this point, every new AWS service requires at least four times as much effort from us than Terraform. Also, the CDK that we have implemented and faked now may fail in the next few weeks or months. So get ready to update the CDK implementation in the near future!

At the end of the day, using the CDK is promising. Proper programming experience is by far one of the most basic requirements when creating a new project. I'll continue to use the CDK on the few projects I've used now and see what happens in the coming months. I hope to write a "six month experience" blog soon.

I recommend the AWS CDK if you want to start using it.Higher CDK.

Do you want to read more about generics?Serverless development experience in this article.


Why use AWS CDK instead of Terraform? ›

One of the most significant advantages of AWS CDK over Terraform is its ease of use. Since AWS CDK allows developers to write infrastructure as code using familiar programming languages, the learning curve is much less steep than Terraform, which uses its own domain-specific language (DSL).

What is the replacement for serverless framework? ›

Top Alternatives to Serverless
  • AWS Lambda. AWS Lambda is a compute service that runs your code in response to events and. ...
  • Terraform. With Terraform, you describe your complete infrastructure as code, even as it. ...
  • Zappa. ...
  • Kubernetes. ...
  • Azure Functions. ...
  • Google Cloud Functions. ...
  • Cloud Functions for Firebase. ...
  • Effe.

What is the difference between AWS CDK and serverless framework? ›

AWS CDK deploys your CloudFormation template in sequential order; it waits for one template to be complete before it deploys another. In contrast, Serverless Framework deploys CloudFormation templates concurrently, making the deployment process faster.

What is the difference between CDK construct and Terraform module? ›

While Terraform modules can be used to generate a part of infrastructure, constructs can be used to enrich and modify existing resource configurations. This enables authors to codify best practices within constructs, and users of those constructs can be assured that their infrastructure is compliant.

Is Terraform still relevant? ›

Terraform is still a useful tool in the tech space because it offers some specific advantages over its competitors as an infrastructure tool.

What is the AWS equivalent of Terraform? ›

Terraform and CloudFormation are both infrastructure-as-code (IaC) tools. CloudFormation is developed by AWS and only manages AWS resources. Terraform is developed by HashiCorp and can manage resources across a wide range of cloud vendors.

Why not to use Serverless Framework? ›

Security Issues‍ The biggest risk in serverless or using cloud services is poorly configured functions, services, or applications. Bad configuration can lead to multiple issues in your application which can be either security-related or infrastructure-related.

What is the best Serverless Framework? ›

  • 5 Best Serverless Frameworks to watch in 2022. Hiren Dhaduk. ...
  • AWSServerlessExpress. AWSServerlessExpress is a serverless framework that enables you to build robust, high-performance applications on AWS Lambda and API Gateway. ...
  • Claudia JS. Claudia JS is a serverless framework for JavaScript. ...
  • Apex. ...
  • Serverless Framework. ...
  • Zappa.

Why not to choose serverless? ›

At the same time, “serverless” has the following drawbacks: Serverless is not efficient for long-running applications. In certain cases, using long tasks can be much more expensive than, for example, running a workload on a dedicated server or virtual machine. Vendor lock-in.

What is Google equivalent of AWS CDK? ›

Google Cloud Deployment Manager allows you to specify all the resources needed for your application in a declarative format using yaml. On the other hand, AWS Cloud Development Kit is detailed as "A framework for defining cloud infrastructure in code".

Is CloudFormation the same as CDK? ›

The AWS Cloud Development Kit (CDK) provides some of the same benefits of CloudFormation but with a few key differences. The CDK is an infrastructure-as-code solution that you can use with several popular programming languages. In other words, it's like CloudFormation, but using a language you already know.

Does AWS CDK use CloudFormation? ›

AWS CDK is available to define and deploy AWS resources in all public regions. Since AWS CDK leverages the CloudFormation service, refer to Regional Products and Services for details about specific resource availability per AWS Region.

What is the difference between serverless framework and Terraform? ›

Terraform is best suited for managing more persistent shared infrastructure, while Serverless is a good fit to manage the application-specific infrastructure. Check above for the example of sharing information between Terraform and Serverless, and you can find the full example here in the GitHub repo.

How do you use CDK for Terraform? ›

Create an account to track your progress. Set up your CDK for Terraform (CDKTF) environment and run a local Docker demo. Use CDK for Terraform (CDKTF) to write infrastructure as code configurations in TypeScript, Python, Go, C#, or Java. Initialize a new CDKTF project, then provision an EC2 instance on AWS using CDKTF.

What is the difference between CDK and SDK? ›

What is the difference between AWS SDK and AWS CDK? The AWS Software Development Kit (SDK) is a set of libraries that allow you to integrate your application with AWS Services. The AWS Cloud Development Kit (CDK) is a framework that allows you to provision Cloud infrastructure using code.

Can Kubernetes replace Terraform? ›

Since Kubernetes is also highly declarative, Terraform and Kubernetes really complement each other. Terraform can be used to manage Kubernetes infrastructure, helping you to orchestrate your applications and run them at scale.

What is the downside to using Terraform? ›

In reality, Terraform providers might not support the latest features of API. Or even some old features available via API might not be supported by the Terraform provider. For example, Microsoft Azure DevOps API supports kubernetes resources creation, but it is not supported by terraform provider.

What is the weakness of Terraform? ›

2: Terraform doesn't have programming languages for those who use languages like python, java etc. 3:The biggest disadvantage that I feel is that terraform doesn't support importing the code from any other IaaS code platform.

Why use Terraform over CloudFormation? ›

A benefit of Terraform is increased flexibility over CloudFormation with regards to modularity. Terraform modules can be pulled in for any provider supported, or organizations can roll their own.

Which is better Google Cloud deploy or Terraform? ›

If you're only deploying workloads to GCP, Deployment Manager should meet all of your deployment needs. And because it's a built-in Google Cloud tool, it's also easier to use from an authentication perspective. On the other hand, Terraform is a better option when deploying to multiple cloud providers or vendors.

What language is Terraform closest to? ›

The HashiCorp Configuration Language (HCL) is a configuration language authored by HashiCorp. HCL is used with HashiCorp's cloud infrastructure automation tools, such as Terraform. The language was created with the goal of being both human and machine friendly.

Is serverless the future? ›

Serverless is the future. Serverless computing was created to solve the problem of allocating cloud compute resources. Serverless was built to tackle this problem by adding automation that eliminates the need for users to predetermine the amount of compute resources necessary for their workload.

What is the main drawback of serverless? ›

Drawbacks of serverless computing include: Security. You'll hand part of your data to another company that may or may not protect it. Of the 60 percent of companies that don't adopt serverless systems, their leading concerns with the model are security and fear of the unknown.

Is serverless framework is better for hosting Microservices? ›

Is a serverless framework better for hosting microservices? Microservices are the greatest option to choose if a large and complicated application needs to be built, while serverless is the ideal option if cost-effectiveness and rapid deployment are crucial.

Is serverless better than Kubernetes? ›

Because developers can quickly write and deploy code without worrying about managing infrastructure, serverless architecture can offer faster time-to-market. However, Kubernetes may take longer to set up and configure the Kubernetes cluster and containerized applications.

What backend language is best for serverless? ›

I recommend either JavaScript (TypeScript) or Python. The reason I recommend these two languages is that most of the companies that will be using Serverless Architecture will be using one of these two languages.

What is 3 tier architecture in serverless AWS? ›

This three-tier architecture includes the Presentation tier, the Logic tier and the Data tier. Thousands of servers could be used in monolithic architecture to increase the performance of an application. This serverless multi-tier architecture pattern eliminates server management.

Why is EC2 not serverless? ›

With Amazon EC2, you have the ability to start and allocate virtual machines as needed for your application. It provides you with complete control of your computing resources and lets you run on Amazon's computing environments. Unlike Serverless, EC2 requires management and provisioning of the environment.

What are the top 3 advantages in a serverless architecture? ›

What are the advantages of serverless computing?
  • No server management is necessary. ...
  • Developers are only charged for the server space they use, reducing cost. ...
  • Serverless architectures are inherently scalable. ...
  • Quick deployments and updates are possible. ...
  • Code can run closer to the end user, decreasing latency.

When should we not use AWS Lambda? ›

It's not always necessary to use a Lambda function. In some situations, you may have other alternatives that can improve performance. For functions that act as orchestrators, calling other services and functions and coordinating work, this can result in idle time in the function.

Why GCP is cheaper than AWS? ›

Below we provide a few examples of pricing for common instance sizes. AWS has a price advantage for general purpose and memory optimized instances, while Google Cloud is cheaper for compute optimized, but take into account that Google instances provide almost half the quantity of RAM.

Why choose Google over AWS? ›

GCP offers billing on a per-second model which is way more cost-efficient as compared to AWS' per-hour model billing. And not to forget, GCP even offers long-term usage discounts with no upfront costs.

How much is Amazon CDK? ›

There is no charge for using the AWS CDK, but you might incur AWS charges for creating or using AWS chargeable resources. These might include running Amazon EC2 instances or using Amazon S3 storage. Use the AWS Pricing Calculator to estimate charges for the use of various AWS resources.

Why should I use AWS CDK? ›

AWS CDK enables you to define your infrastructure with code and provision it through AWS CloudFormation. You get all the benefits of CloudFormation, including repeatable deployment, easy rollback, and drift detection.

Can I run CDK in Lambda? ›

It's possible. I use lambda container image to daily deploy/destroy test environments.

What is CDK for Terraform? ›

Cloud Development Kit for Terraform (CDKTF) lets you use familiar programming languages to define and provision infrastructure. Cloud Development Kit for Terraform (CDKTF) allows you to use familiar programming languages to define and provision infrastructure.

Does CDK generate CloudFormation templates? ›

The cdk synth generates a perfectly valid AWS CloudFormation template. You could take it and deploy it using the AWS CloudFormation console or another tool.

What is the difference between AWS CDK and AWS CLI? ›

The AWS CDK Toolkit, also known as the Command Line Interface (CLI), is the main tool you use to interact with your AWS CDK app. It executes your code and produces and deploys the AWS CloudFormation templates it generates. It also has deployment, diff, deletion, and troubleshooting capabilities.

What is the equivalent of Terraform in Azure? ›

Two of the most popular tools for Microsoft Azure are Azure Resource Manager (ARM) templates and HashiCorp Terraform. Proprietary offerings like ARM templates allow infrastructure configuration exclusively on their respective cloud providers.

What is the difference between AWS serverless architecture and Microservices? ›

The primary difference is – microservices is a technique to design an application, whereas serverless is the architecture to run the part or complete application. Microservices can be hosted on serverless architecture.

Is serverless better for the environment? ›

Going serverless is considered a sustainable solution to develop applications. This is not a reason to be complacent. You can indeed implement by mistake anti-patterns that will impact negatively your actual resource consumptions. But do not worry, you can take action to improve the sustainability of your application.

Should I use Terraform or CDK? ›

One of the most significant advantages of AWS CDK over Terraform is its ease of use. Since AWS CDK allows developers to write infrastructure as code using familiar programming languages, the learning curve is much less steep than Terraform, which uses its own domain-specific language (DSL).

Why Terraform is better than CDK? ›

Terraform deploys resources using the AWS SDK, whereas the CDK code is first converted to CloudFormation templates and then applied. Terraform would work slightly faster than AWS CDK, particularly because of the time CDK takes to convert code to CloudFormation Template.

What is the difference between CDK Terraform and CDK CloudFormation? ›

CloudFormation is a native AWS service and has deep integration with AWS services. Terraform supports multiple cloud providers, including AWS, Azure, and Google Cloud Platform. CDK is an AWS-native tool and supports all AWS services, with additional support for other cloud providers through the AWS Construct Library.

What is the difference between Amazon CDK and serverless framework? ›

AWS CDK deploys your CloudFormation template in sequential order; it waits for one template to be complete before it deploys another. In contrast, Serverless Framework deploys CloudFormation templates concurrently, making the deployment process faster.

What is the difference between CDK construct and terraform module? ›

While Terraform modules can be used to generate a part of infrastructure, constructs can be used to enrich and modify existing resource configurations. This enables authors to codify best practices within constructs, and users of those constructs can be assured that their infrastructure is compliant.

Why use an SDK instead of an API? ›

APIs are used to communicate between different applications, whilst an SDK is a tool kit to build applications and features. In most cases, an SDK application will contain an API — or even multiple APIs depending on the purpose of the software.

Why use AWS CDK? ›

AWS CDK enables you to define your infrastructure with code and provision it through AWS CloudFormation. You get all the benefits of CloudFormation, including repeatable deployment, easy rollback, and drift detection.

Why is CDK better than CloudFormation? ›

Additionally, the CDK provides a more structured reuse format than CloudFormation. The three-tiered reuse level of components, intents, and patterns means you can build up a library of reusable components and patterns your entire organization can use to build infrastructure and ship applications more quickly.

Does CDK use Terraform? ›

CDK for Terraform leverages concepts and libraries from the AWS Cloud Development Kit to translate your code into infrastructure configuration files for Terraform. At a high level, you will: Create an Application: Use either a built-in or a custom template to scaffold a project in your chosen language.

Why choose CloudFormation over Terraform? ›

If you are looking to provision services on multiple cloud platforms, Terraform is your go-to option. While Terraform supports all cloud vendors like AWS, GCP, Azure, and many others, CloudFormation is confined only to AWS. So, in case your environment involves multiple cloud deployments, Cloudformation is not for you.

What is the point of CDK? ›

The AWS CDK lets you build reliable, scalable, cost-effective applications in the cloud with the considerable expressive power of a programming language.

What is the difference between AWS CDK and AWS SDK? ›

What is the difference between AWS SDK and AWS CDK? The AWS Software Development Kit (SDK) is a set of libraries that allow you to integrate your application with AWS Services. The AWS Cloud Development Kit (CDK) is a framework that allows you to provision Cloud infrastructure using code.

Is CDK infrastructure as code? ›

AWS CDK, which is powered by AWS CloudFormation, enables you to specify your infrastructure in code and deploy it using AWS CloudFormation. You receive all of CloudFormation's advantages, such as repeatable deployment, simple rollback, and drift detection. Use well-known programming languages, tools, and workflows.

What languages are supported by CDK? ›

Q: What programming languages does AWS CDK support? AWS CDK is generally available in JavaScript, TypeScript, Python, Java, C#, and Go (in Developer Preview).

Is pulumi better than Terraform? ›

Terraform will often require you to manipulate state in order to move resources around in your code. Pulumi allows you to use aliases, which means that you do not need to manually modify state in order to move a resource. This can save a lot of time and be very, very productive.

Does Terraform generate CloudFormation? ›

While you can use Terraform to manage CloudFormation stacks, when managing other resources (e.g. EC2 or EKS) it doesn't interact with CF at all and just uses the standard APIs for whatever service you are managing.

Do data engineers use Terraform? ›

Yes! But all of the tools we've previously mentioned have to run somewhere, right? We use Terraform to define our infrastructure as code.

Should I use Terraform or CloudFormation? ›

A benefit of Terraform is increased flexibility over CloudFormation with regards to modularity. Terraform modules can be pulled in for any provider supported, or organizations can roll their own.

Is Terraform the best IaC tool? ›

Terraform. HashiCorp Terraform is the most popular open-source tool for infrastructure automation. It helps in configuring, provisioning, and managing the infrastructure as code. Terraform allows you to easily plan and create IaC across multiple infrastructure providers with the same workflow.

Is Terraform or CloudFormation faster? ›

Scope. CloudFormation covers most parts of AWS and needs some time to support new service capabilities. Terraform covers most AWS resources as well and is often faster than CloudFormation when it comes to supporting new AWS features. On top of that, Terraform supports other cloud providers as well as 3rd party services ...


1. AWS CDK is the Future | AWS CDK now Supports Terraform for Python and Typescript
(Dan Clark)
2. Is AWS Amplify better than the Serverless Framework?
(Complete Coding)
3. Free your dev teams with Terraform and AWS Serverless
(Equal Experts)
4. AWS Cloud Development Kit (CDK) Crash Course
5. Infrastructure as Code with AWS CDK | CDK Introduction | DevOps with CDK | Python | Lambda | SQS
(Beyond The Cloud)
6. MASTER CLASS - SERVERLESS with TERRAFORM ON AWS (everything you need to know)
(FooBar Serverless)


Top Articles
Latest Posts
Article information

Author: Duane Harber

Last Updated: 09/24/2023

Views: 6640

Rating: 4 / 5 (71 voted)

Reviews: 86% of readers found this page helpful

Author information

Name: Duane Harber

Birthday: 1999-10-17

Address: Apt. 404 9899 Magnolia Roads, Port Royceville, ID 78186

Phone: +186911129794335

Job: Human Hospitality Planner

Hobby: Listening to music, Orienteering, Knapping, Dance, Mountain biking, Fishing, Pottery

Introduction: My name is Duane Harber, I am a modern, clever, handsome, fair, agreeable, inexpensive, beautiful person who loves writing and wants to share my knowledge and understanding with you.