<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Saksham Paliwal</title>
    <description>The latest articles on DEV Community by Saksham Paliwal (@sakshampaliwal).</description>
    <link>https://dev.to/sakshampaliwal</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F651285%2F765a51fc-ea02-4fac-bd65-25b3827b63e4.jpg</url>
      <title>DEV Community: Saksham Paliwal</title>
      <link>https://dev.to/sakshampaliwal</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/sakshampaliwal"/>
    <language>en</language>
    <item>
      <title>GuardDuty: Your AWS Watchdog</title>
      <dc:creator>Saksham Paliwal</dc:creator>
      <pubDate>Wed, 21 Jan 2026 17:45:55 +0000</pubDate>
      <link>https://dev.to/sakshampaliwal/guardduty-your-aws-watchdog-3nfj</link>
      <guid>https://dev.to/sakshampaliwal/guardduty-your-aws-watchdog-3nfj</guid>
      <description>&lt;p&gt;You deployed your first real production app to AWS last month.&lt;/p&gt;

&lt;p&gt;It's running. Users are happy.&lt;/p&gt;

&lt;p&gt;And then someone on the security team slacks you: "Hey, we're seeing some weird API calls from your account. You spinning up instances in regions you don't use?"&lt;/p&gt;

&lt;p&gt;You weren't.&lt;/p&gt;

&lt;p&gt;That's the moment most of us first hear about GuardDuty.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why does this even exist?
&lt;/h2&gt;

&lt;p&gt;Let's go back to around 2013-2014.&lt;/p&gt;

&lt;p&gt;AWS was growing fast. More companies were moving real workloads to the cloud. And attackers noticed.&lt;/p&gt;

&lt;p&gt;Here's what was happening: someone would steal AWS credentials, maybe from a leaked GitHub repo or a phishing attack. They'd quietly spin up hundreds of EC2 instances to mine cryptocurrency. Or exfiltrate data from S3 buckets. Or scan for vulnerabilities across entire VPCs.&lt;/p&gt;

&lt;p&gt;Companies wouldn't notice for days. Sometimes weeks.&lt;/p&gt;

&lt;p&gt;Because here's the thing, AWS gives you logs. CloudTrail logs every API call. VPC Flow Logs show network traffic. DNS logs capture queries.&lt;/p&gt;

&lt;p&gt;But nobody was actually watching them in real time!!!&lt;/p&gt;

&lt;p&gt;Security teams were drowning in log files. Trying to spot malicious patterns manually was like finding a needle in a haystack the size of a data center.&lt;/p&gt;

&lt;p&gt;AWS needed a service that would just... watch. Constantly. And yell when something looked wrong.&lt;/p&gt;

&lt;p&gt;That's why GuardDuty launched in 2017.&lt;/p&gt;

&lt;h2&gt;
  
  
  So what actually is it?
&lt;/h2&gt;

&lt;p&gt;GuardDuty is a threat detection service.&lt;/p&gt;

&lt;p&gt;It continuously monitors your AWS account for malicious or unauthorized behavior. Think of it as a security camera that never sleeps and actually knows what suspicious looks like.&lt;/p&gt;

&lt;p&gt;It analyzes three main data sources automatically:&lt;/p&gt;

&lt;p&gt;VPC Flow Logs (your network traffic), CloudTrail events (API calls and management actions), and DNS logs (what your resources are communicating with).&lt;/p&gt;

&lt;p&gt;You don't send GuardDuty these logs. It accesses them directly. You just turn it on.&lt;/p&gt;

&lt;h2&gt;
  
  
  What does it actually catch?
&lt;/h2&gt;

&lt;p&gt;Here's where it gets practical.&lt;/p&gt;

&lt;p&gt;GuardDuty looks for patterns that indicate real attacks. Not just theoretical vulnerabilities, but actual "someone is doing something bad right now" situations.&lt;/p&gt;

&lt;p&gt;Common things it detects:&lt;/p&gt;

&lt;p&gt;Compromised EC2 instances. Like when your instance starts communicating with known malware command-and-control servers. Or when it's suddenly being used for cryptocurrency mining.&lt;/p&gt;

&lt;p&gt;Stolen credentials. If someone's using your IAM credentials from an unusual location or making API calls they've never made before, GuardDuty notices.&lt;/p&gt;

&lt;p&gt;Reconnaissance activity. When attackers are probing your infrastructure, port scanning, or trying to map your network.&lt;/p&gt;

&lt;p&gt;Data exfiltration attempts. Unusual data transfers or access patterns that look like someone's trying to steal information.&lt;/p&gt;

&lt;p&gt;The findings show up in your AWS console with a severity level: Low, Medium, or High.&lt;/p&gt;

&lt;p&gt;Each finding explains what happened, which resources are involved, and suggests what to do about it.&lt;/p&gt;

&lt;h2&gt;
  
  
  When do people actually use this?
&lt;/h2&gt;

&lt;p&gt;Honestly? Most teams turn it on and forget about it.&lt;/p&gt;

&lt;p&gt;That's kind of the point.&lt;/p&gt;

&lt;p&gt;If you're running anything in production, you should probably have GuardDuty enabled. It's not something you "use" actively like you'd use CloudFormation or Lambda.&lt;/p&gt;

&lt;p&gt;You enable it. Set up alerts (usually SNS to Slack or PagerDuty). And then it just runs in the background.&lt;/p&gt;

&lt;p&gt;The real question is what you do when it alerts you.&lt;/p&gt;

&lt;h2&gt;
  
  
  The cost thing nobody talks about upfront
&lt;/h2&gt;

&lt;p&gt;GuardDuty isn't free.&lt;/p&gt;

&lt;p&gt;It charges based on the volume of events it analyzes. CloudTrail events, VPC Flow Logs volume, DNS queries.&lt;/p&gt;

&lt;p&gt;For a small account, you might pay $5-20 a month. For larger production environments with lots of traffic, it can be hundreds.&lt;/p&gt;

&lt;p&gt;There's a 30-day free trial though. Most people start there to see what the actual cost looks like for their usage.&lt;/p&gt;

&lt;h2&gt;
  
  
  Setting it up is weirdly simple
&lt;/h2&gt;

&lt;p&gt;You literally just enable it in the console.&lt;/p&gt;

&lt;p&gt;No agents to install. No log shipping to configure. No complex rules to write.&lt;/p&gt;

&lt;p&gt;Go to the GuardDuty section in AWS Console, click "Get Started," click "Enable GuardDuty."&lt;/p&gt;

&lt;p&gt;That's it.&lt;/p&gt;

&lt;p&gt;Within minutes it starts analyzing your account activity. Findings appear in the console as they're detected.&lt;/p&gt;

&lt;p&gt;If you want to get fancy, you can set up automated responses using EventBridge. Like automatically isolating a compromised instance or revoking suspicious credentials.&lt;/p&gt;

&lt;p&gt;But honestly? Start simple. Enable it, hook up an SNS topic for alerts, and learn what normal findings look like for your environment.&lt;/p&gt;

&lt;h2&gt;
  
  
  The multi-account reality
&lt;/h2&gt;

&lt;p&gt;Here's something that confused me early on.&lt;/p&gt;

&lt;p&gt;If you're using AWS Organizations (and most companies are), GuardDuty works across all your accounts. You designate one account as the GuardDuty administrator, and it can monitor findings from all member accounts.&lt;/p&gt;

&lt;p&gt;This is huge for companies with dozens or hundreds of AWS accounts.&lt;/p&gt;

&lt;p&gt;You don't want your security team checking GuardDuty in 50 different accounts. Centralized monitoring makes way more sense.&lt;/p&gt;

&lt;h2&gt;
  
  
  What it doesn't do
&lt;/h2&gt;

&lt;p&gt;GuardDuty won't prevent attacks.&lt;/p&gt;

&lt;p&gt;It detects them. Big difference.&lt;/p&gt;

&lt;p&gt;It's not a firewall. It's not blocking malicious traffic. It's not automatically remediating issues.&lt;/p&gt;

&lt;p&gt;It's telling you "hey, this thing that just happened looks really suspicious."&lt;/p&gt;

&lt;p&gt;What you do about it is up to you.&lt;/p&gt;

&lt;p&gt;That's why most teams pair GuardDuty with other services. Security Hub for centralized security management. Systems Manager for automated remediation. WAF for actual blocking at the application layer.&lt;/p&gt;

&lt;p&gt;GuardDuty is one piece of your security setup, not the entire thing.&lt;/p&gt;

&lt;h2&gt;
  
  
  The findings you'll actually see
&lt;/h2&gt;

&lt;p&gt;When you first enable GuardDuty, you might see findings immediately. Or you might see nothing for weeks.&lt;/p&gt;

&lt;p&gt;Common early findings that freak people out but are usually fine:&lt;/p&gt;

