
Setting up your dev environment
Configure your dev environment to build and deploy on AWS from your terminal.
So you created your AWS account, logged into the console, and now you're wondering what's next.
Setting up your development environment lets you write code, build, and deploy your projects to AWS straight from your terminal. Once it's set up, you can use the same tools for every project after that.
What you're building
By the end of this post, you'll have:
- The AWS CLI installed and connected to your account
- An AI coding assistant connected to live AWS documentation
- Your first app deployed to AWS from the command line
What you will need
- An AWS account (Check out this guide if you haven’t set up your account yet)
- Node.js (version 22 or later)
- Your preferred terminal
Step 1: Install the AWS CLI
The AWS Command Line Interface (CLI) is how you use AWS from your terminal. Anything you can do in the console (launch servers, create databases, set up APIs) you can do from the command line with the CLI.
It's available for macOS, Linux, and Windows:
macOS:
1
2
curl "https://awscli.amazonaws.com/AWSCLIV2.pkg" -o "AWSCLIV2.pkg"
sudo installer -pkg AWSCLIV2.pkg -target /Linux:
1
2
3
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/installWindows: Download the installer
If you need help installing the CLI, here's the full install guide .
After installing, run
aws --version to make sure it's there:1
aws --versionYou should see something like
aws-cli/2.x.x. As long as it starts with 2, you're good.Step 2: Connect to your AWS account
Right now, the CLI is installed but it doesn't know which AWS account to use.
aws login opens your browser and lets you sign in, the same way you sign in to the console:1
aws loginIf you're already signed in, you'll see your account ID and IAM user. Click on it and you're in.
Now let's make sure it actually worked. This command confirms which account and user your terminal is connected to:
1
aws sts get-caller-identityYou should see your account ID and your username:
1
2
3
4
5
{
"UserId": "AIDACKCEVSQ6C2EXAMPLE",
"Account": "111122223333",
"Arn": "arn:aws:iam::111122223333:user/admin"
}Your terminal is now connected to your AWS account. By default, everything you create goes to
us-east-1 (N. Virginia) unless you specify a different region.Step 3: Install Kiro CLI
The AWS CLI handles talking to AWS, and Kiro CLI helps you write the code. It's an AI coding assistant that runs in your terminal, so you describe what you want to build and Kiro helps you build it.
Linux or macOS:
1
curl -fsSL https://cli.kiro.dev/install | bashWindows (Powershell):
1
irm 'https://cli.kiro.dev/install.ps1' | iexIf you need help, here's the full install guide .
After installing, Kiro opens your browser to sign in. Once you're authenticated, you're ready to go.
Step 4: Give Kiro access to AWS documentation (optional)
AI models have a training cutoff date. They can give you outdated answers and sound completely sure about it. MCP (Model Context Protocol) lets you connect live knowledge sources to Kiro, so it works with current information instead of guessing from what it learned during training months ago.
We'll add the Agent Toolkit for AWS , which gives Kiro access to up-to-date AWS documentation, best practices, and curated skills for common tasks. AWS releases new features all the time, and you want your tools working with the latest information.
The AWS MCP Server runs remotely, so there's nothing to install. Kiro can use it to read the docs without logging in, but the first time it needs to do something in your AWS account, it opens your browser so you can log in.
Add the server to Kiro:
1
kiro-cli mcp add --name aws-mcp --url https://aws-mcp.us-east-1.api.aws/mcp If you hit an authentication error, check the troubleshooting guide .
Kiro can now search AWS docs and use skills, but it won't always do it on its own. This adds a rules file to your global steering that tells Kiro to always check the docs, look for relevant skills, and build with code instead of clicking around the console when working with AWS. It applies globally, so you only set it up once:
1
2
3
mkdir -p ~/.kiro/steering
curl -fsSL https://raw.githubusercontent.com/aws/agent-toolkit-for-aws/main/rules/aws-agent-rules.md \
-o ~/.kiro/steering/aws-agent-rules.mdStep 5: Build and deploy with CDK
Infrastructure as Code
When you build on AWS, your app needs more than just code. It needs infrastructure: all the cloud resources your code runs on and connects to, like servers, databases, and permissions. You could set all of that up by clicking through the console, but then there's no record of what you did, and doing it again means clicking through everything again. If something breaks, good luck figuring out which checkbox you missed.
Infrastructure as Code lets you describe what you want in a programming language and deploy it with a single command. AWS CDK is one way to do that. You write TypeScript, Python, Java, whatever language you already know, and CDK figures out the permissions and wiring for you.
Let's put everything together. You'll describe what you want, Kiro will write the infrastructure code, you'll deploy it with CDK, and then trigger it from the CLI. The goal is to prove your tools work end-to-end.
We'll create an SNS topic that sends a message to your email. It's a small project, but when that email lands in your inbox, you'll know your entire setup is working.
Start by creating a project folder and initializing a CDK app:
1
2
3
mkdir my-notifications
cd my-notifications
npx aws-cdk init app --language typescriptNow start Kiro CLI:
1
kiro-cliAsk it to generate the CDK code:
Create an SNS topic that sends email notifications. Subscribe my email address to the topic so I receive a message whenever something is published to it.
Kiro generates the code for you. Review what it wrote and adjust anything that doesn't look right.
Here's an example of what Kiro might generate:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
import * as cdk from 'aws-cdk-lib';
import * as sns from 'aws-cdk-lib/aws-sns';
import * as subscriptions from 'aws-cdk-lib/aws-sns-subscriptions';
import { Construct } from 'constructs';
export class MyNotificationsStack extends cdk.Stack {
constructor(scope: Construct, id: string, props?: cdk.StackProps) {
super(scope, id, props);
const topic = new sns.Topic(this, 'NotificationTopic', {
displayName: 'My Notifications',
});
topic.addSubscription(
new subscriptions.EmailSubscription('your-email@example.com'),
);
new cdk.CfnOutput(this, 'TopicArn', { value: topic.topicArn });
}
}A topic and an email subscription. The cool thing is that we didn't write a single line of permissions. CDK handles all of that for you.
First, a one-time setup to prepare your account for CDK deployments (you only run this once):
1
npx aws-cdk bootstrapNow deploy:
1
npx aws-cdk deployCDK shows you what it's about to create. Review it and type
y to confirm. It takes about a minute. When it's done, you'll see a TopicArn in the output. That's your notification topic's address on AWS.Check your email. AWS sends a confirmation message to the address you used in the code. Click the link to confirm your subscription.
Step 6: Test it with the CLI
Now let's bring it full circle. You set up the CLI at the beginning of this post, so let's use it. Copy the
TopicArn from the deploy output and run:1
2
3
4
aws sns publish \
--topic-arn "arn:aws:sns:us-east-1:111122223333:MyNotificationsStack-NotificationTopic-EXAMPLE" \
--subject "Hello from AWS" \
--message "I deployed this from my terminal using Kiro and CDK."Check your inbox. That email is proof that your entire setup works: you described what you wanted, Kiro wrote the infrastructure code, CDK deployed it to AWS, and you triggered it from the command line.
What you just built is a small piece of what could be a much larger event-driven application. In a real system, SNS sits in the middle: services publish events to a topic, and other services subscribe and react. A user signs up, that publishes to a topic. One subscriber sends a welcome email, another triggers a function to set up their account, another pushes a message to a queue for analytics. Right now you have one topic and one subscriber (your email), but the pattern is the same one used in production.
Clean up
Just like you deployed with one command, you can tear it all down with one command:
1
npx aws-cdk destroyType
y to confirm. The topic, the subscription, gone. If you ever want it back, just run cdk deploy again.What you just set up
- AWS CLI: talk to AWS from your terminal
- Kiro CLI: an AI coding assistant that helps you build, connected to up-to-date AWS docs
- CDK: describe your infrastructure in code and deploy it with a single command
This is your dev environment. From here, you can build anything on AWS directly from your command line.
What's next
Now that your dev environment is set up, you can start building. In the next post, we'll use these same tools to ship a portfolio website .
This project is part of the AWS Free Tier onboarding series. Everything you built here runs within the Free Tier — no surprise bills, just learning.
Enjoyed reading this content? Let the author know!
Your likes, comments, shares, and saves help creators reach more builders.
Loading recommendations
Loading article