<?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: AMUTHA NILA AR</title>
    <description>The latest articles on DEV Community by AMUTHA NILA AR (@amutha_nila).</description>
    <link>https://dev.to/amutha_nila</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%2F4125503%2F3bbca1d2-9035-4c62-b9d7-26da733588fe.png</url>
      <title>DEV Community: AMUTHA NILA AR</title>
      <link>https://dev.to/amutha_nila</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/amutha_nila"/>
    <language>en</language>
    <item>
      <title>A for Athena</title>
      <dc:creator>AMUTHA NILA AR</dc:creator>
      <pubDate>Wed, 16 Sep 2026 02:50:33 +0000</pubDate>
      <link>https://dev.to/amutha_nila/a-for-athena-1h0j</link>
      <guid>https://dev.to/amutha_nila/a-for-athena-1h0j</guid>
      <description>&lt;p&gt;A for Amutha, A for Athena: My First AWS Deep Dive ☁️&lt;/p&gt;

&lt;p&gt;Introduction&lt;/p&gt;

&lt;p&gt;Cloud computing has changed the way students, developers and organizations store and analyze data. As the amount of data increases, simply storing data is not enough. We also need efficient ways to search, analyze and understand that data.&lt;/p&gt;

&lt;p&gt;As part of my AWS learning journey, I explored &lt;strong&gt;Amazon Athena&lt;/strong&gt;, an interactive and serverless query service provided by Amazon Web Services (AWS).&lt;/p&gt;

&lt;p&gt;The fun part for me is the connection between my name and the service:&lt;/p&gt;

&lt;p&gt;A for Amutha → A for Athena&lt;/p&gt;

&lt;p&gt;Amazon Athena allows users to analyze data stored in &lt;strong&gt;Amazon S3 using standard SQL&lt;/strong&gt;, without setting up or managing database servers. This makes it useful for students and developers who want to perform data analysis without maintaining complicated infrastructure.&lt;br&gt;
 What is Amazon Athena?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Amazon Athena is a serverless interactive query service that allows users to analyze data directly from Amazon S3 using SQL.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Unlike a traditional database where we may need to create and manage servers, Athena does not require us to provision or maintain servers for SQL queries.&lt;/p&gt;

&lt;p&gt;A simple way to understand it is:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;S3 stores the data → Athena reads the data → SQL analyzes the data → results are returned.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Athena can work with different data formats including CSV, JSON, Apache Parquet, ORC and Avro. It can also integrate with AWS Glue Data Catalog to maintain information about datasets and their schemas.&lt;/p&gt;

&lt;p&gt;Why was Athena created?&lt;/p&gt;

&lt;p&gt;Organizations often have large amounts of data stored in Amazon S3. Traditionally, analyzing that data could require additional infrastructure, data processing systems or databases.&lt;/p&gt;

&lt;p&gt;Athena provides a simpler approach: instead of moving all the data into a separate database, users can query data where it already exists in S3.&lt;/p&gt;

&lt;p&gt;This makes Athena particularly useful for ad-hoc analysis, log analysis, reporting and exploring large datasets**.&lt;/p&gt;

&lt;p&gt;How Amazon Athena Works&lt;/p&gt;

&lt;p&gt;The basic workflow can be understood in five steps:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Data is stored in &lt;strong&gt;Amazon S3&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;A database and table schema are defined in Athena.&lt;/li&gt;
&lt;li&gt;Athena identifies how the data is structured.&lt;/li&gt;
&lt;li&gt;The user writes a SQL query.&lt;/li&gt;
&lt;li&gt;Athena processes the data and returns the results.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Architecture / Flow Diagram&lt;/p&gt;

