Interview Insights · Cloud Tools
Why Cloud Tools Eliminates More Candidates Than They Expect
Quick summary — Cloud tools round
Cloud tools rounds eliminate candidates because they test operating the tools, while most preparation covers only defining them. Knowing that Terraform is infrastructure as code or that CloudWatch collects metrics gets you through a screening call. A tools round asks you to read a plan and spot that a database will be destroyed, write an alarm with a sensible threshold or query a log group for slow requests. These are small, practical tasks, and they expose quickly whether a candidate has used the tools for real.
In this guide you will learn:
- Why definitions are not enough in a cloud tools round
- How to read Terraform plan output and spot dangerous replacements
- How to write a small reusable module with variables and outputs
- How to create a CloudWatch alarm and query logs with Logs Insights
- A preparation plan that practises reading, writing and querying
SECTION 01The gap between knowing a tool and operating it
In a screening call, I may ask 'what is Terraform?' and most candidates answer well. In the tools round, I ask something closer to the job: 'Here is a plan from a pull request. Would you approve it?' The candidate who has only memorised definitions now has nothing to stand on.
The gap is not about intelligence. It is about practice type. Reading output, writing small pieces of configuration and querying data are skills built only by doing. The table shows the shift interviewers make between rounds.
| Tool | Screening question | Tools round question | What eliminates people |
|---|---|---|---|
| Terraform | What is infrastructure as code? | Would you approve this plan? | Missing a -/+ replacement on a database |
| Terraform modules | Why use modules? | Turn this resource into a module with inputs | Not knowing variables and outputs syntax |
| CloudWatch | What does CloudWatch do? | Alert when ALB 5xx errors rise | No idea of period, statistic or threshold |
| Logs | Where do Lambda logs go? | Find the five slowest requests today | Scrolling instead of querying |
Interviewer: What is Terraform?
Candidate: Terraform is an open-source infrastructure as
code tool by HashiCorp. We write configuration in HCL
and it creates resources in AWS, Azure or GCP.
(Fine for screening. But it tells me nothing about
whether the candidate can review a real change.)Interviewer: Here is a plan. Would you approve it?
Candidate: The summary says 1 to add, 0 to change and
1 to destroy. That combination on the same name usually
means a replacement. Yes, aws_db_instance.main is marked
-/+ and the engine_version line says forces replacement.
That would delete and recreate the database. I would not
approve this. I would check whether the version change
can be an in-place upgrade instead, and confirm a fresh
snapshot exists before anything.
The operating answer comes from having seen plan output many times. There is no shortcut. If you have never run a plan that wanted to replace something, create one on purpose in a practice account and read it carefully.
SECTION 02Reading Terraform plans and writing a small module
Two Terraform skills come up again and again in tools rounds. The first is reading a plan: knowing what +, -, ~ and -/+ mean and spotting lines that say a change forces replacement. The second is writing a small module, which shows you understand inputs, outputs and reuse rather than one giant file.
Practise both. Write a module for something simple, like an S3 bucket with versioning, and call it twice with different inputs. Then change an attribute that forces replacement and read the plan it produces.
| Plan symbol | Meaning | Risk level | What to check |
|---|---|---|---|
| + create | A new resource will be created | Usually low | Name, size and cost of the new resource |
| ~ update in-place | An existing resource will be modified | Medium | Whether the change causes downtime |
| - destroy | A resource will be deleted | High | Is anything still using it? Is there a backup? |
| -/+ replace | Delete then create, because an attribute cannot change in place | Very high for stateful resources | Which line says forces replacement, and can it be avoided? |
# modules/bucket/variables.tf
variable "name" {
type = string
description = "Bucket name"
}
variable "versioning" {
type = bool
default = true
}
# modules/bucket/main.tf
resource "aws_s3_bucket" "this" {
bucket = var.name
}
resource "aws_s3_bucket_versioning" "this" {
bucket = aws_s3_bucket.this.id
versioning_configuration {
status = var.versioning ? "Enabled" : "Suspended"
}
}
# modules/bucket/outputs.tf
output "arn" {
value = aws_s3_bucket.this.arn
}# main.tf
module "logs_bucket" {
source = "./modules/bucket"
name = "myproj-logs-ap-south-1"
versioning = false
}
module "data_bucket" {
source = "./modules/bucket"
name = "myproj-data-ap-south-1"
}
output "data_bucket_arn" {
value = module.data_bucket.arn
}
# Then:
# terraform init
# terraform plan
# Changing the 'name' of a bucket later shows -/+
# because S3 bucket names cannot be changed in place.
Renaming a bucket is a safe way to see a forced replacement in your own account, because the bucket is empty. Do it once, read the plan, and you will recognise the pattern immediately when an interviewer shows you one with a database.
SECTION 03Alarms and log queries: the monitoring half of the round
The second half of many tools rounds is monitoring. I may ask a candidate to set up an alert for a web app or to find slow requests in a log group. Candidates who have only read about CloudWatch usually know it collects metrics and logs, but cannot say what a period, a statistic or an evaluation window is.
An alarm is just a rule: watch this metric, aggregate it this way over this period, and alert if it crosses this threshold for this many periods. Once you can say that sentence and fill in each part for a real case, the question becomes easy.
| Alarm setting | Example value | Why it matters | Common mistake |
|---|---|---|---|
| Metric | HTTPCode_Target_5XX_Count on the ALB | Measures server-side errors seen by users | Watching CPU instead of user-facing errors |
| Statistic and period | Sum over 60 seconds | Counts errors per minute | Using Average for a count metric |
| Threshold and periods | Greater than 10, for 3 of 3 periods | Avoids alerting on one brief spike | Alerting on a single bad minute |
| Missing data | Treat as not breaching | No traffic should not trigger an error alert | Leaving default and getting confusing states |
aws cloudwatch put-metric-alarm \
--alarm-name alb-5xx-high \
--namespace AWS/ApplicationELB \
--metric-name HTTPCode_Target_5XX_Count \
--dimensions Name=LoadBalancer,Value=app/my-alb/0123456789abcdef \
--statistic Sum \
--period 60 \
--evaluation-periods 3 \
--datapoints-to-alarm 3 \
--threshold 10 \
--comparison-operator GreaterThanThreshold \
--treat-missing-data notBreaching \
--alarm-actions arn:aws:sns:ap-south-1:123456789012:ops-alerts# Run against the Lambda log group in CloudWatch Logs Insights
# Five slowest invocations in the selected time range
filter @type = "REPORT"
| fields @timestamp, @requestId, @duration, @maxMemoryUsed
| sort @duration desc
| limit 5
# Error count per 5 minutes
filter @message like /ERROR/
| stats count(*) as errors by bin(5m)
Lambda writes a REPORT line at the end of each invocation with its duration and memory use, which is why the first query filters on @type = "REPORT". Explaining that detail shows you have actually looked at Lambda logs rather than only read about them.
SECTION 04A tools-round preparation plan
Use these three tabs to practise the four skills of a tools round: read, write, query and decide. Each one should be done hands-on in a practice account with a budget alert.
PLAN READING DRILL
1. Create a small stack: bucket, security group, instance.
2. Change one thing at a time and run terraform plan:
[ ] Add a tag -> expect ~ update
[ ] Change instance type -> expect ~ (may stop/start)
[ ] Rename the bucket -> expect -/+ replace
[ ] Remove a resource -> expect - destroy
3. For each plan, write one line: approve or not, and why.
4. Destroy everything at the end.WRITE DRILL
[ ] Convert one resource into a module with
variables.tf, main.tf and outputs.tf
[ ] Call the module twice with different inputs
[ ] Add a validation block to one variable
[ ] Create a CloudWatch alarm from the CLI
[ ] Create the same alarm in Terraform
[ ] Explain every argument out loudQUERY DRILL
Deploy a small Lambda that logs a message and
sometimes raises an error. Invoke it many times.
Then, in Logs Insights:
[ ] Find the five slowest invocations
[ ] Count errors per 5 minutes
[ ] Show average duration by hour
Finally, decide: at what error count would you
alert someone, and why that number?
SECTION 05How to stop the tools round from eliminating you
Most of the fixes are about how you practise, not how much you study.
- Practise on output, not notes — Spend more time reading real plan output, logs and metrics than reading definitions.
- Break things on purpose — A forced replacement, a failing alarm and an error-filled log group are the best teachers for tools questions.
- Learn the vocabulary of alarms — Metric, statistic, period, threshold, evaluation periods and missing data: be able to explain each in one sentence.
- Write one module properly — A single clean module with variables, outputs and a README teaches more than many copied files.
- Always say the decision — After reading any output, finish with what you would do: approve, stop, alert or investigate further.
SECTION 06Interview Q&A — Cloud tools round
Q1What does -/+ mean in a Terraform plan?
It means Terraform will destroy the existing resource and create a new one, because an attribute that cannot be changed in place has changed. The plan marks the responsible attribute with 'forces replacement'. For stateful resources such as databases, this usually means data loss unless handled carefully.
Q2How would you avoid an unwanted replacement of a resource?
First, see which attribute forces replacement and whether that change is really needed. If a resource was only renamed in code, a moved block or terraform state mv keeps the existing resource. For critical resources, a prevent_destroy lifecycle rule makes Terraform fail such plans.
Q3Why should a CloudWatch alarm use several evaluation periods?
A single bad data point can be a brief spike that resolves on its own. Requiring the threshold to be breached for several periods, for example three out of three one-minute periods, reduces noisy alerts while still catching real problems quickly.
Q4How would you find the slowest Lambda invocations?
Use CloudWatch Logs Insights on the function's log group. Filter for REPORT lines, which include duration, then sort by @duration descending and limit the results. I could also look at the Duration metric's maximum or p99 in CloudWatch metrics to see trends.
Q5What makes a good Terraform module?
A clear single purpose, inputs defined as variables with types and descriptions, sensible defaults, outputs for values other code needs and a short README. It should not hard-code environment-specific values such as account IDs or names.
SECTION 07Test yourself — Cloud tools round quiz
Five questions. No sign-up.
0 / 5Pick an answer to see why it is right or wrong.
SECTION 08Frequently asked questions
What Terraform questions are asked in cloud interviews?
Common ones cover state and remote backends, plan versus apply, reading plan output, modules with variables and outputs, handling secrets, lifecycle rules such as prevent_destroy and how to manage multiple environments.
How do I practise Terraform for interviews?
Build a small project in a practice account, turn parts into modules and run plans after deliberate changes such as adding tags, renaming resources and removing them. Read each plan and decide whether you would approve it.
What is CloudWatch Logs Insights?
It is a query feature in CloudWatch Logs that lets you filter, sort and aggregate log events with a simple query language. It is useful for finding errors, slow requests and patterns without scrolling through logs manually.
How do I create a CloudWatch alarm for errors?
Choose the metric, such as the ALB 5XX count, set the statistic to Sum over a period such as one minute, choose a threshold and number of evaluation periods, decide how to treat missing data and attach an SNS topic for notifications.
Which cloud tools should I mention on my resume?
Mention the tools you have actually used in projects, such as one cloud CLI, Terraform or CloudFormation, CloudWatch or Azure Monitor, Git and a CI tool. Be ready to show or describe a real task you did with each.
Does Uncodemy help with Cloud Tools interview questions?
Yes. Uncodemy's Cloud Computing Training Course in Noida (classroom and online) includes live projects, one-to-one mock interviews and resume reviews, so you practise Cloud Tools interview questions with trainer feedback before the real interview. You can book a free demo class from this page to see how the sessions work.
SECTION 09Related reads
Classroom & online · Noida
Practise the tools that decide cloud interviews
Our Cloud Computing Training Course includes hands-on Terraform, CloudWatch and CLI labs, so you can read, write and query with confidence in a tools round.
Talk to a counsellor for current fees- Terraform plan reviews
- Monitoring and logging labs
- Mock tools rounds
- Weekday & weekend batches