&lt;p&gt;"UnauthorizedAccess:EC2/SSHBruteForce" - Someone's trying to brute force SSH on your instances. If they're internet-facing, this happens constantly. Make sure you're using key-based auth and maybe restrict IPs.&lt;/p&gt;

&lt;p&gt;"Recon:EC2/PortProbeUnprotectedPort" - Someone's scanning your ports. Again, super common if you have public IPs. Review your security groups.&lt;/p&gt;

&lt;p&gt;The scary findings are the High severity ones about compromised credentials or instances communicating with known malicious IPs. Those need immediate attention.&lt;/p&gt;

&lt;h2&gt;
  
  
  Learning what's normal for your environment
&lt;/h2&gt;

&lt;p&gt;Here's something they don't tell you in the docs.&lt;/p&gt;

&lt;p&gt;Every AWS environment has its own "normal."&lt;/p&gt;

&lt;p&gt;You'll get findings that are false positives for your use case. Maybe you have a legitimate reason to access AWS from multiple countries. Maybe your application does unusual API call patterns.&lt;/p&gt;

&lt;p&gt;You can suppress findings that aren't relevant. Or adjust your alerting so you're not getting paged for Low severity findings at 3am.&lt;/p&gt;

&lt;p&gt;This tuning process takes a few weeks usually. Don't expect perfect signal-to-noise on day one.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why you should probably just turn it on
&lt;/h2&gt;

&lt;p&gt;Look, I get it. Another AWS service. Another thing to monitor. Another bill.&lt;/p&gt;

&lt;p&gt;But here's the reality: if someone compromises your AWS account and you don't catch it quickly, the cost of that incident will make GuardDuty's monthly fee look like pocket change.&lt;/p&gt;

&lt;p&gt;Plus, if you're working at a company with any kind of compliance requirements (SOC 2, HIPAA, PCI), having GuardDuty enabled is basically table stakes. Auditors love seeing it.&lt;/p&gt;

&lt;p&gt;Even if you're a solo developer running a side project, the free tier gives you a month to see what it catches. You might be surprised.&lt;/p&gt;




&lt;p&gt;Enable it in one account. See what findings you get. Learn what they mean.&lt;/p&gt;

&lt;p&gt;You don't need to become a security expert overnight. Just having visibility into what's happening in your AWS account is already a huge step forward from where most teams were a few years ago.&lt;/p&gt;

&lt;p&gt;And who knows, maybe you'll catch something weird before it becomes a real problem. That's kinda the whole point, right?&lt;/p&gt;

</description>
      <category>guardduty</category>
      <category>aws</category>
      <category>security</category>
      <category>devsecops</category>
    </item>
    <item>
      <title>AWS Kinesis: What It Is and Why It Exists</title>
      <dc:creator>Saksham Paliwal</dc:creator>
      <pubDate>Tue, 20 Jan 2026 17:32:26 +0000</pubDate>
      <link>https://dev.to/sakshampaliwal/aws-kinesis-what-it-is-and-why-it-exists-agc</link>
      <guid>https://dev.to/sakshampaliwal/aws-kinesis-what-it-is-and-why-it-exists-agc</guid>
      <description>&lt;p&gt;You're building something.&lt;/p&gt;

&lt;p&gt;Maybe it's a web app. Maybe it's an analytics dashboard. Maybe it's just a service that needs to log some events.&lt;/p&gt;

&lt;p&gt;And then someone on your team says, "we should use Kinesis for this."&lt;/p&gt;

&lt;p&gt;And you're like... what? Why? We already have databases. We have queues. We have S3. Why do we need &lt;em&gt;another&lt;/em&gt; AWS service?&lt;/p&gt;

&lt;p&gt;Yeah, I've been there.&lt;/p&gt;

&lt;p&gt;Let me walk you through this.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why does Kinesis even exist?
&lt;/h2&gt;

&lt;p&gt;Here's the thing.&lt;/p&gt;

&lt;p&gt;Around 2013, companies like Netflix and Amazon were dealing with a very specific problem. They had millions of users generating data constantly. Clicks, views, searches, purchases, errors, all happening at the same time.&lt;/p&gt;

&lt;p&gt;They needed to process this data &lt;em&gt;as it arrived&lt;/em&gt;. Not in batches. Not overnight. Right now.&lt;/p&gt;

&lt;p&gt;Traditional databases? Too slow. They're built for storing and querying, not for handling thousands of writes per second from different sources.&lt;/p&gt;

&lt;p&gt;Message queues like SQS? Better, but they're designed for job processing, not for streaming massive amounts of continuous data to multiple consumers at once.&lt;/p&gt;

&lt;p&gt;So AWS built Kinesis.&lt;/p&gt;

&lt;p&gt;It was inspired by Apache Kafka (which came out earlier), but made simpler and fully managed for AWS users.&lt;/p&gt;

&lt;p&gt;The core idea was simple: give developers a way to ingest, buffer, and process real-time streaming data without managing servers or worrying about scale.&lt;/p&gt;

&lt;h2&gt;
  
  
  What actually is Kinesis?
&lt;/h2&gt;

&lt;p&gt;Think of Kinesis as a super fast conveyor belt for data.&lt;/p&gt;

&lt;p&gt;You put data onto the belt (producers send records). The belt moves continuously. Multiple teams can watch the belt and grab what they need (consumers read records). The belt keeps moving.&lt;/p&gt;

&lt;p&gt;That's it.&lt;/p&gt;

&lt;p&gt;More technically, Kinesis is a managed service that lets you collect, process, and analyze streaming data in real time.&lt;/p&gt;

&lt;p&gt;It's not a database. It's not a queue in the traditional sense. It's a &lt;em&gt;stream&lt;/em&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Wait, what's the difference between a stream and a queue?
&lt;/h2&gt;

&lt;p&gt;Good question!!!&lt;/p&gt;

&lt;p&gt;A queue like SQS is meant for one-to-one delivery. You send a message, one consumer picks it up, it's gone.&lt;/p&gt;

&lt;p&gt;A stream like Kinesis is meant for one-to-many delivery. You send a record, it stays in the stream for a while (24 hours by default, up to 365 days if you configure it). Multiple consumers can read the same record independently.&lt;/p&gt;

&lt;p&gt;Also, streams preserve order within a partition. Queues don't guarantee order unless you use FIFO queues with extra config.&lt;/p&gt;

&lt;p&gt;Streams are for high-throughput, real-time data pipelines. Queues are for task distribution and decoupling services.&lt;/p&gt;

&lt;h2&gt;
  
  
  When do people actually use Kinesis?
&lt;/h2&gt;

&lt;p&gt;Real-time analytics is a big one.&lt;/p&gt;

&lt;p&gt;Let's say you're building a gaming app. You want to track every player action, analyze patterns, detect cheating, update leaderboards, all in real time. Kinesis can ingest millions of events per second and let different services consume that data simultaneously.&lt;/p&gt;

&lt;p&gt;Log and event data collection is another common use case.&lt;/p&gt;

&lt;p&gt;Instead of writing logs directly to S3 or CloudWatch (which can get expensive or slow), you stream logs to Kinesis. Then you can fan out to multiple destinations: one consumer writes to S3 for long-term storage, another sends to Elasticsearch for searching, another triggers Lambda functions for alerts.&lt;/p&gt;

&lt;p&gt;IoT data ingestion also fits perfectly.&lt;/p&gt;

&lt;p&gt;Thousands of devices sending sensor data every second? Kinesis handles it. You can process the data in real time, store it, run machine learning models on it, whatever you need.&lt;/p&gt;

&lt;p&gt;Clickstream analysis for websites is super common too.&lt;/p&gt;

&lt;p&gt;Every click, scroll, hover gets sent to Kinesis. Your analytics team reads the stream to build dashboards. Your recommendation engine reads the same stream to personalize content. Your data science team reads it to train models.&lt;/p&gt;

&lt;p&gt;One stream, multiple consumers, all happening live.&lt;/p&gt;

&lt;h2&gt;
  
  
  The different flavors of Kinesis
&lt;/h2&gt;

&lt;p&gt;AWS actually has a few different Kinesis services, which is confusing at first.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Kinesis Data Streams&lt;/strong&gt; is the core service. This is what most people mean when they say "Kinesis." You manage capacity (shards), you control retention, you write producers and consumers.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Kinesis Data Firehose&lt;/strong&gt; is the simpler version. You just point it at a destination (S3, Redshift, Elasticsearch, etc.), and it automatically delivers your streaming data there. No consumers to write. Great for simple ETL pipelines.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Kinesis Data Analytics&lt;/strong&gt; lets you run SQL queries on streaming data. Useful if you want to do transformations or aggregations in real time without writing code.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Kinesis Video Streams&lt;/strong&gt; is for video, which is a whole different thing. Not relevant for most backend use cases.&lt;/p&gt;