&lt;p&gt;Place the following diagram here in your Dev.to article:&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;         ┌──────────────────────┐
         │      Amazon S3       │
         │                      │
         │ CSV / JSON / Parquet │
         └──────────┬───────────┘
                    │
                    ▼
         ┌──────────────────────┐
         │    Amazon Athena     │
         │                      │
         │   Serverless SQL     │
         │      Queries         │
         └──────────┬───────────┘
                    │
              SQL Processing
                    │
                    ▼
         ┌──────────────────────┐
         │    Query Results     │
         │                      │
         │ Console / S3 / BI    │
         └──────────────────────┘
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;p&gt;Athena can also work with &lt;strong&gt;AWS Glue Data Catalog&lt;/strong&gt;, which can store metadata about tables and datasets. Query results are written to an S3 location configured for Athena.&lt;/p&gt;
&lt;h2&gt;
  
  
  Key Features of Amazon Athena
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Serverless Architecture&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The biggest feature of Athena is that it is &lt;strong&gt;serverless&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;There is no need to create, configure, patch or maintain query servers. AWS manages the underlying infrastructure, allowing developers to concentrate on writing queries and analyzing data.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Standard SQL Queries&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Athena supports standard SQL, which means students who already know SQL can start analyzing datasets without learning an entirely new programming language.&lt;/p&gt;

&lt;p&gt;For example:&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;department&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="n"&gt;student_count&lt;/span&gt;
&lt;span class="k"&gt;FROM&lt;/span&gt; &lt;span class="n"&gt;students&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;department&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This query can count students in each department.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Multiple Data Formats&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Athena can query several formats such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;CSV&lt;/li&gt;
&lt;li&gt;JSON&lt;/li&gt;
&lt;li&gt;Apache Parquet&lt;/li&gt;
&lt;li&gt;Apache ORC&lt;/li&gt;
&lt;li&gt;Avro&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This makes it suitable for different types of datasets and data-lake environments.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Integration with AWS Glue&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Athena integrates with the &lt;strong&gt;AWS Glue Data Catalog&lt;/strong&gt;, which can act as a central metadata repository for datasets stored in S3.&lt;/p&gt;

&lt;p&gt;This helps Athena understand the structure of the data before running queries.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Federated Queries&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Athena can also query data from sources beyond S3 using data source connectors. This allows SQL-based analysis across multiple supported data sources.&lt;/p&gt;

&lt;p&gt;🎓 College / Student Use Case&lt;/p&gt;

&lt;p&gt;Imagine our college stores student activity data in Amazon S3.&lt;/p&gt;

&lt;p&gt;The dataset could contain:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;student_id,department,event,score
101,AIML,Hackathon,85
102,CSE,Workshop,92
103,AIML,Workshop,78
104,ECE,Hackathon,88
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Instead of downloading the complete dataset and manually analyzing it, a student project could use Athena to directly query the data.&lt;/p&gt;

&lt;p&gt;For example, we could find the average score for each department:&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;department&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
       &lt;span class="k"&gt;AVG&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;score&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;AS&lt;/span&gt; &lt;span class="n"&gt;average_score&lt;/span&gt;
&lt;span class="k"&gt;FROM&lt;/span&gt; &lt;span class="n"&gt;student_events&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;department&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This could help a college analytics system understand participation and performance across departments.&lt;/p&gt;

&lt;p&gt;A similar approach could be used for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Attendance analysis&lt;/li&gt;
&lt;li&gt;Workshop participation&lt;/li&gt;
&lt;li&gt;Hackathon statistics&lt;/li&gt;
&lt;li&gt;Placement data analysis&lt;/li&gt;
&lt;li&gt;Library usage&lt;/li&gt;
&lt;li&gt;Campus event analytics&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;💻 Practical Example&lt;/p&gt;

&lt;p&gt;Suppose a college stores a file called:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;student_events.csv
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;inside an S3 bucket.&lt;/p&gt;

&lt;p&gt;After creating an Athena table for the dataset, we can execute:&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;event&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="n"&gt;participants&lt;/span&gt;
&lt;span class="k"&gt;FROM&lt;/span&gt; &lt;span class="n"&gt;student_events&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;event&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;participants&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;Athena analyzes the data stored in S3 and returns the number of participants for each event.&lt;/p&gt;

&lt;p&gt;The important point is that we do &lt;strong&gt;not&lt;/strong&gt; need to move the entire dataset into a traditional database before performing the query.&lt;/p&gt;

&lt;p&gt;Athena can query the data directly from S3.&lt;/p&gt;




&lt;h2&gt;
  
  
  🌍 Real-World Use Case
&lt;/h2&gt;

&lt;p&gt;Amazon Athena can be used for large-scale analytics and log analysis.&lt;/p&gt;

