Ways in: console, CLI, SDKs and infrastructure as code

The ways to make something happen in an AWS account — a browser, a shell, an SDK inside your own program, or a template applied identically every time — and how much of the work each one still leaves you.

Lesson 1 of 11 in objective 3. Cloud technology and services, part of AWS Certified Cloud Practitioner (CLF-C02).

The same API, reached three ways, and what each one is for. Console — What you hand AWS: A person clicking in a browser; Doing it twice gives you: Whatever they remembered to click; Reach for it when: Exploring, and changes made once. CLI and SDKs — What you hand AWS: A command, or a call in your code; Doing it twice gives you: Exactly what the script says; Reach for it when: A shell script, or an application that calls AWS. CloudFormation — What you hand AWS: A template describing the result; Doing it twice gives you: The same stack, to the setting; Reach for it when: Environments that have to match each other Console CLI and SDKs CloudFormation What you hand AWS A person clicking in a browser A command, or a call in your code A template describing the result Doing it twice gives you Whatever they remembered to click Exactly what the script says The same stack, to the setting Reach for it when Exploring, and changes made once A shell script, or an application that calls AWS Environments that have to match each other
The same API, reached three ways, and what each one is for.

Three doors, one API

Everything AWS offers is an API, and the console, the command line and the SDKs are three front ends onto it rather than three different systems. That is worth holding onto, because it turns a vague question about "the best way to access AWS" into a concrete one: where does the call come from? A person exploring gets the console. A shell script or a one-line administrative task gets the AWS CLI. Code that already exists in Python, Java, JavaScript, .NET or Go gets that language's SDK, so failures arrive as ordinary exceptions the program can already catch.

The reason a question about an unattended nightly job is never answered by the console is not that the console is bad, it is that a person has to be awake. And the reason it is not answered by shelling out to the CLI is subtler and is what the question is usually testing: you would be parsing output shaped for a human, you would lose typed errors, and you would have added a binary that must be installed and kept in step with the program.

aws sts get-caller-identity    "Arn": "arn:aws:iam::111122223333:user/reporting"aws s3 ls s3://reports-prod/2026/2026-08-01 04:12:07      18234 daily-summary.jsonthe nightly job makes the same calls through an SDK
Two calls from a shell, and where the same two calls belong.

Infrastructure as code, and the service that only watches

Clicking through the console three times produces three environments that are almost the same, and "almost" is where the week-long production bug lives. Infrastructure as code replaces the memory of what someone clicked with a file: AWS CloudFormation takes a template, creates a stack from it, and creates the same stack again from the same template. Because the template is a file, it goes into version control, gets reviewed in a pull request and can be diffed when something changes. The AWS CDK sits one level up and lets you write that template in a programming language, synthesising CloudFormation underneath.

The pairing the exam tests here is CloudFormation against AWS Config, and the two verbs are the whole answer. CloudFormation BUILDS resources from a description. Config WATCHES resources that already exist, records how they were configured over time and evaluates rules against them. Config would have told you the three environments had drifted apart; it would never have created them.

How much of it stays yours

AWS Elastic Beanstalk is the one that gets missed, because it sits between two things candidates already know. You upload an application package on a supported platform and Beanstalk provisions the instances, the load balancer and the scaling policy for you — but the resources it creates are ordinary resources in your account, which you can inspect and adjust afterwards. Beanstalk itself adds no charge beyond what those resources cost. That combination is its signature: hand over the deployment, keep the access.

Contrast it with the neighbours a question will offer. EC2 hands you servers and nothing else. CloudFormation builds precisely what you described, which means you first have to know what the application needs. AWS Lambda removes server management more completely than any of them, at the price of repackaging the application as event-driven functions with no environment to look at. A stem that stresses BOTH "we just want to deploy our code" AND "we still want to see the resources" is describing Beanstalk.

The compute options, ordered by how much of the machine is still yours. From AWS runs more of it to You run more of it: Lambda and Fargate (no servers of yours at all), then Elastic Beanstalk (you supply the code; the environment is built for you and stays visible), then CloudFormation (you describe the infrastructure; it builds exactly that), then EC2 (you choose the image, the size and everything installed on it). AWS runs more of it Lambda and Fargate no servers of yours at all Elastic Beanstalk you supply the code; the environment is built for you and stays visible CloudFormation you describe the infrastructure; it builds exactly that EC2 you choose the image, the size and everything installed on it You run more of it
The compute options, ordered by how much of the machine is still yours.

Cloud, hybrid and on premises

Three deployment models, and the exam separates them by where the pieces of one workload run. Everything in AWS is a cloud deployment. Everything on hardware you own, virtualised or not, is on premises or a private cloud. Both at once, integrated, is hybrid — normally chosen for one of three reasons: latency to something physical, a rule about where data may sit, or an investment that is not worth moving yet. The discriminator worth memorising is that hybrid is about WHERE the workload runs and not about how many Regions you use: an application spread across three Regions is still entirely in the cloud.

A hybrid deployment needs a path between the two halves, and there are two. An AWS Site-to-Site VPN builds an encrypted tunnel over the public internet and can be working within the hour. AWS Direct Connect is a dedicated physical circuit into AWS, which costs more and takes weeks to provision but does not vary with internet conditions. Nothing about having an on-premises component restricts what the AWS side may use, and AWS bills only AWS resources — the exception being AWS Outposts, where AWS-owned racks sit in your building and are billed by AWS.

Worth carrying in

AWS Management Console
The browser interface. Best for exploring and for changes made once.
AWS CLI
The same API from a shell. aws s3 ls and friends; good in scripts, awkward inside an application.
AWS SDKs
Native calls, objects and exceptions in Python, Java, JavaScript, .NET, Go and others.
AWS CloudFormation
A template in, a stack out. The same template produces the same resources every time.
AWS CDK
Write the template in a programming language; it synthesises CloudFormation.
AWS Config
Records how resources are configured over time and evaluates rules. Reports drift; creates nothing.
AWS Elastic Beanstalk
Upload the application, get a managed environment whose resources you can still see and tune.
AWS Outposts
AWS-owned racks installed in your own building, billed by AWS.
AWS Site-to-Site VPN
Encrypted tunnel over the public internet. Up in under an hour.
AWS Direct Connect
A dedicated circuit into AWS. Predictable bandwidth and latency, weeks of lead time.

What the exam does with this

Objective
3. Cloud technology and services
Share of the exam
34% (the whole objective)
Questions in this lesson
4
Signed for by a person
0

Partly checked. None of the 4 questions here has been read against the cited source by a person. 4 questions have been checked against their cited clause by an automated pass — which is not the same thing, and is not a signature.

Only questions a person has signed for are used in mock exams here. That is the whole difference between the two kinds of checking above.

Questions in this lesson

Drill this lesson

A lesson is one sitting: the trainer draws a short run from these questions alone and spaces the ones you get wrong.

Practise Ways in: console, CLI, SDKs and infrastructure as code

The rest of objective 3