&lt;p&gt;For now, just know Data Streams exists. That's the foundation.&lt;/p&gt;

&lt;h2&gt;
  
  
  A super basic example
&lt;/h2&gt;

&lt;p&gt;Let's say you're tracking user sign-ups.&lt;/p&gt;

&lt;p&gt;You could write sign-up events directly to a database. But what if you also want to send a welcome email, update analytics, sync to a CRM, and trigger a Slack notification?&lt;/p&gt;

&lt;p&gt;You'd have to call all those services from your sign-up endpoint. If one fails, you have to handle retries. If you add a new integration, you have to modify the sign-up code.&lt;/p&gt;

&lt;p&gt;With Kinesis, you just write the sign-up event to the stream. Done.&lt;/p&gt;

&lt;p&gt;Then you have separate consumers: one Lambda function sends the email, another updates analytics, another syncs to your CRM, another posts to Slack.&lt;/p&gt;

&lt;p&gt;Each consumer is independent. If one breaks, the others keep working. The stream keeps the data for 24 hours (or longer), so even if a consumer is down, it can catch up later.&lt;/p&gt;

&lt;p&gt;Decoupled, scalable, resilient.&lt;/p&gt;

&lt;h2&gt;
  
  
  How does it actually work under the hood?
&lt;/h2&gt;

&lt;p&gt;Kinesis Data Streams is made up of &lt;strong&gt;shards&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;A shard is basically a unit of capacity. Each shard can handle 1 MB/sec of writes and 2 MB/sec of reads.&lt;/p&gt;

&lt;p&gt;If you need more throughput, you add more shards. AWS handles the infrastructure.&lt;/p&gt;

&lt;p&gt;When you write a record to Kinesis, you specify a &lt;strong&gt;partition key&lt;/strong&gt;. Kinesis hashes that key to decide which shard gets the record.&lt;/p&gt;

&lt;p&gt;Records with the same partition key always go to the same shard, which means they're ordered relative to each other.&lt;/p&gt;

&lt;p&gt;Consumers read from shards and process records in order within each shard.&lt;/p&gt;

&lt;p&gt;You don't have to think about this too much at first, but it's good to know.&lt;/p&gt;