&lt;p&gt;For example, AWS describes organizations using Athena in analytics pipelines. One example is &lt;strong&gt;TNG FinTech Group&lt;/strong&gt;, which uses Amazon Athena together with AWS Glue to perform serverless queries on financial transaction data. Athena helps its wallet service retrieve information about past transactions without requiring manual intervention.&lt;/p&gt;

&lt;p&gt;Another use case is analyzing large datasets such as application logs, where teams can query data stored in S3 to investigate events and identify patterns. AWS specifically describes Athena as useful for analyzing logs and performing ad-hoc queries.&lt;/p&gt;

&lt;p&gt;Advantages&lt;/p&gt;

&lt;h3&gt;
  
  
  No Server Management
&lt;/h3&gt;

&lt;p&gt;Athena is serverless, so users don't have to maintain database servers or clusters.&lt;/p&gt;

&lt;h3&gt;
  
  
  Easy for SQL Users
&lt;/h3&gt;

&lt;p&gt;Anyone familiar with SQL can start querying datasets without learning a complex infrastructure system.&lt;/p&gt;

&lt;h3&gt;
  
  
  Works Directly with S3
&lt;/h3&gt;

&lt;p&gt;Data does not have to be moved into a separate database just to perform an ad-hoc query.&lt;/p&gt;

&lt;h3&gt;
  
  
  Automatic Scaling
&lt;/h3&gt;

&lt;p&gt;Athena is designed to execute queries in parallel and scale according to workload.&lt;/p&gt;

&lt;h3&gt;
  
  
  AWS Integration
&lt;/h3&gt;

&lt;p&gt;Athena works with services such as Amazon S3 and AWS Glue, and can integrate with other AWS and external data sources.&lt;br&gt;
 Limitations / Things to Consider&lt;/p&gt;

&lt;h3&gt;
  
  
  Cost
&lt;/h3&gt;

&lt;p&gt;Athena is not simply "free because it is serverless." Pricing depends on the selected pricing model and, for SQL queries, can depend on the amount of data processed.&lt;/p&gt;

&lt;p&gt;AWS also charges normal S3 costs for storage, requests and applicable data transfer. Query results stored in S3 can also incur S3 charges.&lt;/p&gt;

&lt;p&gt;For example, AWS currently provides an example where scanning 3 TB of uncompressed data under its per-query pricing model results in a $15 query cost. The actual cost depends on the pricing model, region and workload.&lt;/p&gt;

&lt;p&gt;For students, it is important to avoid repeatedly scanning unnecessarily large datasets.&lt;/p&gt;

&lt;h3&gt;
  
  
  Complexity
&lt;/h3&gt;

&lt;p&gt;Although SQL itself is easy to understand, managing schemas, partitions, data formats and permissions becomes more complicated as a project grows.&lt;/p&gt;

&lt;h3&gt;
  
  
  Scalability
&lt;/h3&gt;

&lt;p&gt;Athena is designed to scale automatically, but inefficient queries can still process large amounts of data. Using compression, partitioning and columnar formats such as Parquet can reduce the amount of data scanned and therefore improve efficiency and cost.&lt;/p&gt;

&lt;h3&gt;
  
  
  Security
&lt;/h3&gt;

&lt;p&gt;Security still needs to be configured correctly. Access to Athena and the underlying S3 data can be controlled using IAM policies and S3 permissions. Athena also supports querying encrypted S3 data and writing encrypted results.&lt;/p&gt;

&lt;p&gt;Security&lt;/p&gt;

&lt;p&gt;A cloud analytics service should not only be fast; it must also protect data.&lt;/p&gt;

&lt;p&gt;Amazon Athena uses AWS security mechanisms such as &lt;strong&gt;IAM policies&lt;/strong&gt; to control access. The underlying data is usually stored in Amazon S3, so S3 permissions and encryption are also important.&lt;/p&gt;

&lt;p&gt;AWS recommends using IAM policies to restrict access to Athena operations, while access to the underlying S3 dataset must also be appropriately controlled.&lt;/p&gt;

&lt;p&gt;For a college project, this means sensitive student information should not simply be placed in a publicly accessible bucket.&lt;/p&gt;

