<?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: prathamesh gawade</title>
    <description>The latest articles on DEV Community by prathamesh gawade (@prathamesh_gawade_16).</description>
    <link>https://dev.to/prathamesh_gawade_16</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%2F1517951%2F98d4a2f7-4293-4bb3-ad0b-6dd3c998f858.jpg</url>
      <title>DEV Community: prathamesh gawade</title>
      <link>https://dev.to/prathamesh_gawade_16</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/prathamesh_gawade_16"/>
    <language>en</language>
    <item>
      <title>Server vs Virtual Machine: Understanding the Difference</title>
      <dc:creator>prathamesh gawade</dc:creator>
      <pubDate>Sun, 26 Oct 2025 16:15:02 +0000</pubDate>
      <link>https://dev.to/prathamesh_gawade_16/server-vs-virtual-machine-understanding-the-difference-40dp</link>
      <guid>https://dev.to/prathamesh_gawade_16/server-vs-virtual-machine-understanding-the-difference-40dp</guid>
      <description>&lt;p&gt;Wait, wait… pause for a second. Close your eyes and think: what comes to mind when you hear the word “&lt;strong&gt;server&lt;/strong&gt;”?&lt;/p&gt;

&lt;p&gt;According to Wikipedia, a server is “a computer that provides information to other computers called ‘clients’ on a computer network.” Isn’t that a vaguer definition than what you expected—or even what you had in mind?&lt;/p&gt;

&lt;p&gt;Often, when we talk about servers, we’re actually referring to bare metal machines or virtual machines.&lt;/p&gt;

&lt;p&gt;If you don't know the difference or how virtualization works, don't worry - we will start from basics then dive deep, so buckle up..&lt;/p&gt;




&lt;p&gt;There are two types of servers based on how they are provided for use.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;1. Bare metal Servers&lt;/em&gt;&lt;/strong&gt; - A dedicated physical machine, its plain Hardware and OS. If you want to buy a server it will be this category. you get an direct access to hardware resources. Take Laptop for an example that is also an Bare metal. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;2. Virtual Machine&lt;/em&gt;&lt;/strong&gt; - A Simulated system which runs on a hypervisor — a layer that divides abstracts and shares the resources of physical server into multiple independent virtual servers. Each VM acts like its own isolated system with Its own operating system.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fniadns8uisk6xwv3zgzo.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fniadns8uisk6xwv3zgzo.jpg" alt="Virtual Machine" width="800" height="406"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This explain the high level difference. The Servers you use from a cloud providers are Virtual Servers; AWS's EC2, Azure's VM etc. Why ? because its efficient. Most use cases don't require the tremendous capacity of Bare metal servers. We can divide the resources and distribute. &lt;/p&gt;

&lt;p&gt;But how this works? How virtualization is achieved? Why some provider give poor performance than others despite having same specs?  lets understand step by step. &lt;/p&gt;




&lt;p&gt;Starting with &lt;strong&gt;Hypervisor&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0cwy4r36ekk0lvtwtwyv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0cwy4r36ekk0lvtwtwyv.png" alt="Hypervisor" width="333" height="151"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Hypervisor software is used to create run and manage multiple Virtual Machines on top of the Physical Machine. It is installed on a Physical Machine and  acts as a central management tool to share and allocate resources among multiple VMs running on the same physical host.. &lt;/p&gt;

&lt;p&gt;There are 2 types of hypervisor - &lt;br&gt;
&lt;a href="https://aws.amazon.com/compare/the-difference-between-type-1-and-type-2-hypervisors/" rel="noopener noreferrer"&gt;Difference-between-type-1-and-type-2-hypervisors&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Resource Virtualization (Distribution)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Hypervisor’s job is to slice physical resources into virtual chunks and assign them to VMs. But here is the thing this allocation is logical, Not always 1:1. That's where Virtual CPU, Memory ballooning, overprovisioning comes.&lt;br&gt;
And this affects the performance of your VMs. Which is why performance vary with every Cloud Provider despite having same Specs. &lt;/p&gt;