&lt;h2&gt;
  
  
  The catch (because there's always a catch)
&lt;/h2&gt;

&lt;p&gt;Kinesis isn't free.&lt;/p&gt;

&lt;p&gt;You pay per shard-hour, plus data ingestion and retrieval costs. If you're processing a lot of data, it adds up.&lt;/p&gt;

&lt;p&gt;You also have to manage shard scaling. If your traffic spikes, you might need to manually increase shards (or set up auto-scaling).&lt;/p&gt;

&lt;p&gt;There's also a learning curve.&lt;/p&gt;

&lt;p&gt;Writing a producer is pretty straightforward. But building a reliable consumer that handles retries, checkpointing, and shard rebalancing? That takes some work. AWS provides libraries (KCL, Kinesis Client Library) to help, but it's still more complex than, say, using SQS.&lt;/p&gt;

&lt;p&gt;And if you don't need real-time processing, Kinesis might be overkill.&lt;/p&gt;

&lt;p&gt;If batch processing once an hour is fine, just write to S3 and process later. Simpler, cheaper.&lt;/p&gt;

&lt;h2&gt;
  
  
  So when should I actually use it?
&lt;/h2&gt;

&lt;p&gt;Use Kinesis when:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You need to process data in real time or near real time&lt;/li&gt;
&lt;li&gt;You have multiple consumers that need the same data&lt;/li&gt;
&lt;li&gt;You need to preserve order within a partition&lt;/li&gt;
&lt;li&gt;You're dealing with high-throughput streaming data&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Don't use Kinesis when:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Batch processing is good enough&lt;/li&gt;
&lt;li&gt;You only have one consumer (use SQS instead)&lt;/li&gt;
&lt;li&gt;You need long-term storage as the primary goal (use S3)&lt;/li&gt;
&lt;li&gt;You're just getting started and want the simplest solution (start simple, add Kinesis later if you need it)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What about Kafka?
&lt;/h2&gt;

&lt;p&gt;Yeah, Kafka is the open-source equivalent.&lt;/p&gt;

&lt;p&gt;Kinesis is easier to set up (fully managed), but Kafka gives you more control and can be cheaper at scale if you run it yourself (or use a managed service like Confluent or MSK).&lt;/p&gt;

&lt;p&gt;If you're already deep in the AWS ecosystem, Kinesis is probably easier.&lt;/p&gt;

&lt;p&gt;If you need multi-cloud or have very specific requirements, Kafka might be better.&lt;/p&gt;

&lt;p&gt;Honestly, the concepts are similar enough that learning one helps you understand the other.&lt;/p&gt;




&lt;p&gt;It's one of those tools that makes way more sense once you hit a specific problem. You'll know when you need it because you'll be sitting there trying to process a flood of real-time events and thinking, "there has to be a better way."&lt;/p&gt;

&lt;p&gt;That's when you reach for Kinesis.&lt;/p&gt;

&lt;p&gt;Until then? Just know it exists. Know roughly what it does. And when the time comes, you'll know where to look.&lt;/p&gt;

&lt;p&gt;You're doing great. Keep building, keep learning, and don't stress about knowing every AWS service by heart. Nobody does!!!&lt;/p&gt;

</description>
      <category>kinesis</category>
      <category>aws</category>
      <category>devops</category>
      <category>mlops</category>
    </item>
    <item>
      <title>What is AWS Bedrock??</title>
      <dc:creator>Saksham Paliwal</dc:creator>
      <pubDate>Mon, 19 Jan 2026 15:50:23 +0000</pubDate>
      <link>https://dev.to/sakshampaliwal/what-is-aws-bedrock-50da</link>
      <guid>https://dev.to/sakshampaliwal/what-is-aws-bedrock-50da</guid>
      <description>&lt;p&gt;You're sitting in a sprint planning meeting and someone says, "hey, what if we add AI to our customer support?"&lt;/p&gt;

&lt;p&gt;And your first thought is probably... "oh no."&lt;/p&gt;

&lt;p&gt;Because you've heard the stories. Training models. Managing GPUs. Hiring ML engineers. Spending months just to get something basic working.&lt;/p&gt;

&lt;p&gt;That's exactly the problem AWS Bedrock was built to solve.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Does Bedrock Even Exist?
&lt;/h2&gt;

&lt;p&gt;Let's rewind a bit.&lt;/p&gt;

&lt;p&gt;Around 2022-2023, companies were going absolutely wild over generative AI. ChatGPT had just blown up. Every startup wanted a chatbot. Every enterprise wanted to "leverage AI."&lt;/p&gt;

&lt;p&gt;But there was a massive gap.&lt;/p&gt;

&lt;p&gt;On one side, you had OpenAI's API, which was great but meant sending all your data to OpenAI's servers. Not ideal if you're in healthcare or finance.&lt;/p&gt;

&lt;p&gt;On the other side, you had options like AWS SageMaker, where you could train and host your own models. But that meant becoming an ML engineer basically overnight. You needed to understand model architectures, training pipelines, GPU instances, all of it.&lt;/p&gt;

&lt;p&gt;Most dev teams just wanted to add some AI features to their app. They didn't want a PhD in machine learning.&lt;/p&gt;

&lt;p&gt;That's the gap Bedrock fills.&lt;/p&gt;

&lt;h2&gt;
  
  
  So What Actually Is Bedrock?
&lt;/h2&gt;

&lt;p&gt;Think of it as a menu of AI models that you can just... use.&lt;/p&gt;

&lt;p&gt;AWS Bedrock is a fully managed service that gives you API access to foundation models from companies like Anthropic (Claude), Meta (Llama), Stability AI, and Amazon's own Titan models.&lt;/p&gt;

&lt;p&gt;You pick a model. You make an API call. That's it.&lt;/p&gt;

&lt;p&gt;No infrastructure to manage. No GPUs to provision. No model training (unless you want to customize, which we'll get to).&lt;/p&gt;

&lt;p&gt;It's serverless, so you only pay for what you use. And all your data stays in your AWS account, which is huge for compliance and security.&lt;/p&gt;

&lt;h2&gt;
  
  
  When Would You Actually Use This?
&lt;/h2&gt;

&lt;p&gt;Here's the thing, Bedrock isn't for every AI use case. But it's perfect for a bunch of common ones.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Building a chatbot or customer support agent&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;You need something that can answer questions about your product. With Bedrock, you can use Claude or another model, feed it your documentation through RAG (Retrieval Augmented Generation), and you're basically done.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Content generation&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Marketing needs blog posts, product descriptions, social media content. Hook up Bedrock to your CMS and generate drafts at scale.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Document processing and summarization&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Got tons of PDFs, meeting notes, or research papers? Bedrock models can summarize them, extract key info, or answer questions about them.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Code generation and assistance&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Some models in Bedrock are really good at writing code. You can build internal tools that help your team with boilerplate or documentation.&lt;/p&gt;

&lt;p&gt;The pattern here is: if you need AI capabilities but don't want to become an AI company, Bedrock is probably your answer.&lt;/p&gt;

&lt;h2&gt;
  
  
  How It Actually Works in Practice
&lt;/h2&gt;

&lt;p&gt;Let's say you want to build a simple Q&amp;amp;A bot for your docs.&lt;/p&gt;

&lt;p&gt;First, you enable model access in the AWS console. By default, you don't have access to any models. You just click through and enable the ones you want. Takes like two minutes.&lt;/p&gt;

&lt;p&gt;Then you can test stuff in the playground. It's literally a chat interface where you can try different models with different prompts.&lt;/p&gt;

&lt;p&gt;When you're ready to integrate, you use the AWS SDK (boto3 for Python, for example) to make API calls. Here's what that looks like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;boto3&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;json&lt;/span&gt;

&lt;span class="n"&gt;bedrock&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;boto3&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;client&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;bedrock-runtime&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;region_name&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;us-east-1&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;prompt&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;What is serverless computing?&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;

&lt;span class="n"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;bedrock&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;invoke_model&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;modelId&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;anthropic.claude-3-sonnet-20240229-v1:0&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;body&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;json&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;dumps&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;anthropic_version&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;bedrock-2023-05-31&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;max_tokens&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;1000&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;messages&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
            &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;role&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;user&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;content&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;prompt&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
        &lt;span class="p"&gt;]&lt;/span&gt;
    &lt;span class="p"&gt;})&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;json&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;loads&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;body&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="nf"&gt;read&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;result&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;content&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;][&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;][&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;text&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That's it. You're using Claude through Bedrock.&lt;/p&gt;

&lt;p&gt;If you need the model to know about your specific data, you set up a Knowledge Base (which uses RAG under the hood) or fine-tune a model with your own dataset.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Real Advantages (And When They Matter)
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;You get to compare models super easily&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Different models are good at different things. In the playground, you can literally ask the same question to Claude, Llama, and Titan and see which one gives better results for your use case.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Security and compliance are handled&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Your data doesn't leave AWS. It's encrypted in transit and at rest. You can use IAM policies, VPC, all the usual AWS security stuff. And Bedrock is HIPAA eligible, SOC compliant, all that.&lt;/p&gt;

&lt;p&gt;If you're in finance or healthcare, this is massive.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The pricing is actually pretty reasonable&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;You pay per token (think of tokens as chunks of text). For testing and small apps, you'll spend like dollars per month. For production stuff, you can use provisioned throughput or batch processing to cut costs by 50% or more.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Guardrails prevent disasters&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Bedrock has a feature called Guardrails that filters harmful content, blocks certain topics, and can even catch hallucinations. So your chatbot won't accidentally say something wildly inappropriate.&lt;/p&gt;

&lt;h2&gt;
  
  
  Things That Might Trip You Up
&lt;/h2&gt;

&lt;p&gt;Real talk, there are a few gotchas.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Model availability varies by region&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Not all models are available in all AWS regions yet. So check the docs before you commit to a specific region.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;You still need to understand prompting&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Just because you have access to AI doesn't mean it'll magically work well. You need to learn prompt engineering. How you phrase your request massively affects the output quality.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Token limits are real&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Each model has a context window (how much text it can process at once). If you're trying to analyze a 100-page document in one go, you might hit limits.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Costs can scale surprisingly fast&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Those per-token costs add up quick if you're processing lots of data. Always test with small batches first and monitor your usage.&lt;/p&gt;

&lt;h2&gt;
  
  
  When NOT to Use Bedrock
&lt;/h2&gt;

&lt;p&gt;If you need a highly specialized model for like medical imaging or something super niche, Bedrock probably won't have what you need. You'd want SageMaker or a custom solution.&lt;/p&gt;

&lt;p&gt;If you're building the next ChatGPT competitor, you're not using Bedrock. You're training your own models from scratch.&lt;/p&gt;

&lt;p&gt;And if you literally just need basic text analysis or simple ML tasks, you might be overcomplicating things. Sometimes a traditional ML model or even regex is enough!!!&lt;/p&gt;

&lt;h2&gt;
  
  
  Getting Started Is Easy
&lt;/h2&gt;

&lt;p&gt;AWS has a playground right in the console. Just log in, search for Bedrock, enable a model (Claude is a safe bet to start), and start typing prompts.&lt;/p&gt;

&lt;p&gt;Play with it for an hour. See what it can do. Then think about where it fits in your stack.&lt;/p&gt;

&lt;p&gt;You'll know pretty quick if it's the right tool for what you're building.&lt;/p&gt;

&lt;p&gt;Start small, test stuff out, and see where it takes you.&lt;/p&gt;

</description>
      <category>bedrock</category>
      <category>awsbedrock</category>
      <category>devops</category>
      <category>mlops</category>
    </item>
    <item>
      <title>AWS Nova: AI That Scales Cheap</title>
      <dc:creator>Saksham Paliwal</dc:creator>
      <pubDate>Sun, 18 Jan 2026 13:15:38 +0000</pubDate>
      <link>https://dev.to/sakshampaliwal/aws-nova-ai-that-scales-cheap-4ape</link>
      <guid>https://dev.to/sakshampaliwal/aws-nova-ai-that-scales-cheap-4ape</guid>
      <description>&lt;p&gt;You know that moment when you're estimating cloud costs for an AI feature and you just... close the tab?&lt;/p&gt;

&lt;p&gt;Yeah.&lt;/p&gt;

&lt;p&gt;Because GPT-4 pricing looked scary. Claude was amazing but expensive for high-volume stuff. And you're sitting there thinking "I just need to classify some customer emails, why does this cost more than my EC2 bill??"&lt;/p&gt;

&lt;p&gt;That's exactly the gap AWS Nova is trying to fill.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Nova Even Exists
&lt;/h2&gt;

&lt;p&gt;Let me take you back to 2023-2024.&lt;/p&gt;

&lt;p&gt;AWS had Bedrock, which was great. You could access models from Anthropic, Meta, Cohere, all through one API. Super convenient.&lt;/p&gt;

&lt;p&gt;But here's what kept happening: customers would prototype something cool with Claude or GPT-4 through Bedrock, love it, then hit production scale and go "wait, WHAT is this going to cost per month?!"&lt;/p&gt;

&lt;p&gt;The high-performance models were incredible but pricing made them impractical for a lot of real-world use cases. And the cheaper models? Often not quite good enough.&lt;/p&gt;

&lt;p&gt;AWS saw this gap everywhere. Startups burning through runway on inference costs. Enterprises shelving AI projects because the math didn't work.&lt;/p&gt;

&lt;p&gt;So in December 2024, they released Nova. Their own family of foundation models, built from scratch, with one clear goal: give you actually good performance at prices that don't make your CFO cry.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Exactly Is AWS Nova?
&lt;/h2&gt;

&lt;p&gt;Nova is Amazon's own family of foundation models.&lt;/p&gt;

&lt;p&gt;Not someone else's models hosted on AWS. These are built by Amazon, for AWS, optimized specifically to run efficiently on their infrastructure.&lt;/p&gt;

&lt;p&gt;Think of it like this: you can rent a bunch of different cars (Bedrock's third-party models), or you can use the car the rental company designed specifically for their business model (Nova).&lt;/p&gt;

&lt;p&gt;The family has a few different models, each sized for different use cases and budgets.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Nova Family
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Nova Micro&lt;/strong&gt; is the tiny, super fast one. Great for simple tasks like classification, extraction, basic Q&amp;amp;A. Think "is this email spam?" or "extract the order number from this text."&lt;/p&gt;

&lt;p&gt;Cheapest in the family. Ridiculously fast.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Nova Lite&lt;/strong&gt; steps it up. Better reasoning, longer context, still very affordable. This is your workhorse for most everyday AI tasks.&lt;/p&gt;

&lt;p&gt;Chat, summarization, content generation that doesn't need PhD-level reasoning.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Nova Pro&lt;/strong&gt; is where it gets interesting. This one actually competes with the big names on quality while staying way cheaper. Multimodal too, it can handle text, images, and video.&lt;/p&gt;

&lt;p&gt;You'd reach for Pro when Lite isn't cutting it but you still need to watch costs.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Nova Premier&lt;/strong&gt; is the flagship. Most capable, best reasoning, designed to compete directly with GPT-4 and Claude Sonnet. Still cheaper than those, but not by as much.&lt;/p&gt;

&lt;p&gt;This is for when you really need top-tier performance and cost is secondary to quality.&lt;/p&gt;

&lt;h2&gt;
  
  
  When Would You Actually Use This?
&lt;/h2&gt;

&lt;p&gt;Here's the thing: Nova shines in production workloads where volume matters.&lt;/p&gt;

&lt;p&gt;If you're processing thousands or millions of requests, the pricing difference adds up FAST. A feature that would cost $5,000/month on GPT-4 might cost $800 on Nova Pro.&lt;/p&gt;

&lt;p&gt;Real scenarios where people are reaching for Nova:&lt;/p&gt;

&lt;p&gt;Content moderation at scale. Customer support automation. Document processing pipelines. Chatbots with high traffic. E-commerce product descriptions. Anything where you need "good enough" quality but can't afford premium pricing at volume.&lt;/p&gt;

&lt;p&gt;It's also great for experimentation. Want to try adding AI to a feature but not sure if it'll stick? Start with Nova Lite, validate the idea, then optimize from there.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Multimodal Thing Is Actually Cool
&lt;/h2&gt;

&lt;p&gt;Nova Pro and Premier can handle images and video, not just text.&lt;/p&gt;

&lt;p&gt;This matters more than it sounds.&lt;/p&gt;

&lt;p&gt;You can send it a screenshot and ask "what's wrong with this UI?" or feed it a product photo and generate descriptions. Or analyze video content without pre-processing it into frames.&lt;/p&gt;

&lt;p&gt;All through the same API, billed the same way.&lt;/p&gt;

&lt;p&gt;For a lot of real-world apps, this eliminates entire preprocessing pipelines you'd otherwise need.&lt;/p&gt;

&lt;h2&gt;
  
  
  How It Actually Works (The Basics)
&lt;/h2&gt;

&lt;p&gt;Nova models are available through Bedrock, AWS's managed AI service.&lt;/p&gt;

&lt;p&gt;Same API you'd use for Claude or Llama. Same SDKs. Same infrastructure.&lt;/p&gt;

&lt;p&gt;Here's what a basic call looks like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;boto3&lt;/span&gt;

&lt;span class="n"&gt;bedrock&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;boto3&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;client&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;bedrock-runtime&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;region_name&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;us-east-1&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;bedrock&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;invoke_model&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;modelId&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;amazon.nova-pro-v1:0&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;body&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;json&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;dumps&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;messages&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[{&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;role&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;user&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;content&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Explain databases simply&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;}],&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;max_tokens&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;500&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;temperature&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;0.7&lt;/span&gt;
    &lt;span class="p"&gt;})&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If you've used Bedrock before, this looks identical. That's intentional.&lt;/p&gt;