&lt;p&gt;Conclusion&lt;/p&gt;

&lt;p&gt;Amazon Athena demonstrates how cloud computing can simplify data analytics.&lt;/p&gt;

&lt;p&gt;Instead of setting up and managing database servers, we can store data in Amazon S3 and use SQL through Athena to analyze it. Its serverless architecture, SQL support, integration with AWS Glue and ability to work with different data formats make it useful for many analytics scenarios.&lt;/p&gt;

&lt;p&gt;For students, Athena provides an interesting way to learn &lt;strong&gt;cloud computing, SQL, data lakes and analytics&lt;/strong&gt; together. A college project could use it to analyze student activities, attendance, events or other datasets stored in S3.&lt;/p&gt;

&lt;p&gt;My key takeaway is simple:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Store the data in the cloud, query it with SQL, and let AWS manage the infrastructure.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;And for me:&lt;/p&gt;

&lt;p&gt;A for Amutha → A for Athena.&lt;/p&gt;

&lt;h2&gt;
  
  
  📚 References
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Amazon Athena Documentation&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://docs.aws.amazon.com/athena/?utm_source=chatgpt.com" rel="noopener noreferrer"&gt;AWS Amazon Athena Documentation&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Amazon Athena Features&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://aws.amazon.com/athena/features/?utm_source=chatgpt.com" rel="noopener noreferrer"&gt;AWS Athena Features&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Amazon Athena Getting Started Guide&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://docs.aws.amazon.com/athena/latest/ug/getting-started.html?utm_source=chatgpt.com" rel="noopener noreferrer"&gt;AWS Athena Getting Started&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Amazon Athena Pricing&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://aws.amazon.com/athena/pricing/?utm_source=chatgpt.com" rel="noopener noreferrer"&gt;AWS Athena Pricing&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Amazon Athena Security Documentation&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://docs.aws.amazon.com/athena/latest/ug/security-infrastructure.html?utm_source=chatgpt.com" rel="noopener noreferrer"&gt;AWS Athena Security&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ol&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fhcay9i2bupw07dja1mg9.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fhcay9i2bupw07dja1mg9.png" alt=" " width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>aws</category>
      <category>cloud</category>
      <category>learning</category>
      <category>sql</category>
    </item>
    <item>
      <title>CloudCraft</title>
      <dc:creator>AMUTHA NILA AR</dc:creator>
      <pubDate>Tue, 15 Sep 2026 07:29:04 +0000</pubDate>
      <link>https://dev.to/amutha_nila/cloudcraft-4hpd</link>
      <guid>https://dev.to/amutha_nila/cloudcraft-4hpd</guid>
      <description>&lt;p&gt;☁️ CloudCraft — My First Hands-On AWS Cloud Deployment&lt;/p&gt;

&lt;p&gt;From an HTML file on my laptop to a website running on AWS.&lt;/p&gt;