&lt;p&gt;&lt;strong&gt;What is vCPU (Virtual CPU)?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;vCPU don't exist as a physical entity its just an illusion :) &lt;/p&gt;

&lt;p&gt;A vCPU is a portion of a physical CPU core allocated to a VM by hypervisor. vCPU isn’t tied to one physical core instead hypervisor schedules vCPUs (tasks) on physical cores like a queue. I wont confuse you more.&lt;br&gt;
This is beautifully explained here - &lt;a href="https://virtualizationdojo.com/hyper-v/hyper-v-virtual-cpus-explained/" rel="noopener noreferrer"&gt;https://virtualizationdojo.com/hyper-v/hyper-v-virtual-cpus-explained/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;So, How is it mapped? How can i determine the number of vCPU I have? Take an example; If a server has 2 physical CPUs (single threaded), each with 4 cores&lt;br&gt;
So total logical processors = 2 × 4  = 8 threads&lt;br&gt;
The Hypervisor can work with these available threads to provide vCPU. Does it mean i have 8 vCPU? NOOO!! &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Overprovisioning / Oversubscription&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;In simple terms it is declaring more vCPU than actual threads available. It can be achieved by hypervisor scheduling vCPUs to run tasks on physicals ones by giving vCPU a time-slice to run their tasks. i know it can be difficult to visualize.&lt;/p&gt;

&lt;p&gt;So In above example hypervisor can create an illusion of having 16 or 32 vCPU although it has 8 threads to work with. That's the trick isn't it? Cloud providers can promise you number vCPU, but does it mean that they provide that many processors? &lt;/p&gt;

&lt;p&gt;Proper resourcing can be efficient but sometimes people get greedy that's when problems start to occur. Performance degradation, VM crashing etc.  &lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Memory Allocation&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Can be allocated statically or dynamically&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Static Allocation&lt;/em&gt;: VM gets a reserved memory. very straight forward. &lt;br&gt;
&lt;em&gt;Dynamic (Ballooning)&lt;/em&gt;: Hypervisor adjusts RAM assigned to a VM. &lt;/p&gt;