&lt;p&gt;The switching cost between models is basically zero. Try Nova Lite, doesn't work well enough, bump to Pro, done.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Pricing Reality Check
&lt;/h2&gt;

&lt;p&gt;This is where Nova gets interesting.&lt;/p&gt;

&lt;p&gt;Nova Micro: roughly $0.035 per million input tokens. Insanely cheap.&lt;/p&gt;

&lt;p&gt;Nova Lite: around $0.06 per million input tokens. Still very affordable.&lt;/p&gt;

&lt;p&gt;Nova Pro: about $0.80 per million input tokens. This is where you're balancing cost and quality.&lt;/p&gt;

&lt;p&gt;For context, GPT-4 is around $10 per million input tokens. Claude Sonnet is similar.&lt;/p&gt;

&lt;p&gt;So if you're processing a million tokens with Nova Pro vs GPT-4, you're looking at roughly $0.80 vs $10. That's a 12x difference.&lt;/p&gt;

&lt;p&gt;At scale, that's the difference between "this feature is profitable" and "this feature is bleeding money."&lt;/p&gt;

&lt;h2&gt;
  
  
  What People Are Actually Building With It
&lt;/h2&gt;

&lt;p&gt;Early adopters are using Nova for some pretty practical stuff.&lt;/p&gt;

&lt;p&gt;Summarizing customer support tickets before routing them. Generating product descriptions from specs. Analyzing user feedback at scale. Creating draft responses in internal tools.&lt;/p&gt;

&lt;p&gt;One pattern I'm seeing: use Nova Lite/Pro for the bulk work, then use Claude or GPT-4 only for the cases that really need it.&lt;/p&gt;

&lt;p&gt;Like a two-tier system. 80% of requests go to Nova, 20% escalate to premium models. Your cost drops massively but quality stays high where it matters.&lt;/p&gt;

&lt;h2&gt;
  
  
  Things That Might Trip You Up
&lt;/h2&gt;

&lt;p&gt;Nova models are region-specific right now. Not available everywhere Bedrock is.&lt;/p&gt;

&lt;p&gt;Check the AWS docs for current region availability before you commit to an architecture.&lt;/p&gt;

&lt;p&gt;Also, these are foundation models, not fine-tuned for your specific use case. They're good generalists but if you need domain-specific expertise, you might still need RAG or fine-tuning.&lt;/p&gt;

&lt;p&gt;And obviously, these are AWS-only. If you're multi-cloud or cloud-agnostic, vendor lock-in is real. Think through that trade-off.&lt;/p&gt;

&lt;h2&gt;
  
  
  Should You Care About This?
&lt;/h2&gt;

&lt;p&gt;If you're building anything AI-powered on AWS and cost is a factor, yesss definitely look at Nova.&lt;/p&gt;

&lt;p&gt;If you're prototyping and not sure what model you need, start with Nova Lite. It's cheap enough that you can experiment without stress.&lt;/p&gt;

&lt;p&gt;If you're already using expensive models through Bedrock and your bill is painful, run some tests with Nova Pro. The performance gap might be smaller than you think.&lt;/p&gt;

&lt;p&gt;I'm not saying Nova is better than GPT-4 or Claude at everything. It's not.&lt;/p&gt;

&lt;p&gt;But it's good enough for a LOT of real-world use cases, and the pricing makes features financially viable that weren't before.&lt;/p&gt;

&lt;p&gt;That's kind of the whole point.&lt;/p&gt;

&lt;p&gt;You don't always need the absolute best model. Sometimes you just need one that works well enough and doesn't destroy your budget.&lt;/p&gt;

</description>
      <category>aws</category>
      <category>awsnova</category>
      <category>devops</category>
      <category>mlops</category>
    </item>
    <item>
      <title>What Is AWS SageMaker, Actually??</title>
      <dc:creator>Saksham Paliwal</dc:creator>
      <pubDate>Sat, 17 Jan 2026 17:14:11 +0000</pubDate>
      <link>https://dev.to/sakshampaliwal/what-is-aws-sagemaker-actually-47kf</link>
      <guid>https://dev.to/sakshampaliwal/what-is-aws-sagemaker-actually-47kf</guid>
      <description>&lt;p&gt;You've been building APIs, deploying containers, managing CI/CD pipelines... and now someone mentions "training a model" and suddenly everyone's talking about GPUs, Jupyter notebooks, and something called SageMaker.&lt;/p&gt;

&lt;p&gt;And you're like, wait. I thought we just write code and deploy it?&lt;/p&gt;

&lt;p&gt;Yeah, ML is different. Let's talk about it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why does SageMaker even exist?
&lt;/h2&gt;

&lt;p&gt;Here's the real story.&lt;/p&gt;

&lt;p&gt;Around 2015-2017, companies started actually trying to do machine learning in production. Not just research papers. Real products.&lt;/p&gt;

&lt;p&gt;And they hit a wall.&lt;/p&gt;

&lt;p&gt;Data scientists would build models on their laptops. Works great! Then they'd try to put it in production and... chaos. The infrastructure team doesn't know what a "training job" is. The model needs specific GPU instances. Where do we store the trained model? How do we version it? How do we serve predictions at scale?&lt;/p&gt;

&lt;p&gt;Every company was rebuilding the same infrastructure from scratch.&lt;/p&gt;

&lt;p&gt;AWS saw this pain and launched SageMaker in 2017. The pitch was simple: we'll handle all the infrastructure stuff so you can focus on the actual ML part.&lt;/p&gt;

&lt;h2&gt;
  
  
  So what actually is SageMaker?
&lt;/h2&gt;

&lt;p&gt;Think of it as a managed platform for the entire machine learning workflow.&lt;/p&gt;

&lt;p&gt;Not just one thing. A collection of tools that work together.&lt;/p&gt;

&lt;p&gt;You get managed Jupyter notebooks for experimentation. You get scalable training infrastructure that spins up when you need it. You get model hosting for serving predictions. You get monitoring, versioning, pipelines, the whole deal.&lt;/p&gt;

&lt;p&gt;It's like how you don't manage Kubernetes clusters yourself anymore, you use EKS. Same vibe, but for ML workflows.&lt;/p&gt;

&lt;h2&gt;
  
  
  When do people actually use this?