&lt;p&gt;As part of the CloudCraft Cloud Workshop, I got hands-on with AWS by&lt;br&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fqq9qe85ot2trqmpjkarh.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fqq9qe85ot2trqmpjkarh.png" alt=" " width="800" height="344"&gt;&lt;/a&gt;&lt;br&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fbixcssnkcc9a6kc3rm0f.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fbixcssnkcc9a6kc3rm0f.png" alt=" " width="800" height="550"&gt;&lt;/a&gt;&lt;br&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fujg8b2hp6wx93wij5ogq.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fujg8b2hp6wx93wij5ogq.png" alt=" " width="800" height="550"&gt;&lt;/a&gt;&lt;br&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fiaq5a6g7y19h7cspcgqf.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fiaq5a6g7y19h7cspcgqf.png" alt=" " width="800" height="288"&gt;&lt;/a&gt;&lt;br&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Furi3f66es9n4z9buqj3k.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Furi3f66es9n4z9buqj3k.png" alt=" " width="799" height="298"&gt;&lt;/a&gt;&lt;br&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fyrsu51vf940u80gmmnut.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fyrsu51vf940u80gmmnut.png" alt=" " width="800" height="409"&gt;&lt;/a&gt;&lt;br&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Flg8caj7yi9p12grmsnn0.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Flg8caj7yi9p12grmsnn0.png" alt=" " width="799" height="319"&gt;&lt;/a&gt;&lt;br&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fccccm1yxnfpiebdde7sj.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fccccm1yxnfpiebdde7sj.png" alt=" " width="800" height="289"&gt;&lt;/a&gt;&lt;br&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fb4369v6qjd79prhpesxg.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fb4369v6qjd79prhpesxg.png" alt=" " width="107" height="167"&gt;&lt;/a&gt;&lt;br&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F3fqgcl1kt1gyc3reu8se.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F3fqgcl1kt1gyc3reu8se.png" alt=" " width="800" height="271"&gt;&lt;/a&gt;&lt;br&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fzqa78blmmusy8td5lp0g.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fzqa78blmmusy8td5lp0g.png" alt=" " width="97" height="487"&gt;&lt;/a&gt;&lt;br&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ff76b1hqu5yz6xmafzaas.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ff76b1hqu5yz6xmafzaas.png" alt=" " width="800" height="333"&gt;&lt;/a&gt;&lt;br&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fvdstt05vn5ua48a4ghwq.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fvdstt05vn5ua48a4ghwq.png" alt=" " width="800" height="333"&gt;&lt;/a&gt; deploying a static website using Amazon S3 and exploring how services like CloudFront and Route 53 fit into the architecture.&lt;/p&gt;

&lt;p&gt;This wasn't just about learning what each AWS service does.&lt;/p&gt;

&lt;p&gt;I actually went through the console, created resources, configured permissions, hosted the website, tested the endpoint, and then tried to put CloudFront in front of it.&lt;/p&gt;

&lt;p&gt;Here is my step-by-step journey.&lt;/p&gt;

&lt;p&gt;☁️ Step 1 — Starting with AWS&lt;/p&gt;

&lt;p&gt;The first step was getting familiar with the AWS Management Console.&lt;/p&gt;

&lt;p&gt;The main services I worked with were:&lt;/p&gt;

&lt;p&gt;AWS&lt;br&gt;
│&lt;br&gt;
├── Amazon S3&lt;br&gt;
├── CloudFront&lt;br&gt;
└── Route 53&lt;/p&gt;

&lt;p&gt;The goal was to take a simple static website and make it accessible through AWS infrastructure.&lt;/p&gt;

&lt;p&gt;🪣 Step 2 — Creating an S3 Bucket&lt;/p&gt;

&lt;p&gt;The first actual resource I created was an Amazon S3 bucket.&lt;/p&gt;

&lt;p&gt;I went to:&lt;/p&gt;

&lt;p&gt;AWS Console → S3 → Create bucket&lt;/p&gt;

&lt;p&gt;For the bucket configuration, I selected:&lt;/p&gt;

&lt;p&gt;Bucket type: General purpose&lt;br&gt;
AWS Region: Europe (Stockholm) — eu-north-1&lt;br&gt;
Bucket namespace: Global namespace&lt;br&gt;
Bucket name: amuthanila-04-15&lt;/p&gt;

&lt;p&gt;The bucket name needs to be unique within the relevant S3 namespace.&lt;/p&gt;

&lt;p&gt;After creating the bucket, it became the storage location for my website.&lt;/p&gt;

&lt;p&gt;📂 Step 3 — Uploading Website Files&lt;/p&gt;

&lt;p&gt;Once the bucket was created, I uploaded my website files.&lt;/p&gt;

&lt;p&gt;My bucket contained:&lt;/p&gt;

&lt;p&gt;amuthanila-04-15&lt;br&gt;
│&lt;br&gt;
├── index.html&lt;br&gt;
└── cloud.jpg&lt;/p&gt;

&lt;p&gt;The important file here is:&lt;/p&gt;

&lt;p&gt;index.html&lt;/p&gt;

&lt;p&gt;because it acts as the entry page for the static website.&lt;/p&gt;

&lt;p&gt;🌐 Step 4 — Enabling Static Website Hosting&lt;/p&gt;

&lt;p&gt;Next, I configured the S3 bucket for static website hosting.&lt;/p&gt;

&lt;p&gt;I went to:&lt;/p&gt;

