Excellent instructional video on terraform. You will need a reasonable understanding of AWS and be tech minded so its not for total novices but none the less an excellent tutorial.
Thank you, Alex! 🎉 When I first started recording, I found that I was spending more time explaining all of the AWS services and configurations than actually teaching terraform! I wanted this course to focus on the terraform specifics so I decided to make some AWS knowledge a prerequisite.
@@DevOpsDirective That is partly why I got the AWS Solution Architect Associate certification as well as having some Linux experience from my job before embarking on learning Terraform. That way I would understand the AWS aspect already and could focus solely on the Terraform bits.
@@DevOpsDirective AFAIK, I almost never worked with AWS but i could totally make abstraction of that in your video, I still get the idea. Thanks for that very good content !
@@DevOpsDirective I've only been in tech for a year and am Azure certified, with no AWS experience -- and this is still very clear and has been super helpful, so thank you. I would still recommend studying programming fundamentals (which I've done) before going for Terraform though
Found out I needed to know Terraform on a Friday for work on Monday. Lucky for me, this is top-tier content that made its way to page 1 of YT search. I really appreciate everything here, your prep, delivery and post-production... and you clearly know your stuff inside and out. Thanks for sharing your knowledge.
Thanks man. This is just what's needed to start with TF. Not too easy, not too complex. Not too long, not too short. Top notch! Appreciate you made it freely available.
This is amazing! I have a strong background in CloudFormation and AWS CDK and I found your explanation super useful it covered almost everything that I needed to know to start using Terraform. Thank you!
thank you very much. As someone who learned terraform on his own from every possible source just for manage aws resource and configs. Thanks to your high quality explanation I can really understand what to do and how from a terraform developer point of view. Thanks
I'm adding to the kudos. Sid deserves extra thumbs-ups and +1s, not just because this was excellent content (as many have said), but hopefully the additional comments and subscribers will help support this fantastic channel. Well done Sid! You covered a ton of content. I especially appreciated the testing part (Part 8), which I'll admit I've not paid a lot of attention to! Anyhow, this session, resembling a master course, should help a lot of newbies (and even intermediaries) who aspire to level-up with TF.
I got very exited after going through your course Sid. It gave me a very decent understanding of Terraform concept, coding approach, clarified many of my questions. It took me from ZERO knowledge in Terraform to becoming a big proponent of using Terraform for creating infrastructure in the cloud. Amazing!!! Thank you very much and god bless you!!! Now I will use your code as reference to practice and utilize the knowledge for my projects.🤟
I would give this 100 thumbs up if I could. This is how a tutorial should be done. You covered all of the bases. The organization piece of this alone sets it apart from the many others I have seen. Subscribed!
i'm watching this in June 2024 because I am unemployed and trying to upskill. A lot of this is over my head but i managed to push through the entire 2.5 hrs because I'm forcing myself...i don't enjoy this, but i know i need to learn this lol.
subscribed within watching first 15 mins of this video. explanation is crisp covering fundas along with practical example. Sid you deserve a big kudos..thank you
Just completed the course you are amazing sir you covered everything and taught in very entertaining manner with all those pictures to create a mindmap of whats actually happening, Now moving on to your kubernetes and docker crash courses, Sir keep teaching like this🐐
Excellent, well-rounded course. From time to time the speaker talks about best practices and options one can take, given the enterprise scenarios he/she is in. Very nice.
For us, the best way we test our terraform code is to do a deploy and run some smoke tests against the environment or manually poke around. It takes way too long to tear down and spin up our environments, so we basically just do a deploy against dev or test and run smoke tests against that environment to verify the key resources are still working. Lots of good info in this course, a lot of it I already know, but it’s good to make sure I’m not missing anything critical. This is the first time hearing about workspaces and sensitive variables (although I don’t think we have secrets passwords for anything or api keys). Watching this pointed out we should probably encrypt our remote state bucket since I don’t think we do that.
I dont know how to thank you sir... the way you teach should a template on how to teach on youtube: clear, straight to the point. before I started the video, I knew nothing about Terraform and I had little experience in aws. But only after 30 mins, I already know what to the tool does basically (moving us from " aws clickalicious" to a well defined, documented and versioned description of our infra in the cloud ). You are really helping my understanding and demystifying a bunch of stuff not only in terraform but on the devops space generally, in an effective way
the course is deep and cover a lot , i suggest to have an example after each concepts , and also have an overview of each function , before digging into it . we all need to see the map before taking the road, for example, if we can build a single real life project story along the course , from A to Z like storytelling . Story telling is a powerful way to link all concepts and things together to remember the Whole story , the Why , WHAT , HOW , WHERE , WHEN , for Who of each project . thanks for this great course
I was introduced to terraform just for a bit and saw how powerful it is. I'm just starting azure and wish I could find a detailed tutorial for terraform on the azure platform.. this is a really great tutorial
Thank you for the amazing video! I'm a machine learning engineer with prior knowledge on developing ML models and wanted to learn more about how I can provision and manage infrastructure in the cloud to deploy my models seamlessly. This video not only helped me understand the fundamentals of Terraform but also use the concepts learned to deploy a webapp like in a real-world scenario. I especially loved the final part on integrating github actions with terraform for CI/CD and how all the pieces fit together from a DevOps engineer perspective. Thanks again for your time and effort in making this :)
It is funny how I am coming back to "basics" from time to time. I have been using TF for 2 years professionally now (learning and doing projects for clients at same time) but still got bunch of new info about basic things. Very nice tutorial with a lot of info in short period of time.
Yeah, sometimes it is nice to take a step back and review the fundamentals. It is easy to develop a set of fixed patters (which work great!) and forget there could be other ways to acheive the same result!
This is a very good course Sid, One of the best I've come across on terraform, I've incorporated this into my study. I like how you break down complex terminologies and concepts and make it easy to understand. I've just blitzed through and I'm on the 1 hour mark. Thank you Sid. Subbed.
Extremely well explained. love how you applied it to a real world example and how Terraform works with a CI/CD pipeline with all the environments. was able to understand it all without even coding along. Thank you.
Wonderful Explanation of theory with Practical use cases.Not only explains terraform ,but also the related technologies and real time working tools. best video i have seen so far.
Excellent tutorial. I'm new to Terraform and I was struggling with some concepts and best practices at my new job. This gave me the knowledge and confidence to make decisions at work.
🎯 Key points for quick navigation: 00:00 *📚 Introduction to Terraform Course* - Overview of course structure and objectives. - Designed for those familiar with programming and AWS. 00:55 *🔧 Understanding Terraform* - Definition and purpose of Terraform as an infrastructure as code tool. - Enables safe and efficient management of infrastructure via configuration files. 04:18 *☁️ Evolution of Cloud Infrastructure* - Comparison of historical and modern approaches to infrastructure management. - Transition from owning physical servers to cloud provisioning. 08:30 *📜 Approaches to Cloud Resource Provisioning* - Overview of three primary methods for provisioning cloud resources. - Direct interaction through cloud provider consoles, APIs, and infrastructure as code. 12:59 *🛠️ Types of Infrastructure as Code Tools* - Breakdown of different categories of infrastructure as code tools. - Includes ad hoc scripts, configuration management, server templating, orchestration, and provisioning tools. 14:36 *🌐 Cloud-Specific vs. Cloud-Agnostic Tools* - Differentiates between cloud-specific and cloud-agnostic infrastructure tools. - Cloud-specific tools are limited to single cloud providers. 19:04 *⚙️ Terraform Architecture Overview* - Explanation of Terraform's core architecture and provider ecosystem. - Core engine manages configurations and state, with plugins for cloud interactions. 20:11 *🚀 Getting Started with Terraform* - Steps to install and authenticate Terraform with AWS. - Demonstrates installation methods, including using package managers. 22:48 *🔑 AWS Configuration and Terraform Initialization* - Steps to configure AWS credentials and initialize Terraform. - Run `aws configure` to set up access key, secret key, and region. 26:11 *⚙️ Terraform Commands Overview* - Introduction to key Terraform commands for managing infrastructure. - Use `terraform plan` to compare desired configuration with the current state. 29:14 *🌐 Terraform Architecture and Provider Management* - Overview of Terraform's architecture and provider management. - Terraform core parses configurations and manages state files. 33:00 *📂 Understanding Terraform State Files* - Explanation of Terraform's state file and its significance. - State files store metadata about resources deployed using Terraform. 40:10 *🔄 Remote Backend Configuration Options* - Discussion of remote backend options for managing Terraform state. - Terraform Cloud provides a managed service for state storage, ideal for collaboration. 45:08 *🌍 Building Infrastructure with Terraform* - Overview of constructing a Terraform configuration for AWS resources. - Walkthrough of various AWS resources included in the architecture. 45:50 *🏗️ Remote Backend and Resource Definition* - Setting up a remote backend using S3 and DynamoDB for state management. - Configuring Terraform to use a remote backend for state storage and locking. 50:05 *⚙️ Load Balancer and Route 53 Configuration* - Configuring a load balancer to distribute traffic between EC2 instances. - Setting up a load balancer to listen on port 80 and forward requests to EC2 instances. 54:15 *✅ Provisioning Resources and DNS Setup* - Provisioning all defined resources in AWS and verifying their status. - Monitoring the creation of EC2 instances, load balancers, and DNS records. 58:08 *🛠️ Resource Cleanup and Future Improvements* - Cleaning up provisioned resources to avoid unexpected charges. - Highlighting the importance of resource management and cost control. 59:50 *📊 Understanding Terraform Variables and Outputs* - Introduction to Terraform variable types and their applications. - Discussing input, local, and output variables for dynamic configuration. 01:07:53 *🔑 Applying Variables in Terraform Configurations* - Practical examples of implementing variables in a Terraform configuration. - Defining variables for EC2 and database instances to make configurations reusable. 01:08:47 *🔒 Handling Sensitive Data in Terraform* - Emphasizing the importance of managing sensitive data securely in Terraform configurations. - Using variables to avoid hardcoding sensitive information like passwords. 01:11:01 *🔧 Advanced Terraform Features and Language Constructs* - Introduction to advanced features and functions available in Terraform's configuration language. - Using expressions, operators, and conditionals to create dynamic configurations. 01:18:10 *🛠️ Utilizing Provisioners in Terraform* - Overview of provisioners and their role in executing actions during resource provisioning. - Different types of provisioners (file, local exec, remote exec) for various tasks. 01:19:51 *📁 Organizing Terraform Projects with Modules* - Explanation of modules and their significance for reusable Terraform configurations. - Structuring modules for better organization and abstraction in complex projects. 01:25:49 *📚 Best Practices for Creating Terraform Modules* - Discussing best practices for designing effective and reusable Terraform modules. - Importance of logical grouping of resources and providing useful defaults. 01:28:26 *🌐 Leveraging Third-Party Modules for Efficient Deployment* - Demonstrating how to consume third-party modules from the Terraform Registry. - Using a third-party console module to simplify complex network setups. 01:31:12 *⚙️ Modularizing the Web Application Configuration* - Transforming the web application configuration into a more modular structure. - Breaking down the architecture into separate modules for compute, storage, and networking. 01:31:41 *🗂️ Modularizing Terraform Configuration* - Transforming the Terraform configuration for better organization and reuse by breaking it into modules. - Defining separate `.tf` files for specific resources to improve clarity and maintainability. 01:35:51 *🚀 Provisioning Multiple Instances* - Demonstrating the provisioning of two copies of the web application in AWS with the new modular approach. - Provisioning multiple EC2 instances, databases, and load balancers through module reuse. 01:36:18 *🌍 Managing Multiple Environments in Terraform* - Discussing strategies for managing multiple environments (production, staging, development) within Terraform. - Introducing Terraform workspaces as a method for handling multiple configurations in a single backend. 01:40:04 *🔍 Pros and Cons of Using Workspaces vs. Directory Structure* - Evaluating the advantages and disadvantages of Terraform workspaces compared to subdirectory organization. - Workspaces facilitate easy management and minimize code duplication but can lead to confusion regarding the active workspace. 01:42:24 *📂 Organizing Terraform Configurations for Clarity* - Suggesting best practices for organizing Terraform configurations as complexity grows. - Encouraging logical grouping of resources to simplify management and updates. 01:55:24 *🛠️ Automating Environment Management with Terraform* - Demonstrating the implementation of different environment management approaches in Terraform. - Showcasing the creation of global, production, and staging directories for organized infrastructure management. 01:55:53 *🔄 Managing Multiple Environments* - Discussing the importance of managing multiple environments effectively within Terraform configurations. - Analyzing trade-offs in managing environments and choosing the best strategy for projects. 01:56:19 *🧪 Testing Infrastructure Code* - Explaining how testing principles from software development apply to infrastructure code management. - Identifying potential issues that lead to code rot, such as out-of-band changes and unpinned versions. 02:02:19 *🛠️ Automating Infrastructure Testing* - Demonstrating the use of automated testing frameworks like Terratest for robust infrastructure testing. - Showcasing how to write tests in Go to validate infrastructure deployment effectively. - Outlining a recommended workflow for developers using Terraform in version control environments. - Describing the process of writing, testing, and merging Terraform configurations through pull requests. 02:16:05 *🔒 Managing Multiple AWS Accounts* - Discussing the advantages of using multiple AWS accounts for different environments (production, staging, development). 02:17:43 *🔑 Multi-Account and Project Setups* - Emphasizing the benefits of using multi-account or multi-project setups in Terraform for enhanced security. 02:20:30 *⚠️ Common Gotchas in Terraform* - Identifying potential pitfalls in Terraform usage that could lead to unintended consequences. 02:25:16 *🔄 Automating Terraform Workflows with GitHub Actions* - Walking through the implementation of automated workflows for Terraform using GitHub Actions. 02:30:00 *🚀 Workflow Execution and Testing* - Demonstrating the execution of workflows triggered by code changes in GitHub. 02:35:24 *🌐 Final Validation of Deployments* - Concluding the course with a verification of the successful deployment of web applications in both staging and production environments. Made with HARPA AI
Short and sweet. Thanks for getting up to speed pretty quickly. This is ideal for those who has AWS cloud, data and programming background. Thanks for your generosity.
Wow. That is the reaction. Thanks for the clear and wonderful videos. Excellent work. In my humble opinion, this is the best available video for Terraform out there.
The best, in more than a year or so of my journey, to learn and understand the workings of Terraform, I found this is the best course. I have gone thru quite a few Coursera courses, and also became a member of acloudguru to learn everything related to cloud and terraform at one place, but it is disappointing so far. It seems, you not only know the Terraform, but how to drive from top to bottom, how terraform works, and then going into the details, awesome course. Would like to know what else you teach e.g.: aws cloud etc...
Thank you, Vikram! I appreciate the compliment! I don't have any other full courses out (yet) but will be making a lot more content in the kubernetes and cloud native space soon! 🚀
The content and presentation is awesome. Learning best practices along was great. This is the second video I am watching on terraform. I got answers to most of the questions I had.Thank you.
@@DevOpsDirective I'd have no chance, I'm a complete noob with TF and IaC atm! Would you say that vendor lock-in is reduced by using Terraform? Say, moving to a different cloud, I imagine it wouldn't be a simple lift-and-shift.
@@midzdotdev to change clouds with terraform you would still need to rewrite your modules since the resources are not identical, but any systems and tooling you have built up for terraform would be reuse-able so it reduces lock in a bit, but not entirely
You are a gentleman and a scholar, sir. Thank you for sharing this comprehensive and well-thought-out resource for the community. So much learning; so little time!
Extremely useful course, taught very nicely. Well done! and thank you! Apparently you worked several for months to make this two hour course. That was a lot of effort and I can see that. Well done and thank you again!
Thanks! What gave it away? The outdated TF version in some of my visuals or my long Git commit history? 😅 I created the visuals + wrote the code in early 2021, but never could get over the hump of recording/editing until many months later!
@@DevOpsDirective I have been creating similar content since 2006, and happen to have an eye for the details! :) Very well done with this course again!
Terraform is great. The fact that it's declarative and has excellent documentation for all the various providers means that it's very easy to pick up, and to me it never becomes actual "programming". The declarative part and not having to structure things too rigidly means you can just get on with things, without wasting time on syntax and making your files pretty.
Making Terraform code pretty is important too! This is especially true because refactoring is tricky and can cause resources to be deleted/redeployed so getting things into a reasonable structure to start with is quite important!
@DevOpsDirective something I reflected on (since I am just starting out) - how would you typically deal with situations where you may want to tear down provisioned infrastructure, but avoid to also tear down the terraform state backend in the process. E.g. when I ran the destroy command it also took down my S3 bucket and DynamoDB table for lock handling?
Thank you so much for sharing your knowledge with us, I learnt a lot and understood easily. You are a great professor! The video edition was on point, subtle and beautiful. Cheers from Colombia
I'm having such a hard time understanding values, Variables and Outputs. I'm new on it what you recommend me to watch to understand those terms.?? i really dont whant to quit my DevOps journeys but is so frustrating I learn Dockers, Kubernetes, bitbucket, Jenkins, SonarQube, jFrog, AWS, but is being so challenging for me to makes those terms make sense.
Thanks for this video, I will be using this to prepare for Interviews and further build my own skills as a developer. Been looking for something to help me tackle AWS too
Hey Sid! Thank you so much for the wonderful session on Terraform. I really appreciate it. It's really helpful for the newbies like me to gain good knowledge on Terraform. Thanks again!!
Thanks great course. You seems inclined towards separate graduality for staging , prod , dev. How to ensure they are almost same env, especially staging & production
Hi I was not able to use the tree command that you used at 32:00 for viewing the directories. Is there an extension I am missing? I am using Terraform v1.5.3 on VisualStudioCode.
Sid, I really appreciate this course. One thing to note, I did not have any VPC's created. I had to run "aws ec2 create-default-vpc" to have a network available for module 2. I was receiving "Error launching source instance: VPCIdNotSpecified: No default VPC for this user....." Thanks for putting this together.
Thank you for pointing this out! I wonder if for my account I had created an EC2 instance from the GUI at some point and that auto created a default VPC behind the scenes or something!
Excellent instructional video on terraform. You will need a reasonable understanding of AWS and be tech minded so its not for total novices but none the less an excellent tutorial.
Thank you, Alex! 🎉
When I first started recording, I found that I was spending more time explaining all of the AWS services and configurations than actually teaching terraform! I wanted this course to focus on the terraform specifics so I decided to make some AWS knowledge a prerequisite.
@@DevOpsDirective That is partly why I got the AWS Solution Architect Associate certification as well as having some Linux experience from my job before embarking on learning Terraform. That way I would understand the AWS aspect already and could focus solely on the Terraform bits.
@@DevOpsDirective AFAIK, I almost never worked with AWS but i could totally make abstraction of that in your video, I still get the idea.
Thanks for that very good content !
@@DevOpsDirective I've only been in tech for a year and am Azure certified, with no AWS experience -- and this is still very clear and has been super helpful, so thank you. I would still recommend studying programming fundamentals (which I've done) before going for Terraform though
Another prerequisite is Linux
Found out I needed to know Terraform on a Friday for work on Monday. Lucky for me, this is top-tier content that made its way to page 1 of YT search. I really appreciate everything here, your prep, delivery and post-production... and you clearly know your stuff inside and out. Thanks for sharing your knowledge.
How did things go on Monday? 😀
lol this is such a refreshing comment. hope things went well for you tho! 😂
I'm still waiting to hear how it went. lol
@@SuperRachness I think he's in finance now...
@@brianheisler9117 💯
Thanks man. This is just what's needed to start with TF. Not too easy, not too complex. Not too long, not too short. Top notch! Appreciate you made it freely available.
You’re welcome, Viktor!
Just amazing to see someone working so hard to help understand these concepts. Keep up the good work😊
This is amazing!
I have a strong background in CloudFormation and AWS CDK and I found your explanation super useful it covered almost everything that I needed to know to start using Terraform. Thank you!
thank you very much. As someone who learned terraform on his own from every possible source just for manage aws resource and configs. Thanks to your high quality explanation I can really understand what to do and how from a terraform developer point of view.
Thanks
I'm adding to the kudos. Sid deserves extra thumbs-ups and +1s, not just because this was excellent content (as many have said), but hopefully the additional comments and subscribers will help support this fantastic channel.
Well done Sid! You covered a ton of content. I especially appreciated the testing part (Part 8), which I'll admit I've not paid a lot of attention to!
Anyhow, this session, resembling a master course, should help a lot of newbies (and even intermediaries) who aspire to level-up with TF.
This crash course has truly speeded up my Terraform learning curve and got me ready for real. I appreciated you vey much...
I got very exited after going through your course Sid. It gave me a very decent understanding of Terraform concept, coding approach, clarified many of my questions. It took me from ZERO knowledge in Terraform to becoming a big proponent of using Terraform for creating infrastructure in the cloud. Amazing!!! Thank you very much and god bless you!!! Now I will use your code as reference to practice and utilize the knowledge for my projects.🤟
I would give this 100 thumbs up if I could. This is how a tutorial should be done. You covered all of the bases. The organization piece of this alone sets it apart from the many others I have seen. Subscribed!
Ah, thank you so much! I love hearing when my teaching style and efforts are working! 🙏
i'm watching this in June 2024 because I am unemployed and trying to upskill. A lot of this is over my head but i managed to push through the entire 2.5 hrs because I'm forcing myself...i don't enjoy this, but i know i need to learn this lol.
Watch it over, then learn about VMware virtual machines, linux, AWS Certified Practitioner
subscribed within watching first 15 mins of this video. explanation is crisp covering fundas along with practical example. Sid you deserve a big kudos..thank you
Thanks, Prasad!
Just completed the course you are amazing sir you covered everything and taught in very entertaining manner with all those pictures to create a mindmap of whats actually happening, Now moving on to your kubernetes and docker crash courses, Sir keep teaching like this🐐
Excellent, well-rounded course. From time to time the speaker talks about best practices and options one can take, given the enterprise scenarios he/she is in. Very nice.
One of the best Terraform guides out there, Kudos to such video... looking forward to more DEVOPS discussions and videos.
Thank you, @krishna!
For us, the best way we test our terraform code is to do a deploy and run some smoke tests against the environment or manually poke around. It takes way too long to tear down and spin up our environments, so we basically just do a deploy against dev or test and run smoke tests against that environment to verify the key resources are still working. Lots of good info in this course, a lot of it I already know, but it’s good to make sure I’m not missing anything critical. This is the first time hearing about workspaces and sensitive variables (although I don’t think we have secrets passwords for anything or api keys). Watching this pointed out we should probably encrypt our remote state bucket since I don’t think we do that.
Nice -- I'm glad you were still able to learn some new things even though you have been using TF for a while!
@@DevOpsDirective Dude, my brother, You're AWESOME!!!!
This tutorial really helps me understand more on Terraform... just want to thank you for making this excellent video Sid! Mabuhay!🙌🙌🙌
I dont know how to thank you sir... the way you teach should a template on how to teach on youtube: clear, straight to the point. before I started the video, I knew nothing about Terraform and I had little experience in aws. But only after 30 mins, I already know what to the tool does basically (moving us from " aws clickalicious" to a well defined, documented and versioned description of our infra in the cloud ). You are really helping my understanding and demystifying a bunch of stuff not only in terraform but on the devops space generally, in an effective way
the course is deep and cover a lot , i suggest to have an example after each concepts , and also have an overview of each function , before digging into it . we all need to see the map before taking the road, for example, if we can build a single real life project story along the course , from A to Z like storytelling . Story telling is a powerful way to link all concepts and things together to remember the Whole story , the Why , WHAT , HOW , WHERE , WHEN , for Who of each project .
thanks for this great course
I was introduced to terraform just for a bit and saw how powerful it is. I'm just starting azure and wish I could find a detailed tutorial for terraform on the azure platform.. this is a really great tutorial
Thank you for the amazing video! I'm a machine learning engineer with prior knowledge on developing ML models and wanted to learn more about how I can provision and manage infrastructure in the cloud to deploy my models seamlessly. This video not only helped me understand the fundamentals of Terraform but also use the concepts learned to deploy a webapp like in a real-world scenario. I especially loved the final part on integrating github actions with terraform for CI/CD and how all the pieces fit together from a DevOps engineer perspective. Thanks again for your time and effort in making this :)
It is funny how I am coming back to "basics" from time to time. I have been using TF for 2 years professionally now (learning and doing projects for clients at same time) but still got bunch of new info about basic things. Very nice tutorial with a lot of info in short period of time.
Yeah, sometimes it is nice to take a step back and review the fundamentals. It is easy to develop a set of fixed patters (which work great!) and forget there could be other ways to acheive the same result!
This is a very good course Sid, One of the best I've come across on terraform, I've incorporated this into my study. I like how you break down complex terminologies and concepts and make it easy to understand. I've just blitzed through and I'm on the 1 hour mark. Thank you Sid. Subbed.
Thank you, Kevin! It makes me happy to hear it is up there among the best! 🎉
@@DevOpsDirectivebb😊0bb😊0000bb
@@DevOpsDirectiveb0😊0b 1:39 b0
Extremely well explained. love how you applied it to a real world example and how Terraform works with a CI/CD pipeline with all the environments. was able to understand it all without even coding along. Thank you.
This course was perfect, thanks a lot for not talking a bunch of AWS specifics but focusing on the subject at hand. 🙏🏻🙏🏻
This is the best video to learn terraform on UA-cam, period….
Mission accomplished! Thanks, Prakash 🎉
Best video with real world demo, and with Native American English speaker.
Thank you. This course helps me to learn Terraform in hours. I wrote couple terraform modules right after to deploy AWS recourses.
Wonderful Explanation of theory with Practical use cases.Not only explains terraform ,but also the related technologies and real time working tools. best video i have seen so far.
Appreciate it, Rammohan! 🙏
I LOVE devops. I truly miss my sys admin days. I love the community, the people and the tech. I would do anything to get back in!
Watching this in June 2024. The best tutorial I've found
Same.....
Wow, this is the best video tutorial i ever had. Thank you very much for creating this course to share to everyone!!!
Excellent tutorial. I'm new to Terraform and I was struggling with some concepts and best practices at my new job. This gave me the knowledge and confidence to make decisions at work.
So yesterday i have started to learn terraform and today you are uploading a whole course about it!
Thank you, thank you, thank you!
What fortunate timing! I hope it helps in your learning journey!
Very good! Short, clear, comprehensive. You're good. Definitely subscribed!
🎯 Key points for quick navigation:
00:00 *📚 Introduction to Terraform Course*
- Overview of course structure and objectives.
- Designed for those familiar with programming and AWS.
00:55 *🔧 Understanding Terraform*
- Definition and purpose of Terraform as an infrastructure as code tool.
- Enables safe and efficient management of infrastructure via configuration files.
04:18 *☁️ Evolution of Cloud Infrastructure*
- Comparison of historical and modern approaches to infrastructure management.
- Transition from owning physical servers to cloud provisioning.
08:30 *📜 Approaches to Cloud Resource Provisioning*
- Overview of three primary methods for provisioning cloud resources.
- Direct interaction through cloud provider consoles, APIs, and infrastructure as code.
12:59 *🛠️ Types of Infrastructure as Code Tools*
- Breakdown of different categories of infrastructure as code tools.
- Includes ad hoc scripts, configuration management, server templating, orchestration, and provisioning tools.
14:36 *🌐 Cloud-Specific vs. Cloud-Agnostic Tools*
- Differentiates between cloud-specific and cloud-agnostic infrastructure tools.
- Cloud-specific tools are limited to single cloud providers.
19:04 *⚙️ Terraform Architecture Overview*
- Explanation of Terraform's core architecture and provider ecosystem.
- Core engine manages configurations and state, with plugins for cloud interactions.
20:11 *🚀 Getting Started with Terraform*
- Steps to install and authenticate Terraform with AWS.
- Demonstrates installation methods, including using package managers.
22:48 *🔑 AWS Configuration and Terraform Initialization*
- Steps to configure AWS credentials and initialize Terraform.
- Run `aws configure` to set up access key, secret key, and region.
26:11 *⚙️ Terraform Commands Overview*
- Introduction to key Terraform commands for managing infrastructure.
- Use `terraform plan` to compare desired configuration with the current state.
29:14 *🌐 Terraform Architecture and Provider Management*
- Overview of Terraform's architecture and provider management.
- Terraform core parses configurations and manages state files.
33:00 *📂 Understanding Terraform State Files*
- Explanation of Terraform's state file and its significance.
- State files store metadata about resources deployed using Terraform.
40:10 *🔄 Remote Backend Configuration Options*
- Discussion of remote backend options for managing Terraform state.
- Terraform Cloud provides a managed service for state storage, ideal for collaboration.
45:08 *🌍 Building Infrastructure with Terraform*
- Overview of constructing a Terraform configuration for AWS resources.
- Walkthrough of various AWS resources included in the architecture.
45:50 *🏗️ Remote Backend and Resource Definition*
- Setting up a remote backend using S3 and DynamoDB for state management.
- Configuring Terraform to use a remote backend for state storage and locking.
50:05 *⚙️ Load Balancer and Route 53 Configuration*
- Configuring a load balancer to distribute traffic between EC2 instances.
- Setting up a load balancer to listen on port 80 and forward requests to EC2 instances.
54:15 *✅ Provisioning Resources and DNS Setup*
- Provisioning all defined resources in AWS and verifying their status.
- Monitoring the creation of EC2 instances, load balancers, and DNS records.
58:08 *🛠️ Resource Cleanup and Future Improvements*
- Cleaning up provisioned resources to avoid unexpected charges.
- Highlighting the importance of resource management and cost control.
59:50 *📊 Understanding Terraform Variables and Outputs*
- Introduction to Terraform variable types and their applications.
- Discussing input, local, and output variables for dynamic configuration.
01:07:53 *🔑 Applying Variables in Terraform Configurations*
- Practical examples of implementing variables in a Terraform configuration.
- Defining variables for EC2 and database instances to make configurations reusable.
01:08:47 *🔒 Handling Sensitive Data in Terraform*
- Emphasizing the importance of managing sensitive data securely in Terraform configurations.
- Using variables to avoid hardcoding sensitive information like passwords.
01:11:01 *🔧 Advanced Terraform Features and Language Constructs*
- Introduction to advanced features and functions available in Terraform's configuration language.
- Using expressions, operators, and conditionals to create dynamic configurations.
01:18:10 *🛠️ Utilizing Provisioners in Terraform*
- Overview of provisioners and their role in executing actions during resource provisioning.
- Different types of provisioners (file, local exec, remote exec) for various tasks.
01:19:51 *📁 Organizing Terraform Projects with Modules*
- Explanation of modules and their significance for reusable Terraform configurations.
- Structuring modules for better organization and abstraction in complex projects.
01:25:49 *📚 Best Practices for Creating Terraform Modules*
- Discussing best practices for designing effective and reusable Terraform modules.
- Importance of logical grouping of resources and providing useful defaults.
01:28:26 *🌐 Leveraging Third-Party Modules for Efficient Deployment*
- Demonstrating how to consume third-party modules from the Terraform Registry.
- Using a third-party console module to simplify complex network setups.
01:31:12 *⚙️ Modularizing the Web Application Configuration*
- Transforming the web application configuration into a more modular structure.
- Breaking down the architecture into separate modules for compute, storage, and networking.
01:31:41 *🗂️ Modularizing Terraform Configuration*
- Transforming the Terraform configuration for better organization and reuse by breaking it into modules.
- Defining separate `.tf` files for specific resources to improve clarity and maintainability.
01:35:51 *🚀 Provisioning Multiple Instances*
- Demonstrating the provisioning of two copies of the web application in AWS with the new modular approach.
- Provisioning multiple EC2 instances, databases, and load balancers through module reuse.
01:36:18 *🌍 Managing Multiple Environments in Terraform*
- Discussing strategies for managing multiple environments (production, staging, development) within Terraform.
- Introducing Terraform workspaces as a method for handling multiple configurations in a single backend.
01:40:04 *🔍 Pros and Cons of Using Workspaces vs. Directory Structure*
- Evaluating the advantages and disadvantages of Terraform workspaces compared to subdirectory organization.
- Workspaces facilitate easy management and minimize code duplication but can lead to confusion regarding the active workspace.
01:42:24 *📂 Organizing Terraform Configurations for Clarity*
- Suggesting best practices for organizing Terraform configurations as complexity grows.
- Encouraging logical grouping of resources to simplify management and updates.
01:55:24 *🛠️ Automating Environment Management with Terraform*
- Demonstrating the implementation of different environment management approaches in Terraform.
- Showcasing the creation of global, production, and staging directories for organized infrastructure management.
01:55:53 *🔄 Managing Multiple Environments*
- Discussing the importance of managing multiple environments effectively within Terraform configurations.
- Analyzing trade-offs in managing environments and choosing the best strategy for projects.
01:56:19 *🧪 Testing Infrastructure Code*
- Explaining how testing principles from software development apply to infrastructure code management.
- Identifying potential issues that lead to code rot, such as out-of-band changes and unpinned versions.
02:02:19 *🛠️ Automating Infrastructure Testing*
- Demonstrating the use of automated testing frameworks like Terratest for robust infrastructure testing.
- Showcasing how to write tests in Go to validate infrastructure deployment effectively.
- Outlining a recommended workflow for developers using Terraform in version control environments.
- Describing the process of writing, testing, and merging Terraform configurations through pull requests.
02:16:05 *🔒 Managing Multiple AWS Accounts*
- Discussing the advantages of using multiple AWS accounts for different environments (production, staging, development).
02:17:43 *🔑 Multi-Account and Project Setups*
- Emphasizing the benefits of using multi-account or multi-project setups in Terraform for enhanced security.
02:20:30 *⚠️ Common Gotchas in Terraform*
- Identifying potential pitfalls in Terraform usage that could lead to unintended consequences.
02:25:16 *🔄 Automating Terraform Workflows with GitHub Actions*
- Walking through the implementation of automated workflows for Terraform using GitHub Actions.
02:30:00 *🚀 Workflow Execution and Testing*
- Demonstrating the execution of workflows triggered by code changes in GitHub.
02:35:24 *🌐 Final Validation of Deployments*
- Concluding the course with a verification of the successful deployment of web applications in both staging and production environments.
Made with HARPA AI
Excellent course. Great depth and pace - the best TF tutorial video I've seen, and I've seen alot of them because I'm old.
You really know your stuff tbh, explaining things before doing the hands on? Excellent. Cheers man
I am doing a pitch for Course of Cloud Engineering in my University, and this video is a top learning source, my deepest regards to you!
Nice! I hope the pitch went well!
I like how your beard also gets a destroy and apply throughout the series
Haha, I didn't think of that 😀
Init -> plan -> apply -> destroy
Hahah
Comment of the year.
Lol
Awesome video - love how he explained everything from very basic to slowly building an enterprise grade provisioning solution 👌
Thank for posting this video after reading the book and making it short and concise for us appreciate your efforts
Short and sweet. Thanks for getting up to speed pretty quickly. This is ideal for those who has AWS cloud, data and programming background.
Thanks for your generosity.
🚀🚀🚀
Wow. That is the reaction. Thanks for the clear and wonderful videos. Excellent work. In my humble opinion, this is the best available video for Terraform out there.
I'm starting to work with terraform at my company. Thanks for this awesome course sir.
You are welcome, Higor!
very comprehensive, really from beginner to hero. thanks for sharing your knowledge.
I’m glad it lived up to the title!
Well explained, anyone who would like to start using Terraform, Sid is your guy. thanks mate!
🔥🔥🔥
The best, in more than a year or so of my journey, to learn and understand the workings of Terraform, I found this is the best course. I have gone thru quite a few Coursera courses, and also became a member of acloudguru to learn everything related to cloud and terraform at one place, but it is disappointing so far. It seems, you not only know the Terraform, but how to drive from top to bottom, how terraform works, and then going into the details, awesome course. Would like to know what else you teach e.g.: aws cloud etc...
Thank you, Vikram! I appreciate the compliment!
I don't have any other full courses out (yet) but will be making a lot more content in the kubernetes and cloud native space soon! 🚀
Thank you! That's a brilliant course! The best one I've found for Terraform
Excellent tutorial .. as a thank you I watched all the ads(15 sec ones) that youtube showed
You are an excellet teacher and this is an amazing video on Terraform. Thank you so much for posting this video.
It's comforting to see someone else typing "terrfrom" instead of "terraform", so it's not just me!
The content and presentation is awesome. Learning best practices along was great. This is the second video I am watching on terraform. I got answers to most of the questions I had.Thank you.
Thank you for this video, after going through many videos on Terraform came across this one, and totally worth the time!!
I'm glad it was helpful, Varsha! 🎉
Hi Varsha..new to terraform. Want to discuss on this topic
Let me know if ur interested. We can connect
Its true as video title says BEGINNER to PRO, thanks for sharing!!!
This is a great video, your explanation is clear & easy to understand. Thanks!
Really appreciate how you take your time to relay the information! Everybody else goes on 0.75x speed otherwise it's information overload xD
Haha, I watch pretty much all UA-cam videos at 1.75x 🙈
@@DevOpsDirective I'd have no chance, I'm a complete noob with TF and IaC atm!
Would you say that vendor lock-in is reduced by using Terraform? Say, moving to a different cloud, I imagine it wouldn't be a simple lift-and-shift.
@@midzdotdev to change clouds with terraform you would still need to rewrite your modules since the resources are not identical, but any systems and tooling you have built up for terraform would be reuse-able so it reduces lock in a bit, but not entirely
Excellent course that focuses on essentials in an easily understandable way.
Very professional and objectively well explained!
You are a gentleman and a scholar, sir. Thank you for sharing this comprehensive and well-thought-out resource for the community. So much learning; so little time!
I'm glad you found the course helpful! I'm hoping to make a similar one on kubernetes when I have time!
@@DevOpsDirective could you compile a playlist of your Terraform content?
Thanks for simple and comprehensive course, it is great, really enjoyed it a lot
very neat and covered almost all the topics.! Thank you
Extremely useful course, taught very nicely. Well done! and thank you! Apparently you worked several for months to make this two hour course. That was a lot of effort and I can see that. Well done and thank you again!
Thanks!
What gave it away? The outdated TF version in some of my visuals or my long Git commit history? 😅
I created the visuals + wrote the code in early 2021, but never could get over the hump of recording/editing until many months later!
@@DevOpsDirective I have been creating similar content since 2006, and happen to have an eye for the details! :) Very well done with this course again!
Great class! Thank you! I especially love the beard appearing and disappearing through out the video :)
Thanks! 🧔♂️
Terraform is great. The fact that it's declarative and has excellent documentation for all the various providers means that it's very easy to pick up, and to me it never becomes actual "programming".
The declarative part and not having to structure things too rigidly means you can just get on with things, without wasting time on syntax and making your files pretty.
Making Terraform code pretty is important too!
This is especially true because refactoring is tricky and can cause resources to be deleted/redeployed so getting things into a reasonable structure to start with is quite important!
Finally, someone give me a Big Picture of IaaS. Thanks, A Lot!!
No problem, Ricardo! I'm happy to help!
Excellent Course , Sid is so easy to understand
Thanks… course is really very simple to understand and helpful for me 😊
Best ever Terraform tutorial! Thanks a lot :)
Hats off to you man! This was a great course and you've managed to strike a great balance between theory/practical!
@DevOpsDirective something I reflected on (since I am just starting out) - how would you typically deal with situations where you may want to tear down provisioned infrastructure, but avoid to also tear down the terraform state backend in the process. E.g. when I ran the destroy command it also took down my S3 bucket and DynamoDB table for lock handling?
Thanks a lot for the efforts you had taken with this excellent presentation with links to code and such a clear teaching.
Thank you for your time on making this course,
This has really helped me.
This was an amazing course. Thank you for taking out time to create this!
Thank you so much for sharing your knowledge with us, I learnt a lot and understood easily. You are a great professor! The video edition was on point, subtle and beautiful. Cheers from Colombia
Wow, thank you! Cheers!
Solid. I feel like you made an effort to cover every base. Thx.
Great resources for learning from you, Sid. Thank you!
I'm having such a hard time understanding values, Variables and Outputs. I'm new on it what you recommend me to watch to understand those terms.?? i really dont whant to quit my DevOps journeys but is so frustrating I learn Dockers, Kubernetes, bitbucket, Jenkins, SonarQube, jFrog, AWS, but is being so challenging for me to makes those terms make sense.
Thanks, this was the refresher I needed.
Hi! You look exactly like my uncle Ivan, he is very good man. I gonna watch your course entirely🙂
Say hello to Ivan for me! 😅
Thanks for this video, I will be using this to prepare for Interviews and further build my own skills as a developer. Been looking for something to help me tackle AWS too
Hey Sid! Thank you so much for the wonderful session on Terraform. I really appreciate it. It's really helpful for the newbies like me to gain good knowledge on Terraform. Thanks again!!
Awesome! You are welcome, Sravani!
Simply Awesome 👍. Thanks for sharing such wonderful content on TF on AWS.
Excelllent instructional video on terraform!
Thanks a lot!
Thank you SIR ! Its indeed a good one to get up and running quickly on terraform. Appreciate your effort.
You are welcome, Prabodh! 🎉
Building a real world ML project brought me here , thanks a ton for the course ✌
Great to hear!
Amazing tutorial. Hoping to see a new video on Terraform in 2024 @DevOpsDirective
Damnnnn! That was a Good 2.5 hours.
"Just keep building"👏👏
🤩 what a compliment! Thanks Logan!
Thanks great course. You seems inclined towards separate graduality for staging , prod , dev. How to ensure they are almost same env, especially staging & production
Hi I was not able to use the tree command that you used at 32:00 for viewing the directories. Is there an extension I am missing? I am using Terraform v1.5.3 on VisualStudioCode.
Are you using windows? That could be the issue.
(Using WSL if on windows should make following along smoother)
@@DevOpsDirective I am using macOS, I installed the Terraform extension and the GitHub one as well. I have the option to use Windows.
@@BrandanKing oh, I forgot I had installed it via brew! superuser.com/questions/359723/mac-os-x-equivalent-of-the-ubuntu-tree-command
@@DevOpsDirective That did the trick thanks! Great tutorial, learning lots!
very clear and instructive explanation of terraform, Good Job Sid!
Thank you, Ramazan! 🙏
Excellent delivery, well designed :) Thank you so much
Wow amazing! So much real word information crammed in. Thank you Sid 🙏
You are welcome, Neil!
@21:20, how did you get all of this on the vscode?
Sid, I really appreciate this course. One thing to note, I did not have any VPC's created. I had to run "aws ec2 create-default-vpc" to have a network available for module 2. I was receiving "Error launching source instance: VPCIdNotSpecified: No default VPC for this user....." Thanks for putting this together.
Thank you for pointing this out!
I wonder if for my account I had created an EC2 instance from the GUI at some point and that auto created a default VPC behind the scenes or something!
I assume that the default vpc is already there for every aws region? I might be wrong..though
Thank you for this incredible well prepared video! Well spent hours and learned a lot while starting from scratch.
Excellent course, thank you for a great and free course!
Thanks for the course. please keep up the great work
Thank you, Merci, Gracias. I can confidently talk about Terraform as a cloud Engineer.
That’s great! 🎉
Your explanations are super clear! Great course!
What an amazing tutorial. Great work