&lt;/h2&gt;

&lt;p&gt;you use SageMaker when you're doing ML at a scale where the infrastructure becomes the problem.&lt;/p&gt;

&lt;p&gt;If your data scientist is training models on their laptop once a month, you probably don't need it yet.&lt;/p&gt;

&lt;p&gt;But when you're:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Training models on datasets that don't fit in memory&lt;/li&gt;
&lt;li&gt;Need GPUs but don't want to manage GPU instances yourself&lt;/li&gt;
&lt;li&gt;Want to retrain models automatically when new data arrives&lt;/li&gt;
&lt;li&gt;Need to serve predictions to thousands of users&lt;/li&gt;
&lt;li&gt;Have multiple people working on ML and sharing resources&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That's when SageMaker starts making sense.&lt;/p&gt;

&lt;p&gt;A lot of teams start with it because their data scientists already know it, or because they're already deep in AWS and want everything in one place.&lt;/p&gt;

&lt;h2&gt;
  
  
  The main pieces you'll actually touch
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Training jobs&lt;/strong&gt; are probably what you'll see first. Your data scientist writes training code, and SageMaker spins up instances, runs the training, saves the model, and shuts everything down. You only pay for compute time.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Endpoints&lt;/strong&gt; are how you serve predictions in production. Deploy your trained model, get an HTTPS endpoint, and your apps can call it. Auto-scaling included.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Notebooks&lt;/strong&gt; are managed Jupyter environments. Your data scientists can experiment without you provisioning instances for them.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pipelines&lt;/strong&gt; let you automate the whole workflow. New data arrives, trigger training, evaluate the model, deploy if it's good enough. Standard DevOps stuff but for ML.&lt;/p&gt;

&lt;h2&gt;
  
  
  What it looks like in practice
&lt;/h2&gt;

&lt;p&gt;Let's say your team trained a model that predicts customer churn.&lt;/p&gt;

&lt;p&gt;Training happens through a SageMaker training job. You point it at your data in S3, specify instance type and count, and it handles the rest. The trained model artifact gets saved back to S3.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;sagemaker.sklearn&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;SKLearn&lt;/span&gt;

&lt;span class="n"&gt;estimator&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;SKLearn&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;entry_point&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;train.py&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;role&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;role&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;instance_type&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;ml.m5.xlarge&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;framework_version&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;1.0-1&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;estimator&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;fit&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;training&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;s3://bucket/data&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;})&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Once trained, you deploy it to an endpoint:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;predictor&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;estimator&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;deploy&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;initial_instance_count&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;instance_type&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;ml.t2.medium&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now your API can call this endpoint to get predictions. SageMaker handles scaling, health checks, all that infrastructure stuff.&lt;/p&gt;

&lt;h2&gt;
  
  
  The parts that might confuse you
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;You're not running Docker containers the normal way.&lt;/strong&gt; SageMaker has its own conventions for how training code should be structured. There's a learning curve if you're used to standard containerized apps.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pricing is different.&lt;/strong&gt; You pay for notebook instances while they're running. You pay for training by the second. Endpoints have hourly charges. It's not like Lambda where you only pay per request.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;IAM roles get complicated.&lt;/strong&gt; SageMaker needs permissions to access S3, write logs, use ECR. Setting this up the first time is... annoying.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Not everything needs SageMaker.&lt;/strong&gt; If you're just calling OpenAI's API or using a pre-trained model, you don't need any of this. SageMaker is for when you're training and deploying your own models.&lt;/p&gt;

&lt;h2&gt;
  
  
  What about all the other features?
&lt;/h2&gt;

&lt;p&gt;SageMaker has gotten huge. There's SageMaker Studio (an IDE), Feature Store (for ML features), Model Monitor (for drift detection), Clarify (for bias detection), and like 20 other services.&lt;/p&gt;

&lt;p&gt;You don't need to know all of them.&lt;/p&gt;

&lt;p&gt;Most teams start with notebooks, training jobs, and endpoints. That's the core loop.&lt;/p&gt;

&lt;p&gt;The other stuff you add when you hit specific problems. Model predictions getting worse over time? Then look at Model Monitor. Need to share feature engineering across teams? Feature Store might help.&lt;/p&gt;

&lt;p&gt;Don't try to learn everything at once.&lt;/p&gt;

&lt;h2&gt;
  
  
  When you might NOT want SageMaker
&lt;/h2&gt;

&lt;p&gt;If your team is already deep in GCP, Vertex AI is basically the same thing.&lt;/p&gt;

&lt;p&gt;If you want more control and your team is comfortable managing infrastructure, you could run everything on EKS with Kubeflow.&lt;/p&gt;

&lt;p&gt;If you're doing very simple ML, sometimes a Flask app serving predictions from a pre-trained model is totally fine.&lt;/p&gt;

&lt;p&gt;SageMaker shines when you're scaling ML workloads and want AWS to handle the infrastructure complexity. If that's not your situation yet, it might be overkill.&lt;/p&gt;

&lt;h2&gt;
  
  
  The real value proposition
&lt;/h2&gt;

&lt;p&gt;Here's what it comes down to.&lt;/p&gt;

&lt;p&gt;Machine learning infrastructure is genuinely hard. Managing GPU instances, orchestrating distributed training, serving models at scale, monitoring for drift, versioning everything properly.&lt;/p&gt;

&lt;p&gt;You could build all of this yourself. Many companies did.&lt;/p&gt;

&lt;p&gt;But it's a ton of undifferentiated heavy lifting. SageMaker lets you skip that part and focus on the actual ML problems you're trying to solve.&lt;/p&gt;

&lt;p&gt;For DevOps folks, think of it as the "managed service" approach applied to ML workflows. Same tradeoffs as always: less control, less flexibility, but way faster to get started and someone else handles the ops.&lt;/p&gt;




&lt;p&gt;Start small. Spin up a notebook, run through a tutorial, see how training jobs work. The concepts will click way faster when you're actually trying to solve a real problem.&lt;/p&gt;

&lt;p&gt;You're already asking the right questions. That's the important part.&lt;/p&gt;

</description>
      <category>sagemaker</category>
      <category>aws</category>
      <category>machinelearning</category>
      <category>devops</category>
    </item>
    <item>
      <title>RAG on AWS Just Got Simpler with S3 Vector</title>
      <dc:creator>Saksham Paliwal</dc:creator>
      <pubDate>Fri, 16 Jan 2026 17:26:03 +0000</pubDate>
      <link>https://dev.to/sakshampaliwal/rag-on-aws-just-got-simpler-with-s3-vector-38ei</link>
      <guid>https://dev.to/sakshampaliwal/rag-on-aws-just-got-simpler-with-s3-vector-38ei</guid>
      <description>&lt;p&gt;You're running a RAG pipeline. Everything's working fine.&lt;/p&gt;

&lt;p&gt;Your vectors are sitting in Pinecone or Weaviate, your documents are in S3, and you're paying two separate bills every month.&lt;/p&gt;

&lt;p&gt;Then someone on your team asks, "Wait... why are we storing embeddings in a completely different service when our actual data is already in S3?"&lt;/p&gt;

&lt;p&gt;Good question, right?&lt;/p&gt;

&lt;p&gt;But also... wait, what are embeddings? And what's a RAG pipeline anyway?&lt;/p&gt;

&lt;p&gt;Let's back up for a second.&lt;/p&gt;

&lt;h2&gt;
  
  
  The AI context you need first
&lt;/h2&gt;

&lt;p&gt;Okay so here's what's happening in the AI world right now.&lt;/p&gt;

&lt;p&gt;Companies are building chatbots and AI assistants that can answer questions about their own documents. Like, you upload your company's documentation, and users can ask questions in plain English and get answers back.&lt;/p&gt;

&lt;p&gt;This is called RAG, which stands for Retrieval-Augmented Generation.&lt;/p&gt;

&lt;p&gt;Fancy name, simple idea: the AI retrieves relevant information from your documents, then generates an answer based on what it found.&lt;/p&gt;

&lt;p&gt;But here's the problem. Computers don't naturally understand that "How do I reset my password?" and "What's the process for password recovery?" mean the same thing.&lt;/p&gt;

&lt;p&gt;That's where embeddings come in.&lt;/p&gt;

&lt;h2&gt;
  
  
  What are embeddings, really?
&lt;/h2&gt;

&lt;p&gt;An embedding is just a list of numbers that represents meaning.&lt;/p&gt;

&lt;p&gt;When you convert text into an embedding, similar meanings get similar numbers. It's like giving every piece of text a mathematical fingerprint based on what it means, not just what words it uses.&lt;/p&gt;

&lt;p&gt;So "reset password" and "password recovery" would have very similar embeddings, even though the words are different.&lt;/p&gt;