&lt;p&gt;S3 → Bucket → Properties → Static website hosting&lt;/p&gt;

&lt;p&gt;and enabled:&lt;/p&gt;

&lt;p&gt;S3 static website hosting&lt;/p&gt;

&lt;p&gt;with:&lt;/p&gt;

&lt;p&gt;Hosting type:&lt;br&gt;
Bucket hosting&lt;/p&gt;

&lt;p&gt;AWS then provided a region-specific website endpoint.&lt;/p&gt;

&lt;p&gt;My website could now be accessed through an S3 website endpoint.&lt;/p&gt;

&lt;p&gt;However, this endpoint uses HTTP, not HTTPS.&lt;/p&gt;

&lt;p&gt;That became an important reason to explore CloudFront next.&lt;/p&gt;

&lt;p&gt;🔓 Step 5 — Configuring Access&lt;/p&gt;

&lt;p&gt;Uploading the files isn't enough.&lt;/p&gt;

&lt;p&gt;The browser also needs permission to retrieve them.&lt;/p&gt;

&lt;p&gt;So I worked with S3 access configuration.&lt;/p&gt;

&lt;p&gt;One of the concepts I explored was ACL — Access Control List.&lt;/p&gt;

&lt;p&gt;ACLs provide a mechanism for controlling access to S3 resources.&lt;/p&gt;

&lt;p&gt;This helped me understand that storing a file and allowing someone to access that file are two different things.&lt;/p&gt;

&lt;p&gt;🛡️ Step 6 — Adding an S3 Bucket Policy&lt;/p&gt;

&lt;p&gt;Next, I configured a Bucket Policy.&lt;/p&gt;

&lt;p&gt;The policy I used allowed s3:GetObject access to objects in the bucket.&lt;/p&gt;

&lt;p&gt;The basic structure was:&lt;/p&gt;

&lt;p&gt;Principal&lt;br&gt;
    ↓&lt;br&gt;
Action&lt;br&gt;
    ↓&lt;br&gt;
Resource&lt;br&gt;
    ↓&lt;br&gt;
Allow / Deny&lt;/p&gt;

&lt;p&gt;For example:&lt;/p&gt;

&lt;p&gt;Action:&lt;br&gt;
s3:GetObject&lt;/p&gt;

&lt;p&gt;and the resource pointed to the objects inside my bucket.&lt;/p&gt;

&lt;p&gt;This was one of the first places where AWS IAM-style permissions started making practical sense.&lt;/p&gt;

&lt;p&gt;🏷️ Step 7 — Understanding Tags&lt;/p&gt;

&lt;p&gt;I also explored S3/AWS resource tags.&lt;/p&gt;

&lt;p&gt;A tag is basically a key-value pair used to identify and organize resources.&lt;/p&gt;

&lt;p&gt;For example:&lt;/p&gt;

&lt;p&gt;Project = CloudCraft&lt;br&gt;
Environment = Learning&lt;/p&gt;

&lt;p&gt;It looks simple, but tags become very useful when working with many cloud resources.&lt;/p&gt;

&lt;p&gt;🔄 Step 8 — Enabling Bucket Versioning&lt;/p&gt;

&lt;p&gt;Next came S3 Versioning.&lt;/p&gt;

&lt;p&gt;I enabled versioning for the bucket.&lt;/p&gt;

&lt;p&gt;Instead of simply replacing an object:&lt;/p&gt;

&lt;p&gt;index.html&lt;br&gt;
   ↓&lt;br&gt;
new index.html&lt;/p&gt;

&lt;p&gt;S3 can maintain different versions of the object.&lt;/p&gt;

&lt;p&gt;Conceptually:&lt;/p&gt;

&lt;p&gt;index.html&lt;br&gt;
│&lt;br&gt;
├── Version 1&lt;br&gt;
├── Version 2&lt;br&gt;
└── Version 3&lt;/p&gt;

&lt;p&gt;This provides protection against accidental overwrites and helps with recovery.&lt;/p&gt;

&lt;p&gt;🔑 Step 9 — Exploring Presigned URLs&lt;/p&gt;

&lt;p&gt;Another concept I explored was the S3 Presigned URL.&lt;/p&gt;