&lt;p&gt;Basically hypervisors dynamically reclaim unused memory from VMs and reallocate it to other VMs that need more memory. (Same case as Overprovisioning)&lt;br&gt;
Done right -&amp;gt; optimization (unused Resources don't go wasted).&lt;br&gt;
Done wrong -&amp;gt; Performance issues.&lt;/p&gt;




&lt;p&gt;Well we started with server vs VM and we have learned a lot of information. if you want to dive deep here are some ref documents. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://aws.amazon.com/what-is/virtualization/" rel="noopener noreferrer"&gt;https://aws.amazon.com/what-is/virtualization/&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.intel.com/content/www/us/en/gaming/resources/hyper-threading.html" rel="noopener noreferrer"&gt;https://www.intel.com/content/www/us/en/gaming/resources/hyper-threading.html&lt;/a&gt;&lt;br&gt;
&lt;a href="https://guides.beeksgroup.com/BKDI002/Virtual-Compute-and-overprovisioning.html" rel="noopener noreferrer"&gt;https://guides.beeksgroup.com/BKDI002/Virtual-Compute-and-overprovisioning.html&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Servers, virtual or real—it’s all about understanding what’s really running behind the scenes.&lt;br&gt;
Sayōnara..&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>cloud</category>
      <category>devops</category>
      <category>aws</category>
    </item>
    <item>
      <title>How does S3 provide near-infinite storage and performance?</title>
      <dc:creator>prathamesh gawade</dc:creator>
      <pubDate>Sun, 06 Apr 2025 12:12:51 +0000</pubDate>
      <link>https://dev.to/prathamesh_gawade_16/how-does-s3-provide-near-infinite-storage-and-performance-8ee</link>
      <guid>https://dev.to/prathamesh_gawade_16/how-does-s3-provide-near-infinite-storage-and-performance-8ee</guid>
      <description>&lt;p&gt;Did you know that S3 stores more than 350 trillion objects and holds around 10–100 exabytes of data (1 exabyte = 1 million terabytes)?&lt;/p&gt;

&lt;p&gt;These numbers alone are mind-boggling and make your jaw drop. Ever wondered how AWS manages to provide near-unlimited data storage and infinite scalability?&lt;/p&gt;

&lt;p&gt;Let's start with some basics...&lt;/p&gt;

&lt;p&gt;You must have heard many times that S3 is an object storage system, not a file system. What does that mean? And how is it important in terms of performance?&lt;/p&gt;

&lt;h2&gt;
  
  
  Structure
&lt;/h2&gt;

&lt;p&gt;The traditional file system uses tree-like structures, while S3 uses a key-value system. If you have studied algorithms, you know that if you have the exact hash/key, the lookup is far faster than the tree. AWS uses this exact scenario.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzpt8mjor0nc5ottyp067.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzpt8mjor0nc5ottyp067.png" alt="Key-Value Algorithm" width="800" height="306"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;AWS keeps the metadata and files separate. The metadata is stored in a large database, and the file contents are just chunks of data on massive arrays.&lt;br&gt;
The metadata database contains pointers to those files as well as hashes of the file contents.&lt;br&gt;
So whenever you want to fetch a file, metadata is read from a database, which points to the location of a file in this huge array to return the file you asked for. &lt;/p&gt;

&lt;p&gt;This improves the performance tremendously over the traditional file system.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;AWS uses something called "Dynamo" (yes, similar to DynamoDB), which is internal tech designed for a scalable, highly available key-value storage system.&lt;br&gt;
&lt;a href="https://www.allthingsdistributed.com/2007/10/amazons_dynamo.html" rel="noopener noreferrer"&gt;https://www.allthingsdistributed.com/2007/10/amazons_dynamo.html&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Storage
&lt;/h2&gt;

&lt;p&gt;Now that we have understood the performance factor, how does S3 function in terms of storage? &lt;/p&gt;

&lt;p&gt;For every storage system, from your laptop to data centers, hard drives are at its core. Officially, as of 2023/07, AWS was using 26TB HDDs, and since 36TB HDDs are in the market, AWS is most likely using them.&lt;/p&gt;

&lt;p&gt;The basics of expanding storage are to just add up the HDDs, as many as you can, and we are talking in millions of drives!!&lt;br&gt;
As these new drives are added to the system, S3 has automation flows to partition the data, subsystems to handle GET/PUT requests, and data movement from drives to avoid hotspots (high I/O on a single disk).&lt;/p&gt;

&lt;p&gt;When you are scaling at an unimaginable rate, the problem isn’t about adding the hard drives—it is handling data placement and performance. &lt;br&gt;
In the end, you are storing the data on physical drives, which have limits to I/O. Even if you have 10 HDDs to partition the 100TB of data, but a few GBs of high-demand data is stored on a single drive, IOPS can break your application.&lt;/p&gt;

&lt;p&gt;It's fascinating how AWS manages to scale and maintain its performance at this rate. &lt;/p&gt;




&lt;h2&gt;
  
  
  Architecture
&lt;/h2&gt;

&lt;p&gt;AWS S3 receives over 1 million requests per second! To handle this scale, S3 is built on a microservices architecture and uses a fleet of instances distributed across multiple availability zones and regions.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fek2m365w97fkd2bfuj5p.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fek2m365w97fkd2bfuj5p.png" alt="S3 Architecture" width="800" height="544"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;When an HTTP request is made to S3 (e.g., a GET request), it is first received by a web server layer. These web servers act as the entry point, authenticating and parsing the request. The request is then routed to the appropriate namespace and region based on metadata and internal routing logic.&lt;/p&gt;

&lt;p&gt;Once the correct datacenter and availability zone are identified, the request is forwarded to the storage fleet, which handles the object’s metadata and locates the actual data on physical hard drives. From there, the data is retrieved and streamed back through the layers to the client.&lt;/p&gt;




&lt;p&gt;I am not diving any deeper today, but you can read from the referenced links:&lt;br&gt;
&lt;a href="https://www.allthingsdistributed.com/2023/07/building-and-operating-a-pretty-big-storage-system.html" rel="noopener noreferrer"&gt;https://www.allthingsdistributed.com/2023/07/building-and-operating-a-pretty-big-storage-system.html&lt;/a&gt;&lt;br&gt;
More about subsystems - &lt;a href="https://aws.amazon.com/message/41926/" rel="noopener noreferrer"&gt;https://aws.amazon.com/message/41926/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Note – True scaling architecture under the S3 hood is unknown, but through whitepapers, we can get a glimpse into the black box.&lt;/p&gt;

&lt;p&gt;Later..&lt;/p&gt;

</description>
      <category>aws</category>
      <category>s3</category>
      <category>devops</category>
      <category>cloud</category>
    </item>
    <item>
      <title>Secure Your AWS Account Properly</title>
      <dc:creator>prathamesh gawade</dc:creator>
      <pubDate>Sun, 19 Jan 2025 16:46:28 +0000</pubDate>
      <link>https://dev.to/prathamesh_gawade_16/secure-your-aws-account-properly-8me</link>
      <guid>https://dev.to/prathamesh_gawade_16/secure-your-aws-account-properly-8me</guid>
      <description>&lt;p&gt;New to AWS? Just created a free-tier account? There is a very high probability that your account is not secure. Security is critical when dealing with cloud platforms, as security breaches can cause significant damage to your resources and lead to financial losses. Let’s explore how to secure your AWS account.&lt;/p&gt;

&lt;p&gt;We can divide Cloud Security into 3 parts. &lt;/p&gt;




&lt;h2&gt;
  
  
  1. How To Use Your AWS Account.
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Root user&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;When you register for an AWS account, the initial user created for you is the root user. The root user has all permissions and unrestricted access to all resources. Since using the root user requires the least effort and is convenient, should you use it? &lt;/p&gt;

&lt;p&gt;Nooo! You should never use the root user for day-to-day activities. For personal or team usage, unrestricted access to all resources poses a security threat and unnoticed billing risks. If root user credentials get leaked, the chances of recovering your account are minimal—this is a huge security risk. The root user should only be used when an IAM user cannot perform a specific task. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;IAM&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;IAM (Identity and Access Management) plays a major role in managing your AWS account. As a best practice, IAM users should always be used instead of the root user. In the next section, let’s explore why this is important.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;MFA&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;MFA (Multi-Factor Authentication) is an additional security feature that adds an extra layer of protection by requiring a second form of authentication.&lt;br&gt;
MFA should be enforced as a security standard.&lt;br&gt;
&lt;a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_mfa_enable_virtual.html" rel="noopener noreferrer"&gt;How to enable MFA&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  2. Isolation Of Permissions
&lt;/h2&gt;

&lt;p&gt;IAM users are users with separate login credentials and permissions. This helps to separate the permissions from access. Let's suppose you have an AWS Account with admin privileges and a friend or team member requests access. Instead of sharing your admin credentials, it is ideal to create a new IAM user with the minimum required permissions only. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html" rel="noopener noreferrer"&gt;IAM Best Practices&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Some common examples of permission isolation:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Administrator – Only one user should have full admin access.&lt;/li&gt;
&lt;li&gt;Finance Team – Should have access only to billing and payment details.&lt;/li&gt;
&lt;li&gt;Cloud Teams – Should be provided access based on project requirements.&lt;/li&gt;
&lt;li&gt;Infrastructure Auditor – Should have read-only access.&lt;/li&gt;
&lt;li&gt;Development Team – Should access only non-production resources.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Isolating permissions minimizes risk, reduces human error, and prevents unauthorized access. &lt;/p&gt;




&lt;h2&gt;
  
  
  3. Resource Security
&lt;/h2&gt;

&lt;p&gt;Let's first understand what resource security is. if you have created an S3 bucket or EC2 instance isn’t it AWS’s responsibility to secure it? Yes, but not entirely.&lt;/p&gt;

&lt;p&gt;Think of AWS security like a high-security facility—AWS provides locked gates, solid walls, and biometric access. However, if you leave the door open or forget to enable biometric authentication, all the security measures become useless.&lt;/p&gt;

&lt;p&gt;This is why it is important to understand the best practices when you are handling the resources and how others can exploit misconfigurations.&lt;/p&gt;

&lt;p&gt;Common security failures include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Making an S3 bucket public.&lt;/li&gt;
&lt;li&gt;Allowing inbound access to 0.0.0.0/0 (open to all).&lt;/li&gt;
&lt;li&gt;Keeping the database in a public subnet (making it publicly accessible).&lt;/li&gt;
&lt;li&gt;Not enabling WAF or other security services (e.g. AWS Security Hub, GuardDuty, etc.).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Make sure to follow security standards when you are creating resources.&lt;/p&gt;




&lt;p&gt;We will deep dive into these security services and how to implement them at a near-zero cost in the next blog post. &lt;/p&gt;

&lt;p&gt;Reference Links - &lt;/p&gt;

&lt;p&gt;&lt;a href="https://docs.aws.amazon.com/whitepapers/latest/aws-security-best-practices/welcome.html" rel="noopener noreferrer"&gt;https://docs.aws.amazon.com/whitepapers/latest/aws-security-best-practices/welcome.html&lt;/a&gt;&lt;br&gt;
&lt;a href="https://aws.amazon.com/architecture/security-identity-compliance/" rel="noopener noreferrer"&gt;https://aws.amazon.com/architecture/security-identity-compliance/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Later..&lt;/p&gt;

</description>
      <category>aws</category>
      <category>devops</category>
    </item>
    <item>
      <title>AWS Billing Fundamentals</title>
      <dc:creator>prathamesh gawade</dc:creator>
      <pubDate>Sun, 29 Dec 2024 14:06:04 +0000</pubDate>
      <link>https://dev.to/prathamesh_gawade_16/aws-billing-fundamentals-1k3j</link>
      <guid>https://dev.to/prathamesh_gawade_16/aws-billing-fundamentals-1k3j</guid>
      <description>&lt;p&gt;Understanding how AWS bills you is important as you use AWS services more and more. Unattended resources impact the cost and accumulate at the end of the month when it's too late. That's why it is important to keep track of billing and set budgets to avoid getting surprises. For this very reason, we emphasize budgets. &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;If you don’t know what budgets and billing alerts are or haven’t set them up yet, first read this then log in to the AWS console to set budgets.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;let’s first get an overview of AWS billing.&lt;/p&gt;




&lt;h2&gt;
  
  
  How AWS Bills you...
&lt;/h2&gt;

&lt;p&gt;AWS charges you for the services you use, and each service has different components. For example, you get billed for instance usage, EBS storage, and IP addresses separately under EC2 service. Each element has its charge rates, which are very important to understand.&lt;/p&gt;

&lt;p&gt;Now, how do you identify these charges? We’ll get to that later in the blog.&lt;/p&gt;




&lt;h2&gt;
  
  
  Billing and Cost Management
&lt;/h2&gt;

&lt;p&gt;This is the service where you can find all the details regarding billing, alarms, cost consumption, and more. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnb5u208ca0n91wnz238m.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnb5u208ca0n91wnz238m.png" alt="Image description" width="800" height="435"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;If you are facing permission issues, refer to the note at the end of this blog.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Budgets and Billing Alerts
&lt;/h2&gt;

&lt;p&gt;Budgets and billing alerts are possibly the most important things to set up at any level when you’re using AWS. Billing alerts allow you to set a threshold amount for notifications. If your charges exceed that amount, you will be alerted (to oversimplify it).&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwaaz0y5ayvtftc9idkog.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwaaz0y5ayvtftc9idkog.png" alt="Image description" width="800" height="363"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Billing alerts are helpful in scenarios where you are being billed more than expected, which in most cases is due to unnoticed resources, a surge in traffic, or similar issues.&lt;/p&gt;

&lt;p&gt;For free-tier accounts, you should set a $0 spend budget to avoid incurring any bills and to be alerted when you use non-free-tier services.&lt;/p&gt;




&lt;h2&gt;
  
  
  Cost Explorer
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9v52osvycn1posba53f1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9v52osvycn1posba53f1.png" alt="Image description" width="800" height="430"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This analytics service helps you filter data by usage, services, time range, and more. You’ll be able to identify the exact resource and usage type that was billed. This often helps you identify unknown charges.&lt;/p&gt;

&lt;p&gt;Tip: Filter the data by daily usage instead of monthly, by usage type, and within a specific range.&lt;/p&gt;




&lt;h2&gt;
  
  
  Additional Notes
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;If you haven’t paid your bills for three months, AWS suspends your account, and all services are disabled. You’ll need to make a payment to reactivate your account. However, your data is not deleted during the suspension.&lt;/li&gt;
&lt;li&gt;Log in as the root user or provide necessary permissions to an IAM user. If you’re granting billing permissions to an IAM user, in addition to the policy, you also need to enable the checkbox that allows IAM users to access the billing dashboard.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These were the fundamentals for beginners.&lt;br&gt;
Later..&lt;/p&gt;

&lt;p&gt;Explore more - &lt;br&gt;
1.&lt;a href="https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/billing-what-is.html" rel="noopener noreferrer"&gt;https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/billing-what-is.html&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;a href="https://repost.aws/questions/QUZMaZQIRZTLyPZ6dtsF4-4w/how-do-i-set-up-a-simplified-or-zero-cost-aws-budget" rel="noopener noreferrer"&gt;https://repost.aws/questions/QUZMaZQIRZTLyPZ6dtsF4-4w/how-do-i-set-up-a-simplified-or-zero-cost-aws-budget&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;

</description>
      <category>aws</category>
      <category>cloud</category>
      <category>devops</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Top 3 AWS Services Every Developer Should know</title>
      <dc:creator>prathamesh gawade</dc:creator>
      <pubDate>Tue, 20 Aug 2024 04:55:36 +0000</pubDate>
      <link>https://dev.to/prathamesh_gawade_16/top-3-aws-services-every-developer-should-know-4gnp</link>
      <guid>https://dev.to/prathamesh_gawade_16/top-3-aws-services-every-developer-should-know-4gnp</guid>
      <description>&lt;p&gt;In the chaotic world of cloud and DevOps, it’s easy to get overwhelmed by the sheer number of services and resources available. However, from a developer's perspective, only a few AWS services are practically useful. In this blog, I will share essential AWS services that every developer should be familiar with when working with AWS.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Most AWS services won't need you to own an AWS account but you can use Secret credentials and permissions to access the already-created resources. &lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  1. S3 (Simple Storage Service)
&lt;/h2&gt;

&lt;p&gt;This is the most important and used service. S3 is a storage platform used to store files/videos/images etc. S3 provides the cheapest cloud storage along with website hosting options(more about this in another blog). As a developer, you will be using this service frequently to store the user files.&lt;/p&gt;

&lt;p&gt;S3 can be used flexibly to store and fetch the files.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/creating-bucket.html" rel="noopener noreferrer"&gt;How to create S3 Bucket&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxn3lude5yp306tjq7zvv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxn3lude5yp306tjq7zvv.png" alt="Image description" width="639" height="590"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Below is one of the methods to store the files on S3 from your server.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="c1"&gt;// Access Key and Secret Key are credentials used for accessing AWS resources&lt;/span&gt;

&lt;span class="c1"&gt;// Configure credentials for accessing the bucket&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;s3&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nx"&gt;AWS&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;S3&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
    &lt;span class="na"&gt;accessKeyId&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;your-access-key-id&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;secretAccessKey&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;your-secret-access-key&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;region&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;your-region&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;

&lt;span class="c1"&gt;// Use S3.upload method to upload a local file to S3&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;uploadParams&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="na"&gt;Bucket&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;your-bucket-name&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;Key&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;your/file/path/filename.ext&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;Body&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;fs&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;createReadStream&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;path/to/your/local/file&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;

&lt;span class="nx"&gt;s3&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;upload&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;uploadParams&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;promise&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;S3 API Reference - &lt;a href="https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-s3/" rel="noopener noreferrer"&gt;https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-s3/&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  EC2 - Elastic Cloud Computing
&lt;/h2&gt;

&lt;p&gt;EC2 is a Virtual Machine that allows you to run servers. EC2 is an extremely flexible service to use, You can use VM for almost any requirement hence it is trendy among developers. &lt;br&gt;
You can serve Frontend applications, run backend servers, Install and use Databases, Dockers applications, Remote desktops, and more. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Create EC2 Instance:&lt;/strong&gt; &lt;/p&gt;

&lt;p&gt;&lt;a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EC2_GetStarted.html" rel="noopener noreferrer"&gt;Refer AWS Doc&lt;/a&gt; &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Launch an Instance&lt;/strong&gt;: Login to AWS (You will need an AWS account). Navigate to the EC2 instance and launch a new instance in the Public subnet (Launch an EC2 with an internet gateway attached). &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Security Configuration&lt;/strong&gt;: Required ports should be open (E.g. for SSH, port 22 should be open) and allowed to your IP. You also create a pem key (security key) used as a credential. &lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Connect to Instance&lt;/strong&gt;&lt;br&gt;
Once your instance is running, you can connect to it using the following command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;ssh &lt;span class="nt"&gt;-i&lt;/span&gt; key.pem username@ip-of-instance

// which usually looks like - ssh &lt;span class="nt"&gt;-i&lt;/span&gt; DevEC2Key.pem ubuntu@112.33.12.18
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  3. Lambda
&lt;/h2&gt;

&lt;p&gt;AWS Lambda is a serverless computing service that allows you to run code without provisioning or managing servers. With Lambda, you can Invoke the function as per your requirements, such as changes in S3 buckets, You can offload Memory-intensive tasks to lambda such as Image or video processing. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How to Use Lambda&lt;/strong&gt; &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Create a lambda function&lt;/strong&gt;: Login to AWS management console and navigate to lambda, Create a new function &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;You can create the simplest function such as&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;exports&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;handler&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;async &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;event&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Received event:&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;JSON&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;stringify&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;event&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kc"&gt;null&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Hello from Lambda!&lt;/span&gt;&lt;span class="dl"&gt;'&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;Once the lambda function is deployed it is ready to use. &lt;br&gt;
You have to invoke the lambda function &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Invoke Lambda Function&lt;/strong&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="c1"&gt;// Configure the AWS SDK with your credentials&lt;/span&gt;

&lt;span class="c1"&gt;// Create an instance of the Lambda service&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;lambda&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nx"&gt;AWS&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;Lambda&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;

&lt;span class="c1"&gt;// Set up the parameters for invoking the Lambda function&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;params&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="na"&gt;FunctionName&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;YourLambdaFunctionName&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="c1"&gt;// Replace with your Lambda function's name&lt;/span&gt;
  &lt;span class="na"&gt;InvocationType&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;RequestResponse&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="c1"&gt;// 'Event' for async, 'RequestResponse' for sync&lt;/span&gt;
  &lt;span class="na"&gt;Payload&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;JSON&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;stringify&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt; 
    &lt;span class="na"&gt;key1&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;value1&lt;/span&gt;&lt;span class="dl"&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="c1"&gt;// Invoke the Lambda function&lt;/span&gt;
&lt;span class="nx"&gt;lambda&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;invoke&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;params&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;err&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;data&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;err&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;error&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Error invoking Lambda function:&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;err&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Lambda function invoked successfully. Response:&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;data&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;Payload&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;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://rexben.medium.com/different-ways-to-invoke-aws-lambda-functions-1c95a2dfc8bb" rel="noopener noreferrer"&gt;Lambda Invocation Ways - Blog&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;These are the most common services and we have yet to explore many more...&lt;br&gt;
Thank you for your time.&lt;br&gt;
Later.&lt;/p&gt;

</description>
      <category>aws</category>
      <category>cloud</category>
      <category>devops</category>
      <category>webdev</category>
    </item>
  </channel>
</rss>