&lt;p&gt;These embeddings are also called vectors. Same thing, different name.&lt;/p&gt;

&lt;p&gt;When you have millions of these vectors and you need to find the ones most similar to a user's question? That's called vector search.&lt;/p&gt;

&lt;p&gt;And that's what specialized databases like Pinecone and Weaviate are built for.&lt;/p&gt;

&lt;p&gt;They're really good at storing millions of these number lists and finding similar ones super fast.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why this even exists
&lt;/h2&gt;

&lt;p&gt;Here's the thing.&lt;/p&gt;

&lt;p&gt;For years, if you wanted to do vector search, you had &lt;em&gt;no choice&lt;/em&gt; but to use a specialized vector database. Pinecone, Weaviate, Milvus, whatever. They're great tools, but they're also another service to manage, another bill to pay, another thing that can go down.&lt;/p&gt;

&lt;p&gt;Your documents? In S3.&lt;/p&gt;

&lt;p&gt;Your embeddings? Somewhere else entirely.&lt;/p&gt;

&lt;p&gt;AWS noticed this gap. A lot of teams were already storing massive amounts of data in S3, and many of those teams were also doing AI/ML work that needed vector search. But there was no native way to do vector search directly on S3 data.&lt;/p&gt;

&lt;p&gt;So in late 2024, AWS released S3 Metadata and announced plans for S3 Tables with built-in vector search capabilities. The goal was simple: let you store and search vectors right where your data already lives.&lt;/p&gt;

&lt;p&gt;No separate database. No data duplication. Just S3.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is S3 Vector, actually?
&lt;/h2&gt;

&lt;p&gt;S3 Vector isn't a separate product.&lt;/p&gt;

&lt;p&gt;It's a capability being built into S3 itself through S3 Tables, which lets you store structured data (including vector embeddings) and query it directly.&lt;/p&gt;

&lt;p&gt;Think of it like this: instead of putting your embeddings in Pinecone and your PDFs in S3, you can store both in S3 and search the vectors natively.&lt;/p&gt;

&lt;p&gt;The promise is pretty straightforward. You get vector search without leaving the S3 ecosystem. No extra infrastructure, no syncing data between systems, no separate vector DB bill.&lt;/p&gt;

&lt;h2&gt;
  
  
  The whole flow, step by step
&lt;/h2&gt;

&lt;p&gt;Let me paint the full picture so this actually makes sense.&lt;/p&gt;

&lt;p&gt;Let's say you're building that documentation chatbot I mentioned.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The old way:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;User uploads a PDF to S3&lt;/li&gt;
&lt;li&gt;You break it into chunks (paragraphs or sections)&lt;/li&gt;
&lt;li&gt;You send each chunk to an AI model to get embeddings (those number lists)&lt;/li&gt;
&lt;li&gt;You store those embeddings in Pinecone or another vector database&lt;/li&gt;
&lt;li&gt;You also keep a reference to which S3 file each embedding came from&lt;/li&gt;
&lt;li&gt;When a user asks a question, you convert their question into an embedding&lt;/li&gt;
&lt;li&gt;You search Pinecone for similar embeddings&lt;/li&gt;
&lt;li&gt;You grab the original text from S3&lt;/li&gt;
&lt;li&gt;You send that text + the question to an AI to generate an answer&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Two separate systems. S3 for files, Pinecone for vectors.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The S3 Vector way:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Steps 1-3 are the same.&lt;/p&gt;

&lt;p&gt;But then instead of uploading to Pinecone, you store the embeddings right in S3 alongside your documents.&lt;/p&gt;

&lt;p&gt;When a user asks a question, you search directly in S3 for similar vectors.&lt;/p&gt;

&lt;p&gt;Everything's in one place.&lt;/p&gt;

&lt;h2&gt;
  
  
  When would you actually use this?
&lt;/h2&gt;

&lt;p&gt;Okay so here's where it gets practical.&lt;/p&gt;

&lt;p&gt;S3 Vector makes sense if you're already deep in the AWS ecosystem and you want to simplify your architecture.&lt;/p&gt;

&lt;p&gt;You're building a RAG application. You've got millions of documents in S3. You're generating embeddings for semantic search (that's just a fancy way of saying "search by meaning, not just keywords").&lt;/p&gt;

&lt;p&gt;Normally, you'd have to keep S3 and your vector database in sync. If you update a document, you need to regenerate embeddings and update both places.&lt;/p&gt;

&lt;p&gt;With S3 Vector, you skip that complexity. Everything lives in S3.&lt;/p&gt;

&lt;p&gt;It's not always the right move though!!!&lt;/p&gt;

&lt;p&gt;If you need super low-latency vector search at massive scale, dedicated vector databases are still probably better. They're optimized specifically for that workload.&lt;/p&gt;

&lt;p&gt;But if you're optimizing for simplicity, cost, or you're already committed to AWS? S3 Vector starts looking pretty good.&lt;/p&gt;

&lt;h2&gt;
  
  
  The actual setup (very briefly)
&lt;/h2&gt;

&lt;p&gt;I'm not gonna walk through a full tutorial here because honestly, the feature is still pretty new and evolving fast.&lt;/p&gt;

&lt;p&gt;But the basic flow looks like this:&lt;/p&gt;

&lt;p&gt;You create an S3 Table (this is the new table format AWS introduced). You define your schema, including a column for vector embeddings. You load your data, including the vectors. Then you run queries using SQL-like syntax that includes vector search operations.&lt;/p&gt;

&lt;p&gt;Something like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="k"&gt;SELECT&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="k"&gt;FROM&lt;/span&gt; &lt;span class="n"&gt;my_table&lt;/span&gt;
&lt;span class="k"&gt;ORDER&lt;/span&gt; &lt;span class="k"&gt;BY&lt;/span&gt; &lt;span class="n"&gt;vector_distance&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;embedding_column&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;query_vector&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;LIMIT&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This finds the 10 vectors closest to your query vector. "Closest" meaning most similar in meaning.&lt;/p&gt;

&lt;p&gt;It's meant to feel familiar if you've used any vector database before.&lt;/p&gt;

&lt;p&gt;The specifics depend on whether you're using S3 Tables directly, integrating with services like Bedrock (AWS's AI service), or going through other AWS AI tools. The ecosystem is still taking shape.&lt;/p&gt;

&lt;h2&gt;
  
  
  What to watch out for
&lt;/h2&gt;

&lt;p&gt;This is early days.&lt;/p&gt;

&lt;p&gt;S3 Vector through S3 Tables is newer than most vector databases you've probably heard of. The feature set is growing, but it's not as mature as Pinecone or Weaviate yet.&lt;/p&gt;

&lt;p&gt;Performance characteristics are still being figured out by the community. How does it handle billions of vectors? What's the latency like? How does it scale compared to dedicated solutions?&lt;/p&gt;

&lt;p&gt;These are real questions that don't have tons of public benchmarks yet.&lt;/p&gt;

&lt;p&gt;Also, you're committing harder to AWS. That might be fine! But it's worth knowing.&lt;/p&gt;

&lt;h2&gt;
  
  
  So should you care?
&lt;/h2&gt;

&lt;p&gt;If you're just learning about embeddings and vector search, you don't need to stress about this yet.&lt;/p&gt;

&lt;p&gt;Get comfortable with the basics first. Understand what embeddings are, play around with a vector database, build a simple RAG pipeline.&lt;/p&gt;

&lt;p&gt;Once you've done that? Then S3 Vector becomes interesting.&lt;/p&gt;

&lt;p&gt;If you're building something new and you're already in AWS, yeah, definitely keep an eye on this.&lt;/p&gt;

&lt;p&gt;If you're trying to reduce operational complexity and your vector search needs are moderate, it could be a really clean solution.&lt;/p&gt;

&lt;p&gt;The real power here is architectural simplicity. One less service to manage, one less thing to keep in sync, one less bill to explain to your manager.&lt;/p&gt;

&lt;p&gt;That's not nothing.&lt;/p&gt;




&lt;p&gt;If you’re already running RAG on AWS it’s worth experimenting with S3 Vector in a side project&lt;/p&gt;

&lt;p&gt;Keep building, stay curious, and don't stress about knowing every new feature the day it drops. You're doing great.&lt;/p&gt;

</description>
      <category>aws</category>
      <category>vectordatabase</category>
      <category>rag</category>
      <category>s3</category>
    </item>
    <item>
      <title>AWS Athena: Query Your S3 Data Without Setting Up a Database</title>
      <dc:creator>Saksham Paliwal</dc:creator>
      <pubDate>Mon, 12 Jan 2026 15:56:41 +0000</pubDate>
      <link>https://dev.to/sakshampaliwal/aws-athena-query-your-s3-data-without-setting-up-a-database-2ipe</link>
      <guid>https://dev.to/sakshampaliwal/aws-athena-query-your-s3-data-without-setting-up-a-database-2ipe</guid>
      <description>&lt;p&gt;You're staring at terabytes of logs sitting in S3.&lt;/p&gt;