&lt;p&gt;A presigned URL provides temporary access to an S3 object.&lt;/p&gt;

&lt;p&gt;Instead of making an object permanently public:&lt;/p&gt;

&lt;p&gt;Private Object&lt;br&gt;
      ↓&lt;br&gt;
Temporary Presigned URL&lt;br&gt;
      ↓&lt;br&gt;
User gets access&lt;/p&gt;

&lt;p&gt;The URL can have an expiration time.&lt;/p&gt;

&lt;p&gt;This is useful for securely sharing private files for a limited period.&lt;/p&gt;

&lt;p&gt;🌍 Step 10 — Understanding S3 Global Namespace&lt;/p&gt;

&lt;p&gt;While creating the bucket, I also learned an important S3 concept:&lt;/p&gt;

&lt;p&gt;Bucket names are globally significant in the traditional S3 general-purpose bucket namespace.&lt;/p&gt;

&lt;p&gt;That means you can't assume a name like:&lt;/p&gt;

&lt;p&gt;mybucket&lt;/p&gt;

&lt;p&gt;will be available.&lt;/p&gt;

&lt;p&gt;So choosing a unique bucket name is part of creating an S3 bucket.&lt;/p&gt;

&lt;p&gt;🏗️ Step 11 — High Availability&lt;/p&gt;

&lt;p&gt;Along the way, I explored the idea of High Availability (HA).&lt;/p&gt;

&lt;p&gt;The basic principle is:&lt;/p&gt;

&lt;p&gt;Don't design your application around a single point of failure.&lt;/p&gt;

&lt;p&gt;Cloud architecture aims to provide resilience through redundancy and distributed infrastructure.&lt;/p&gt;

&lt;p&gt;This made me look at AWS not simply as:&lt;/p&gt;

&lt;p&gt;"A place where I upload my website"&lt;/p&gt;

&lt;p&gt;but as:&lt;/p&gt;

&lt;p&gt;Infrastructure designed to deliver applications reliably.&lt;/p&gt;

&lt;p&gt;⚡ Step 12 — Moving to CloudFront&lt;/p&gt;

&lt;p&gt;After getting the website working through S3, the next step was Amazon CloudFront.&lt;/p&gt;

&lt;p&gt;The architecture changes from:&lt;/p&gt;

&lt;p&gt;User&lt;br&gt;
  ↓&lt;br&gt;
S3&lt;/p&gt;

&lt;p&gt;to:&lt;/p&gt;

&lt;p&gt;User&lt;br&gt;
  ↓&lt;br&gt;
CloudFront&lt;br&gt;
  ↓&lt;br&gt;
S3&lt;/p&gt;

&lt;p&gt;CloudFront acts as a CDN and can cache content at edge locations closer to users.&lt;/p&gt;

&lt;p&gt;This can improve content delivery performance and also gives us a path toward serving the site over HTTPS.&lt;/p&gt;

&lt;p&gt;⚙️ Step 13 — Creating the CloudFront Distribution&lt;/p&gt;

&lt;p&gt;I went to:&lt;/p&gt;

&lt;p&gt;AWS Console → CloudFront → Distributions → Create distribution&lt;/p&gt;

&lt;p&gt;For the distribution, I used:&lt;/p&gt;

&lt;p&gt;Distribution name:&lt;br&gt;
my-portfolio&lt;/p&gt;

&lt;p&gt;I selected:&lt;/p&gt;

&lt;p&gt;Single website configuration&lt;/p&gt;

&lt;p&gt;For the origin, I selected my S3 bucket:&lt;/p&gt;

&lt;p&gt;amuthanila-04-15.s3.eu-north-1.amazonaws.com&lt;/p&gt;

&lt;p&gt;I also enabled:&lt;/p&gt;

&lt;p&gt;Grant CloudFront access to origin → Yes&lt;/p&gt;

&lt;p&gt;This allows CloudFront to access the S3 origin while AWS can manage the required S3 bucket policy configuration.&lt;/p&gt;

&lt;p&gt;🚧 Step 14 — The Unexpected Problem&lt;/p&gt;

&lt;p&gt;Everything looked ready.&lt;/p&gt;

&lt;p&gt;The CloudFront configuration showed:&lt;/p&gt;

