<?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: kamilius7</title>
    <description>The latest articles on DEV Community by kamilius7 (@kamilius7).</description>
    <link>https://dev.to/kamilius7</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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4234053%2F63acf1bb-2e21-4db1-839b-a38a5b2f8024.png</url>
      <title>DEV Community: kamilius7</title>
      <link>https://dev.to/kamilius7</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/kamilius7"/>
    <language>en</language>
    <item>
      <title>IaaS in practice: hosting a community app on AWS</title>
      <dc:creator>kamilius7</dc:creator>
      <pubDate>Sun, 08 Nov 2026 20:04:35 +0000</pubDate>
      <link>https://dev.to/kamilius7/iaas-in-practice-hosting-a-community-app-on-aws-4158</link>
      <guid>https://dev.to/kamilius7/iaas-in-practice-hosting-a-community-app-on-aws-4158</guid>
      <description>&lt;p&gt;Ever wondered what people actually mean when they say "we deployed it to the cloud"? Let's find out together. We'll use Amazon EC2 to explore Infrastructure as a Service (IaaS): you'll rent a server by the hour, host a small community app on it, and see which jobs the provider handles and which ones are still on you.&lt;br&gt;
This one is for students and junior developers. If so far you've only run projects on your laptop or a shared host, you'll come away with a clear picture of what changes when you rent raw infrastructure.&lt;br&gt;
A bit about me, for context: I'm a science student in Bamenda, and I built Bamenda Navigator, a map app for finding local places (40+ spots across 16 categories) with React, TypeScript, OpenStreetMap and Supabase. Supabase handled the backend for me, which is the managed, PaaS-style end of the spectrum. IaaS sits one level lower, where you run the server yourself.&lt;br&gt;
I've also had a taste of the networking side. In a Cisco Packet Tracer assignment I connected two campus LANs with a router, static routing and SSH, so remote access and thinking about who can reach what weren't new to me when I started reading about EC2.&lt;br&gt;
So why bother with IaaS?&lt;br&gt;
Think about the last project you finished. Where did it run? A laptop goes dark the moment the battery dies. Shared hosting won't let you install what you need. Buying your own server means paying upfront, plus power, cooling and someone to fix it at 2 a.m. IaaS takes the hardware headache away but leaves the software in your hands, which is why it's usually the first cloud model developers try.&lt;br&gt;
So what is IaaS, really?&lt;br&gt;
Picture the cloud as a stack of layers, with IaaS as the bottom one. The provider owns the data centres, the physical servers, the disks and the cables. You simply rent slices of it over the internet: virtual machines, virtual disks and virtual networks. You pick the size, the operating system and where in the world it lives, and you only pay for what you use.&lt;br&gt;
Here's the part worth remembering: responsibility is split. The provider looks after everything up to the hypervisor, the software that carves one physical server into many virtual ones. From the operating system upward, it's all you. Have a look at who handles what in each model:&lt;br&gt;
Layer&lt;br&gt;
On-premises&lt;br&gt;
IaaS&lt;br&gt;
PaaS&lt;br&gt;
SaaS&lt;br&gt;
Application and data&lt;br&gt;
You&lt;br&gt;
You&lt;br&gt;
You&lt;br&gt;
Provider&lt;br&gt;
Runtime and middleware&lt;br&gt;
You&lt;br&gt;
You&lt;br&gt;
Provider&lt;br&gt;
Provider&lt;br&gt;
Operating system&lt;br&gt;
You&lt;br&gt;
You&lt;br&gt;
Provider&lt;br&gt;
Provider&lt;br&gt;
Virtualization, servers, storage, network&lt;br&gt;
You&lt;br&gt;
Provider&lt;br&gt;
Provider&lt;br&gt;
Provider&lt;br&gt;
Data centre (power, cooling, buildings)&lt;br&gt;
You&lt;br&gt;
Provider&lt;br&gt;
Provider&lt;br&gt;
Provider&lt;br&gt;
Want some real names to hang these on? Amazon EC2, Google Compute Engine and Azure Virtual Machines are IaaS. Heroku and Google App Engine are PaaS. Gmail and Google Docs are SaaS. Which of these have you already used?&lt;br&gt;
Our case study: a community place-finder on EC2&lt;br&gt;
Let's make this concrete. Imagine you're part of a student team in Bamenda building a web app that helps residents find clinics, markets and transport stops. It's a Node.js API with a small database, and at first only a few hundred people will use it. What do you need? A public address, a server that stays on, and room to grow.&lt;br&gt;
EC2 (Elastic Compute Cloud) is a great fit here, and here's why:&lt;br&gt;
• You're in control. Pick the operating system, install whatever you like and open only the ports you choose.&lt;br&gt;
• Size on demand. Start small, then move up to a bigger instance later by stopping it and changing its type.&lt;br&gt;
• A location on the continent. AWS has a region in Cape Town (af-south-1), which puts your servers in Africa. That can help for local users, but test it: compare response times from your own network against a European region before you commit. New regions open over time, so check the list too.&lt;br&gt;
The IaaS pieces we'll use&lt;br&gt;
EC2 is just one service, but a real deployment needs a few IaaS pieces working as a team. Here's the cast:&lt;br&gt;
Building block&lt;br&gt;
What it is&lt;br&gt;
Role in our app&lt;br&gt;
EC2 instance&lt;br&gt;
A virtual machine with a chosen CPU and memory size&lt;br&gt;
Runs Nginx and the Node.js API&lt;br&gt;
AMI&lt;br&gt;
A machine image: the operating system template&lt;br&gt;
Ubuntu Server as the starting point&lt;br&gt;
EBS volume&lt;br&gt;
A virtual disk attached to the instance&lt;br&gt;
Holds the OS, app code and database files&lt;br&gt;
VPC and subnet&lt;br&gt;
Your private virtual network inside AWS&lt;br&gt;
Isolates the app from other customers&lt;br&gt;
Security group&lt;br&gt;
A stateful virtual firewall around the instance&lt;br&gt;
Allows web traffic and admin SSH only&lt;br&gt;
Key pair&lt;br&gt;
A public/private key used to log in over SSH&lt;br&gt;
Replaces passwords for server access&lt;br&gt;
Elastic IP&lt;br&gt;
A fixed public IPv4 address&lt;br&gt;
Keeps the app address stable after restarts&lt;br&gt;
EBS snapshot&lt;br&gt;
A point-in-time backup of a volume&lt;br&gt;
Lets the team restore after a mistake&lt;br&gt;
Now let's see how they fit together. A visitor's browser reaches your Elastic IP. The security group lets in only ports 80 and 443. Nginx on the instance passes each request to your Node.js app, and any data lands on the EBS volume. Simple, and every piece has a clear job.&lt;br&gt;
Let's build it: from zero to a running app&lt;br&gt;
Roll up your sleeves, because we're doing this in the AWS console. Menu names move around now and then, so treat these steps as a map rather than a script.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Pick your region. In the console, switch to Africa (Cape Town) or whichever region works best for your users.&lt;/li&gt;
&lt;li&gt;Launch an instance. Open EC2 and click Launch instance. Name it place-finder, choose an Ubuntu Server LTS image and pick a small type such as t3.micro. Before you click through, check your free plan: accounts opened since July 2025 start on a credit-based plan (up to $200 in credits, lasting at most 6 months), while older accounts keep the previous free tier.&lt;/li&gt;
&lt;li&gt;Create a key pair. Download the .pem file and guard it carefully. AWS won't hand it to you a second time.&lt;/li&gt;
&lt;li&gt;Set up the firewall. In the security group, allow SSH (port 22) from your own IP only, and HTTP (80) and HTTPS (443) from anywhere. Resist the urge to open SSH to the whole internet!&lt;/li&gt;
&lt;li&gt;Connect. Swap in your instance's public IP and run:
chmod 400 place-finder.pem
ssh -i place-finder.pem ubuntu@YOUR_PUBLIC_IP&lt;/li&gt;
&lt;li&gt;Install what you need.
sudo apt update &amp;amp;&amp;amp; sudo apt upgrade -y
sudo apt install -y nginx nodejs npm&lt;/li&gt;
&lt;li&gt;Bring your app over. Copy your project to the server (a git clone works nicely), install its dependencies and start it on port 3000. For anything beyond a quick test, run it under systemd or a process manager so it restarts itself after a crash or a reboot.&lt;/li&gt;
&lt;li&gt;Let Nginx guard the front door. Drop this server block into /etc/nginx/sites-available/default, then run sudo nginx -t &amp;amp;&amp;amp; sudo systemctl reload nginx:
server {
listen 80;
server_name _;
location / {
    proxy_pass &lt;a href="http://127.0.0.1:3000" rel="noopener noreferrer"&gt;http://127.0.0.1:3000&lt;/a&gt;;
    proxy_set_header Host $host;
    proxy_set_header X-Forwarded-For $remote_addr;
}
}&lt;/li&gt;
&lt;li&gt;Give it a permanent address. Allocate an Elastic IP and attach it to your instance, so the address survives stops and starts.&lt;/li&gt;
&lt;li&gt;Build a safety net. Take an EBS snapshot before every big change, and try restoring from one at least once. A backup you've never tested is just a hope.
Now open the Elastic IP in your browser. Did the app load? Congratulations, you've just run a real IaaS deployment!
Who looks after what? Security and costs
Here's a question worth asking before you launch anything: if something goes wrong, whose job is it to fix it? AWS answers with the shared responsibility model. AWS secures the cloud itself (the buildings, the hardware and the hypervisor), while you secure whatever you put inside it. On EC2, your to-do list looks like this:
• Keep the operating system and packages up to date.
• Open only the security group rules your app really needs.
• Protect your key pair and switch off password logins over SSH.
• Back up your data, and test the restore.
• Encrypt sensitive data and rotate your secrets.
Money deserves the same care. Compute is billed while an instance runs, but a stopped instance still costs you for its EBS volume, snapshots and any IP address you hold. AWS also bills for public IPv4 addresses, even idle Elastic IPs. So how do you dodge a nasty surprise?
• Set a billing budget with an email alert in AWS Budgets on day one.
• Terminate test instances and delete unused volumes, snapshots and Elastic IPs.
• Start with the smallest instance that handles your load, and upsize only when monitoring tells you to.
IaaS: the good, the bad and the alternatives&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Advantages&lt;br&gt;
Drawbacks&lt;br&gt;
Cost&lt;br&gt;
Pay for use, no hardware purchase&lt;br&gt;
Bills can grow if resources are left running&lt;br&gt;
Control&lt;br&gt;
Full access to OS, software and network&lt;br&gt;
You must patch, secure and monitor everything&lt;br&gt;
Scale&lt;br&gt;
Resize or add servers in minutes&lt;br&gt;
Scaling beyond one server needs design work&lt;br&gt;
Reliability&lt;br&gt;
Multiple zones and regions available&lt;br&gt;
One instance is still a single point of failure&lt;br&gt;
Skills&lt;br&gt;
Teaches real operations practice&lt;br&gt;
Steeper learning curve than PaaS&lt;br&gt;
So, is IaaS always the answer? Not quite. If your team just wants to ship code and has no appetite for managing servers, a PaaS like Heroku or App Engine takes the operating system chores off your plate. IaaS shines when you need custom software or specific network rules, or when you simply want to learn how deployments really work.&lt;br&gt;
Wrapping up&lt;br&gt;
IaaS hands you the raw building materials of computing, and EC2 shows the idea clearly: rent a virtual machine, a disk and a network, then build and secure everything on top. Our place-finder app went from nothing to a public, stable deployment with one instance, one firewall, one fixed IP and one backup routine.&lt;br&gt;
Ready to go further? Here are a few next steps to try:&lt;br&gt;
• Add HTTPS with a free certificate from Let's Encrypt.&lt;br&gt;
• Move the database to a managed service, your first step into PaaS.&lt;br&gt;
• Put the app behind a load balancer with two instances in different availability zones.&lt;br&gt;
• Automate the whole setup with an infrastructure-as-code tool such as Terraform.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>ai</category>
      <category>tutorial</category>
      <category>beginners</category>
    </item>
    <item>
      <title>IaaS in practice: hosting a community app on AWS 
Ever wondered what people actually mean when they say "we deployed it to the cloud"? Let's find out together. We'll use Amazon EC2 to explore Infrastructure as a Service (IaaS): you'll rent a server by the</title>
      <dc:creator>kamilius7</dc:creator>
      <pubDate>Sun, 08 Nov 2026 19:53:16 +0000</pubDate>
      <link>https://dev.to/kamilius7/iaas-in-practice-hosting-a-community-app-on-aws-ever-wondered-what-people-actually-mean-when-24jg</link>
      <guid>https://dev.to/kamilius7/iaas-in-practice-hosting-a-community-app-on-aws-ever-wondered-what-people-actually-mean-when-24jg</guid>
      <description></description>
      <category>aws</category>
      <category>cloud</category>
      <category>infrastructure</category>
      <category>tutorial</category>
    </item>
  </channel>
</rss>