&lt;p&gt;Your manager wants a quick report. Something simple. Just count how many 500 errors happened last week.&lt;/p&gt;

&lt;p&gt;You know the data's there. It's all in S3. But to query it, you'd need to spin up a database, load all that data in, set up schemas, manage infrastructure...&lt;/p&gt;

&lt;p&gt;And you're thinking, "there HAS to be a simpler way to just... ask questions about files."&lt;/p&gt;

&lt;p&gt;There is. It's called Athena.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Does Athena Even Exist?
&lt;/h2&gt;

&lt;p&gt;Let me take you back to the early 2010s.&lt;/p&gt;

&lt;p&gt;S3 was already massive. Companies were dumping logs, analytics data, application events, everything into S3 buckets. It was cheap storage, it was durable, it was perfect.&lt;/p&gt;

&lt;p&gt;But here's the problem: S3 is just object storage. You can put files in, you can pull files out. That's it.&lt;/p&gt;

&lt;p&gt;If you wanted to actually query that data, you had two options. Download everything locally and grep through it (good luck with that at scale). Or load it all into a proper database like Redshift or RDS first.&lt;/p&gt;

&lt;p&gt;Both options were painful for quick analysis.&lt;/p&gt;

&lt;p&gt;AWS saw this gap. People needed SQL queries on S3 data without the ceremony of setting up databases.&lt;/p&gt;

&lt;p&gt;So in 2016, they launched Athena. Built on top of Presto (an open-source distributed SQL engine), it let you write SQL queries directly against data in S3.&lt;/p&gt;

&lt;p&gt;No servers to manage. No data to load. Just point at your S3 bucket and start querying.&lt;/p&gt;

&lt;h2&gt;
  
  
  So What Actually Is Athena?
&lt;/h2&gt;

&lt;p&gt;Think of Athena as a serverless SQL interface for S3.&lt;/p&gt;

&lt;p&gt;You define a table schema that maps to your S3 data structure. Then you write regular SQL queries. Athena reads the files from S3, processes them on-demand, and returns results.&lt;/p&gt;

&lt;p&gt;It's not a database. It doesn't store your data separately. It just reads whatever's already in S3 and lets you query it like it's a database.&lt;/p&gt;

&lt;p&gt;The whole thing is serverless. You don't provision anything. You just pay per query based on how much data it scans.&lt;/p&gt;

&lt;h2&gt;
  
  
  When Do People Actually Use This?
&lt;/h2&gt;

&lt;p&gt;Here's where Athena really shines.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Log analysis is probably the biggest use case.&lt;/strong&gt; Your application logs are streaming into S3via CloudWatch or Kinesis Firehose. You want to check error rates, search for specific events, debug production issues. Athena lets you do that with SQL instead of downloading gigabytes of log files.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Ad-hoc data exploration&lt;/strong&gt; is another huge one. You've got some CSV files or JSON data dumps sitting in S3. Before building a whole ETL pipeline, you just want to poke around and see what's in there. Athena's perfect for that.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cost-effective analytics for infrequent queries.&lt;/strong&gt; If you're not running queries constantly, spinning up a Redshift cluster or RDS instance feels like overkill. Athena charges only when you query, so it's way cheaper for occasional analysis.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Data lake queries&lt;/strong&gt; are common too. Companies build data lakes in S3 with years of historical data. Athena becomes the query layer on top of that lake.&lt;/p&gt;

&lt;p&gt;Here's a super simple example of what an Athena query looks like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="k"&gt;SELECT&lt;/span&gt; &lt;span class="n"&gt;status_code&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="k"&gt;COUNT&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="k"&gt;count&lt;/span&gt;
&lt;span class="k"&gt;FROM&lt;/span&gt; &lt;span class="n"&gt;application_logs&lt;/span&gt;
&lt;span class="k"&gt;WHERE&lt;/span&gt; &lt;span class="nb"&gt;date&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;'2026-01-11'&lt;/span&gt;
  &lt;span class="k"&gt;AND&lt;/span&gt; &lt;span class="n"&gt;status_code&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;=&lt;/span&gt; &lt;span class="mi"&gt;500&lt;/span&gt;
&lt;span class="k"&gt;GROUP&lt;/span&gt; &lt;span class="k"&gt;BY&lt;/span&gt; &lt;span class="n"&gt;status_code&lt;/span&gt;
&lt;span class="k"&gt;ORDER&lt;/span&gt; &lt;span class="k"&gt;BY&lt;/span&gt; &lt;span class="k"&gt;count&lt;/span&gt; &lt;span class="k"&gt;DESC&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That's it. Regular SQL. Nothing weird.&lt;/p&gt;

&lt;h2&gt;
  
  
  How Does the Schema Thing Work?
&lt;/h2&gt;

&lt;p&gt;This trips people up at first.&lt;/p&gt;

&lt;p&gt;Athena needs to know the structure of your data. If you have JSON logs in S3, Athena needs to know which fields exist and what types they are.&lt;/p&gt;

&lt;p&gt;You create that mapping using a &lt;code&gt;CREATE TABLE&lt;/code&gt; statement. You're not actually creating a table or moving data. You're just telling Athena, "hey, this S3 path has files in this format with these columns."&lt;/p&gt;

&lt;p&gt;AWS Glue Crawler can automate this for you. It scans your S3 data and automatically creates the table definitions. Pretty handy when you're getting started.&lt;/p&gt;

&lt;h2&gt;
  
  
  What About Performance?
&lt;/h2&gt;

&lt;p&gt;Here's the thing: Athena scans data from S3 every single time you query.&lt;/p&gt;

&lt;p&gt;If your data is in huge CSV files or uncompressed JSON, queries can be slow and expensive. Athena charges based on data scanned, remember?&lt;/p&gt;

&lt;p&gt;This is where file formats matter a lot.&lt;/p&gt;

&lt;p&gt;Columnar formats like Parquet or ORC are game-changers. They let Athena read only the columns you actually query, not the whole file. Queries run faster and scan way less data.&lt;/p&gt;

&lt;p&gt;Partitioning your data helps too. If you organize files by date like &lt;code&gt;s3://bucket/logs/year=2026/month=01/day=11/&lt;/code&gt;, Athena can skip entire partitions when you filter by date.&lt;/p&gt;

&lt;p&gt;These optimizations can reduce costs by 10x or more. Not exaggerating.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Are the Limitations?
&lt;/h2&gt;

&lt;p&gt;Athena isn't a replacement for a real database.&lt;/p&gt;

&lt;p&gt;It's designed for analysis, not transactions. You can't UPDATE or DELETE rows. You can only INSERT new data by adding files to S3.&lt;/p&gt;

&lt;p&gt;Query performance depends heavily on data format and size. Poorly organized data means slow, expensive queries.&lt;/p&gt;

&lt;p&gt;There's also a query timeout of 30 minutes. If your query takes longer than that, it fails. Usually means your data needs better partitioning or format conversion.&lt;/p&gt;

&lt;p&gt;And remember, every query scans from S3. There's no caching between queries by default. If you run the same query twice, you pay twice.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where Does This Fit in Your Stack?
&lt;/h2&gt;

&lt;p&gt;Think of Athena as your "quick question" tool for S3 data.&lt;/p&gt;

&lt;p&gt;It's not your primary production database. It's not your real-time analytics engine.&lt;/p&gt;

&lt;p&gt;But when you need to investigate something, run a one-off report, or explore data before building a proper pipeline? Athena's incredibly useful.&lt;/p&gt;

&lt;p&gt;A lot of teams use it alongside other tools. Logs go to S3, Athena queries them for debugging. Raw data lands in S3, Athena explores it, then a proper ETL moves important stuff to Redshift or RDS for production queries.&lt;/p&gt;

&lt;p&gt;It fills a specific gap really well.&lt;/p&gt;

&lt;h2&gt;
  
  
  Give It a Try
&lt;/h2&gt;

&lt;p&gt;Next time you're staring at data in S3 wishing you could just query it, remember Athena exists.&lt;/p&gt;

&lt;p&gt;It's not perfect for everything. But for what it does, it does it really well.&lt;/p&gt;

&lt;p&gt;And honestly? The first time you write a SQL query against a bunch of S3 files without setting up any infrastructure, it feels kinda magical.&lt;/p&gt;

&lt;p&gt;Start small. Point it at some logs. Run a simple query. See what happens.&lt;/p&gt;

&lt;p&gt;You might be surprised how often you reach for it after that!!!&lt;/p&gt;

</description>
      <category>devops</category>
      <category>aws</category>
      <category>athena</category>
      <category>awschallenge</category>
    </item>
  </channel>
</rss>