&lt;p&gt;Billing:&lt;br&gt;
Free ($0/month)&lt;/p&gt;

&lt;p&gt;Origin:&lt;br&gt;
S3&lt;/p&gt;

&lt;p&gt;CloudFront access:&lt;br&gt;
Yes&lt;/p&gt;

&lt;p&gt;Security:&lt;br&gt;
Enabled&lt;/p&gt;

&lt;p&gt;But when I tried to create the distribution, AWS stopped me with:&lt;/p&gt;

&lt;p&gt;"Your account must be verified before you can add new CloudFront resources."&lt;/p&gt;

&lt;p&gt;So the problem wasn't my S3 configuration.&lt;/p&gt;

&lt;p&gt;It was an AWS account verification requirement.&lt;/p&gt;

&lt;p&gt;Instead of randomly changing the configuration, I opened an AWS Support case to resolve the account verification issue.&lt;/p&gt;

&lt;p&gt;And honestly, this was also part of the learning.&lt;/p&gt;

&lt;p&gt;Because in real cloud work:&lt;/p&gt;

&lt;p&gt;Things don't always fail because your code is wrong.&lt;/p&gt;

&lt;p&gt;Sometimes the problem is permissions, account restrictions, quotas, billing, or service-level requirements.&lt;/p&gt;

&lt;p&gt;🌐 Step 15 — Route 53&lt;/p&gt;

&lt;p&gt;The next part of the CloudCraft journey is Route 53.&lt;/p&gt;

&lt;p&gt;The purpose is DNS.&lt;/p&gt;

&lt;p&gt;Instead of users having to remember a long AWS endpoint, DNS allows a domain name to point toward the application infrastructure.&lt;/p&gt;

&lt;p&gt;The intended architecture becomes:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;             🌍 USER
                │
                ▼
          ┌───────────┐
          │ Route 53  │
          │    DNS    │
          └─────┬─────┘
                │
                ▼
          ┌───────────┐
          │CloudFront │
          │    CDN    │
          └─────┬─────┘
                │
                ▼
          ┌───────────┐
          │    S3     │
          │  Website  │
          └───────────┘
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;🧩 What I Covered in CloudCraft&lt;/p&gt;

&lt;p&gt;My first CloudCraft hands-on session covered:&lt;/p&gt;

&lt;p&gt;AWS&lt;br&gt;
 │&lt;br&gt;
 └── S3&lt;br&gt;
      ├── Bucket creation&lt;br&gt;
      ├── Global namespace&lt;br&gt;
      ├── Object upload&lt;br&gt;
      ├── Static website hosting&lt;br&gt;
      ├── ACL&lt;br&gt;
      ├── Bucket Policy&lt;br&gt;
      ├── Tags&lt;br&gt;
      ├── Versioning&lt;br&gt;
      └── Presigned URLs&lt;br&gt;
            │&lt;br&gt;
            ▼&lt;br&gt;
        CloudFront&lt;br&gt;
            │&lt;br&gt;
            ▼&lt;br&gt;
         Route 53&lt;br&gt;
💡 My Biggest Takeaway&lt;/p&gt;

&lt;p&gt;Before this workshop, these could have looked like separate AWS terms:&lt;/p&gt;

&lt;p&gt;S3. ACL. Bucket Policy. Versioning. CloudFront. Route 53.&lt;/p&gt;

&lt;p&gt;After actually configuring them, I started seeing them as different layers of the same architecture.&lt;/p&gt;

&lt;p&gt;Storage&lt;br&gt;
   ↓&lt;br&gt;
Access Control&lt;br&gt;
   ↓&lt;br&gt;
Website Hosting&lt;br&gt;
   ↓&lt;br&gt;
Content Delivery&lt;br&gt;
   ↓&lt;br&gt;
DNS&lt;/p&gt;

&lt;p&gt;That's the part I found most valuable about the hands-on approach.&lt;br&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fdxs96fq9nen0441v0tjs.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fdxs96fq9nen0441v0tjs.png" alt=" " width="799" height="338"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>aws</category>
      <category>beginners</category>
      <category>cloud</category>
      <category>deployment</category>
    </item>
  </channel>
</rss>
